aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorNatanael Copa <ncopa@alpinelinux.org>2011-04-20 06:08:14 +0000
committerNatanael Copa <ncopa@alpinelinux.org>2011-04-20 06:16:33 +0000
commit443af6fbde8be65de45228a926e021f8be852d39 (patch)
tree2b61fc0f1ffc51bfb45b51c45dd0e32fa046b5a0
parent3d7f39cc57d98a75d85f17cae2d6bc5dd37e5b42 (diff)
downloadalpine_aports-443af6fbde8be65de45228a926e021f8be852d39.tar.bz2
alpine_aports-443af6fbde8be65de45228a926e021f8be852d39.tar.xz
alpine_aports-443af6fbde8be65de45228a926e021f8be852d39.zip
main/linux-grsec: upgrade to 2.2.2-2.6.38.3-201104190633
second try
-rw-r--r--main/linux-grsec/APKBUILD14
-rw-r--r--main/linux-grsec/grsecurity-2.2.2-2.6.38.3-201104190633.patch (renamed from main/linux-grsec/grsecurity-2.2.2-2.6.38.2-201103281752.patch)9913
-rw-r--r--main/linux-grsec/kernelconfig.x867
-rw-r--r--main/linux-grsec/kernelconfig.x86_648
4 files changed, 5814 insertions, 4128 deletions
diff --git a/main/linux-grsec/APKBUILD b/main/linux-grsec/APKBUILD
index 3e7a6bc50c..631133bc78 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.2 5pkgver=2.6.38.3
6_kernver=2.6.38 6_kernver=2.6.38
7pkgrel=3 7pkgrel=1
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.2-201103281752.patch 17 grsecurity-2.2.2-2.6.38.3-201104190633.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
140599badab31c4920d4122133208c810d7 patch-2.6.38.2.bz2 140b3677121c4b5efcb8128c2000788d0aa patch-2.6.38.3.bz2
141fac4f5fb386192c544fae27db6db18a7 grsecurity-2.2.2-2.6.38.2-201103281752.patch 141a19024797f192fe21a468de80c101d8a grsecurity-2.2.2-2.6.38.3-201104190633.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
14447ff0feca681cd53a037b7f5c9b46c3d kernelconfig.x86 144b88a5966a35d817b85586208100137b2 kernelconfig.x86
1452d70a4c38d97ca1a5280ca8d4e535628 kernelconfig.x86_64" 145f116ab9c5f14e7ce6d16c4c4985a36c9 kernelconfig.x86_64"
diff --git a/main/linux-grsec/grsecurity-2.2.2-2.6.38.2-201103281752.patch b/main/linux-grsec/grsecurity-2.2.2-2.6.38.3-201104190633.patch
index 190cb94594..1261eb5a1a 100644
--- a/main/linux-grsec/grsecurity-2.2.2-2.6.38.2-201103281752.patch
+++ b/main/linux-grsec/grsecurity-2.2.2-2.6.38.3-201104190633.patch
@@ -1,6 +1,6 @@
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 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
2--- linux-2.6.38.2/arch/alpha/include/asm/dma-mapping.h 2011-03-14 21:20:32.000000000 -0400 2--- linux-2.6.38.3/arch/alpha/include/asm/dma-mapping.h 2011-03-14 21:20:32.000000000 -0400
3+++ linux-2.6.38.2/arch/alpha/include/asm/dma-mapping.h 2011-03-21 18:31:35.000000000 -0400 3+++ linux-2.6.38.3/arch/alpha/include/asm/dma-mapping.h 2011-04-17 15:57:32.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.2/arch/alpha/include/asm/dma-mapping.h linux-2.6.38.2/ar
13 { 13 {
14 return dma_ops; 14 return dma_ops;
15 } 15 }
16diff -urNp linux-2.6.38.2/arch/alpha/include/asm/elf.h linux-2.6.38.2/arch/alpha/include/asm/elf.h 16diff -urNp linux-2.6.38.3/arch/alpha/include/asm/elf.h linux-2.6.38.3/arch/alpha/include/asm/elf.h
17--- linux-2.6.38.2/arch/alpha/include/asm/elf.h 2011-03-14 21:20:32.000000000 -0400 17--- linux-2.6.38.3/arch/alpha/include/asm/elf.h 2011-03-14 21:20:32.000000000 -0400
18+++ linux-2.6.38.2/arch/alpha/include/asm/elf.h 2011-03-21 18:31:35.000000000 -0400 18+++ linux-2.6.38.3/arch/alpha/include/asm/elf.h 2011-04-17 15:57:32.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.2/arch/alpha/include/asm/elf.h linux-2.6.38.2/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.2/arch/alpha/include/asm/pgtable.h linux-2.6.38.2/arch/alpha/include/asm/pgtable.h 33diff -urNp linux-2.6.38.3/arch/alpha/include/asm/pgtable.h linux-2.6.38.3/arch/alpha/include/asm/pgtable.h
34--- linux-2.6.38.2/arch/alpha/include/asm/pgtable.h 2011-03-14 21:20:32.000000000 -0400 34--- linux-2.6.38.3/arch/alpha/include/asm/pgtable.h 2011-03-14 21:20:32.000000000 -0400
35+++ linux-2.6.38.2/arch/alpha/include/asm/pgtable.h 2011-03-21 18:31:35.000000000 -0400 35+++ linux-2.6.38.3/arch/alpha/include/asm/pgtable.h 2011-04-17 15:57:32.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.2/arch/alpha/include/asm/pgtable.h linux-2.6.38.2/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.2/arch/alpha/kernel/module.c linux-2.6.38.2/arch/alpha/kernel/module.c 54diff -urNp linux-2.6.38.3/arch/alpha/kernel/module.c linux-2.6.38.3/arch/alpha/kernel/module.c
55--- linux-2.6.38.2/arch/alpha/kernel/module.c 2011-03-14 21:20:32.000000000 -0400 55--- linux-2.6.38.3/arch/alpha/kernel/module.c 2011-03-14 21:20:32.000000000 -0400
56+++ linux-2.6.38.2/arch/alpha/kernel/module.c 2011-03-21 18:31:35.000000000 -0400 56+++ linux-2.6.38.3/arch/alpha/kernel/module.c 2011-04-17 15:57:32.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.2/arch/alpha/kernel/module.c linux-2.6.38.2/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.2/arch/alpha/kernel/osf_sys.c linux-2.6.38.2/arch/alpha/kernel/osf_sys.c 66diff -urNp linux-2.6.38.3/arch/alpha/kernel/osf_sys.c linux-2.6.38.3/arch/alpha/kernel/osf_sys.c
67--- linux-2.6.38.2/arch/alpha/kernel/osf_sys.c 2011-03-14 21:20:32.000000000 -0400 67--- linux-2.6.38.3/arch/alpha/kernel/osf_sys.c 2011-03-14 21:20:32.000000000 -0400
68+++ linux-2.6.38.2/arch/alpha/kernel/osf_sys.c 2011-03-21 18:31:35.000000000 -0400 68+++ linux-2.6.38.3/arch/alpha/kernel/osf_sys.c 2011-04-17 15:57:32.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.2/arch/alpha/kernel/osf_sys.c linux-2.6.38.2/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.2/arch/alpha/kernel/pci_iommu.c linux-2.6.38.2/arch/alpha/kernel/pci_iommu.c 100diff -urNp linux-2.6.38.3/arch/alpha/kernel/pci_iommu.c linux-2.6.38.3/arch/alpha/kernel/pci_iommu.c
101--- linux-2.6.38.2/arch/alpha/kernel/pci_iommu.c 2011-03-14 21:20:32.000000000 -0400 101--- linux-2.6.38.3/arch/alpha/kernel/pci_iommu.c 2011-03-14 21:20:32.000000000 -0400
102+++ linux-2.6.38.2/arch/alpha/kernel/pci_iommu.c 2011-03-21 18:31:35.000000000 -0400 102+++ linux-2.6.38.3/arch/alpha/kernel/pci_iommu.c 2011-04-17 15:57:32.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.2/arch/alpha/kernel/pci_iommu.c linux-2.6.38.2/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.2/arch/alpha/kernel/pci-noop.c linux-2.6.38.2/arch/alpha/kernel/pci-noop.c 119diff -urNp linux-2.6.38.3/arch/alpha/kernel/pci-noop.c linux-2.6.38.3/arch/alpha/kernel/pci-noop.c
120--- linux-2.6.38.2/arch/alpha/kernel/pci-noop.c 2011-03-14 21:20:32.000000000 -0400 120--- linux-2.6.38.3/arch/alpha/kernel/pci-noop.c 2011-03-14 21:20:32.000000000 -0400
121+++ linux-2.6.38.2/arch/alpha/kernel/pci-noop.c 2011-03-21 18:31:35.000000000 -0400 121+++ linux-2.6.38.3/arch/alpha/kernel/pci-noop.c 2011-04-17 15:57:32.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.2/arch/alpha/kernel/pci-noop.c linux-2.6.38.2/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.2/arch/alpha/mm/fault.c linux-2.6.38.2/arch/alpha/mm/fault.c 140diff -urNp linux-2.6.38.3/arch/alpha/mm/fault.c linux-2.6.38.3/arch/alpha/mm/fault.c
141--- linux-2.6.38.2/arch/alpha/mm/fault.c 2011-03-14 21:20:32.000000000 -0400 141--- linux-2.6.38.3/arch/alpha/mm/fault.c 2011-03-14 21:20:32.000000000 -0400
142+++ linux-2.6.38.2/arch/alpha/mm/fault.c 2011-03-21 18:31:35.000000000 -0400 142+++ linux-2.6.38.3/arch/alpha/mm/fault.c 2011-04-17 15:57:32.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.2/arch/alpha/mm/fault.c linux-2.6.38.2/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.2/arch/arm/include/asm/elf.h linux-2.6.38.2/arch/arm/include/asm/elf.h 299diff -urNp linux-2.6.38.3/arch/arm/include/asm/elf.h linux-2.6.38.3/arch/arm/include/asm/elf.h
300--- linux-2.6.38.2/arch/arm/include/asm/elf.h 2011-03-14 21:20:32.000000000 -0400 300--- linux-2.6.38.3/arch/arm/include/asm/elf.h 2011-03-14 21:20:32.000000000 -0400
301+++ linux-2.6.38.2/arch/arm/include/asm/elf.h 2011-03-21 18:31:35.000000000 -0400 301+++ linux-2.6.38.3/arch/arm/include/asm/elf.h 2011-04-17 15:57:32.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.2/arch/arm/include/asm/elf.h linux-2.6.38.2/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.2/arch/arm/include/asm/kmap_types.h linux-2.6.38.2/arch/arm/include/asm/kmap_types.h 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
330--- linux-2.6.38.2/arch/arm/include/asm/kmap_types.h 2011-03-14 21:20:32.000000000 -0400 330--- linux-2.6.38.3/arch/arm/include/asm/kmap_types.h 2011-03-14 21:20:32.000000000 -0400
331+++ linux-2.6.38.2/arch/arm/include/asm/kmap_types.h 2011-03-21 18:31:35.000000000 -0400 331+++ linux-2.6.38.3/arch/arm/include/asm/kmap_types.h 2011-04-17 15:57:32.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.2/arch/arm/include/asm/kmap_types.h linux-2.6.38.2/arch/
337 KM_TYPE_NR 337 KM_TYPE_NR
338 }; 338 };
339 339
340diff -urNp linux-2.6.38.2/arch/arm/include/asm/uaccess.h linux-2.6.38.2/arch/arm/include/asm/uaccess.h 340diff -urNp linux-2.6.38.3/arch/arm/include/asm/uaccess.h linux-2.6.38.3/arch/arm/include/asm/uaccess.h
341--- linux-2.6.38.2/arch/arm/include/asm/uaccess.h 2011-03-14 21:20:32.000000000 -0400 341--- linux-2.6.38.3/arch/arm/include/asm/uaccess.h 2011-03-14 21:20:32.000000000 -0400
342+++ linux-2.6.38.2/arch/arm/include/asm/uaccess.h 2011-03-21 18:31:35.000000000 -0400 342+++ linux-2.6.38.3/arch/arm/include/asm/uaccess.h 2011-04-17 15:57:32.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.2/arch/arm/include/asm/uaccess.h linux-2.6.38.2/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.2/arch/arm/kernel/kgdb.c linux-2.6.38.2/arch/arm/kernel/kgdb.c 363diff -urNp linux-2.6.38.3/arch/arm/kernel/kgdb.c linux-2.6.38.3/arch/arm/kernel/kgdb.c
364--- linux-2.6.38.2/arch/arm/kernel/kgdb.c 2011-03-14 21:20:32.000000000 -0400 364--- linux-2.6.38.3/arch/arm/kernel/kgdb.c 2011-03-14 21:20:32.000000000 -0400
365+++ linux-2.6.38.2/arch/arm/kernel/kgdb.c 2011-03-21 18:31:35.000000000 -0400 365+++ linux-2.6.38.3/arch/arm/kernel/kgdb.c 2011-04-17 15:57:32.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.2/arch/arm/kernel/kgdb.c linux-2.6.38.2/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.2/arch/arm/kernel/process.c linux-2.6.38.2/arch/arm/kernel/process.c 375diff -urNp linux-2.6.38.3/arch/arm/kernel/process.c linux-2.6.38.3/arch/arm/kernel/process.c
376--- linux-2.6.38.2/arch/arm/kernel/process.c 2011-03-14 21:20:32.000000000 -0400 376--- linux-2.6.38.3/arch/arm/kernel/process.c 2011-03-14 21:20:32.000000000 -0400
377+++ linux-2.6.38.2/arch/arm/kernel/process.c 2011-03-21 18:31:35.000000000 -0400 377+++ linux-2.6.38.3/arch/arm/kernel/process.c 2011-04-17 15:57:32.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.2/arch/arm/kernel/process.c linux-2.6.38.2/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.2/arch/arm/mach-msm/last_radio_log.c linux-2.6.38.2/arch/arm/mach-msm/last_radio_log.c 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
400--- linux-2.6.38.2/arch/arm/mach-msm/last_radio_log.c 2011-03-14 21:20:32.000000000 -0400 400--- linux-2.6.38.3/arch/arm/mach-msm/last_radio_log.c 2011-03-14 21:20: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 401+++ linux-2.6.38.3/arch/arm/mach-msm/last_radio_log.c 2011-04-17 15:57:32.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.2/arch/arm/mach-msm/last_radio_log.c linux-2.6.38.2/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.2/arch/arm/mach-ux500/mbox-db5500.c linux-2.6.38.2/arch/arm/mach-ux500/mbox-db5500.c 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
412--- linux-2.6.38.2/arch/arm/mach-ux500/mbox-db5500.c 2011-03-14 21:20:32.000000000 -0400 412--- linux-2.6.38.3/arch/arm/mach-ux500/mbox-db5500.c 2011-03-14 21:20:32.000000000 -0400
413+++ linux-2.6.38.2/arch/arm/mach-ux500/mbox-db5500.c 2011-03-21 18:31:35.000000000 -0400 413+++ linux-2.6.38.3/arch/arm/mach-ux500/mbox-db5500.c 2011-04-17 15:57:32.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.2/arch/arm/mach-ux500/mbox-db5500.c linux-2.6.38.2/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.2/arch/arm/mm/fault.c linux-2.6.38.2/arch/arm/mm/fault.c 423diff -urNp linux-2.6.38.3/arch/arm/mm/fault.c linux-2.6.38.3/arch/arm/mm/fault.c
424--- linux-2.6.38.2/arch/arm/mm/fault.c 2011-03-14 21:20:32.000000000 -0400 424--- linux-2.6.38.3/arch/arm/mm/fault.c 2011-03-14 21:20:32.000000000 -0400
425+++ linux-2.6.38.2/arch/arm/mm/fault.c 2011-03-21 18:31:35.000000000 -0400 425+++ linux-2.6.38.3/arch/arm/mm/fault.c 2011-04-17 15:57:32.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.2/arch/arm/mm/fault.c linux-2.6.38.2/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.2/arch/arm/mm/mmap.c linux-2.6.38.2/arch/arm/mm/mmap.c 474diff -urNp linux-2.6.38.3/arch/arm/mm/mmap.c linux-2.6.38.3/arch/arm/mm/mmap.c
475--- linux-2.6.38.2/arch/arm/mm/mmap.c 2011-03-14 21:20:32.000000000 -0400 475--- linux-2.6.38.3/arch/arm/mm/mmap.c 2011-03-14 21:20:32.000000000 -0400
476+++ linux-2.6.38.2/arch/arm/mm/mmap.c 2011-03-21 18:31:35.000000000 -0400 476+++ linux-2.6.38.3/arch/arm/mm/mmap.c 2011-04-17 15:57:32.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.2/arch/arm/mm/mmap.c linux-2.6.38.2/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.2/arch/avr32/include/asm/elf.h linux-2.6.38.2/arch/avr32/include/asm/elf.h 526diff -urNp linux-2.6.38.3/arch/avr32/include/asm/elf.h linux-2.6.38.3/arch/avr32/include/asm/elf.h
527--- linux-2.6.38.2/arch/avr32/include/asm/elf.h 2011-03-14 21:20:32.000000000 -0400 527--- linux-2.6.38.3/arch/avr32/include/asm/elf.h 2011-03-14 21:20:32.000000000 -0400
528+++ linux-2.6.38.2/arch/avr32/include/asm/elf.h 2011-03-21 18:31:35.000000000 -0400 528+++ linux-2.6.38.3/arch/avr32/include/asm/elf.h 2011-04-17 15:57:32.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.2/arch/avr32/include/asm/elf.h linux-2.6.38.2/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.2/arch/avr32/include/asm/kmap_types.h linux-2.6.38.2/arch/avr32/include/asm/kmap_types.h 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
546--- linux-2.6.38.2/arch/avr32/include/asm/kmap_types.h 2011-03-14 21:20:32.000000000 -0400 546--- linux-2.6.38.3/arch/avr32/include/asm/kmap_types.h 2011-03-14 21:20:32.000000000 -0400
547+++ linux-2.6.38.2/arch/avr32/include/asm/kmap_types.h 2011-03-21 18:31:35.000000000 -0400 547+++ linux-2.6.38.3/arch/avr32/include/asm/kmap_types.h 2011-04-17 15:57:32.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.2/arch/avr32/include/asm/kmap_types.h linux-2.6.38.2/arc
555 }; 555 };
556 556
557 #undef D 557 #undef D
558diff -urNp linux-2.6.38.2/arch/avr32/mm/fault.c linux-2.6.38.2/arch/avr32/mm/fault.c 558diff -urNp linux-2.6.38.3/arch/avr32/mm/fault.c linux-2.6.38.3/arch/avr32/mm/fault.c
559--- linux-2.6.38.2/arch/avr32/mm/fault.c 2011-03-14 21:20:32.000000000 -0400 559--- linux-2.6.38.3/arch/avr32/mm/fault.c 2011-03-14 21:20:32.000000000 -0400
560+++ linux-2.6.38.2/arch/avr32/mm/fault.c 2011-03-21 18:31:35.000000000 -0400 560+++ linux-2.6.38.3/arch/avr32/mm/fault.c 2011-04-17 15:57:32.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.2/arch/avr32/mm/fault.c linux-2.6.38.2/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.2/arch/blackfin/kernel/kgdb.c linux-2.6.38.2/arch/blackfin/kernel/kgdb.c 602diff -urNp linux-2.6.38.3/arch/blackfin/kernel/kgdb.c linux-2.6.38.3/arch/blackfin/kernel/kgdb.c
603--- linux-2.6.38.2/arch/blackfin/kernel/kgdb.c 2011-03-14 21:20:32.000000000 -0400 603--- linux-2.6.38.3/arch/blackfin/kernel/kgdb.c 2011-03-14 21:20:32.000000000 -0400
604+++ linux-2.6.38.2/arch/blackfin/kernel/kgdb.c 2011-03-21 18:31:35.000000000 -0400 604+++ linux-2.6.38.3/arch/blackfin/kernel/kgdb.c 2011-04-17 15:57:32.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.2/arch/blackfin/kernel/kgdb.c linux-2.6.38.2/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.2/arch/blackfin/mm/maccess.c linux-2.6.38.2/arch/blackfin/mm/maccess.c 614diff -urNp linux-2.6.38.3/arch/blackfin/mm/maccess.c linux-2.6.38.3/arch/blackfin/mm/maccess.c
615--- linux-2.6.38.2/arch/blackfin/mm/maccess.c 2011-03-14 21:20:32.000000000 -0400 615--- linux-2.6.38.3/arch/blackfin/mm/maccess.c 2011-03-14 21:20:32.000000000 -0400
616+++ linux-2.6.38.2/arch/blackfin/mm/maccess.c 2011-03-21 18:31:35.000000000 -0400 616+++ linux-2.6.38.3/arch/blackfin/mm/maccess.c 2011-04-17 15:57:32.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.2/arch/blackfin/mm/maccess.c linux-2.6.38.2/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.2/arch/frv/include/asm/kmap_types.h linux-2.6.38.2/arch/frv/include/asm/kmap_types.h 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
636--- linux-2.6.38.2/arch/frv/include/asm/kmap_types.h 2011-03-14 21:20:32.000000000 -0400 636--- linux-2.6.38.3/arch/frv/include/asm/kmap_types.h 2011-03-14 21:20:32.000000000 -0400
637+++ linux-2.6.38.2/arch/frv/include/asm/kmap_types.h 2011-03-21 18:31:35.000000000 -0400 637+++ linux-2.6.38.3/arch/frv/include/asm/kmap_types.h 2011-04-17 15:57:32.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.2/arch/frv/include/asm/kmap_types.h linux-2.6.38.2/arch/
643 KM_TYPE_NR 643 KM_TYPE_NR
644 }; 644 };
645 645
646diff -urNp linux-2.6.38.2/arch/frv/mm/elf-fdpic.c linux-2.6.38.2/arch/frv/mm/elf-fdpic.c 646diff -urNp linux-2.6.38.3/arch/frv/mm/elf-fdpic.c linux-2.6.38.3/arch/frv/mm/elf-fdpic.c
647--- linux-2.6.38.2/arch/frv/mm/elf-fdpic.c 2011-03-14 21:20:32.000000000 -0400 647--- linux-2.6.38.3/arch/frv/mm/elf-fdpic.c 2011-03-14 21:20:32.000000000 -0400
648+++ linux-2.6.38.2/arch/frv/mm/elf-fdpic.c 2011-03-21 18:31:35.000000000 -0400 648+++ linux-2.6.38.3/arch/frv/mm/elf-fdpic.c 2011-04-17 15:57:32.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.2/arch/frv/mm/elf-fdpic.c linux-2.6.38.2/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.2/arch/ia64/hp/common/hwsw_iommu.c linux-2.6.38.2/arch/ia64/hp/common/hwsw_iommu.c 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
678--- linux-2.6.38.2/arch/ia64/hp/common/hwsw_iommu.c 2011-03-14 21:20:32.000000000 -0400 678--- linux-2.6.38.3/arch/ia64/hp/common/hwsw_iommu.c 2011-03-14 21:20:32.000000000 -0400
679+++ linux-2.6.38.2/arch/ia64/hp/common/hwsw_iommu.c 2011-03-21 18:31:35.000000000 -0400 679+++ linux-2.6.38.3/arch/ia64/hp/common/hwsw_iommu.c 2011-04-17 15:57:32.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.2/arch/ia64/hp/common/hwsw_iommu.c linux-2.6.38.2/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.2/arch/ia64/hp/common/sba_iommu.c linux-2.6.38.2/arch/ia64/hp/common/sba_iommu.c 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
699--- linux-2.6.38.2/arch/ia64/hp/common/sba_iommu.c 2011-03-14 21:20:32.000000000 -0400 699--- linux-2.6.38.3/arch/ia64/hp/common/sba_iommu.c 2011-03-14 21:20:32.000000000 -0400
700+++ linux-2.6.38.2/arch/ia64/hp/common/sba_iommu.c 2011-03-21 18:31:35.000000000 -0400 700+++ linux-2.6.38.3/arch/ia64/hp/common/sba_iommu.c 2011-04-17 15:57:32.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.2/arch/ia64/hp/common/sba_iommu.c linux-2.6.38.2/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.2/arch/ia64/include/asm/dma-mapping.h linux-2.6.38.2/arch/ia64/include/asm/dma-mapping.h 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
720--- linux-2.6.38.2/arch/ia64/include/asm/dma-mapping.h 2011-03-14 21:20:32.000000000 -0400 720--- linux-2.6.38.3/arch/ia64/include/asm/dma-mapping.h 2011-03-14 21:20:32.000000000 -0400
721+++ linux-2.6.38.2/arch/ia64/include/asm/dma-mapping.h 2011-03-21 18:31:35.000000000 -0400 721+++ linux-2.6.38.3/arch/ia64/include/asm/dma-mapping.h 2011-04-17 15:57:32.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.2/arch/ia64/include/asm/dma-mapping.h linux-2.6.38.2/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.2/arch/ia64/include/asm/elf.h linux-2.6.38.2/arch/ia64/include/asm/elf.h 765diff -urNp linux-2.6.38.3/arch/ia64/include/asm/elf.h linux-2.6.38.3/arch/ia64/include/asm/elf.h
766--- linux-2.6.38.2/arch/ia64/include/asm/elf.h 2011-03-14 21:20:32.000000000 -0400 766--- linux-2.6.38.3/arch/ia64/include/asm/elf.h 2011-03-14 21:20:32.000000000 -0400
767+++ linux-2.6.38.2/arch/ia64/include/asm/elf.h 2011-03-21 18:31:35.000000000 -0400 767+++ linux-2.6.38.3/arch/ia64/include/asm/elf.h 2011-04-17 15:57:32.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.2/arch/ia64/include/asm/elf.h linux-2.6.38.2/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.2/arch/ia64/include/asm/machvec.h linux-2.6.38.2/arch/ia64/include/asm/machvec.h 782diff -urNp linux-2.6.38.3/arch/ia64/include/asm/machvec.h linux-2.6.38.3/arch/ia64/include/asm/machvec.h
783--- linux-2.6.38.2/arch/ia64/include/asm/machvec.h 2011-03-14 21:20:32.000000000 -0400 783--- linux-2.6.38.3/arch/ia64/include/asm/machvec.h 2011-03-14 21:20:32.000000000 -0400
784+++ linux-2.6.38.2/arch/ia64/include/asm/machvec.h 2011-03-21 18:31:35.000000000 -0400 784+++ linux-2.6.38.3/arch/ia64/include/asm/machvec.h 2011-04-17 15:57:32.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.2/arch/ia64/include/asm/machvec.h linux-2.6.38.2/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.2/arch/ia64/include/asm/pgtable.h linux-2.6.38.2/arch/ia64/include/asm/pgtable.h 803diff -urNp linux-2.6.38.3/arch/ia64/include/asm/pgtable.h linux-2.6.38.3/arch/ia64/include/asm/pgtable.h
804--- linux-2.6.38.2/arch/ia64/include/asm/pgtable.h 2011-03-14 21:20:32.000000000 -0400 804--- linux-2.6.38.3/arch/ia64/include/asm/pgtable.h 2011-03-14 21:20:32.000000000 -0400
805+++ linux-2.6.38.2/arch/ia64/include/asm/pgtable.h 2011-03-21 18:31:35.000000000 -0400 805+++ linux-2.6.38.3/arch/ia64/include/asm/pgtable.h 2011-04-17 15:57:32.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.2/arch/ia64/include/asm/pgtable.h linux-2.6.38.2/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.2/arch/ia64/include/asm/spinlock.h linux-2.6.38.2/arch/ia64/include/asm/spinlock.h 833diff -urNp linux-2.6.38.3/arch/ia64/include/asm/spinlock.h linux-2.6.38.3/arch/ia64/include/asm/spinlock.h
834--- linux-2.6.38.2/arch/ia64/include/asm/spinlock.h 2011-03-14 21:20:32.000000000 -0400 834--- linux-2.6.38.3/arch/ia64/include/asm/spinlock.h 2011-03-14 21:20:32.000000000 -0400
835+++ linux-2.6.38.2/arch/ia64/include/asm/spinlock.h 2011-03-21 18:31:35.000000000 -0400 835+++ linux-2.6.38.3/arch/ia64/include/asm/spinlock.h 2011-04-17 15:57:32.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.2/arch/ia64/include/asm/spinlock.h linux-2.6.38.2/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.2/arch/ia64/include/asm/uaccess.h linux-2.6.38.2/arch/ia64/include/asm/uaccess.h 845diff -urNp linux-2.6.38.3/arch/ia64/include/asm/uaccess.h linux-2.6.38.3/arch/ia64/include/asm/uaccess.h
846--- linux-2.6.38.2/arch/ia64/include/asm/uaccess.h 2011-03-14 21:20:32.000000000 -0400 846--- linux-2.6.38.3/arch/ia64/include/asm/uaccess.h 2011-03-14 21:20:32.000000000 -0400
847+++ linux-2.6.38.2/arch/ia64/include/asm/uaccess.h 2011-03-21 18:31:35.000000000 -0400 847+++ linux-2.6.38.3/arch/ia64/include/asm/uaccess.h 2011-04-17 15:57:32.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.2/arch/ia64/include/asm/uaccess.h linux-2.6.38.2/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.2/arch/ia64/kernel/dma-mapping.c linux-2.6.38.2/arch/ia64/kernel/dma-mapping.c 866diff -urNp linux-2.6.38.3/arch/ia64/kernel/dma-mapping.c linux-2.6.38.3/arch/ia64/kernel/dma-mapping.c
867--- linux-2.6.38.2/arch/ia64/kernel/dma-mapping.c 2011-03-14 21:20:32.000000000 -0400 867--- linux-2.6.38.3/arch/ia64/kernel/dma-mapping.c 2011-03-14 21:20:32.000000000 -0400
868+++ linux-2.6.38.2/arch/ia64/kernel/dma-mapping.c 2011-03-21 18:31:35.000000000 -0400 868+++ linux-2.6.38.3/arch/ia64/kernel/dma-mapping.c 2011-04-17 15:57:32.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.2/arch/ia64/kernel/dma-mapping.c linux-2.6.38.2/arch/ia6
884 { 884 {
885 return dma_ops; 885 return dma_ops;
886 } 886 }
887diff -urNp linux-2.6.38.2/arch/ia64/kernel/module.c linux-2.6.38.2/arch/ia64/kernel/module.c 887diff -urNp linux-2.6.38.3/arch/ia64/kernel/module.c linux-2.6.38.3/arch/ia64/kernel/module.c
888--- linux-2.6.38.2/arch/ia64/kernel/module.c 2011-03-14 21:20:32.000000000 -0400 888--- linux-2.6.38.3/arch/ia64/kernel/module.c 2011-03-14 21:20:32.000000000 -0400
889+++ linux-2.6.38.2/arch/ia64/kernel/module.c 2011-03-21 18:31:35.000000000 -0400 889+++ linux-2.6.38.3/arch/ia64/kernel/module.c 2011-04-17 15:57:32.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.2/arch/ia64/kernel/module.c linux-2.6.38.2/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.2/arch/ia64/kernel/pci-dma.c linux-2.6.38.2/arch/ia64/kernel/pci-dma.c 978diff -urNp linux-2.6.38.3/arch/ia64/kernel/pci-dma.c linux-2.6.38.3/arch/ia64/kernel/pci-dma.c
979--- linux-2.6.38.2/arch/ia64/kernel/pci-dma.c 2011-03-14 21:20:32.000000000 -0400 979--- linux-2.6.38.3/arch/ia64/kernel/pci-dma.c 2011-03-14 21:20:32.000000000 -0400
980+++ linux-2.6.38.2/arch/ia64/kernel/pci-dma.c 2011-03-21 18:31:35.000000000 -0400 980+++ linux-2.6.38.3/arch/ia64/kernel/pci-dma.c 2011-04-17 15:57:32.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.2/arch/ia64/kernel/pci-dma.c linux-2.6.38.2/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.2/arch/ia64/kernel/pci-swiotlb.c linux-2.6.38.2/arch/ia64/kernel/pci-swiotlb.c 990diff -urNp linux-2.6.38.3/arch/ia64/kernel/pci-swiotlb.c linux-2.6.38.3/arch/ia64/kernel/pci-swiotlb.c
991--- linux-2.6.38.2/arch/ia64/kernel/pci-swiotlb.c 2011-03-14 21:20:32.000000000 -0400 991--- linux-2.6.38.3/arch/ia64/kernel/pci-swiotlb.c 2011-03-14 21:20:32.000000000 -0400
992+++ linux-2.6.38.2/arch/ia64/kernel/pci-swiotlb.c 2011-03-21 18:31:35.000000000 -0400 992+++ linux-2.6.38.3/arch/ia64/kernel/pci-swiotlb.c 2011-04-17 15:57:32.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.2/arch/ia64/kernel/pci-swiotlb.c linux-2.6.38.2/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.2/arch/ia64/kernel/sys_ia64.c linux-2.6.38.2/arch/ia64/kernel/sys_ia64.c 1002diff -urNp linux-2.6.38.3/arch/ia64/kernel/sys_ia64.c linux-2.6.38.3/arch/ia64/kernel/sys_ia64.c
1003--- linux-2.6.38.2/arch/ia64/kernel/sys_ia64.c 2011-03-14 21:20:32.000000000 -0400 1003--- linux-2.6.38.3/arch/ia64/kernel/sys_ia64.c 2011-03-14 21:20:32.000000000 -0400
1004+++ linux-2.6.38.2/arch/ia64/kernel/sys_ia64.c 2011-03-21 18:31:35.000000000 -0400 1004+++ linux-2.6.38.3/arch/ia64/kernel/sys_ia64.c 2011-04-17 15:57:32.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.2/arch/ia64/kernel/sys_ia64.c linux-2.6.38.2/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.2/arch/ia64/kernel/vmlinux.lds.S linux-2.6.38.2/arch/ia64/kernel/vmlinux.lds.S 1037diff -urNp linux-2.6.38.3/arch/ia64/kernel/vmlinux.lds.S linux-2.6.38.3/arch/ia64/kernel/vmlinux.lds.S
1038--- linux-2.6.38.2/arch/ia64/kernel/vmlinux.lds.S 2011-03-14 21:20:32.000000000 -0400 1038--- linux-2.6.38.3/arch/ia64/kernel/vmlinux.lds.S 2011-03-14 21:20:32.000000000 -0400
1039+++ linux-2.6.38.2/arch/ia64/kernel/vmlinux.lds.S 2011-03-21 18:31:35.000000000 -0400 1039+++ linux-2.6.38.3/arch/ia64/kernel/vmlinux.lds.S 2011-04-17 15:57:32.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.2/arch/ia64/kernel/vmlinux.lds.S linux-2.6.38.2/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.2/arch/ia64/mm/fault.c linux-2.6.38.2/arch/ia64/mm/fault.c 1049diff -urNp linux-2.6.38.3/arch/ia64/mm/fault.c linux-2.6.38.3/arch/ia64/mm/fault.c
1050--- linux-2.6.38.2/arch/ia64/mm/fault.c 2011-03-14 21:20:32.000000000 -0400 1050--- linux-2.6.38.3/arch/ia64/mm/fault.c 2011-03-14 21:20:32.000000000 -0400
1051+++ linux-2.6.38.2/arch/ia64/mm/fault.c 2011-03-21 18:31:35.000000000 -0400 1051+++ linux-2.6.38.3/arch/ia64/mm/fault.c 2011-04-17 15:57:32.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.2/arch/ia64/mm/fault.c linux-2.6.38.2/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.2/arch/ia64/mm/hugetlbpage.c linux-2.6.38.2/arch/ia64/mm/hugetlbpage.c 1101diff -urNp linux-2.6.38.3/arch/ia64/mm/hugetlbpage.c linux-2.6.38.3/arch/ia64/mm/hugetlbpage.c
1102--- linux-2.6.38.2/arch/ia64/mm/hugetlbpage.c 2011-03-14 21:20:32.000000000 -0400 1102--- linux-2.6.38.3/arch/ia64/mm/hugetlbpage.c 2011-03-14 21:20:32.000000000 -0400
1103+++ linux-2.6.38.2/arch/ia64/mm/hugetlbpage.c 2011-03-21 18:31:35.000000000 -0400 1103+++ linux-2.6.38.3/arch/ia64/mm/hugetlbpage.c 2011-04-17 15:57:32.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.2/arch/ia64/mm/hugetlbpage.c linux-2.6.38.2/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.2/arch/ia64/mm/init.c linux-2.6.38.2/arch/ia64/mm/init.c 1113diff -urNp linux-2.6.38.3/arch/ia64/mm/init.c linux-2.6.38.3/arch/ia64/mm/init.c
1114--- linux-2.6.38.2/arch/ia64/mm/init.c 2011-03-14 21:20:32.000000000 -0400 1114--- linux-2.6.38.3/arch/ia64/mm/init.c 2011-03-14 21:20:32.000000000 -0400
1115+++ linux-2.6.38.2/arch/ia64/mm/init.c 2011-03-21 18:31:35.000000000 -0400 1115+++ linux-2.6.38.3/arch/ia64/mm/init.c 2011-04-17 15:57:32.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.2/arch/ia64/mm/init.c linux-2.6.38.2/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.2/arch/ia64/sn/pci/pci_dma.c linux-2.6.38.2/arch/ia64/sn/pci/pci_dma.c 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
1137--- linux-2.6.38.2/arch/ia64/sn/pci/pci_dma.c 2011-03-14 21:20:32.000000000 -0400 1137--- linux-2.6.38.3/arch/ia64/sn/pci/pci_dma.c 2011-03-14 21:20:32.000000000 -0400
1138+++ linux-2.6.38.2/arch/ia64/sn/pci/pci_dma.c 2011-03-21 18:31:35.000000000 -0400 1138+++ linux-2.6.38.3/arch/ia64/sn/pci/pci_dma.c 2011-04-17 15:57:32.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.2/arch/ia64/sn/pci/pci_dma.c linux-2.6.38.2/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.2/arch/m32r/lib/usercopy.c linux-2.6.38.2/arch/m32r/lib/usercopy.c 1148diff -urNp linux-2.6.38.3/arch/m32r/lib/usercopy.c linux-2.6.38.3/arch/m32r/lib/usercopy.c
1149--- linux-2.6.38.2/arch/m32r/lib/usercopy.c 2011-03-14 21:20:32.000000000 -0400 1149--- linux-2.6.38.3/arch/m32r/lib/usercopy.c 2011-03-14 21:20:32.000000000 -0400
1150+++ linux-2.6.38.2/arch/m32r/lib/usercopy.c 2011-03-21 18:31:35.000000000 -0400 1150+++ linux-2.6.38.3/arch/m32r/lib/usercopy.c 2011-04-17 15:57:32.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.2/arch/m32r/lib/usercopy.c linux-2.6.38.2/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.2/arch/microblaze/include/asm/device.h linux-2.6.38.2/arch/microblaze/include/asm/device.h 1171diff -urNp linux-2.6.38.3/arch/microblaze/include/asm/device.h linux-2.6.38.3/arch/microblaze/include/asm/device.h
1172--- linux-2.6.38.2/arch/microblaze/include/asm/device.h 2011-03-14 21:20:32.000000000 -0400 1172--- linux-2.6.38.3/arch/microblaze/include/asm/device.h 2011-03-14 21:20:32.000000000 -0400
1173+++ linux-2.6.38.2/arch/microblaze/include/asm/device.h 2011-03-21 18:31:35.000000000 -0400 1173+++ linux-2.6.38.3/arch/microblaze/include/asm/device.h 2011-04-17 15:57:32.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.2/arch/microblaze/include/asm/device.h linux-2.6.38.2/ar
1180 void *dma_data; 1180 void *dma_data;
1181 }; 1181 };
1182 1182
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 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
1184--- linux-2.6.38.2/arch/microblaze/include/asm/dma-mapping.h 2011-03-14 21:20:32.000000000 -0400 1184--- linux-2.6.38.3/arch/microblaze/include/asm/dma-mapping.h 2011-03-14 21:20:32.000000000 -0400
1185+++ linux-2.6.38.2/arch/microblaze/include/asm/dma-mapping.h 2011-03-21 18:31:35.000000000 -0400 1185+++ linux-2.6.38.3/arch/microblaze/include/asm/dma-mapping.h 2011-04-17 15:57:32.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.2/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.2/arch/microblaze/include/asm/pci.h linux-2.6.38.2/arch/microblaze/include/asm/pci.h 1257diff -urNp linux-2.6.38.3/arch/microblaze/include/asm/pci.h linux-2.6.38.3/arch/microblaze/include/asm/pci.h
1258--- linux-2.6.38.2/arch/microblaze/include/asm/pci.h 2011-03-14 21:20:32.000000000 -0400 1258--- linux-2.6.38.3/arch/microblaze/include/asm/pci.h 2011-03-14 21:20:32.000000000 -0400
1259+++ linux-2.6.38.2/arch/microblaze/include/asm/pci.h 2011-03-21 18:31:35.000000000 -0400 1259+++ linux-2.6.38.3/arch/microblaze/include/asm/pci.h 2011-04-17 15:57:32.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.2/arch/microblaze/include/asm/pci.h linux-2.6.38.2/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.2/arch/microblaze/kernel/dma.c linux-2.6.38.2/arch/microblaze/kernel/dma.c 1271diff -urNp linux-2.6.38.3/arch/microblaze/kernel/dma.c linux-2.6.38.3/arch/microblaze/kernel/dma.c
1272--- linux-2.6.38.2/arch/microblaze/kernel/dma.c 2011-03-14 21:20:32.000000000 -0400 1272--- linux-2.6.38.3/arch/microblaze/kernel/dma.c 2011-03-14 21:20:32.000000000 -0400
1273+++ linux-2.6.38.2/arch/microblaze/kernel/dma.c 2011-03-21 18:31:35.000000000 -0400 1273+++ linux-2.6.38.3/arch/microblaze/kernel/dma.c 2011-04-17 15:57:32.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.2/arch/microblaze/kernel/dma.c linux-2.6.38.2/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.2/arch/microblaze/kernel/kgdb.c linux-2.6.38.2/arch/microblaze/kernel/kgdb.c 1283diff -urNp linux-2.6.38.3/arch/microblaze/kernel/kgdb.c linux-2.6.38.3/arch/microblaze/kernel/kgdb.c
1284--- linux-2.6.38.2/arch/microblaze/kernel/kgdb.c 2011-03-14 21:20:32.000000000 -0400 1284--- linux-2.6.38.3/arch/microblaze/kernel/kgdb.c 2011-03-14 21:20:32.000000000 -0400
1285+++ linux-2.6.38.2/arch/microblaze/kernel/kgdb.c 2011-03-21 18:31:35.000000000 -0400 1285+++ linux-2.6.38.3/arch/microblaze/kernel/kgdb.c 2011-04-17 15:57:32.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.2/arch/microblaze/kernel/kgdb.c linux-2.6.38.2/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.2/arch/microblaze/pci/pci-common.c linux-2.6.38.2/arch/microblaze/pci/pci-common.c 1299diff -urNp linux-2.6.38.3/arch/microblaze/pci/pci-common.c linux-2.6.38.3/arch/microblaze/pci/pci-common.c
1300--- linux-2.6.38.2/arch/microblaze/pci/pci-common.c 2011-03-14 21:20:32.000000000 -0400 1300--- linux-2.6.38.3/arch/microblaze/pci/pci-common.c 2011-03-14 21:20:32.000000000 -0400
1301+++ linux-2.6.38.2/arch/microblaze/pci/pci-common.c 2011-03-21 18:31:35.000000000 -0400 1301+++ linux-2.6.38.3/arch/microblaze/pci/pci-common.c 2011-04-17 15:57:32.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.2/arch/microblaze/pci/pci-common.c linux-2.6.38.2/arch/m
1317 { 1317 {
1318 return pci_dma_ops; 1318 return pci_dma_ops;
1319 } 1319 }
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 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
1321--- linux-2.6.38.2/arch/mips/cavium-octeon/dma-octeon.c 2011-03-14 21:20:32.000000000 -0400 1321--- linux-2.6.38.3/arch/mips/cavium-octeon/dma-octeon.c 2011-03-14 21:20:32.000000000 -0400
1322+++ linux-2.6.38.2/arch/mips/cavium-octeon/dma-octeon.c 2011-03-21 18:31:35.000000000 -0400 1322+++ linux-2.6.38.3/arch/mips/cavium-octeon/dma-octeon.c 2011-04-17 15:57:32.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.2/arch/mips/cavium-octeon/dma-octeon.c linux-2.6.38.2/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.2/arch/mips/include/asm/device.h linux-2.6.38.2/arch/mips/include/asm/device.h 1341diff -urNp linux-2.6.38.3/arch/mips/include/asm/device.h linux-2.6.38.3/arch/mips/include/asm/device.h
1342--- linux-2.6.38.2/arch/mips/include/asm/device.h 2011-03-14 21:20:32.000000000 -0400 1342--- linux-2.6.38.3/arch/mips/include/asm/device.h 2011-03-14 21:20:32.000000000 -0400
1343+++ linux-2.6.38.2/arch/mips/include/asm/device.h 2011-03-21 18:31:35.000000000 -0400 1343+++ linux-2.6.38.3/arch/mips/include/asm/device.h 2011-04-17 15:57:32.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.2/arch/mips/include/asm/device.h linux-2.6.38.2/arch/mip
1350 }; 1350 };
1351 1351
1352 struct pdev_archdata { 1352 struct pdev_archdata {
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 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
1354--- linux-2.6.38.2/arch/mips/include/asm/dma-mapping.h 2011-03-14 21:20:32.000000000 -0400 1354--- linux-2.6.38.3/arch/mips/include/asm/dma-mapping.h 2011-03-14 21:20:32.000000000 -0400
1355+++ linux-2.6.38.2/arch/mips/include/asm/dma-mapping.h 2011-03-21 18:31:35.000000000 -0400 1355+++ linux-2.6.38.3/arch/mips/include/asm/dma-mapping.h 2011-04-17 15:57:32.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.2/arch/mips/include/asm/dma-mapping.h linux-2.6.38.2/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.2/arch/mips/include/asm/elf.h linux-2.6.38.2/arch/mips/include/asm/elf.h 1402diff -urNp linux-2.6.38.3/arch/mips/include/asm/elf.h linux-2.6.38.3/arch/mips/include/asm/elf.h
1403--- linux-2.6.38.2/arch/mips/include/asm/elf.h 2011-03-14 21:20:32.000000000 -0400 1403--- linux-2.6.38.3/arch/mips/include/asm/elf.h 2011-03-14 21:20:32.000000000 -0400
1404+++ linux-2.6.38.2/arch/mips/include/asm/elf.h 2011-03-21 18:31:35.000000000 -0400 1404+++ linux-2.6.38.3/arch/mips/include/asm/elf.h 2011-04-17 15:57:32.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.2/arch/mips/include/asm/elf.h linux-2.6.38.2/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.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 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
1427--- linux-2.6.38.2/arch/mips/include/asm/mach-cavium-octeon/dma-coherence.h 2011-03-14 21:20:32.000000000 -0400 1427--- linux-2.6.38.3/arch/mips/include/asm/mach-cavium-octeon/dma-coherence.h 2011-03-14 21:20: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 1428+++ linux-2.6.38.3/arch/mips/include/asm/mach-cavium-octeon/dma-coherence.h 2011-04-17 15:57:32.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.2/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.2/arch/mips/include/asm/page.h linux-2.6.38.2/arch/mips/include/asm/page.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
1439--- linux-2.6.38.2/arch/mips/include/asm/page.h 2011-03-14 21:20:32.000000000 -0400 1439--- linux-2.6.38.3/arch/mips/include/asm/page.h 2011-03-14 21:20:32.000000000 -0400
1440+++ linux-2.6.38.2/arch/mips/include/asm/page.h 2011-03-21 18:31:35.000000000 -0400 1440+++ linux-2.6.38.3/arch/mips/include/asm/page.h 2011-04-17 15:57:32.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,28 +1447,20 @@ diff -urNp linux-2.6.38.2/arch/mips/include/asm/page.h linux-2.6.38.2/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.2/arch/mips/include/asm/system.h linux-2.6.38.2/arch/mips/include/asm/system.h 1450diff -urNp linux-2.6.38.3/arch/mips/include/asm/system.h linux-2.6.38.3/arch/mips/include/asm/system.h
1451--- linux-2.6.38.2/arch/mips/include/asm/system.h 2011-03-14 21:20:32.000000000 -0400 1451--- linux-2.6.38.3/arch/mips/include/asm/system.h 2011-03-14 21:20:32.000000000 -0400
1452+++ linux-2.6.38.2/arch/mips/include/asm/system.h 2011-03-21 18:31:35.000000000 -0400 1452+++ linux-2.6.38.3/arch/mips/include/asm/system.h 2011-04-17 15:57:32.000000000 -0400
1453@@ -23,6 +23,7 @@ 1453@@ -230,6 +230,6 @@ extern void per_cpu_trap_init(void);
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);
1462 */ 1454 */
1463 #define __ARCH_WANT_UNLOCKED_CTXSW 1455 #define __ARCH_WANT_UNLOCKED_CTXSW
1464 1456
1465-extern unsigned long arch_align_stack(unsigned long sp); 1457-extern unsigned long arch_align_stack(unsigned long sp);
1466+#define arch_align_stack(x) ((x) & ALMASK) 1458+#define arch_align_stack(x) ((x) & ~0xfUL)
1467 1459
1468 #endif /* _ASM_SYSTEM_H */ 1460 #endif /* _ASM_SYSTEM_H */
1469diff -urNp linux-2.6.38.2/arch/mips/kernel/binfmt_elfn32.c linux-2.6.38.2/arch/mips/kernel/binfmt_elfn32.c 1461diff -urNp linux-2.6.38.3/arch/mips/kernel/binfmt_elfn32.c linux-2.6.38.3/arch/mips/kernel/binfmt_elfn32.c
1470--- linux-2.6.38.2/arch/mips/kernel/binfmt_elfn32.c 2011-03-14 21:20:32.000000000 -0400 1462--- linux-2.6.38.3/arch/mips/kernel/binfmt_elfn32.c 2011-03-14 21:20:32.000000000 -0400
1471+++ linux-2.6.38.2/arch/mips/kernel/binfmt_elfn32.c 2011-03-21 18:31:35.000000000 -0400 1463+++ linux-2.6.38.3/arch/mips/kernel/binfmt_elfn32.c 2011-04-17 15:57:32.000000000 -0400
1472@@ -50,6 +50,13 @@ typedef elf_fpreg_t elf_fpregset_t[ELF_N 1464@@ -50,6 +50,13 @@ typedef elf_fpreg_t elf_fpregset_t[ELF_N
1473 #undef ELF_ET_DYN_BASE 1465 #undef ELF_ET_DYN_BASE
1474 #define ELF_ET_DYN_BASE (TASK32_SIZE / 3 * 2) 1466 #define ELF_ET_DYN_BASE (TASK32_SIZE / 3 * 2)
@@ -1483,9 +1475,9 @@ diff -urNp linux-2.6.38.2/arch/mips/kernel/binfmt_elfn32.c linux-2.6.38.2/arch/m
1483 #include <asm/processor.h> 1475 #include <asm/processor.h>
1484 #include <linux/module.h> 1476 #include <linux/module.h>
1485 #include <linux/elfcore.h> 1477 #include <linux/elfcore.h>
1486diff -urNp linux-2.6.38.2/arch/mips/kernel/binfmt_elfo32.c linux-2.6.38.2/arch/mips/kernel/binfmt_elfo32.c 1478diff -urNp linux-2.6.38.3/arch/mips/kernel/binfmt_elfo32.c linux-2.6.38.3/arch/mips/kernel/binfmt_elfo32.c
1487--- linux-2.6.38.2/arch/mips/kernel/binfmt_elfo32.c 2011-03-14 21:20:32.000000000 -0400 1479--- linux-2.6.38.3/arch/mips/kernel/binfmt_elfo32.c 2011-03-14 21:20:32.000000000 -0400
1488+++ linux-2.6.38.2/arch/mips/kernel/binfmt_elfo32.c 2011-03-21 18:31:35.000000000 -0400 1480+++ linux-2.6.38.3/arch/mips/kernel/binfmt_elfo32.c 2011-04-17 15:57:32.000000000 -0400
1489@@ -52,6 +52,13 @@ typedef elf_fpreg_t elf_fpregset_t[ELF_N 1481@@ -52,6 +52,13 @@ typedef elf_fpreg_t elf_fpregset_t[ELF_N
1490 #undef ELF_ET_DYN_BASE 1482 #undef ELF_ET_DYN_BASE
1491 #define ELF_ET_DYN_BASE (TASK32_SIZE / 3 * 2) 1483 #define ELF_ET_DYN_BASE (TASK32_SIZE / 3 * 2)
@@ -1500,9 +1492,9 @@ diff -urNp linux-2.6.38.2/arch/mips/kernel/binfmt_elfo32.c linux-2.6.38.2/arch/m
1500 #include <asm/processor.h> 1492 #include <asm/processor.h>
1501 1493
1502 /* 1494 /*
1503diff -urNp linux-2.6.38.2/arch/mips/kernel/kgdb.c linux-2.6.38.2/arch/mips/kernel/kgdb.c 1495diff -urNp linux-2.6.38.3/arch/mips/kernel/kgdb.c linux-2.6.38.3/arch/mips/kernel/kgdb.c
1504--- linux-2.6.38.2/arch/mips/kernel/kgdb.c 2011-03-14 21:20:32.000000000 -0400 1496--- linux-2.6.38.3/arch/mips/kernel/kgdb.c 2011-03-14 21:20:32.000000000 -0400
1505+++ linux-2.6.38.2/arch/mips/kernel/kgdb.c 2011-03-21 18:31:35.000000000 -0400 1497+++ linux-2.6.38.3/arch/mips/kernel/kgdb.c 2011-04-17 15:57:32.000000000 -0400
1506@@ -351,7 +351,7 @@ int kgdb_arch_handle_exception(int vecto 1498@@ -351,7 +351,7 @@ int kgdb_arch_handle_exception(int vecto
1507 return -1; 1499 return -1;
1508 } 1500 }
@@ -1512,9 +1504,9 @@ diff -urNp linux-2.6.38.2/arch/mips/kernel/kgdb.c linux-2.6.38.2/arch/mips/kerne
1512 1504
1513 /* 1505 /*
1514 * We use kgdb_early_setup so that functions we need to call now don't 1506 * We use kgdb_early_setup so that functions we need to call now don't
1515diff -urNp linux-2.6.38.2/arch/mips/kernel/process.c linux-2.6.38.2/arch/mips/kernel/process.c 1507diff -urNp linux-2.6.38.3/arch/mips/kernel/process.c linux-2.6.38.3/arch/mips/kernel/process.c
1516--- linux-2.6.38.2/arch/mips/kernel/process.c 2011-03-14 21:20:32.000000000 -0400 1508--- linux-2.6.38.3/arch/mips/kernel/process.c 2011-03-14 21:20:32.000000000 -0400
1517+++ linux-2.6.38.2/arch/mips/kernel/process.c 2011-03-21 18:31:35.000000000 -0400 1509+++ linux-2.6.38.3/arch/mips/kernel/process.c 2011-04-17 15:57:32.000000000 -0400
1518@@ -473,15 +473,3 @@ unsigned long get_wchan(struct task_stru 1510@@ -473,15 +473,3 @@ unsigned long get_wchan(struct task_stru
1519 out: 1511 out:
1520 return pc; 1512 return pc;
@@ -1531,9 +1523,9 @@ diff -urNp linux-2.6.38.2/arch/mips/kernel/process.c linux-2.6.38.2/arch/mips/ke
1531- 1523-
1532- return sp & ALMASK; 1524- return sp & ALMASK;
1533-} 1525-}
1534diff -urNp linux-2.6.38.2/arch/mips/kernel/syscall.c linux-2.6.38.2/arch/mips/kernel/syscall.c 1526diff -urNp linux-2.6.38.3/arch/mips/kernel/syscall.c linux-2.6.38.3/arch/mips/kernel/syscall.c
1535--- linux-2.6.38.2/arch/mips/kernel/syscall.c 2011-03-14 21:20:32.000000000 -0400 1527--- linux-2.6.38.3/arch/mips/kernel/syscall.c 2011-03-14 21:20:32.000000000 -0400
1536+++ linux-2.6.38.2/arch/mips/kernel/syscall.c 2011-03-21 18:31:35.000000000 -0400 1528+++ linux-2.6.38.3/arch/mips/kernel/syscall.c 2011-04-17 15:57:32.000000000 -0400
1537@@ -108,14 +108,18 @@ unsigned long arch_get_unmapped_area(str 1529@@ -108,14 +108,18 @@ unsigned long arch_get_unmapped_area(str
1538 do_color_align = 0; 1530 do_color_align = 0;
1539 if (filp || (flags & MAP_SHARED)) 1531 if (filp || (flags & MAP_SHARED))
@@ -1584,9 +1576,9 @@ diff -urNp linux-2.6.38.2/arch/mips/kernel/syscall.c linux-2.6.38.2/arch/mips/ke
1584 SYSCALL_DEFINE6(mips_mmap, unsigned long, addr, unsigned long, len, 1576 SYSCALL_DEFINE6(mips_mmap, unsigned long, addr, unsigned long, len,
1585 unsigned long, prot, unsigned long, flags, unsigned long, 1577 unsigned long, prot, unsigned long, flags, unsigned long,
1586 fd, off_t, offset) 1578 fd, off_t, offset)
1587diff -urNp linux-2.6.38.2/arch/mips/mm/dma-default.c linux-2.6.38.2/arch/mips/mm/dma-default.c 1579diff -urNp linux-2.6.38.3/arch/mips/mm/dma-default.c linux-2.6.38.3/arch/mips/mm/dma-default.c
1588--- linux-2.6.38.2/arch/mips/mm/dma-default.c 2011-03-14 21:20:32.000000000 -0400 1580--- linux-2.6.38.3/arch/mips/mm/dma-default.c 2011-03-14 21:20:32.000000000 -0400
1589+++ linux-2.6.38.2/arch/mips/mm/dma-default.c 2011-03-21 18:31:35.000000000 -0400 1581+++ linux-2.6.38.3/arch/mips/mm/dma-default.c 2011-04-17 15:57:32.000000000 -0400
1590@@ -300,7 +300,7 @@ void dma_cache_sync(struct device *dev, 1582@@ -300,7 +300,7 @@ void dma_cache_sync(struct device *dev,
1591 1583
1592 EXPORT_SYMBOL(dma_cache_sync); 1584 EXPORT_SYMBOL(dma_cache_sync);
@@ -1605,9 +1597,9 @@ diff -urNp linux-2.6.38.2/arch/mips/mm/dma-default.c linux-2.6.38.2/arch/mips/mm
1605 EXPORT_SYMBOL(mips_dma_map_ops); 1597 EXPORT_SYMBOL(mips_dma_map_ops);
1606 1598
1607 #define PREALLOC_DMA_DEBUG_ENTRIES (1 << 16) 1599 #define PREALLOC_DMA_DEBUG_ENTRIES (1 << 16)
1608diff -urNp linux-2.6.38.2/arch/mips/mm/fault.c linux-2.6.38.2/arch/mips/mm/fault.c 1600diff -urNp linux-2.6.38.3/arch/mips/mm/fault.c linux-2.6.38.3/arch/mips/mm/fault.c
1609--- linux-2.6.38.2/arch/mips/mm/fault.c 2011-03-14 21:20:32.000000000 -0400 1601--- linux-2.6.38.3/arch/mips/mm/fault.c 2011-03-14 21:20:32.000000000 -0400
1610+++ linux-2.6.38.2/arch/mips/mm/fault.c 2011-03-21 18:31:35.000000000 -0400 1602+++ linux-2.6.38.3/arch/mips/mm/fault.c 2011-04-17 15:57:32.000000000 -0400
1611@@ -28,6 +28,23 @@ 1603@@ -28,6 +28,23 @@
1612 #include <asm/highmem.h> /* For VMALLOC_END */ 1604 #include <asm/highmem.h> /* For VMALLOC_END */
1613 #include <linux/kdebug.h> 1605 #include <linux/kdebug.h>
@@ -1632,9 +1624,9 @@ diff -urNp linux-2.6.38.2/arch/mips/mm/fault.c linux-2.6.38.2/arch/mips/mm/fault
1632 /* 1624 /*
1633 * This routine handles page faults. It determines the address, 1625 * This routine handles page faults. It determines the address,
1634 * and the problem, and then passes it off to one of the appropriate 1626 * and the problem, and then passes it off to one of the appropriate
1635diff -urNp linux-2.6.38.2/arch/parisc/include/asm/elf.h linux-2.6.38.2/arch/parisc/include/asm/elf.h 1627diff -urNp linux-2.6.38.3/arch/parisc/include/asm/elf.h linux-2.6.38.3/arch/parisc/include/asm/elf.h
1636--- linux-2.6.38.2/arch/parisc/include/asm/elf.h 2011-03-14 21:20:32.000000000 -0400 1628--- linux-2.6.38.3/arch/parisc/include/asm/elf.h 2011-03-14 21:20:32.000000000 -0400
1637+++ linux-2.6.38.2/arch/parisc/include/asm/elf.h 2011-03-21 18:31:35.000000000 -0400 1629+++ linux-2.6.38.3/arch/parisc/include/asm/elf.h 2011-04-17 15:57:32.000000000 -0400
1638@@ -342,6 +342,13 @@ struct pt_regs; /* forward declaration.. 1630@@ -342,6 +342,13 @@ struct pt_regs; /* forward declaration..
1639 1631
1640 #define ELF_ET_DYN_BASE (TASK_UNMAPPED_BASE + 0x01000000) 1632 #define ELF_ET_DYN_BASE (TASK_UNMAPPED_BASE + 0x01000000)
@@ -1649,9 +1641,9 @@ diff -urNp linux-2.6.38.2/arch/parisc/include/asm/elf.h linux-2.6.38.2/arch/pari
1649 /* This yields a mask that user programs can use to figure out what 1641 /* This yields a mask that user programs can use to figure out what
1650 instruction set this CPU supports. This could be done in user space, 1642 instruction set this CPU supports. This could be done in user space,
1651 but it's not easy, and we've already done it here. */ 1643 but it's not easy, and we've already done it here. */
1652diff -urNp linux-2.6.38.2/arch/parisc/include/asm/pgtable.h linux-2.6.38.2/arch/parisc/include/asm/pgtable.h 1644diff -urNp linux-2.6.38.3/arch/parisc/include/asm/pgtable.h linux-2.6.38.3/arch/parisc/include/asm/pgtable.h
1653--- linux-2.6.38.2/arch/parisc/include/asm/pgtable.h 2011-03-14 21:20:32.000000000 -0400 1645--- linux-2.6.38.3/arch/parisc/include/asm/pgtable.h 2011-03-14 21:20:32.000000000 -0400
1654+++ linux-2.6.38.2/arch/parisc/include/asm/pgtable.h 2011-03-21 18:31:35.000000000 -0400 1646+++ linux-2.6.38.3/arch/parisc/include/asm/pgtable.h 2011-04-17 15:57:32.000000000 -0400
1655@@ -209,6 +209,17 @@ struct vm_area_struct; 1647@@ -209,6 +209,17 @@ struct vm_area_struct;
1656 #define PAGE_EXECREAD __pgprot(_PAGE_PRESENT | _PAGE_USER | _PAGE_READ | _PAGE_EXEC |_PAGE_ACCESSED) 1648 #define PAGE_EXECREAD __pgprot(_PAGE_PRESENT | _PAGE_USER | _PAGE_READ | _PAGE_EXEC |_PAGE_ACCESSED)
1657 #define PAGE_COPY PAGE_EXECREAD 1649 #define PAGE_COPY PAGE_EXECREAD
@@ -1670,9 +1662,9 @@ diff -urNp linux-2.6.38.2/arch/parisc/include/asm/pgtable.h linux-2.6.38.2/arch/
1670 #define PAGE_KERNEL __pgprot(_PAGE_KERNEL) 1662 #define PAGE_KERNEL __pgprot(_PAGE_KERNEL)
1671 #define PAGE_KERNEL_RO __pgprot(_PAGE_KERNEL & ~_PAGE_WRITE) 1663 #define PAGE_KERNEL_RO __pgprot(_PAGE_KERNEL & ~_PAGE_WRITE)
1672 #define PAGE_KERNEL_UNC __pgprot(_PAGE_KERNEL | _PAGE_NO_CACHE) 1664 #define PAGE_KERNEL_UNC __pgprot(_PAGE_KERNEL | _PAGE_NO_CACHE)
1673diff -urNp linux-2.6.38.2/arch/parisc/kernel/module.c linux-2.6.38.2/arch/parisc/kernel/module.c 1665diff -urNp linux-2.6.38.3/arch/parisc/kernel/module.c linux-2.6.38.3/arch/parisc/kernel/module.c
1674--- linux-2.6.38.2/arch/parisc/kernel/module.c 2011-03-14 21:20:32.000000000 -0400 1666--- linux-2.6.38.3/arch/parisc/kernel/module.c 2011-03-14 21:20:32.000000000 -0400
1675+++ linux-2.6.38.2/arch/parisc/kernel/module.c 2011-03-21 18:31:35.000000000 -0400 1667+++ linux-2.6.38.3/arch/parisc/kernel/module.c 2011-04-17 15:57:32.000000000 -0400
1676@@ -96,16 +96,38 @@ 1668@@ -96,16 +96,38 @@
1677 1669
1678 /* three functions to determine where in the module core 1670 /* three functions to determine where in the module core
@@ -1773,9 +1765,9 @@ diff -urNp linux-2.6.38.2/arch/parisc/kernel/module.c linux-2.6.38.2/arch/parisc
1773 1765
1774 DEBUGP("register_unwind_table(), sect = %d at 0x%p - 0x%p (gp=0x%lx)\n", 1766 DEBUGP("register_unwind_table(), sect = %d at 0x%p - 0x%p (gp=0x%lx)\n",
1775 me->arch.unwind_section, table, end, gp); 1767 me->arch.unwind_section, table, end, gp);
1776diff -urNp linux-2.6.38.2/arch/parisc/kernel/sys_parisc.c linux-2.6.38.2/arch/parisc/kernel/sys_parisc.c 1768diff -urNp linux-2.6.38.3/arch/parisc/kernel/sys_parisc.c linux-2.6.38.3/arch/parisc/kernel/sys_parisc.c
1777--- linux-2.6.38.2/arch/parisc/kernel/sys_parisc.c 2011-03-14 21:20:32.000000000 -0400 1769--- linux-2.6.38.3/arch/parisc/kernel/sys_parisc.c 2011-03-14 21:20:32.000000000 -0400
1778+++ linux-2.6.38.2/arch/parisc/kernel/sys_parisc.c 2011-03-21 18:31:35.000000000 -0400 1770+++ linux-2.6.38.3/arch/parisc/kernel/sys_parisc.c 2011-04-17 15:57:32.000000000 -0400
1779@@ -43,7 +43,7 @@ static unsigned long get_unshared_area(u 1771@@ -43,7 +43,7 @@ static unsigned long get_unshared_area(u
1780 /* At this point: (!vma || addr < vma->vm_end). */ 1772 /* At this point: (!vma || addr < vma->vm_end). */
1781 if (TASK_SIZE - len < addr) 1773 if (TASK_SIZE - len < addr)
@@ -1803,9 +1795,9 @@ diff -urNp linux-2.6.38.2/arch/parisc/kernel/sys_parisc.c linux-2.6.38.2/arch/pa
1803 1795
1804 if (filp) { 1796 if (filp) {
1805 addr = get_shared_area(filp->f_mapping, addr, len, pgoff); 1797 addr = get_shared_area(filp->f_mapping, addr, len, pgoff);
1806diff -urNp linux-2.6.38.2/arch/parisc/kernel/traps.c linux-2.6.38.2/arch/parisc/kernel/traps.c 1798diff -urNp linux-2.6.38.3/arch/parisc/kernel/traps.c linux-2.6.38.3/arch/parisc/kernel/traps.c
1807--- linux-2.6.38.2/arch/parisc/kernel/traps.c 2011-03-14 21:20:32.000000000 -0400 1799--- linux-2.6.38.3/arch/parisc/kernel/traps.c 2011-03-14 21:20:32.000000000 -0400
1808+++ linux-2.6.38.2/arch/parisc/kernel/traps.c 2011-03-21 18:31:35.000000000 -0400 1800+++ linux-2.6.38.3/arch/parisc/kernel/traps.c 2011-04-17 15:57:32.000000000 -0400
1809@@ -733,9 +733,7 @@ void notrace handle_interruption(int cod 1801@@ -733,9 +733,7 @@ void notrace handle_interruption(int cod
1810 1802
1811 down_read(&current->mm->mmap_sem); 1803 down_read(&current->mm->mmap_sem);
@@ -1817,9 +1809,9 @@ diff -urNp linux-2.6.38.2/arch/parisc/kernel/traps.c linux-2.6.38.2/arch/parisc/
1817 fault_address = regs->iaoq[0]; 1809 fault_address = regs->iaoq[0];
1818 fault_space = regs->iasq[0]; 1810 fault_space = regs->iasq[0];
1819 1811
1820diff -urNp linux-2.6.38.2/arch/parisc/mm/fault.c linux-2.6.38.2/arch/parisc/mm/fault.c 1812diff -urNp linux-2.6.38.3/arch/parisc/mm/fault.c linux-2.6.38.3/arch/parisc/mm/fault.c
1821--- linux-2.6.38.2/arch/parisc/mm/fault.c 2011-03-14 21:20:32.000000000 -0400 1813--- linux-2.6.38.3/arch/parisc/mm/fault.c 2011-03-14 21:20:32.000000000 -0400
1822+++ linux-2.6.38.2/arch/parisc/mm/fault.c 2011-03-21 18:31:35.000000000 -0400 1814+++ linux-2.6.38.3/arch/parisc/mm/fault.c 2011-04-17 15:57:32.000000000 -0400
1823@@ -15,6 +15,7 @@ 1815@@ -15,6 +15,7 @@
1824 #include <linux/sched.h> 1816 #include <linux/sched.h>
1825 #include <linux/interrupt.h> 1817 #include <linux/interrupt.h>
@@ -1989,9 +1981,9 @@ diff -urNp linux-2.6.38.2/arch/parisc/mm/fault.c linux-2.6.38.2/arch/parisc/mm/f
1989 1981
1990 /* 1982 /*
1991 * If for any reason at all we couldn't handle the fault, make 1983 * If for any reason at all we couldn't handle the fault, make
1992diff -urNp linux-2.6.38.2/arch/powerpc/include/asm/device.h linux-2.6.38.2/arch/powerpc/include/asm/device.h 1984diff -urNp linux-2.6.38.3/arch/powerpc/include/asm/device.h linux-2.6.38.3/arch/powerpc/include/asm/device.h
1993--- linux-2.6.38.2/arch/powerpc/include/asm/device.h 2011-03-14 21:20:32.000000000 -0400 1985--- linux-2.6.38.3/arch/powerpc/include/asm/device.h 2011-03-14 21:20:32.000000000 -0400
1994+++ linux-2.6.38.2/arch/powerpc/include/asm/device.h 2011-03-21 18:31:35.000000000 -0400 1986+++ linux-2.6.38.3/arch/powerpc/include/asm/device.h 2011-04-17 15:57:32.000000000 -0400
1995@@ -17,7 +17,7 @@ struct device_node; 1987@@ -17,7 +17,7 @@ struct device_node;
1996 */ 1988 */
1997 struct dev_archdata { 1989 struct dev_archdata {
@@ -2001,9 +1993,9 @@ diff -urNp linux-2.6.38.2/arch/powerpc/include/asm/device.h linux-2.6.38.2/arch/
2001 1993
2002 /* 1994 /*
2003 * When an iommu is in use, dma_data is used as a ptr to the base of the 1995 * When an iommu is in use, dma_data is used as a ptr to the base of the
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 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
2005--- linux-2.6.38.2/arch/powerpc/include/asm/dma-mapping.h 2011-03-14 21:20:32.000000000 -0400 1997--- linux-2.6.38.3/arch/powerpc/include/asm/dma-mapping.h 2011-03-14 21:20:32.000000000 -0400
2006+++ linux-2.6.38.2/arch/powerpc/include/asm/dma-mapping.h 2011-03-21 18:31:35.000000000 -0400 1998+++ linux-2.6.38.3/arch/powerpc/include/asm/dma-mapping.h 2011-04-17 15:57:32.000000000 -0400
2007@@ -66,12 +66,13 @@ static inline unsigned long device_to_ma 1999@@ -66,12 +66,13 @@ static inline unsigned long device_to_ma
2008 /* 2000 /*
2009 * Available generic sets of operations 2001 * Available generic sets of operations
@@ -2066,9 +2058,9 @@ diff -urNp linux-2.6.38.2/arch/powerpc/include/asm/dma-mapping.h linux-2.6.38.2/
2066 2058
2067 if (dma_ops->mapping_error) 2059 if (dma_ops->mapping_error)
2068 return dma_ops->mapping_error(dev, dma_addr); 2060 return dma_ops->mapping_error(dev, dma_addr);
2069diff -urNp linux-2.6.38.2/arch/powerpc/include/asm/elf.h linux-2.6.38.2/arch/powerpc/include/asm/elf.h 2061diff -urNp linux-2.6.38.3/arch/powerpc/include/asm/elf.h linux-2.6.38.3/arch/powerpc/include/asm/elf.h
2070--- linux-2.6.38.2/arch/powerpc/include/asm/elf.h 2011-03-14 21:20:32.000000000 -0400 2062--- linux-2.6.38.3/arch/powerpc/include/asm/elf.h 2011-03-14 21:20:32.000000000 -0400
2071+++ linux-2.6.38.2/arch/powerpc/include/asm/elf.h 2011-03-21 18:31:35.000000000 -0400 2063+++ linux-2.6.38.3/arch/powerpc/include/asm/elf.h 2011-04-17 15:57:32.000000000 -0400
2072@@ -178,8 +178,19 @@ typedef elf_fpreg_t elf_vsrreghalf_t32[E 2064@@ -178,8 +178,19 @@ typedef elf_fpreg_t elf_vsrreghalf_t32[E
2073 the loader. We need to make sure that it is out of the way of the program 2065 the loader. We need to make sure that it is out of the way of the program
2074 that it will "exec", and that there is sufficient room for the brk. */ 2066 that it will "exec", and that there is sufficient room for the brk. */
@@ -2101,9 +2093,9 @@ diff -urNp linux-2.6.38.2/arch/powerpc/include/asm/elf.h linux-2.6.38.2/arch/pow
2101 #endif /* __KERNEL__ */ 2093 #endif /* __KERNEL__ */
2102 2094
2103 /* 2095 /*
2104diff -urNp linux-2.6.38.2/arch/powerpc/include/asm/iommu.h linux-2.6.38.2/arch/powerpc/include/asm/iommu.h 2096diff -urNp linux-2.6.38.3/arch/powerpc/include/asm/iommu.h linux-2.6.38.3/arch/powerpc/include/asm/iommu.h
2105--- linux-2.6.38.2/arch/powerpc/include/asm/iommu.h 2011-03-14 21:20:32.000000000 -0400 2097--- linux-2.6.38.3/arch/powerpc/include/asm/iommu.h 2011-03-14 21:20:32.000000000 -0400
2106+++ linux-2.6.38.2/arch/powerpc/include/asm/iommu.h 2011-03-21 18:31:35.000000000 -0400 2098+++ linux-2.6.38.3/arch/powerpc/include/asm/iommu.h 2011-04-17 15:57:32.000000000 -0400
2107@@ -116,6 +116,9 @@ extern void iommu_init_early_iSeries(voi 2099@@ -116,6 +116,9 @@ extern void iommu_init_early_iSeries(voi
2108 extern void iommu_init_early_dart(void); 2100 extern void iommu_init_early_dart(void);
2109 extern void iommu_init_early_pasemi(void); 2101 extern void iommu_init_early_pasemi(void);
@@ -2114,9 +2106,9 @@ diff -urNp linux-2.6.38.2/arch/powerpc/include/asm/iommu.h linux-2.6.38.2/arch/p
2114 #ifdef CONFIG_PCI 2106 #ifdef CONFIG_PCI
2115 extern void pci_iommu_init(void); 2107 extern void pci_iommu_init(void);
2116 extern void pci_direct_iommu_init(void); 2108 extern void pci_direct_iommu_init(void);
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 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
2118--- linux-2.6.38.2/arch/powerpc/include/asm/kmap_types.h 2011-03-14 21:20:32.000000000 -0400 2110--- linux-2.6.38.3/arch/powerpc/include/asm/kmap_types.h 2011-03-14 21:20:32.000000000 -0400
2119+++ linux-2.6.38.2/arch/powerpc/include/asm/kmap_types.h 2011-03-21 18:31:35.000000000 -0400 2111+++ linux-2.6.38.3/arch/powerpc/include/asm/kmap_types.h 2011-04-17 15:57:32.000000000 -0400
2120@@ -27,6 +27,7 @@ enum km_type { 2112@@ -27,6 +27,7 @@ enum km_type {
2121 KM_PPC_SYNC_PAGE, 2113 KM_PPC_SYNC_PAGE,
2122 KM_PPC_SYNC_ICACHE, 2114 KM_PPC_SYNC_ICACHE,
@@ -2125,9 +2117,9 @@ diff -urNp linux-2.6.38.2/arch/powerpc/include/asm/kmap_types.h linux-2.6.38.2/a
2125 KM_TYPE_NR 2117 KM_TYPE_NR
2126 }; 2118 };
2127 2119
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 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
2129--- linux-2.6.38.2/arch/powerpc/include/asm/page_64.h 2011-03-14 21:20:32.000000000 -0400 2121--- linux-2.6.38.3/arch/powerpc/include/asm/page_64.h 2011-03-14 21:20:32.000000000 -0400
2130+++ linux-2.6.38.2/arch/powerpc/include/asm/page_64.h 2011-03-21 18:31:35.000000000 -0400 2122+++ linux-2.6.38.3/arch/powerpc/include/asm/page_64.h 2011-04-17 15:57:32.000000000 -0400
2131@@ -172,15 +172,18 @@ do { \ 2123@@ -172,15 +172,18 @@ do { \
2132 * stack by default, so in the absense of a PT_GNU_STACK program header 2124 * stack by default, so in the absense of a PT_GNU_STACK program header
2133 * we turn execute permission off. 2125 * we turn execute permission off.
@@ -2149,9 +2141,9 @@ diff -urNp linux-2.6.38.2/arch/powerpc/include/asm/page_64.h linux-2.6.38.2/arch
2149 2141
2150 #include <asm-generic/getorder.h> 2142 #include <asm-generic/getorder.h>
2151 2143
2152diff -urNp linux-2.6.38.2/arch/powerpc/include/asm/page.h linux-2.6.38.2/arch/powerpc/include/asm/page.h 2144diff -urNp linux-2.6.38.3/arch/powerpc/include/asm/page.h linux-2.6.38.3/arch/powerpc/include/asm/page.h
2153--- linux-2.6.38.2/arch/powerpc/include/asm/page.h 2011-03-14 21:20:32.000000000 -0400 2145--- linux-2.6.38.3/arch/powerpc/include/asm/page.h 2011-03-14 21:20:32.000000000 -0400
2154+++ linux-2.6.38.2/arch/powerpc/include/asm/page.h 2011-03-21 18:31:35.000000000 -0400 2146+++ linux-2.6.38.3/arch/powerpc/include/asm/page.h 2011-04-17 15:57:32.000000000 -0400
2155@@ -129,8 +129,9 @@ extern phys_addr_t kernstart_addr; 2147@@ -129,8 +129,9 @@ extern phys_addr_t kernstart_addr;
2156 * and needs to be executable. This means the whole heap ends 2148 * and needs to be executable. This means the whole heap ends
2157 * up being executable. 2149 * up being executable.
@@ -2174,9 +2166,9 @@ diff -urNp linux-2.6.38.2/arch/powerpc/include/asm/page.h linux-2.6.38.2/arch/po
2174 #ifndef __ASSEMBLY__ 2166 #ifndef __ASSEMBLY__
2175 2167
2176 #undef STRICT_MM_TYPECHECKS 2168 #undef STRICT_MM_TYPECHECKS
2177diff -urNp linux-2.6.38.2/arch/powerpc/include/asm/pci.h linux-2.6.38.2/arch/powerpc/include/asm/pci.h 2169diff -urNp linux-2.6.38.3/arch/powerpc/include/asm/pci.h linux-2.6.38.3/arch/powerpc/include/asm/pci.h
2178--- linux-2.6.38.2/arch/powerpc/include/asm/pci.h 2011-03-14 21:20:32.000000000 -0400 2170--- linux-2.6.38.3/arch/powerpc/include/asm/pci.h 2011-03-14 21:20:32.000000000 -0400
2179+++ linux-2.6.38.2/arch/powerpc/include/asm/pci.h 2011-03-21 18:31:35.000000000 -0400 2171+++ linux-2.6.38.3/arch/powerpc/include/asm/pci.h 2011-04-17 15:57:32.000000000 -0400
2180@@ -65,8 +65,8 @@ static inline int pci_get_legacy_ide_irq 2172@@ -65,8 +65,8 @@ static inline int pci_get_legacy_ide_irq
2181 } 2173 }
2182 2174
@@ -2188,9 +2180,9 @@ diff -urNp linux-2.6.38.2/arch/powerpc/include/asm/pci.h linux-2.6.38.2/arch/pow
2188 #else /* CONFIG_PCI */ 2180 #else /* CONFIG_PCI */
2189 #define set_pci_dma_ops(d) 2181 #define set_pci_dma_ops(d)
2190 #define get_pci_dma_ops() NULL 2182 #define get_pci_dma_ops() NULL
2191diff -urNp linux-2.6.38.2/arch/powerpc/include/asm/pgtable.h linux-2.6.38.2/arch/powerpc/include/asm/pgtable.h 2183diff -urNp linux-2.6.38.3/arch/powerpc/include/asm/pgtable.h linux-2.6.38.3/arch/powerpc/include/asm/pgtable.h
2192--- linux-2.6.38.2/arch/powerpc/include/asm/pgtable.h 2011-03-14 21:20:32.000000000 -0400 2184--- linux-2.6.38.3/arch/powerpc/include/asm/pgtable.h 2011-03-14 21:20:32.000000000 -0400
2193+++ linux-2.6.38.2/arch/powerpc/include/asm/pgtable.h 2011-03-21 18:31:35.000000000 -0400 2185+++ linux-2.6.38.3/arch/powerpc/include/asm/pgtable.h 2011-04-17 15:57:32.000000000 -0400
2194@@ -2,6 +2,7 @@ 2186@@ -2,6 +2,7 @@
2195 #define _ASM_POWERPC_PGTABLE_H 2187 #define _ASM_POWERPC_PGTABLE_H
2196 #ifdef __KERNEL__ 2188 #ifdef __KERNEL__
@@ -2199,9 +2191,9 @@ diff -urNp linux-2.6.38.2/arch/powerpc/include/asm/pgtable.h linux-2.6.38.2/arch
2199 #ifndef __ASSEMBLY__ 2191 #ifndef __ASSEMBLY__
2200 #include <asm/processor.h> /* For TASK_SIZE */ 2192 #include <asm/processor.h> /* For TASK_SIZE */
2201 #include <asm/mmu.h> 2193 #include <asm/mmu.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 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
2203--- linux-2.6.38.2/arch/powerpc/include/asm/pte-hash32.h 2011-03-14 21:20:32.000000000 -0400 2195--- linux-2.6.38.3/arch/powerpc/include/asm/pte-hash32.h 2011-03-14 21:20:32.000000000 -0400
2204+++ linux-2.6.38.2/arch/powerpc/include/asm/pte-hash32.h 2011-03-21 18:31:35.000000000 -0400 2196+++ linux-2.6.38.3/arch/powerpc/include/asm/pte-hash32.h 2011-04-17 15:57:32.000000000 -0400
2205@@ -21,6 +21,7 @@ 2197@@ -21,6 +21,7 @@
2206 #define _PAGE_FILE 0x004 /* when !present: nonlinear file mapping */ 2198 #define _PAGE_FILE 0x004 /* when !present: nonlinear file mapping */
2207 #define _PAGE_USER 0x004 /* usermode access allowed */ 2199 #define _PAGE_USER 0x004 /* usermode access allowed */
@@ -2210,9 +2202,9 @@ diff -urNp linux-2.6.38.2/arch/powerpc/include/asm/pte-hash32.h linux-2.6.38.2/a
2210 #define _PAGE_COHERENT 0x010 /* M: enforce memory coherence (SMP systems) */ 2202 #define _PAGE_COHERENT 0x010 /* M: enforce memory coherence (SMP systems) */
2211 #define _PAGE_NO_CACHE 0x020 /* I: cache inhibit */ 2203 #define _PAGE_NO_CACHE 0x020 /* I: cache inhibit */
2212 #define _PAGE_WRITETHRU 0x040 /* W: cache write-through */ 2204 #define _PAGE_WRITETHRU 0x040 /* W: cache write-through */
2213diff -urNp linux-2.6.38.2/arch/powerpc/include/asm/reg.h linux-2.6.38.2/arch/powerpc/include/asm/reg.h 2205diff -urNp linux-2.6.38.3/arch/powerpc/include/asm/reg.h linux-2.6.38.3/arch/powerpc/include/asm/reg.h
2214--- linux-2.6.38.2/arch/powerpc/include/asm/reg.h 2011-03-23 17:20:06.000000000 -0400 2206--- linux-2.6.38.3/arch/powerpc/include/asm/reg.h 2011-04-18 17:27:13.000000000 -0400
2215+++ linux-2.6.38.2/arch/powerpc/include/asm/reg.h 2011-03-23 17:21:43.000000000 -0400 2207+++ linux-2.6.38.3/arch/powerpc/include/asm/reg.h 2011-04-17 15:57:32.000000000 -0400
2216@@ -191,6 +191,7 @@ 2208@@ -191,6 +191,7 @@
2217 #define SPRN_DBCR 0x136 /* e300 Data Breakpoint Control Reg */ 2209 #define SPRN_DBCR 0x136 /* e300 Data Breakpoint Control Reg */
2218 #define SPRN_DSISR 0x012 /* Data Storage Interrupt Status Register */ 2210 #define SPRN_DSISR 0x012 /* Data Storage Interrupt Status Register */
@@ -2221,9 +2213,9 @@ diff -urNp linux-2.6.38.2/arch/powerpc/include/asm/reg.h linux-2.6.38.2/arch/pow
2221 #define DSISR_PROTFAULT 0x08000000 /* protection fault */ 2213 #define DSISR_PROTFAULT 0x08000000 /* protection fault */
2222 #define DSISR_ISSTORE 0x02000000 /* access was a store */ 2214 #define DSISR_ISSTORE 0x02000000 /* access was a store */
2223 #define DSISR_DABRMATCH 0x00400000 /* hit data breakpoint */ 2215 #define DSISR_DABRMATCH 0x00400000 /* hit data breakpoint */
2224diff -urNp linux-2.6.38.2/arch/powerpc/include/asm/swiotlb.h linux-2.6.38.2/arch/powerpc/include/asm/swiotlb.h 2216diff -urNp linux-2.6.38.3/arch/powerpc/include/asm/swiotlb.h linux-2.6.38.3/arch/powerpc/include/asm/swiotlb.h
2225--- linux-2.6.38.2/arch/powerpc/include/asm/swiotlb.h 2011-03-14 21:20:32.000000000 -0400 2217--- linux-2.6.38.3/arch/powerpc/include/asm/swiotlb.h 2011-03-14 21:20:32.000000000 -0400
2226+++ linux-2.6.38.2/arch/powerpc/include/asm/swiotlb.h 2011-03-21 18:31:35.000000000 -0400 2218+++ linux-2.6.38.3/arch/powerpc/include/asm/swiotlb.h 2011-04-17 15:57:32.000000000 -0400
2227@@ -13,7 +13,7 @@ 2219@@ -13,7 +13,7 @@
2228 2220
2229 #include <linux/swiotlb.h> 2221 #include <linux/swiotlb.h>
@@ -2233,9 +2225,9 @@ diff -urNp linux-2.6.38.2/arch/powerpc/include/asm/swiotlb.h linux-2.6.38.2/arch
2233 2225
2234 static inline void dma_mark_clean(void *addr, size_t size) {} 2226 static inline void dma_mark_clean(void *addr, size_t size) {}
2235 2227
2236diff -urNp linux-2.6.38.2/arch/powerpc/include/asm/system.h linux-2.6.38.2/arch/powerpc/include/asm/system.h 2228diff -urNp linux-2.6.38.3/arch/powerpc/include/asm/system.h linux-2.6.38.3/arch/powerpc/include/asm/system.h
2237--- linux-2.6.38.2/arch/powerpc/include/asm/system.h 2011-03-14 21:20:32.000000000 -0400 2229--- linux-2.6.38.3/arch/powerpc/include/asm/system.h 2011-03-14 21:20:32.000000000 -0400
2238+++ linux-2.6.38.2/arch/powerpc/include/asm/system.h 2011-03-21 18:31:35.000000000 -0400 2230+++ linux-2.6.38.3/arch/powerpc/include/asm/system.h 2011-04-17 15:57:32.000000000 -0400
2239@@ -533,7 +533,7 @@ __cmpxchg_local(volatile void *ptr, unsi 2231@@ -533,7 +533,7 @@ __cmpxchg_local(volatile void *ptr, unsi
2240 #define cmpxchg64_local(ptr, o, n) __cmpxchg64_local_generic((ptr), (o), (n)) 2232 #define cmpxchg64_local(ptr, o, n) __cmpxchg64_local_generic((ptr), (o), (n))
2241 #endif 2233 #endif
@@ -2245,9 +2237,9 @@ diff -urNp linux-2.6.38.2/arch/powerpc/include/asm/system.h linux-2.6.38.2/arch/
2245 2237
2246 /* Used in very early kernel initialization. */ 2238 /* Used in very early kernel initialization. */
2247 extern unsigned long reloc_offset(void); 2239 extern unsigned long reloc_offset(void);
2248diff -urNp linux-2.6.38.2/arch/powerpc/include/asm/uaccess.h linux-2.6.38.2/arch/powerpc/include/asm/uaccess.h 2240diff -urNp linux-2.6.38.3/arch/powerpc/include/asm/uaccess.h linux-2.6.38.3/arch/powerpc/include/asm/uaccess.h
2249--- linux-2.6.38.2/arch/powerpc/include/asm/uaccess.h 2011-03-14 21:20:32.000000000 -0400 2241--- linux-2.6.38.3/arch/powerpc/include/asm/uaccess.h 2011-03-14 21:20:32.000000000 -0400
2250+++ linux-2.6.38.2/arch/powerpc/include/asm/uaccess.h 2011-03-21 18:31:35.000000000 -0400 2242+++ linux-2.6.38.3/arch/powerpc/include/asm/uaccess.h 2011-04-17 15:57:32.000000000 -0400
2251@@ -13,6 +13,8 @@ 2243@@ -13,6 +13,8 @@
2252 #define VERIFY_READ 0 2244 #define VERIFY_READ 0
2253 #define VERIFY_WRITE 1 2245 #define VERIFY_WRITE 1
@@ -2425,9 +2417,9 @@ diff -urNp linux-2.6.38.2/arch/powerpc/include/asm/uaccess.h linux-2.6.38.2/arch
2425 extern unsigned long __clear_user(void __user *addr, unsigned long size); 2417 extern unsigned long __clear_user(void __user *addr, unsigned long size);
2426 2418
2427 static inline unsigned long clear_user(void __user *addr, unsigned long size) 2419 static inline unsigned long clear_user(void __user *addr, unsigned long size)
2428diff -urNp linux-2.6.38.2/arch/powerpc/kernel/dma.c linux-2.6.38.2/arch/powerpc/kernel/dma.c 2420diff -urNp linux-2.6.38.3/arch/powerpc/kernel/dma.c linux-2.6.38.3/arch/powerpc/kernel/dma.c
2429--- linux-2.6.38.2/arch/powerpc/kernel/dma.c 2011-03-14 21:20:32.000000000 -0400 2421--- linux-2.6.38.3/arch/powerpc/kernel/dma.c 2011-03-14 21:20:32.000000000 -0400
2430+++ linux-2.6.38.2/arch/powerpc/kernel/dma.c 2011-03-21 18:31:35.000000000 -0400 2422+++ linux-2.6.38.3/arch/powerpc/kernel/dma.c 2011-04-17 15:57:32.000000000 -0400
2431@@ -136,7 +136,7 @@ static inline void dma_direct_sync_singl 2423@@ -136,7 +136,7 @@ static inline void dma_direct_sync_singl
2432 } 2424 }
2433 #endif 2425 #endif
@@ -2446,9 +2438,9 @@ diff -urNp linux-2.6.38.2/arch/powerpc/kernel/dma.c linux-2.6.38.2/arch/powerpc/
2446 2438
2447 if (ppc_md.dma_set_mask) 2439 if (ppc_md.dma_set_mask)
2448 return ppc_md.dma_set_mask(dev, dma_mask); 2440 return ppc_md.dma_set_mask(dev, dma_mask);
2449diff -urNp linux-2.6.38.2/arch/powerpc/kernel/dma-iommu.c linux-2.6.38.2/arch/powerpc/kernel/dma-iommu.c 2441diff -urNp linux-2.6.38.3/arch/powerpc/kernel/dma-iommu.c linux-2.6.38.3/arch/powerpc/kernel/dma-iommu.c
2450--- linux-2.6.38.2/arch/powerpc/kernel/dma-iommu.c 2011-03-14 21:20:32.000000000 -0400 2442--- linux-2.6.38.3/arch/powerpc/kernel/dma-iommu.c 2011-03-14 21:20:32.000000000 -0400
2451+++ linux-2.6.38.2/arch/powerpc/kernel/dma-iommu.c 2011-03-21 18:31:35.000000000 -0400 2443+++ linux-2.6.38.3/arch/powerpc/kernel/dma-iommu.c 2011-04-17 15:57:32.000000000 -0400
2452@@ -70,7 +70,7 @@ static void dma_iommu_unmap_sg(struct de 2444@@ -70,7 +70,7 @@ static void dma_iommu_unmap_sg(struct de
2453 } 2445 }
2454 2446
@@ -2467,9 +2459,9 @@ diff -urNp linux-2.6.38.2/arch/powerpc/kernel/dma-iommu.c linux-2.6.38.2/arch/po
2467 .alloc_coherent = dma_iommu_alloc_coherent, 2459 .alloc_coherent = dma_iommu_alloc_coherent,
2468 .free_coherent = dma_iommu_free_coherent, 2460 .free_coherent = dma_iommu_free_coherent,
2469 .map_sg = dma_iommu_map_sg, 2461 .map_sg = dma_iommu_map_sg,
2470diff -urNp linux-2.6.38.2/arch/powerpc/kernel/dma-swiotlb.c linux-2.6.38.2/arch/powerpc/kernel/dma-swiotlb.c 2462diff -urNp linux-2.6.38.3/arch/powerpc/kernel/dma-swiotlb.c linux-2.6.38.3/arch/powerpc/kernel/dma-swiotlb.c
2471--- linux-2.6.38.2/arch/powerpc/kernel/dma-swiotlb.c 2011-03-14 21:20:32.000000000 -0400 2463--- linux-2.6.38.3/arch/powerpc/kernel/dma-swiotlb.c 2011-03-14 21:20:32.000000000 -0400
2472+++ linux-2.6.38.2/arch/powerpc/kernel/dma-swiotlb.c 2011-03-21 18:31:35.000000000 -0400 2464+++ linux-2.6.38.3/arch/powerpc/kernel/dma-swiotlb.c 2011-04-17 15:57:32.000000000 -0400
2473@@ -31,7 +31,7 @@ unsigned int ppc_swiotlb_enable; 2465@@ -31,7 +31,7 @@ unsigned int ppc_swiotlb_enable;
2474 * map_page, and unmap_page on highmem, use normal dma_ops 2466 * map_page, and unmap_page on highmem, use normal dma_ops
2475 * for everything else. 2467 * for everything else.
@@ -2479,9 +2471,9 @@ diff -urNp linux-2.6.38.2/arch/powerpc/kernel/dma-swiotlb.c linux-2.6.38.2/arch/
2479 .alloc_coherent = dma_direct_alloc_coherent, 2471 .alloc_coherent = dma_direct_alloc_coherent,
2480 .free_coherent = dma_direct_free_coherent, 2472 .free_coherent = dma_direct_free_coherent,
2481 .map_sg = swiotlb_map_sg_attrs, 2473 .map_sg = swiotlb_map_sg_attrs,
2482diff -urNp linux-2.6.38.2/arch/powerpc/kernel/exceptions-64e.S linux-2.6.38.2/arch/powerpc/kernel/exceptions-64e.S 2474diff -urNp linux-2.6.38.3/arch/powerpc/kernel/exceptions-64e.S linux-2.6.38.3/arch/powerpc/kernel/exceptions-64e.S
2483--- linux-2.6.38.2/arch/powerpc/kernel/exceptions-64e.S 2011-03-14 21:20:32.000000000 -0400 2475--- linux-2.6.38.3/arch/powerpc/kernel/exceptions-64e.S 2011-03-14 21:20:32.000000000 -0400
2484+++ linux-2.6.38.2/arch/powerpc/kernel/exceptions-64e.S 2011-03-21 18:31:35.000000000 -0400 2476+++ linux-2.6.38.3/arch/powerpc/kernel/exceptions-64e.S 2011-04-17 15:57:32.000000000 -0400
2485@@ -495,6 +495,7 @@ storage_fault_common: 2477@@ -495,6 +495,7 @@ storage_fault_common:
2486 std r14,_DAR(r1) 2478 std r14,_DAR(r1)
2487 std r15,_DSISR(r1) 2479 std r15,_DSISR(r1)
@@ -2500,9 +2492,9 @@ diff -urNp linux-2.6.38.2/arch/powerpc/kernel/exceptions-64e.S linux-2.6.38.2/ar
2500 addi r3,r1,STACK_FRAME_OVERHEAD 2492 addi r3,r1,STACK_FRAME_OVERHEAD
2501 ld r4,_DAR(r1) 2493 ld r4,_DAR(r1)
2502 bl .bad_page_fault 2494 bl .bad_page_fault
2503diff -urNp linux-2.6.38.2/arch/powerpc/kernel/exceptions-64s.S linux-2.6.38.2/arch/powerpc/kernel/exceptions-64s.S 2495diff -urNp linux-2.6.38.3/arch/powerpc/kernel/exceptions-64s.S linux-2.6.38.3/arch/powerpc/kernel/exceptions-64s.S
2504--- linux-2.6.38.2/arch/powerpc/kernel/exceptions-64s.S 2011-03-14 21:20:32.000000000 -0400 2496--- linux-2.6.38.3/arch/powerpc/kernel/exceptions-64s.S 2011-03-14 21:20:32.000000000 -0400
2505+++ linux-2.6.38.2/arch/powerpc/kernel/exceptions-64s.S 2011-03-21 18:31:35.000000000 -0400 2497+++ linux-2.6.38.3/arch/powerpc/kernel/exceptions-64s.S 2011-04-17 15:57:32.000000000 -0400
2506@@ -848,10 +848,10 @@ handle_page_fault: 2498@@ -848,10 +848,10 @@ handle_page_fault:
2507 11: ld r4,_DAR(r1) 2499 11: ld r4,_DAR(r1)
2508 ld r5,_DSISR(r1) 2500 ld r5,_DSISR(r1)
@@ -2515,9 +2507,9 @@ diff -urNp linux-2.6.38.2/arch/powerpc/kernel/exceptions-64s.S linux-2.6.38.2/ar
2515 mr r5,r3 2507 mr r5,r3
2516 addi r3,r1,STACK_FRAME_OVERHEAD 2508 addi r3,r1,STACK_FRAME_OVERHEAD
2517 lwz r4,_DAR(r1) 2509 lwz r4,_DAR(r1)
2518diff -urNp linux-2.6.38.2/arch/powerpc/kernel/ibmebus.c linux-2.6.38.2/arch/powerpc/kernel/ibmebus.c 2510diff -urNp linux-2.6.38.3/arch/powerpc/kernel/ibmebus.c linux-2.6.38.3/arch/powerpc/kernel/ibmebus.c
2519--- linux-2.6.38.2/arch/powerpc/kernel/ibmebus.c 2011-03-14 21:20:32.000000000 -0400 2511--- linux-2.6.38.3/arch/powerpc/kernel/ibmebus.c 2011-03-14 21:20:32.000000000 -0400
2520+++ linux-2.6.38.2/arch/powerpc/kernel/ibmebus.c 2011-03-21 18:31:35.000000000 -0400 2512+++ linux-2.6.38.3/arch/powerpc/kernel/ibmebus.c 2011-04-17 15:57:32.000000000 -0400
2521@@ -128,7 +128,7 @@ static int ibmebus_dma_supported(struct 2513@@ -128,7 +128,7 @@ static int ibmebus_dma_supported(struct
2522 return 1; 2514 return 1;
2523 } 2515 }
@@ -2527,9 +2519,9 @@ diff -urNp linux-2.6.38.2/arch/powerpc/kernel/ibmebus.c linux-2.6.38.2/arch/powe
2527 .alloc_coherent = ibmebus_alloc_coherent, 2519 .alloc_coherent = ibmebus_alloc_coherent,
2528 .free_coherent = ibmebus_free_coherent, 2520 .free_coherent = ibmebus_free_coherent,
2529 .map_sg = ibmebus_map_sg, 2521 .map_sg = ibmebus_map_sg,
2530diff -urNp linux-2.6.38.2/arch/powerpc/kernel/kgdb.c linux-2.6.38.2/arch/powerpc/kernel/kgdb.c 2522diff -urNp linux-2.6.38.3/arch/powerpc/kernel/kgdb.c linux-2.6.38.3/arch/powerpc/kernel/kgdb.c
2531--- linux-2.6.38.2/arch/powerpc/kernel/kgdb.c 2011-03-14 21:20:32.000000000 -0400 2523--- linux-2.6.38.3/arch/powerpc/kernel/kgdb.c 2011-03-14 21:20:32.000000000 -0400
2532+++ linux-2.6.38.2/arch/powerpc/kernel/kgdb.c 2011-03-21 18:31:35.000000000 -0400 2524+++ linux-2.6.38.3/arch/powerpc/kernel/kgdb.c 2011-04-17 15:57:32.000000000 -0400
2533@@ -422,7 +422,7 @@ int kgdb_arch_handle_exception(int vecto 2525@@ -422,7 +422,7 @@ int kgdb_arch_handle_exception(int vecto
2534 /* 2526 /*
2535 * Global data 2527 * Global data
@@ -2539,9 +2531,9 @@ diff -urNp linux-2.6.38.2/arch/powerpc/kernel/kgdb.c linux-2.6.38.2/arch/powerpc
2539 .gdb_bpt_instr = {0x7d, 0x82, 0x10, 0x08}, 2531 .gdb_bpt_instr = {0x7d, 0x82, 0x10, 0x08},
2540 }; 2532 };
2541 2533
2542diff -urNp linux-2.6.38.2/arch/powerpc/kernel/module_32.c linux-2.6.38.2/arch/powerpc/kernel/module_32.c 2534diff -urNp linux-2.6.38.3/arch/powerpc/kernel/module_32.c linux-2.6.38.3/arch/powerpc/kernel/module_32.c
2543--- linux-2.6.38.2/arch/powerpc/kernel/module_32.c 2011-03-14 21:20:32.000000000 -0400 2535--- linux-2.6.38.3/arch/powerpc/kernel/module_32.c 2011-03-14 21:20:32.000000000 -0400
2544+++ linux-2.6.38.2/arch/powerpc/kernel/module_32.c 2011-03-21 18:31:35.000000000 -0400 2536+++ linux-2.6.38.3/arch/powerpc/kernel/module_32.c 2011-04-17 15:57:32.000000000 -0400
2545@@ -162,7 +162,7 @@ int module_frob_arch_sections(Elf32_Ehdr 2537@@ -162,7 +162,7 @@ int module_frob_arch_sections(Elf32_Ehdr
2546 me->arch.core_plt_section = i; 2538 me->arch.core_plt_section = i;
2547 } 2539 }
@@ -2571,9 +2563,9 @@ diff -urNp linux-2.6.38.2/arch/powerpc/kernel/module_32.c linux-2.6.38.2/arch/po
2571 2563
2572 /* Find this entry, or if that fails, the next avail. entry */ 2564 /* Find this entry, or if that fails, the next avail. entry */
2573 while (entry->jump[0]) { 2565 while (entry->jump[0]) {
2574diff -urNp linux-2.6.38.2/arch/powerpc/kernel/module.c linux-2.6.38.2/arch/powerpc/kernel/module.c 2566diff -urNp linux-2.6.38.3/arch/powerpc/kernel/module.c linux-2.6.38.3/arch/powerpc/kernel/module.c
2575--- linux-2.6.38.2/arch/powerpc/kernel/module.c 2011-03-14 21:20:32.000000000 -0400 2567--- linux-2.6.38.3/arch/powerpc/kernel/module.c 2011-03-14 21:20:32.000000000 -0400
2576+++ linux-2.6.38.2/arch/powerpc/kernel/module.c 2011-03-21 18:31:35.000000000 -0400 2568+++ linux-2.6.38.3/arch/powerpc/kernel/module.c 2011-04-17 15:57:32.000000000 -0400
2577@@ -31,11 +31,24 @@ 2569@@ -31,11 +31,24 @@
2578 2570
2579 LIST_HEAD(module_bug_list); 2571 LIST_HEAD(module_bug_list);
@@ -2613,9 +2605,9 @@ diff -urNp linux-2.6.38.2/arch/powerpc/kernel/module.c linux-2.6.38.2/arch/power
2613 static const Elf_Shdr *find_section(const Elf_Ehdr *hdr, 2605 static const Elf_Shdr *find_section(const Elf_Ehdr *hdr,
2614 const Elf_Shdr *sechdrs, 2606 const Elf_Shdr *sechdrs,
2615 const char *name) 2607 const char *name)
2616diff -urNp linux-2.6.38.2/arch/powerpc/kernel/pci-common.c linux-2.6.38.2/arch/powerpc/kernel/pci-common.c 2608diff -urNp linux-2.6.38.3/arch/powerpc/kernel/pci-common.c linux-2.6.38.3/arch/powerpc/kernel/pci-common.c
2617--- linux-2.6.38.2/arch/powerpc/kernel/pci-common.c 2011-03-14 21:20:32.000000000 -0400 2609--- linux-2.6.38.3/arch/powerpc/kernel/pci-common.c 2011-03-14 21:20:32.000000000 -0400
2618+++ linux-2.6.38.2/arch/powerpc/kernel/pci-common.c 2011-03-21 18:31:35.000000000 -0400 2610+++ linux-2.6.38.3/arch/powerpc/kernel/pci-common.c 2011-04-17 15:57:32.000000000 -0400
2619@@ -52,14 +52,14 @@ resource_size_t isa_mem_base; 2611@@ -52,14 +52,14 @@ resource_size_t isa_mem_base;
2620 unsigned int ppc_pci_flags = 0; 2612 unsigned int ppc_pci_flags = 0;
2621 2613
@@ -2634,9 +2626,9 @@ diff -urNp linux-2.6.38.2/arch/powerpc/kernel/pci-common.c linux-2.6.38.2/arch/p
2634 { 2626 {
2635 return pci_dma_ops; 2627 return pci_dma_ops;
2636 } 2628 }
2637diff -urNp linux-2.6.38.2/arch/powerpc/kernel/process.c linux-2.6.38.2/arch/powerpc/kernel/process.c 2629diff -urNp linux-2.6.38.3/arch/powerpc/kernel/process.c linux-2.6.38.3/arch/powerpc/kernel/process.c
2638--- linux-2.6.38.2/arch/powerpc/kernel/process.c 2011-03-14 21:20:32.000000000 -0400 2630--- linux-2.6.38.3/arch/powerpc/kernel/process.c 2011-03-14 21:20:32.000000000 -0400
2639+++ linux-2.6.38.2/arch/powerpc/kernel/process.c 2011-03-21 18:31:35.000000000 -0400 2631+++ linux-2.6.38.3/arch/powerpc/kernel/process.c 2011-04-17 15:57:32.000000000 -0400
2640@@ -655,8 +655,8 @@ void show_regs(struct pt_regs * regs) 2632@@ -655,8 +655,8 @@ void show_regs(struct pt_regs * regs)
2641 * Lookup NIP late so we have the best change of getting the 2633 * Lookup NIP late so we have the best change of getting the
2642 * above info out without failing 2634 * above info out without failing
@@ -2729,9 +2721,9 @@ diff -urNp linux-2.6.38.2/arch/powerpc/kernel/process.c linux-2.6.38.2/arch/powe
2729- 2721-
2730- return ret; 2722- return ret;
2731-} 2723-}
2732diff -urNp linux-2.6.38.2/arch/powerpc/kernel/signal_32.c linux-2.6.38.2/arch/powerpc/kernel/signal_32.c 2724diff -urNp linux-2.6.38.3/arch/powerpc/kernel/signal_32.c linux-2.6.38.3/arch/powerpc/kernel/signal_32.c
2733--- linux-2.6.38.2/arch/powerpc/kernel/signal_32.c 2011-03-14 21:20:32.000000000 -0400 2725--- linux-2.6.38.3/arch/powerpc/kernel/signal_32.c 2011-03-14 21:20:32.000000000 -0400
2734+++ linux-2.6.38.2/arch/powerpc/kernel/signal_32.c 2011-03-21 18:31:35.000000000 -0400 2726+++ linux-2.6.38.3/arch/powerpc/kernel/signal_32.c 2011-04-17 15:57:32.000000000 -0400
2735@@ -858,7 +858,7 @@ int handle_rt_signal32(unsigned long sig 2727@@ -858,7 +858,7 @@ int handle_rt_signal32(unsigned long sig
2736 /* Save user registers on the stack */ 2728 /* Save user registers on the stack */
2737 frame = &rt_sf->uc.uc_mcontext; 2729 frame = &rt_sf->uc.uc_mcontext;
@@ -2741,9 +2733,9 @@ diff -urNp linux-2.6.38.2/arch/powerpc/kernel/signal_32.c linux-2.6.38.2/arch/po
2741 if (save_user_regs(regs, frame, 0, 1)) 2733 if (save_user_regs(regs, frame, 0, 1))
2742 goto badframe; 2734 goto badframe;
2743 regs->link = current->mm->context.vdso_base + vdso32_rt_sigtramp; 2735 regs->link = current->mm->context.vdso_base + vdso32_rt_sigtramp;
2744diff -urNp linux-2.6.38.2/arch/powerpc/kernel/signal_64.c linux-2.6.38.2/arch/powerpc/kernel/signal_64.c 2736diff -urNp linux-2.6.38.3/arch/powerpc/kernel/signal_64.c linux-2.6.38.3/arch/powerpc/kernel/signal_64.c
2745--- linux-2.6.38.2/arch/powerpc/kernel/signal_64.c 2011-03-14 21:20:32.000000000 -0400 2737--- linux-2.6.38.3/arch/powerpc/kernel/signal_64.c 2011-03-14 21:20:32.000000000 -0400
2746+++ linux-2.6.38.2/arch/powerpc/kernel/signal_64.c 2011-03-21 18:31:35.000000000 -0400 2738+++ linux-2.6.38.3/arch/powerpc/kernel/signal_64.c 2011-04-17 15:57:32.000000000 -0400
2747@@ -429,7 +429,7 @@ int handle_rt_signal64(int signr, struct 2739@@ -429,7 +429,7 @@ int handle_rt_signal64(int signr, struct
2748 current->thread.fpscr.val = 0; 2740 current->thread.fpscr.val = 0;
2749 2741
@@ -2753,9 +2745,9 @@ diff -urNp linux-2.6.38.2/arch/powerpc/kernel/signal_64.c linux-2.6.38.2/arch/po
2753 regs->link = current->mm->context.vdso_base + vdso64_rt_sigtramp; 2745 regs->link = current->mm->context.vdso_base + vdso64_rt_sigtramp;
2754 } else { 2746 } else {
2755 err |= setup_trampoline(__NR_rt_sigreturn, &frame->tramp[0]); 2747 err |= setup_trampoline(__NR_rt_sigreturn, &frame->tramp[0]);
2756diff -urNp linux-2.6.38.2/arch/powerpc/kernel/vdso.c linux-2.6.38.2/arch/powerpc/kernel/vdso.c 2748diff -urNp linux-2.6.38.3/arch/powerpc/kernel/vdso.c linux-2.6.38.3/arch/powerpc/kernel/vdso.c
2757--- linux-2.6.38.2/arch/powerpc/kernel/vdso.c 2011-03-14 21:20:32.000000000 -0400 2749--- linux-2.6.38.3/arch/powerpc/kernel/vdso.c 2011-03-14 21:20:32.000000000 -0400
2758+++ linux-2.6.38.2/arch/powerpc/kernel/vdso.c 2011-03-21 18:31:35.000000000 -0400 2750+++ linux-2.6.38.3/arch/powerpc/kernel/vdso.c 2011-04-17 15:57:32.000000000 -0400
2759@@ -36,6 +36,7 @@ 2751@@ -36,6 +36,7 @@
2760 #include <asm/firmware.h> 2752 #include <asm/firmware.h>
2761 #include <asm/vdso.h> 2753 #include <asm/vdso.h>
@@ -2782,9 +2774,9 @@ diff -urNp linux-2.6.38.2/arch/powerpc/kernel/vdso.c linux-2.6.38.2/arch/powerpc
2782 if (IS_ERR_VALUE(vdso_base)) { 2774 if (IS_ERR_VALUE(vdso_base)) {
2783 rc = vdso_base; 2775 rc = vdso_base;
2784 goto fail_mmapsem; 2776 goto fail_mmapsem;
2785diff -urNp linux-2.6.38.2/arch/powerpc/kernel/vio.c linux-2.6.38.2/arch/powerpc/kernel/vio.c 2777diff -urNp linux-2.6.38.3/arch/powerpc/kernel/vio.c linux-2.6.38.3/arch/powerpc/kernel/vio.c
2786--- linux-2.6.38.2/arch/powerpc/kernel/vio.c 2011-03-14 21:20:32.000000000 -0400 2778--- linux-2.6.38.3/arch/powerpc/kernel/vio.c 2011-03-14 21:20:32.000000000 -0400
2787+++ linux-2.6.38.2/arch/powerpc/kernel/vio.c 2011-03-21 18:31:35.000000000 -0400 2779+++ linux-2.6.38.3/arch/powerpc/kernel/vio.c 2011-04-17 15:57:32.000000000 -0400
2788@@ -605,11 +605,12 @@ static int vio_dma_iommu_dma_supported(s 2780@@ -605,11 +605,12 @@ static int vio_dma_iommu_dma_supported(s
2789 return dma_iommu_ops.dma_supported(dev, mask); 2781 return dma_iommu_ops.dma_supported(dev, mask);
2790 } 2782 }
@@ -2799,9 +2791,9 @@ diff -urNp linux-2.6.38.2/arch/powerpc/kernel/vio.c linux-2.6.38.2/arch/powerpc/
2799 .map_page = vio_dma_iommu_map_page, 2791 .map_page = vio_dma_iommu_map_page,
2800 .unmap_page = vio_dma_iommu_unmap_page, 2792 .unmap_page = vio_dma_iommu_unmap_page,
2801 .dma_supported = vio_dma_iommu_dma_supported, 2793 .dma_supported = vio_dma_iommu_dma_supported,
2802diff -urNp linux-2.6.38.2/arch/powerpc/lib/usercopy_64.c linux-2.6.38.2/arch/powerpc/lib/usercopy_64.c 2794diff -urNp linux-2.6.38.3/arch/powerpc/lib/usercopy_64.c linux-2.6.38.3/arch/powerpc/lib/usercopy_64.c
2803--- linux-2.6.38.2/arch/powerpc/lib/usercopy_64.c 2011-03-14 21:20:32.000000000 -0400 2795--- linux-2.6.38.3/arch/powerpc/lib/usercopy_64.c 2011-03-14 21:20:32.000000000 -0400
2804+++ linux-2.6.38.2/arch/powerpc/lib/usercopy_64.c 2011-03-21 18:31:35.000000000 -0400 2796+++ linux-2.6.38.3/arch/powerpc/lib/usercopy_64.c 2011-04-17 15:57:32.000000000 -0400
2805@@ -9,22 +9,6 @@ 2797@@ -9,22 +9,6 @@
2806 #include <linux/module.h> 2798 #include <linux/module.h>
2807 #include <asm/uaccess.h> 2799 #include <asm/uaccess.h>
@@ -2833,9 +2825,9 @@ diff -urNp linux-2.6.38.2/arch/powerpc/lib/usercopy_64.c linux-2.6.38.2/arch/pow
2833-EXPORT_SYMBOL(copy_to_user); 2825-EXPORT_SYMBOL(copy_to_user);
2834 EXPORT_SYMBOL(copy_in_user); 2826 EXPORT_SYMBOL(copy_in_user);
2835 2827
2836diff -urNp linux-2.6.38.2/arch/powerpc/mm/fault.c linux-2.6.38.2/arch/powerpc/mm/fault.c 2828diff -urNp linux-2.6.38.3/arch/powerpc/mm/fault.c linux-2.6.38.3/arch/powerpc/mm/fault.c
2837--- linux-2.6.38.2/arch/powerpc/mm/fault.c 2011-03-14 21:20:32.000000000 -0400 2829--- linux-2.6.38.3/arch/powerpc/mm/fault.c 2011-03-14 21:20:32.000000000 -0400
2838+++ linux-2.6.38.2/arch/powerpc/mm/fault.c 2011-03-21 18:31:35.000000000 -0400 2830+++ linux-2.6.38.3/arch/powerpc/mm/fault.c 2011-04-17 15:57:32.000000000 -0400
2839@@ -31,6 +31,10 @@ 2831@@ -31,6 +31,10 @@
2840 #include <linux/kdebug.h> 2832 #include <linux/kdebug.h>
2841 #include <linux/perf_event.h> 2833 #include <linux/perf_event.h>
@@ -2940,9 +2932,9 @@ diff -urNp linux-2.6.38.2/arch/powerpc/mm/fault.c linux-2.6.38.2/arch/powerpc/mm
2940 _exception(SIGSEGV, regs, code, address); 2932 _exception(SIGSEGV, regs, code, address);
2941 return 0; 2933 return 0;
2942 } 2934 }
2943diff -urNp linux-2.6.38.2/arch/powerpc/mm/mmap_64.c linux-2.6.38.2/arch/powerpc/mm/mmap_64.c 2935diff -urNp linux-2.6.38.3/arch/powerpc/mm/mmap_64.c linux-2.6.38.3/arch/powerpc/mm/mmap_64.c
2944--- linux-2.6.38.2/arch/powerpc/mm/mmap_64.c 2011-03-14 21:20:32.000000000 -0400 2936--- linux-2.6.38.3/arch/powerpc/mm/mmap_64.c 2011-03-14 21:20:32.000000000 -0400
2945+++ linux-2.6.38.2/arch/powerpc/mm/mmap_64.c 2011-03-21 18:31:35.000000000 -0400 2937+++ linux-2.6.38.3/arch/powerpc/mm/mmap_64.c 2011-04-17 15:57:32.000000000 -0400
2946@@ -99,10 +99,22 @@ void arch_pick_mmap_layout(struct mm_str 2938@@ -99,10 +99,22 @@ void arch_pick_mmap_layout(struct mm_str
2947 */ 2939 */
2948 if (mmap_is_legacy()) { 2940 if (mmap_is_legacy()) {
@@ -2966,9 +2958,9 @@ diff -urNp linux-2.6.38.2/arch/powerpc/mm/mmap_64.c linux-2.6.38.2/arch/powerpc/
2966 mm->get_unmapped_area = arch_get_unmapped_area_topdown; 2958 mm->get_unmapped_area = arch_get_unmapped_area_topdown;
2967 mm->unmap_area = arch_unmap_area_topdown; 2959 mm->unmap_area = arch_unmap_area_topdown;
2968 } 2960 }
2969diff -urNp linux-2.6.38.2/arch/powerpc/mm/slice.c linux-2.6.38.2/arch/powerpc/mm/slice.c 2961diff -urNp linux-2.6.38.3/arch/powerpc/mm/slice.c linux-2.6.38.3/arch/powerpc/mm/slice.c
2970--- linux-2.6.38.2/arch/powerpc/mm/slice.c 2011-03-14 21:20:32.000000000 -0400 2962--- linux-2.6.38.3/arch/powerpc/mm/slice.c 2011-03-14 21:20:32.000000000 -0400
2971+++ linux-2.6.38.2/arch/powerpc/mm/slice.c 2011-03-21 23:47:41.000000000 -0400 2963+++ linux-2.6.38.3/arch/powerpc/mm/slice.c 2011-04-17 15:57:32.000000000 -0400
2972@@ -98,7 +98,7 @@ static int slice_area_is_free(struct mm_ 2964@@ -98,7 +98,7 @@ static int slice_area_is_free(struct mm_
2973 if ((mm->task_size - len) < addr) 2965 if ((mm->task_size - len) < addr)
2974 return 0; 2966 return 0;
@@ -3035,9 +3027,9 @@ diff -urNp linux-2.6.38.2/arch/powerpc/mm/slice.c linux-2.6.38.2/arch/powerpc/mm
3035 /* If hint, make sure it matches our alignment restrictions */ 3027 /* If hint, make sure it matches our alignment restrictions */
3036 if (!fixed && addr) { 3028 if (!fixed && addr) {
3037 addr = _ALIGN_UP(addr, 1ul << pshift); 3029 addr = _ALIGN_UP(addr, 1ul << pshift);
3038diff -urNp linux-2.6.38.2/arch/powerpc/platforms/cell/iommu.c linux-2.6.38.2/arch/powerpc/platforms/cell/iommu.c 3030diff -urNp linux-2.6.38.3/arch/powerpc/platforms/cell/iommu.c linux-2.6.38.3/arch/powerpc/platforms/cell/iommu.c
3039--- linux-2.6.38.2/arch/powerpc/platforms/cell/iommu.c 2011-03-14 21:20:32.000000000 -0400 3031--- linux-2.6.38.3/arch/powerpc/platforms/cell/iommu.c 2011-03-14 21:20:32.000000000 -0400
3040+++ linux-2.6.38.2/arch/powerpc/platforms/cell/iommu.c 2011-03-21 18:31:35.000000000 -0400 3032+++ linux-2.6.38.3/arch/powerpc/platforms/cell/iommu.c 2011-04-17 15:57:32.000000000 -0400
3041@@ -642,7 +642,7 @@ static int dma_fixed_dma_supported(struc 3033@@ -642,7 +642,7 @@ static int dma_fixed_dma_supported(struc
3042 3034
3043 static int dma_set_mask_and_switch(struct device *dev, u64 dma_mask); 3035 static int dma_set_mask_and_switch(struct device *dev, u64 dma_mask);
@@ -3047,9 +3039,9 @@ diff -urNp linux-2.6.38.2/arch/powerpc/platforms/cell/iommu.c linux-2.6.38.2/arc
3047 .alloc_coherent = dma_fixed_alloc_coherent, 3039 .alloc_coherent = dma_fixed_alloc_coherent,
3048 .free_coherent = dma_fixed_free_coherent, 3040 .free_coherent = dma_fixed_free_coherent,
3049 .map_sg = dma_fixed_map_sg, 3041 .map_sg = dma_fixed_map_sg,
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 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
3051--- linux-2.6.38.2/arch/powerpc/platforms/ps3/system-bus.c 2011-03-14 21:20:32.000000000 -0400 3043--- linux-2.6.38.3/arch/powerpc/platforms/ps3/system-bus.c 2011-03-14 21:20:32.000000000 -0400
3052+++ linux-2.6.38.2/arch/powerpc/platforms/ps3/system-bus.c 2011-03-21 18:31:35.000000000 -0400 3044+++ linux-2.6.38.3/arch/powerpc/platforms/ps3/system-bus.c 2011-04-17 15:57:32.000000000 -0400
3053@@ -695,7 +695,7 @@ static int ps3_dma_supported(struct devi 3045@@ -695,7 +695,7 @@ static int ps3_dma_supported(struct devi
3054 return mask >= DMA_BIT_MASK(32); 3046 return mask >= DMA_BIT_MASK(32);
3055 } 3047 }
@@ -3068,9 +3060,9 @@ diff -urNp linux-2.6.38.2/arch/powerpc/platforms/ps3/system-bus.c linux-2.6.38.2
3068 .alloc_coherent = ps3_alloc_coherent, 3060 .alloc_coherent = ps3_alloc_coherent,
3069 .free_coherent = ps3_free_coherent, 3061 .free_coherent = ps3_free_coherent,
3070 .map_sg = ps3_ioc0_map_sg, 3062 .map_sg = ps3_ioc0_map_sg,
3071diff -urNp linux-2.6.38.2/arch/powerpc/sysdev/ppc4xx_cpm.c linux-2.6.38.2/arch/powerpc/sysdev/ppc4xx_cpm.c 3063diff -urNp linux-2.6.38.3/arch/powerpc/sysdev/ppc4xx_cpm.c linux-2.6.38.3/arch/powerpc/sysdev/ppc4xx_cpm.c
3072--- linux-2.6.38.2/arch/powerpc/sysdev/ppc4xx_cpm.c 2011-03-14 21:20:32.000000000 -0400 3064--- linux-2.6.38.3/arch/powerpc/sysdev/ppc4xx_cpm.c 2011-03-14 21:20:32.000000000 -0400
3073+++ linux-2.6.38.2/arch/powerpc/sysdev/ppc4xx_cpm.c 2011-03-21 18:31:35.000000000 -0400 3065+++ linux-2.6.38.3/arch/powerpc/sysdev/ppc4xx_cpm.c 2011-04-17 15:57:32.000000000 -0400
3074@@ -240,7 +240,7 @@ static int cpm_suspend_enter(suspend_sta 3066@@ -240,7 +240,7 @@ static int cpm_suspend_enter(suspend_sta
3075 return 0; 3067 return 0;
3076 } 3068 }
@@ -3080,9 +3072,9 @@ diff -urNp linux-2.6.38.2/arch/powerpc/sysdev/ppc4xx_cpm.c linux-2.6.38.2/arch/p
3080 .valid = cpm_suspend_valid, 3072 .valid = cpm_suspend_valid,
3081 .enter = cpm_suspend_enter, 3073 .enter = cpm_suspend_enter,
3082 }; 3074 };
3083diff -urNp linux-2.6.38.2/arch/s390/include/asm/elf.h linux-2.6.38.2/arch/s390/include/asm/elf.h 3075diff -urNp linux-2.6.38.3/arch/s390/include/asm/elf.h linux-2.6.38.3/arch/s390/include/asm/elf.h
3084--- linux-2.6.38.2/arch/s390/include/asm/elf.h 2011-03-14 21:20:32.000000000 -0400 3076--- linux-2.6.38.3/arch/s390/include/asm/elf.h 2011-03-14 21:20:32.000000000 -0400
3085+++ linux-2.6.38.2/arch/s390/include/asm/elf.h 2011-03-21 18:31:35.000000000 -0400 3077+++ linux-2.6.38.3/arch/s390/include/asm/elf.h 2011-04-17 15:57:32.000000000 -0400
3086@@ -162,8 +162,14 @@ extern unsigned int vdso_enabled; 3078@@ -162,8 +162,14 @@ extern unsigned int vdso_enabled;
3087 the loader. We need to make sure that it is out of the way of the program 3079 the loader. We need to make sure that it is out of the way of the program
3088 that it will "exec", and that there is sufficient room for the brk. */ 3080 that it will "exec", and that there is sufficient room for the brk. */
@@ -3108,9 +3100,9 @@ diff -urNp linux-2.6.38.2/arch/s390/include/asm/elf.h linux-2.6.38.2/arch/s390/i
3108-#define arch_randomize_brk arch_randomize_brk 3100-#define arch_randomize_brk arch_randomize_brk
3109- 3101-
3110 #endif 3102 #endif
3111diff -urNp linux-2.6.38.2/arch/s390/include/asm/system.h linux-2.6.38.2/arch/s390/include/asm/system.h 3103diff -urNp linux-2.6.38.3/arch/s390/include/asm/system.h linux-2.6.38.3/arch/s390/include/asm/system.h
3112--- linux-2.6.38.2/arch/s390/include/asm/system.h 2011-03-14 21:20:32.000000000 -0400 3104--- linux-2.6.38.3/arch/s390/include/asm/system.h 2011-03-14 21:20:32.000000000 -0400
3113+++ linux-2.6.38.2/arch/s390/include/asm/system.h 2011-03-21 18:31:35.000000000 -0400 3105+++ linux-2.6.38.3/arch/s390/include/asm/system.h 2011-04-17 15:57:32.000000000 -0400
3114@@ -449,7 +449,7 @@ extern void (*_machine_restart)(char *co 3106@@ -449,7 +449,7 @@ extern void (*_machine_restart)(char *co
3115 extern void (*_machine_halt)(void); 3107 extern void (*_machine_halt)(void);
3116 extern void (*_machine_power_off)(void); 3108 extern void (*_machine_power_off)(void);
@@ -3120,9 +3112,9 @@ diff -urNp linux-2.6.38.2/arch/s390/include/asm/system.h linux-2.6.38.2/arch/s39
3120 3112
3121 static inline int tprot(unsigned long addr) 3113 static inline int tprot(unsigned long addr)
3122 { 3114 {
3123diff -urNp linux-2.6.38.2/arch/s390/include/asm/uaccess.h linux-2.6.38.2/arch/s390/include/asm/uaccess.h 3115diff -urNp linux-2.6.38.3/arch/s390/include/asm/uaccess.h linux-2.6.38.3/arch/s390/include/asm/uaccess.h
3124--- linux-2.6.38.2/arch/s390/include/asm/uaccess.h 2011-03-14 21:20:32.000000000 -0400 3116--- linux-2.6.38.3/arch/s390/include/asm/uaccess.h 2011-03-14 21:20:32.000000000 -0400
3125+++ linux-2.6.38.2/arch/s390/include/asm/uaccess.h 2011-03-21 18:31:35.000000000 -0400 3117+++ linux-2.6.38.3/arch/s390/include/asm/uaccess.h 2011-04-17 15:57:32.000000000 -0400
3126@@ -234,6 +234,10 @@ static inline unsigned long __must_check 3118@@ -234,6 +234,10 @@ static inline unsigned long __must_check
3127 copy_to_user(void __user *to, const void *from, unsigned long n) 3119 copy_to_user(void __user *to, const void *from, unsigned long n)
3128 { 3120 {
@@ -3155,9 +3147,9 @@ diff -urNp linux-2.6.38.2/arch/s390/include/asm/uaccess.h linux-2.6.38.2/arch/s3
3155 if (unlikely(sz != -1 && sz < n)) { 3147 if (unlikely(sz != -1 && sz < n)) {
3156 copy_from_user_overflow(); 3148 copy_from_user_overflow();
3157 return n; 3149 return n;
3158diff -urNp linux-2.6.38.2/arch/s390/Kconfig linux-2.6.38.2/arch/s390/Kconfig 3150diff -urNp linux-2.6.38.3/arch/s390/Kconfig linux-2.6.38.3/arch/s390/Kconfig
3159--- linux-2.6.38.2/arch/s390/Kconfig 2011-03-14 21:20:32.000000000 -0400 3151--- linux-2.6.38.3/arch/s390/Kconfig 2011-03-14 21:20:32.000000000 -0400
3160+++ linux-2.6.38.2/arch/s390/Kconfig 2011-03-21 18:31:35.000000000 -0400 3152+++ linux-2.6.38.3/arch/s390/Kconfig 2011-04-17 15:57:32.000000000 -0400
3161@@ -233,11 +233,9 @@ config S390_EXEC_PROTECT 3153@@ -233,11 +233,9 @@ config S390_EXEC_PROTECT
3162 prompt "Data execute protection" 3154 prompt "Data execute protection"
3163 help 3155 help
@@ -3173,9 +3165,9 @@ diff -urNp linux-2.6.38.2/arch/s390/Kconfig linux-2.6.38.2/arch/s390/Kconfig
3173 3165
3174 comment "Code generation options" 3166 comment "Code generation options"
3175 3167
3176diff -urNp linux-2.6.38.2/arch/s390/kernel/module.c linux-2.6.38.2/arch/s390/kernel/module.c 3168diff -urNp linux-2.6.38.3/arch/s390/kernel/module.c linux-2.6.38.3/arch/s390/kernel/module.c
3177--- linux-2.6.38.2/arch/s390/kernel/module.c 2011-03-14 21:20:32.000000000 -0400 3169--- linux-2.6.38.3/arch/s390/kernel/module.c 2011-03-14 21:20:32.000000000 -0400
3178+++ linux-2.6.38.2/arch/s390/kernel/module.c 2011-03-21 18:31:35.000000000 -0400 3170+++ linux-2.6.38.3/arch/s390/kernel/module.c 2011-04-17 15:57:32.000000000 -0400
3179@@ -168,11 +168,11 @@ module_frob_arch_sections(Elf_Ehdr *hdr, 3171@@ -168,11 +168,11 @@ module_frob_arch_sections(Elf_Ehdr *hdr,
3180 3172
3181 /* Increase core size by size of got & plt and set start 3173 /* Increase core size by size of got & plt and set start
@@ -3247,9 +3239,9 @@ diff -urNp linux-2.6.38.2/arch/s390/kernel/module.c linux-2.6.38.2/arch/s390/ker
3247 rela->r_addend - loc; 3239 rela->r_addend - loc;
3248 if (r_type == R_390_GOTPC) 3240 if (r_type == R_390_GOTPC)
3249 *(unsigned int *) loc = val; 3241 *(unsigned int *) loc = val;
3250diff -urNp linux-2.6.38.2/arch/s390/kernel/process.c linux-2.6.38.2/arch/s390/kernel/process.c 3242diff -urNp linux-2.6.38.3/arch/s390/kernel/process.c linux-2.6.38.3/arch/s390/kernel/process.c
3251--- linux-2.6.38.2/arch/s390/kernel/process.c 2011-03-14 21:20:32.000000000 -0400 3243--- linux-2.6.38.3/arch/s390/kernel/process.c 2011-03-14 21:20:32.000000000 -0400
3252+++ linux-2.6.38.2/arch/s390/kernel/process.c 2011-03-21 18:31:35.000000000 -0400 3244+++ linux-2.6.38.3/arch/s390/kernel/process.c 2011-04-17 15:57:32.000000000 -0400
3253@@ -334,39 +334,3 @@ unsigned long get_wchan(struct task_stru 3245@@ -334,39 +334,3 @@ unsigned long get_wchan(struct task_stru
3254 } 3246 }
3255 return 0; 3247 return 0;
@@ -3290,9 +3282,9 @@ diff -urNp linux-2.6.38.2/arch/s390/kernel/process.c linux-2.6.38.2/arch/s390/ke
3290- return base; 3282- return base;
3291- return ret; 3283- return ret;
3292-} 3284-}
3293diff -urNp linux-2.6.38.2/arch/s390/kernel/setup.c linux-2.6.38.2/arch/s390/kernel/setup.c 3285diff -urNp linux-2.6.38.3/arch/s390/kernel/setup.c linux-2.6.38.3/arch/s390/kernel/setup.c
3294--- linux-2.6.38.2/arch/s390/kernel/setup.c 2011-03-14 21:20:32.000000000 -0400 3286--- linux-2.6.38.3/arch/s390/kernel/setup.c 2011-03-14 21:20:32.000000000 -0400
3295+++ linux-2.6.38.2/arch/s390/kernel/setup.c 2011-03-21 18:31:35.000000000 -0400 3287+++ linux-2.6.38.3/arch/s390/kernel/setup.c 2011-04-17 15:57:32.000000000 -0400
3296@@ -281,7 +281,7 @@ static int __init early_parse_mem(char * 3288@@ -281,7 +281,7 @@ static int __init early_parse_mem(char *
3297 } 3289 }
3298 early_param("mem", early_parse_mem); 3290 early_param("mem", early_parse_mem);
@@ -3341,9 +3333,9 @@ diff -urNp linux-2.6.38.2/arch/s390/kernel/setup.c linux-2.6.38.2/arch/s390/kern
3341 static void setup_addressing_mode(void) 3333 static void setup_addressing_mode(void)
3342 { 3334 {
3343 if (user_mode == SECONDARY_SPACE_MODE) { 3335 if (user_mode == SECONDARY_SPACE_MODE) {
3344diff -urNp linux-2.6.38.2/arch/s390/mm/maccess.c linux-2.6.38.2/arch/s390/mm/maccess.c 3336diff -urNp linux-2.6.38.3/arch/s390/mm/maccess.c linux-2.6.38.3/arch/s390/mm/maccess.c
3345--- linux-2.6.38.2/arch/s390/mm/maccess.c 2011-03-14 21:20:32.000000000 -0400 3337--- linux-2.6.38.3/arch/s390/mm/maccess.c 2011-03-14 21:20:32.000000000 -0400
3346+++ linux-2.6.38.2/arch/s390/mm/maccess.c 2011-03-21 18:31:35.000000000 -0400 3338+++ linux-2.6.38.3/arch/s390/mm/maccess.c 2011-04-17 15:57:32.000000000 -0400
3347@@ -45,7 +45,7 @@ static long probe_kernel_write_odd(void 3339@@ -45,7 +45,7 @@ static long probe_kernel_write_odd(void
3348 return rc ? rc : count; 3340 return rc ? rc : count;
3349 } 3341 }
@@ -3353,9 +3345,9 @@ diff -urNp linux-2.6.38.2/arch/s390/mm/maccess.c linux-2.6.38.2/arch/s390/mm/mac
3353 { 3345 {
3354 long copied = 0; 3346 long copied = 0;
3355 3347
3356diff -urNp linux-2.6.38.2/arch/s390/mm/mmap.c linux-2.6.38.2/arch/s390/mm/mmap.c 3348diff -urNp linux-2.6.38.3/arch/s390/mm/mmap.c linux-2.6.38.3/arch/s390/mm/mmap.c
3357--- linux-2.6.38.2/arch/s390/mm/mmap.c 2011-03-14 21:20:32.000000000 -0400 3349--- linux-2.6.38.3/arch/s390/mm/mmap.c 2011-03-14 21:20:32.000000000 -0400
3358+++ linux-2.6.38.2/arch/s390/mm/mmap.c 2011-03-21 18:31:35.000000000 -0400 3350+++ linux-2.6.38.3/arch/s390/mm/mmap.c 2011-04-17 15:57:32.000000000 -0400
3359@@ -91,10 +91,22 @@ void arch_pick_mmap_layout(struct mm_str 3351@@ -91,10 +91,22 @@ void arch_pick_mmap_layout(struct mm_str
3360 */ 3352 */
3361 if (mmap_is_legacy()) { 3353 if (mmap_is_legacy()) {
@@ -3402,9 +3394,9 @@ diff -urNp linux-2.6.38.2/arch/s390/mm/mmap.c linux-2.6.38.2/arch/s390/mm/mmap.c
3402 mm->get_unmapped_area = s390_get_unmapped_area_topdown; 3394 mm->get_unmapped_area = s390_get_unmapped_area_topdown;
3403 mm->unmap_area = arch_unmap_area_topdown; 3395 mm->unmap_area = arch_unmap_area_topdown;
3404 } 3396 }
3405diff -urNp linux-2.6.38.2/arch/score/include/asm/system.h linux-2.6.38.2/arch/score/include/asm/system.h 3397diff -urNp linux-2.6.38.3/arch/score/include/asm/system.h linux-2.6.38.3/arch/score/include/asm/system.h
3406--- linux-2.6.38.2/arch/score/include/asm/system.h 2011-03-14 21:20:32.000000000 -0400 3398--- linux-2.6.38.3/arch/score/include/asm/system.h 2011-03-14 21:20:32.000000000 -0400
3407+++ linux-2.6.38.2/arch/score/include/asm/system.h 2011-03-21 18:31:35.000000000 -0400 3399+++ linux-2.6.38.3/arch/score/include/asm/system.h 2011-04-17 15:57:32.000000000 -0400
3408@@ -17,7 +17,7 @@ do { \ 3400@@ -17,7 +17,7 @@ do { \
3409 #define finish_arch_switch(prev) do {} while (0) 3401 #define finish_arch_switch(prev) do {} while (0)
3410 3402
@@ -3414,9 +3406,9 @@ diff -urNp linux-2.6.38.2/arch/score/include/asm/system.h linux-2.6.38.2/arch/sc
3414 3406
3415 #define mb() barrier() 3407 #define mb() barrier()
3416 #define rmb() barrier() 3408 #define rmb() barrier()
3417diff -urNp linux-2.6.38.2/arch/score/kernel/process.c linux-2.6.38.2/arch/score/kernel/process.c 3409diff -urNp linux-2.6.38.3/arch/score/kernel/process.c linux-2.6.38.3/arch/score/kernel/process.c
3418--- linux-2.6.38.2/arch/score/kernel/process.c 2011-03-14 21:20:32.000000000 -0400 3410--- linux-2.6.38.3/arch/score/kernel/process.c 2011-03-14 21:20:32.000000000 -0400
3419+++ linux-2.6.38.2/arch/score/kernel/process.c 2011-03-21 18:31:35.000000000 -0400 3411+++ linux-2.6.38.3/arch/score/kernel/process.c 2011-04-17 15:57:32.000000000 -0400
3420@@ -161,8 +161,3 @@ unsigned long get_wchan(struct task_stru 3412@@ -161,8 +161,3 @@ unsigned long get_wchan(struct task_stru
3421 3413
3422 return task_pt_regs(task)->cp0_epc; 3414 return task_pt_regs(task)->cp0_epc;
@@ -3426,9 +3418,9 @@ diff -urNp linux-2.6.38.2/arch/score/kernel/process.c linux-2.6.38.2/arch/score/
3426-{ 3418-{
3427- return sp; 3419- return sp;
3428-} 3420-}
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 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
3430--- linux-2.6.38.2/arch/sh/include/asm/dma-mapping.h 2011-03-14 21:20:32.000000000 -0400 3422--- linux-2.6.38.3/arch/sh/include/asm/dma-mapping.h 2011-03-14 21:20:32.000000000 -0400
3431+++ linux-2.6.38.2/arch/sh/include/asm/dma-mapping.h 2011-03-21 18:31:35.000000000 -0400 3423+++ linux-2.6.38.3/arch/sh/include/asm/dma-mapping.h 2011-04-17 15:57:32.000000000 -0400
3432@@ -1,10 +1,10 @@ 3424@@ -1,10 +1,10 @@
3433 #ifndef __ASM_SH_DMA_MAPPING_H 3425 #ifndef __ASM_SH_DMA_MAPPING_H
3434 #define __ASM_SH_DMA_MAPPING_H 3426 #define __ASM_SH_DMA_MAPPING_H
@@ -3487,9 +3479,9 @@ diff -urNp linux-2.6.38.2/arch/sh/include/asm/dma-mapping.h linux-2.6.38.2/arch/
3487 3479
3488 if (dma_release_from_coherent(dev, get_order(size), vaddr)) 3480 if (dma_release_from_coherent(dev, get_order(size), vaddr))
3489 return; 3481 return;
3490diff -urNp linux-2.6.38.2/arch/sh/kernel/dma-nommu.c linux-2.6.38.2/arch/sh/kernel/dma-nommu.c 3482diff -urNp linux-2.6.38.3/arch/sh/kernel/dma-nommu.c linux-2.6.38.3/arch/sh/kernel/dma-nommu.c
3491--- linux-2.6.38.2/arch/sh/kernel/dma-nommu.c 2011-03-14 21:20:32.000000000 -0400 3483--- linux-2.6.38.3/arch/sh/kernel/dma-nommu.c 2011-03-14 21:20:32.000000000 -0400
3492+++ linux-2.6.38.2/arch/sh/kernel/dma-nommu.c 2011-03-21 18:31:35.000000000 -0400 3484+++ linux-2.6.38.3/arch/sh/kernel/dma-nommu.c 2011-04-17 15:57:32.000000000 -0400
3493@@ -62,7 +62,7 @@ static void nommu_sync_sg(struct device 3485@@ -62,7 +62,7 @@ static void nommu_sync_sg(struct device
3494 } 3486 }
3495 #endif 3487 #endif
@@ -3499,9 +3491,9 @@ diff -urNp linux-2.6.38.2/arch/sh/kernel/dma-nommu.c linux-2.6.38.2/arch/sh/kern
3499 .alloc_coherent = dma_generic_alloc_coherent, 3491 .alloc_coherent = dma_generic_alloc_coherent,
3500 .free_coherent = dma_generic_free_coherent, 3492 .free_coherent = dma_generic_free_coherent,
3501 .map_page = nommu_map_page, 3493 .map_page = nommu_map_page,
3502diff -urNp linux-2.6.38.2/arch/sh/kernel/kgdb.c linux-2.6.38.2/arch/sh/kernel/kgdb.c 3494diff -urNp linux-2.6.38.3/arch/sh/kernel/kgdb.c linux-2.6.38.3/arch/sh/kernel/kgdb.c
3503--- linux-2.6.38.2/arch/sh/kernel/kgdb.c 2011-03-14 21:20:32.000000000 -0400 3495--- linux-2.6.38.3/arch/sh/kernel/kgdb.c 2011-03-14 21:20:32.000000000 -0400
3504+++ linux-2.6.38.2/arch/sh/kernel/kgdb.c 2011-03-21 18:31:35.000000000 -0400 3496+++ linux-2.6.38.3/arch/sh/kernel/kgdb.c 2011-04-17 15:57:32.000000000 -0400
3505@@ -319,7 +319,7 @@ void kgdb_arch_exit(void) 3497@@ -319,7 +319,7 @@ void kgdb_arch_exit(void)
3506 unregister_die_notifier(&kgdb_notifier); 3498 unregister_die_notifier(&kgdb_notifier);
3507 } 3499 }
@@ -3511,9 +3503,9 @@ diff -urNp linux-2.6.38.2/arch/sh/kernel/kgdb.c linux-2.6.38.2/arch/sh/kernel/kg
3511 /* Breakpoint instruction: trapa #0x3c */ 3503 /* Breakpoint instruction: trapa #0x3c */
3512 #ifdef CONFIG_CPU_LITTLE_ENDIAN 3504 #ifdef CONFIG_CPU_LITTLE_ENDIAN
3513 .gdb_bpt_instr = { 0x3c, 0xc3 }, 3505 .gdb_bpt_instr = { 0x3c, 0xc3 },
3514diff -urNp linux-2.6.38.2/arch/sh/mm/consistent.c linux-2.6.38.2/arch/sh/mm/consistent.c 3506diff -urNp linux-2.6.38.3/arch/sh/mm/consistent.c linux-2.6.38.3/arch/sh/mm/consistent.c
3515--- linux-2.6.38.2/arch/sh/mm/consistent.c 2011-03-14 21:20:32.000000000 -0400 3507--- linux-2.6.38.3/arch/sh/mm/consistent.c 2011-03-14 21:20:32.000000000 -0400
3516+++ linux-2.6.38.2/arch/sh/mm/consistent.c 2011-03-21 18:31:35.000000000 -0400 3508+++ linux-2.6.38.3/arch/sh/mm/consistent.c 2011-04-17 15:57:32.000000000 -0400
3517@@ -22,7 +22,7 @@ 3509@@ -22,7 +22,7 @@
3518 3510
3519 #define PREALLOC_DMA_DEBUG_ENTRIES 4096 3511 #define PREALLOC_DMA_DEBUG_ENTRIES 4096
@@ -3523,9 +3515,9 @@ diff -urNp linux-2.6.38.2/arch/sh/mm/consistent.c linux-2.6.38.2/arch/sh/mm/cons
3523 EXPORT_SYMBOL(dma_ops); 3515 EXPORT_SYMBOL(dma_ops);
3524 3516
3525 static int __init dma_init(void) 3517 static int __init dma_init(void)
3526diff -urNp linux-2.6.38.2/arch/sh/mm/mmap.c linux-2.6.38.2/arch/sh/mm/mmap.c 3518diff -urNp linux-2.6.38.3/arch/sh/mm/mmap.c linux-2.6.38.3/arch/sh/mm/mmap.c
3527--- linux-2.6.38.2/arch/sh/mm/mmap.c 2011-03-14 21:20:32.000000000 -0400 3519--- linux-2.6.38.3/arch/sh/mm/mmap.c 2011-03-14 21:20:32.000000000 -0400
3528+++ linux-2.6.38.2/arch/sh/mm/mmap.c 2011-03-21 23:47:41.000000000 -0400 3520+++ linux-2.6.38.3/arch/sh/mm/mmap.c 2011-04-17 15:57:32.000000000 -0400
3529@@ -74,8 +74,7 @@ unsigned long arch_get_unmapped_area(str 3521@@ -74,8 +74,7 @@ unsigned long arch_get_unmapped_area(str
3530 addr = PAGE_ALIGN(addr); 3522 addr = PAGE_ALIGN(addr);
3531 3523
@@ -3600,9 +3592,9 @@ diff -urNp linux-2.6.38.2/arch/sh/mm/mmap.c linux-2.6.38.2/arch/sh/mm/mmap.c
3600 3592
3601 bottomup: 3593 bottomup:
3602 /* 3594 /*
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 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
3604--- linux-2.6.38.2/arch/sparc/include/asm/atomic_64.h 2011-03-14 21:20:32.000000000 -0400 3596--- linux-2.6.38.3/arch/sparc/include/asm/atomic_64.h 2011-03-14 21:20:32.000000000 -0400
3605+++ linux-2.6.38.2/arch/sparc/include/asm/atomic_64.h 2011-03-21 18:31:35.000000000 -0400 3597+++ linux-2.6.38.3/arch/sparc/include/asm/atomic_64.h 2011-04-17 15:57:32.000000000 -0400
3606@@ -14,18 +14,40 @@ 3598@@ -14,18 +14,40 @@
3607 #define ATOMIC64_INIT(i) { (i) } 3599 #define ATOMIC64_INIT(i) { (i) }
3608 3600
@@ -3762,9 +3754,9 @@ diff -urNp linux-2.6.38.2/arch/sparc/include/asm/atomic_64.h linux-2.6.38.2/arch
3762 } 3754 }
3763 3755
3764 #define atomic64_inc_not_zero(v) atomic64_add_unless((v), 1, 0) 3756 #define atomic64_inc_not_zero(v) atomic64_add_unless((v), 1, 0)
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 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
3766--- linux-2.6.38.2/arch/sparc/include/asm/dma-mapping.h 2011-03-14 21:20:32.000000000 -0400 3758--- linux-2.6.38.3/arch/sparc/include/asm/dma-mapping.h 2011-03-14 21:20:32.000000000 -0400
3767+++ linux-2.6.38.2/arch/sparc/include/asm/dma-mapping.h 2011-03-21 18:31:35.000000000 -0400 3759+++ linux-2.6.38.3/arch/sparc/include/asm/dma-mapping.h 2011-04-17 15:57:32.000000000 -0400
3768@@ -12,10 +12,10 @@ extern int dma_supported(struct device * 3760@@ -12,10 +12,10 @@ extern int dma_supported(struct device *
3769 #define dma_alloc_noncoherent(d, s, h, f) dma_alloc_coherent(d, s, h, f) 3761 #define dma_alloc_noncoherent(d, s, h, f) dma_alloc_coherent(d, s, h, f)
3770 #define dma_free_noncoherent(d, s, v, h) dma_free_coherent(d, s, v, h) 3762 #define dma_free_noncoherent(d, s, v, h) dma_free_coherent(d, s, v, h)
@@ -3796,9 +3788,9 @@ diff -urNp linux-2.6.38.2/arch/sparc/include/asm/dma-mapping.h linux-2.6.38.2/ar
3796 3788
3797 debug_dma_free_coherent(dev, size, cpu_addr, dma_handle); 3789 debug_dma_free_coherent(dev, size, cpu_addr, dma_handle);
3798 ops->free_coherent(dev, size, cpu_addr, dma_handle); 3790 ops->free_coherent(dev, size, cpu_addr, dma_handle);
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 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
3800--- linux-2.6.38.2/arch/sparc/include/asm/elf_32.h 2011-03-14 21:20:32.000000000 -0400 3792--- linux-2.6.38.3/arch/sparc/include/asm/elf_32.h 2011-03-14 21:20:32.000000000 -0400
3801+++ linux-2.6.38.2/arch/sparc/include/asm/elf_32.h 2011-03-21 18:31:35.000000000 -0400 3793+++ linux-2.6.38.3/arch/sparc/include/asm/elf_32.h 2011-04-17 15:57:32.000000000 -0400
3802@@ -114,6 +114,13 @@ typedef struct { 3794@@ -114,6 +114,13 @@ typedef struct {
3803 3795
3804 #define ELF_ET_DYN_BASE (TASK_UNMAPPED_BASE) 3796 #define ELF_ET_DYN_BASE (TASK_UNMAPPED_BASE)
@@ -3813,9 +3805,9 @@ diff -urNp linux-2.6.38.2/arch/sparc/include/asm/elf_32.h linux-2.6.38.2/arch/sp
3813 /* This yields a mask that user programs can use to figure out what 3805 /* This yields a mask that user programs can use to figure out what
3814 instruction set this cpu supports. This can NOT be done in userspace 3806 instruction set this cpu supports. This can NOT be done in userspace
3815 on Sparc. */ 3807 on Sparc. */
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 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
3817--- linux-2.6.38.2/arch/sparc/include/asm/elf_64.h 2011-03-14 21:20:32.000000000 -0400 3809--- linux-2.6.38.3/arch/sparc/include/asm/elf_64.h 2011-03-14 21:20:32.000000000 -0400
3818+++ linux-2.6.38.2/arch/sparc/include/asm/elf_64.h 2011-03-21 18:31:35.000000000 -0400 3810+++ linux-2.6.38.3/arch/sparc/include/asm/elf_64.h 2011-04-17 15:57:32.000000000 -0400
3819@@ -162,6 +162,12 @@ typedef struct { 3811@@ -162,6 +162,12 @@ typedef struct {
3820 #define ELF_ET_DYN_BASE 0x0000010000000000UL 3812 #define ELF_ET_DYN_BASE 0x0000010000000000UL
3821 #define COMPAT_ELF_ET_DYN_BASE 0x0000000070000000UL 3813 #define COMPAT_ELF_ET_DYN_BASE 0x0000000070000000UL
@@ -3829,9 +3821,9 @@ diff -urNp linux-2.6.38.2/arch/sparc/include/asm/elf_64.h linux-2.6.38.2/arch/sp
3829 3821
3830 /* This yields a mask that user programs can use to figure out what 3822 /* This yields a mask that user programs can use to figure out what
3831 instruction set this cpu supports. */ 3823 instruction set this cpu supports. */
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 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
3833--- linux-2.6.38.2/arch/sparc/include/asm/pgtable_32.h 2011-03-14 21:20:32.000000000 -0400 3825--- linux-2.6.38.3/arch/sparc/include/asm/pgtable_32.h 2011-03-14 21:20:32.000000000 -0400
3834+++ linux-2.6.38.2/arch/sparc/include/asm/pgtable_32.h 2011-03-21 18:31:35.000000000 -0400 3826+++ linux-2.6.38.3/arch/sparc/include/asm/pgtable_32.h 2011-04-17 15:57:32.000000000 -0400
3835@@ -43,6 +43,13 @@ BTFIXUPDEF_SIMM13(user_ptrs_per_pgd) 3827@@ -43,6 +43,13 @@ BTFIXUPDEF_SIMM13(user_ptrs_per_pgd)
3836 BTFIXUPDEF_INT(page_none) 3828 BTFIXUPDEF_INT(page_none)
3837 BTFIXUPDEF_INT(page_copy) 3829 BTFIXUPDEF_INT(page_copy)
@@ -3863,9 +3855,9 @@ diff -urNp linux-2.6.38.2/arch/sparc/include/asm/pgtable_32.h linux-2.6.38.2/arc
3863 extern unsigned long page_kernel; 3855 extern unsigned long page_kernel;
3864 3856
3865 #ifdef MODULE 3857 #ifdef MODULE
3866diff -urNp linux-2.6.38.2/arch/sparc/include/asm/pgtsrmmu.h linux-2.6.38.2/arch/sparc/include/asm/pgtsrmmu.h 3858diff -urNp linux-2.6.38.3/arch/sparc/include/asm/pgtsrmmu.h linux-2.6.38.3/arch/sparc/include/asm/pgtsrmmu.h
3867--- linux-2.6.38.2/arch/sparc/include/asm/pgtsrmmu.h 2011-03-14 21:20:32.000000000 -0400 3859--- linux-2.6.38.3/arch/sparc/include/asm/pgtsrmmu.h 2011-03-14 21:20:32.000000000 -0400
3868+++ linux-2.6.38.2/arch/sparc/include/asm/pgtsrmmu.h 2011-03-21 18:31:35.000000000 -0400 3860+++ linux-2.6.38.3/arch/sparc/include/asm/pgtsrmmu.h 2011-04-17 15:57:32.000000000 -0400
3869@@ -115,6 +115,13 @@ 3861@@ -115,6 +115,13 @@
3870 SRMMU_EXEC | SRMMU_REF) 3862 SRMMU_EXEC | SRMMU_REF)
3871 #define SRMMU_PAGE_RDONLY __pgprot(SRMMU_VALID | SRMMU_CACHE | \ 3863 #define SRMMU_PAGE_RDONLY __pgprot(SRMMU_VALID | SRMMU_CACHE | \
@@ -3880,9 +3872,9 @@ diff -urNp linux-2.6.38.2/arch/sparc/include/asm/pgtsrmmu.h linux-2.6.38.2/arch/
3880 #define SRMMU_PAGE_KERNEL __pgprot(SRMMU_VALID | SRMMU_CACHE | SRMMU_PRIV | \ 3872 #define SRMMU_PAGE_KERNEL __pgprot(SRMMU_VALID | SRMMU_CACHE | SRMMU_PRIV | \
3881 SRMMU_DIRTY | SRMMU_REF) 3873 SRMMU_DIRTY | SRMMU_REF)
3882 3874
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 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
3884--- linux-2.6.38.2/arch/sparc/include/asm/spinlock_64.h 2011-03-14 21:20:32.000000000 -0400 3876--- linux-2.6.38.3/arch/sparc/include/asm/spinlock_64.h 2011-03-14 21:20:32.000000000 -0400
3885+++ linux-2.6.38.2/arch/sparc/include/asm/spinlock_64.h 2011-03-21 18:31:35.000000000 -0400 3877+++ linux-2.6.38.3/arch/sparc/include/asm/spinlock_64.h 2011-04-17 15:57:32.000000000 -0400
3886@@ -99,7 +99,12 @@ static void inline arch_read_lock(arch_r 3878@@ -99,7 +99,12 @@ static void inline arch_read_lock(arch_r
3887 __asm__ __volatile__ ( 3879 __asm__ __volatile__ (
3888 "1: ldsw [%2], %0\n" 3880 "1: ldsw [%2], %0\n"
@@ -3934,9 +3926,9 @@ diff -urNp linux-2.6.38.2/arch/sparc/include/asm/spinlock_64.h linux-2.6.38.2/ar
3934 " cas [%2], %0, %1\n" 3926 " cas [%2], %0, %1\n"
3935 " cmp %0, %1\n" 3927 " cmp %0, %1\n"
3936 " bne,pn %%xcc, 1b\n" 3928 " bne,pn %%xcc, 1b\n"
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 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
3938--- linux-2.6.38.2/arch/sparc/include/asm/uaccess_32.h 2011-03-14 21:20:32.000000000 -0400 3930--- linux-2.6.38.3/arch/sparc/include/asm/uaccess_32.h 2011-03-14 21:20:32.000000000 -0400
3939+++ linux-2.6.38.2/arch/sparc/include/asm/uaccess_32.h 2011-03-21 18:31:35.000000000 -0400 3931+++ linux-2.6.38.3/arch/sparc/include/asm/uaccess_32.h 2011-04-17 15:57:32.000000000 -0400
3940@@ -249,27 +249,46 @@ extern unsigned long __copy_user(void __ 3932@@ -249,27 +249,46 @@ extern unsigned long __copy_user(void __
3941 3933
3942 static inline unsigned long copy_to_user(void __user *to, const void *from, unsigned long n) 3934 static inline unsigned long copy_to_user(void __user *to, const void *from, unsigned long n)
@@ -3988,9 +3980,9 @@ diff -urNp linux-2.6.38.2/arch/sparc/include/asm/uaccess_32.h linux-2.6.38.2/arc
3988 return __copy_user((__force void __user *) to, from, n); 3980 return __copy_user((__force void __user *) to, from, n);
3989 } 3981 }
3990 3982
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 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
3992--- linux-2.6.38.2/arch/sparc/include/asm/uaccess_64.h 2011-03-14 21:20:32.000000000 -0400 3984--- linux-2.6.38.3/arch/sparc/include/asm/uaccess_64.h 2011-03-14 21:20:32.000000000 -0400
3993+++ linux-2.6.38.2/arch/sparc/include/asm/uaccess_64.h 2011-03-21 18:31:35.000000000 -0400 3985+++ linux-2.6.38.3/arch/sparc/include/asm/uaccess_64.h 2011-04-17 15:57:32.000000000 -0400
3994@@ -10,6 +10,7 @@ 3986@@ -10,6 +10,7 @@
3995 #include <linux/compiler.h> 3987 #include <linux/compiler.h>
3996 #include <linux/string.h> 3988 #include <linux/string.h>
@@ -4033,9 +4025,9 @@ diff -urNp linux-2.6.38.2/arch/sparc/include/asm/uaccess_64.h linux-2.6.38.2/arc
4033 if (unlikely(ret)) 4025 if (unlikely(ret))
4034 ret = copy_to_user_fixup(to, from, size); 4026 ret = copy_to_user_fixup(to, from, size);
4035 return ret; 4027 return ret;
4036diff -urNp linux-2.6.38.2/arch/sparc/include/asm/uaccess.h linux-2.6.38.2/arch/sparc/include/asm/uaccess.h 4028diff -urNp linux-2.6.38.3/arch/sparc/include/asm/uaccess.h linux-2.6.38.3/arch/sparc/include/asm/uaccess.h
4037--- linux-2.6.38.2/arch/sparc/include/asm/uaccess.h 2011-03-14 21:20:32.000000000 -0400 4029--- linux-2.6.38.3/arch/sparc/include/asm/uaccess.h 2011-03-14 21:20:32.000000000 -0400
4038+++ linux-2.6.38.2/arch/sparc/include/asm/uaccess.h 2011-03-21 18:31:35.000000000 -0400 4030+++ linux-2.6.38.3/arch/sparc/include/asm/uaccess.h 2011-04-17 15:57:32.000000000 -0400
4039@@ -1,5 +1,13 @@ 4031@@ -1,5 +1,13 @@
4040 #ifndef ___ASM_SPARC_UACCESS_H 4032 #ifndef ___ASM_SPARC_UACCESS_H
4041 #define ___ASM_SPARC_UACCESS_H 4033 #define ___ASM_SPARC_UACCESS_H
@@ -4050,9 +4042,9 @@ diff -urNp linux-2.6.38.2/arch/sparc/include/asm/uaccess.h linux-2.6.38.2/arch/s
4050 #if defined(__sparc__) && defined(__arch64__) 4042 #if defined(__sparc__) && defined(__arch64__)
4051 #include <asm/uaccess_64.h> 4043 #include <asm/uaccess_64.h>
4052 #else 4044 #else
4053diff -urNp linux-2.6.38.2/arch/sparc/kernel/iommu.c linux-2.6.38.2/arch/sparc/kernel/iommu.c 4045diff -urNp linux-2.6.38.3/arch/sparc/kernel/iommu.c linux-2.6.38.3/arch/sparc/kernel/iommu.c
4054--- linux-2.6.38.2/arch/sparc/kernel/iommu.c 2011-03-14 21:20:32.000000000 -0400 4046--- linux-2.6.38.3/arch/sparc/kernel/iommu.c 2011-03-14 21:20:32.000000000 -0400
4055+++ linux-2.6.38.2/arch/sparc/kernel/iommu.c 2011-03-21 18:31:35.000000000 -0400 4047+++ linux-2.6.38.3/arch/sparc/kernel/iommu.c 2011-04-17 15:57:32.000000000 -0400
4056@@ -827,7 +827,7 @@ static void dma_4u_sync_sg_for_cpu(struc 4048@@ -827,7 +827,7 @@ static void dma_4u_sync_sg_for_cpu(struc
4057 spin_unlock_irqrestore(&iommu->lock, flags); 4049 spin_unlock_irqrestore(&iommu->lock, flags);
4058 } 4050 }
@@ -4071,9 +4063,9 @@ diff -urNp linux-2.6.38.2/arch/sparc/kernel/iommu.c linux-2.6.38.2/arch/sparc/ke
4071 EXPORT_SYMBOL(dma_ops); 4063 EXPORT_SYMBOL(dma_ops);
4072 4064
4073 extern int pci64_dma_supported(struct pci_dev *pdev, u64 device_mask); 4065 extern int pci64_dma_supported(struct pci_dev *pdev, u64 device_mask);
4074diff -urNp linux-2.6.38.2/arch/sparc/kernel/ioport.c linux-2.6.38.2/arch/sparc/kernel/ioport.c 4066diff -urNp linux-2.6.38.3/arch/sparc/kernel/ioport.c linux-2.6.38.3/arch/sparc/kernel/ioport.c
4075--- linux-2.6.38.2/arch/sparc/kernel/ioport.c 2011-03-14 21:20:32.000000000 -0400 4067--- linux-2.6.38.3/arch/sparc/kernel/ioport.c 2011-03-14 21:20:32.000000000 -0400
4076+++ linux-2.6.38.2/arch/sparc/kernel/ioport.c 2011-03-21 18:31:35.000000000 -0400 4068+++ linux-2.6.38.3/arch/sparc/kernel/ioport.c 2011-04-17 15:57:32.000000000 -0400
4077@@ -397,7 +397,7 @@ static void sbus_sync_sg_for_device(stru 4069@@ -397,7 +397,7 @@ static void sbus_sync_sg_for_device(stru
4078 BUG(); 4070 BUG();
4079 } 4071 }
@@ -4101,9 +4093,9 @@ diff -urNp linux-2.6.38.2/arch/sparc/kernel/ioport.c linux-2.6.38.2/arch/sparc/k
4101 .alloc_coherent = pci32_alloc_coherent, 4093 .alloc_coherent = pci32_alloc_coherent,
4102 .free_coherent = pci32_free_coherent, 4094 .free_coherent = pci32_free_coherent,
4103 .map_page = pci32_map_page, 4095 .map_page = pci32_map_page,
4104diff -urNp linux-2.6.38.2/arch/sparc/kernel/kgdb_32.c linux-2.6.38.2/arch/sparc/kernel/kgdb_32.c 4096diff -urNp linux-2.6.38.3/arch/sparc/kernel/kgdb_32.c linux-2.6.38.3/arch/sparc/kernel/kgdb_32.c
4105--- linux-2.6.38.2/arch/sparc/kernel/kgdb_32.c 2011-03-14 21:20:32.000000000 -0400 4097--- linux-2.6.38.3/arch/sparc/kernel/kgdb_32.c 2011-03-14 21:20:32.000000000 -0400
4106+++ linux-2.6.38.2/arch/sparc/kernel/kgdb_32.c 2011-03-21 18:31:35.000000000 -0400 4098+++ linux-2.6.38.3/arch/sparc/kernel/kgdb_32.c 2011-04-17 15:57:32.000000000 -0400
4107@@ -164,7 +164,7 @@ void kgdb_arch_set_pc(struct pt_regs *re 4099@@ -164,7 +164,7 @@ void kgdb_arch_set_pc(struct pt_regs *re
4108 regs->npc = regs->pc + 4; 4100 regs->npc = regs->pc + 4;
4109 } 4101 }
@@ -4113,9 +4105,9 @@ diff -urNp linux-2.6.38.2/arch/sparc/kernel/kgdb_32.c linux-2.6.38.2/arch/sparc/
4113 /* Breakpoint instruction: ta 0x7d */ 4105 /* Breakpoint instruction: ta 0x7d */
4114 .gdb_bpt_instr = { 0x91, 0xd0, 0x20, 0x7d }, 4106 .gdb_bpt_instr = { 0x91, 0xd0, 0x20, 0x7d },
4115 }; 4107 };
4116diff -urNp linux-2.6.38.2/arch/sparc/kernel/kgdb_64.c linux-2.6.38.2/arch/sparc/kernel/kgdb_64.c 4108diff -urNp linux-2.6.38.3/arch/sparc/kernel/kgdb_64.c linux-2.6.38.3/arch/sparc/kernel/kgdb_64.c
4117--- linux-2.6.38.2/arch/sparc/kernel/kgdb_64.c 2011-03-14 21:20:32.000000000 -0400 4109--- linux-2.6.38.3/arch/sparc/kernel/kgdb_64.c 2011-03-14 21:20:32.000000000 -0400
4118+++ linux-2.6.38.2/arch/sparc/kernel/kgdb_64.c 2011-03-21 18:31:35.000000000 -0400 4110+++ linux-2.6.38.3/arch/sparc/kernel/kgdb_64.c 2011-04-17 15:57:32.000000000 -0400
4119@@ -187,7 +187,7 @@ void kgdb_arch_set_pc(struct pt_regs *re 4111@@ -187,7 +187,7 @@ void kgdb_arch_set_pc(struct pt_regs *re
4120 regs->tnpc = regs->tpc + 4; 4112 regs->tnpc = regs->tpc + 4;
4121 } 4113 }
@@ -4125,9 +4117,9 @@ diff -urNp linux-2.6.38.2/arch/sparc/kernel/kgdb_64.c linux-2.6.38.2/arch/sparc/
4125 /* Breakpoint instruction: ta 0x72 */ 4117 /* Breakpoint instruction: ta 0x72 */
4126 .gdb_bpt_instr = { 0x91, 0xd0, 0x20, 0x72 }, 4118 .gdb_bpt_instr = { 0x91, 0xd0, 0x20, 0x72 },
4127 }; 4119 };
4128diff -urNp linux-2.6.38.2/arch/sparc/kernel/Makefile linux-2.6.38.2/arch/sparc/kernel/Makefile 4120diff -urNp linux-2.6.38.3/arch/sparc/kernel/Makefile linux-2.6.38.3/arch/sparc/kernel/Makefile
4129--- linux-2.6.38.2/arch/sparc/kernel/Makefile 2011-03-14 21:20:32.000000000 -0400 4121--- linux-2.6.38.3/arch/sparc/kernel/Makefile 2011-03-14 21:20:32.000000000 -0400
4130+++ linux-2.6.38.2/arch/sparc/kernel/Makefile 2011-03-21 18:31:35.000000000 -0400 4122+++ linux-2.6.38.3/arch/sparc/kernel/Makefile 2011-04-17 15:57:32.000000000 -0400
4131@@ -3,7 +3,7 @@ 4123@@ -3,7 +3,7 @@
4132 # 4124 #
4133 4125
@@ -4137,9 +4129,9 @@ diff -urNp linux-2.6.38.2/arch/sparc/kernel/Makefile linux-2.6.38.2/arch/sparc/k
4137 4129
4138 extra-y := head_$(BITS).o 4130 extra-y := head_$(BITS).o
4139 extra-y += init_task.o 4131 extra-y += init_task.o
4140diff -urNp linux-2.6.38.2/arch/sparc/kernel/pci_sun4v.c linux-2.6.38.2/arch/sparc/kernel/pci_sun4v.c 4132diff -urNp linux-2.6.38.3/arch/sparc/kernel/pci_sun4v.c linux-2.6.38.3/arch/sparc/kernel/pci_sun4v.c
4141--- linux-2.6.38.2/arch/sparc/kernel/pci_sun4v.c 2011-03-14 21:20:32.000000000 -0400 4133--- linux-2.6.38.3/arch/sparc/kernel/pci_sun4v.c 2011-03-14 21:20:32.000000000 -0400
4142+++ linux-2.6.38.2/arch/sparc/kernel/pci_sun4v.c 2011-03-21 18:31:35.000000000 -0400 4134+++ linux-2.6.38.3/arch/sparc/kernel/pci_sun4v.c 2011-04-17 15:57:32.000000000 -0400
4143@@ -525,7 +525,7 @@ static void dma_4v_unmap_sg(struct devic 4135@@ -525,7 +525,7 @@ static void dma_4v_unmap_sg(struct devic
4144 spin_unlock_irqrestore(&iommu->lock, flags); 4136 spin_unlock_irqrestore(&iommu->lock, flags);
4145 } 4137 }
@@ -4149,9 +4141,9 @@ diff -urNp linux-2.6.38.2/arch/sparc/kernel/pci_sun4v.c linux-2.6.38.2/arch/spar
4149 .alloc_coherent = dma_4v_alloc_coherent, 4141 .alloc_coherent = dma_4v_alloc_coherent,
4150 .free_coherent = dma_4v_free_coherent, 4142 .free_coherent = dma_4v_free_coherent,
4151 .map_page = dma_4v_map_page, 4143 .map_page = dma_4v_map_page,
4152diff -urNp linux-2.6.38.2/arch/sparc/kernel/process_32.c linux-2.6.38.2/arch/sparc/kernel/process_32.c 4144diff -urNp linux-2.6.38.3/arch/sparc/kernel/process_32.c linux-2.6.38.3/arch/sparc/kernel/process_32.c
4153--- linux-2.6.38.2/arch/sparc/kernel/process_32.c 2011-03-14 21:20:32.000000000 -0400 4145--- linux-2.6.38.3/arch/sparc/kernel/process_32.c 2011-03-14 21:20:32.000000000 -0400
4154+++ linux-2.6.38.2/arch/sparc/kernel/process_32.c 2011-03-21 18:31:35.000000000 -0400 4146+++ linux-2.6.38.3/arch/sparc/kernel/process_32.c 2011-04-17 15:57:32.000000000 -0400
4155@@ -196,7 +196,7 @@ void __show_backtrace(unsigned long fp) 4147@@ -196,7 +196,7 @@ void __show_backtrace(unsigned long fp)
4156 rw->ins[4], rw->ins[5], 4148 rw->ins[4], rw->ins[5],
4157 rw->ins[6], 4149 rw->ins[6],
@@ -4187,9 +4179,9 @@ diff -urNp linux-2.6.38.2/arch/sparc/kernel/process_32.c linux-2.6.38.2/arch/spa
4187 fp = rw->ins[6]; 4179 fp = rw->ins[6];
4188 } while (++count < 16); 4180 } while (++count < 16);
4189 printk("\n"); 4181 printk("\n");
4190diff -urNp linux-2.6.38.2/arch/sparc/kernel/process_64.c linux-2.6.38.2/arch/sparc/kernel/process_64.c 4182diff -urNp linux-2.6.38.3/arch/sparc/kernel/process_64.c linux-2.6.38.3/arch/sparc/kernel/process_64.c
4191--- linux-2.6.38.2/arch/sparc/kernel/process_64.c 2011-03-14 21:20:32.000000000 -0400 4183--- linux-2.6.38.3/arch/sparc/kernel/process_64.c 2011-03-14 21:20:32.000000000 -0400
4192+++ linux-2.6.38.2/arch/sparc/kernel/process_64.c 2011-03-21 18:31:35.000000000 -0400 4184+++ linux-2.6.38.3/arch/sparc/kernel/process_64.c 2011-04-17 15:57:32.000000000 -0400
4193@@ -180,14 +180,14 @@ static void show_regwindow(struct pt_reg 4185@@ -180,14 +180,14 @@ static void show_regwindow(struct pt_reg
4194 printk("i4: %016lx i5: %016lx i6: %016lx i7: %016lx\n", 4186 printk("i4: %016lx i5: %016lx i6: %016lx i7: %016lx\n",
4195 rwk->ins[4], rwk->ins[5], rwk->ins[6], rwk->ins[7]); 4187 rwk->ins[4], rwk->ins[5], rwk->ins[6], rwk->ins[7]);
@@ -4225,9 +4217,9 @@ diff -urNp linux-2.6.38.2/arch/sparc/kernel/process_64.c linux-2.6.38.2/arch/spa
4225 (void *) gp->tpc, 4217 (void *) gp->tpc,
4226 (void *) gp->o7, 4218 (void *) gp->o7,
4227 (void *) gp->i7, 4219 (void *) gp->i7,
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 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
4229--- linux-2.6.38.2/arch/sparc/kernel/sys_sparc_32.c 2011-03-14 21:20:32.000000000 -0400 4221--- linux-2.6.38.3/arch/sparc/kernel/sys_sparc_32.c 2011-03-14 21:20:32.000000000 -0400
4230+++ linux-2.6.38.2/arch/sparc/kernel/sys_sparc_32.c 2011-03-21 18:31:35.000000000 -0400 4222+++ linux-2.6.38.3/arch/sparc/kernel/sys_sparc_32.c 2011-04-17 15:57:32.000000000 -0400
4231@@ -56,7 +56,7 @@ unsigned long arch_get_unmapped_area(str 4223@@ -56,7 +56,7 @@ unsigned long arch_get_unmapped_area(str
4232 if (ARCH_SUN4C && len > 0x20000000) 4224 if (ARCH_SUN4C && len > 0x20000000)
4233 return -ENOMEM; 4225 return -ENOMEM;
@@ -4246,9 +4238,9 @@ diff -urNp linux-2.6.38.2/arch/sparc/kernel/sys_sparc_32.c linux-2.6.38.2/arch/s
4246 return addr; 4238 return addr;
4247 addr = vmm->vm_end; 4239 addr = vmm->vm_end;
4248 if (flags & MAP_SHARED) 4240 if (flags & MAP_SHARED)
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 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
4250--- linux-2.6.38.2/arch/sparc/kernel/sys_sparc_64.c 2011-03-14 21:20:32.000000000 -0400 4242--- linux-2.6.38.3/arch/sparc/kernel/sys_sparc_64.c 2011-03-14 21:20:32.000000000 -0400
4251+++ linux-2.6.38.2/arch/sparc/kernel/sys_sparc_64.c 2011-03-21 23:47:41.000000000 -0400 4243+++ linux-2.6.38.3/arch/sparc/kernel/sys_sparc_64.c 2011-04-17 15:57:32.000000000 -0400
4252@@ -124,7 +124,7 @@ unsigned long arch_get_unmapped_area(str 4244@@ -124,7 +124,7 @@ unsigned long arch_get_unmapped_area(str
4253 /* We do not accept a shared mapping if it would violate 4245 /* We do not accept a shared mapping if it would violate
4254 * cache aliasing constraints. 4246 * cache aliasing constraints.
@@ -4396,9 +4388,9 @@ diff -urNp linux-2.6.38.2/arch/sparc/kernel/sys_sparc_64.c linux-2.6.38.2/arch/s
4396 mm->get_unmapped_area = arch_get_unmapped_area_topdown; 4388 mm->get_unmapped_area = arch_get_unmapped_area_topdown;
4397 mm->unmap_area = arch_unmap_area_topdown; 4389 mm->unmap_area = arch_unmap_area_topdown;
4398 } 4390 }
4399diff -urNp linux-2.6.38.2/arch/sparc/kernel/traps_32.c linux-2.6.38.2/arch/sparc/kernel/traps_32.c 4391diff -urNp linux-2.6.38.3/arch/sparc/kernel/traps_32.c linux-2.6.38.3/arch/sparc/kernel/traps_32.c
4400--- linux-2.6.38.2/arch/sparc/kernel/traps_32.c 2011-03-14 21:20:32.000000000 -0400 4392--- linux-2.6.38.3/arch/sparc/kernel/traps_32.c 2011-03-14 21:20:32.000000000 -0400
4401+++ linux-2.6.38.2/arch/sparc/kernel/traps_32.c 2011-03-21 18:31:35.000000000 -0400 4393+++ linux-2.6.38.3/arch/sparc/kernel/traps_32.c 2011-04-17 15:57:32.000000000 -0400
4402@@ -76,7 +76,7 @@ void die_if_kernel(char *str, struct pt_ 4394@@ -76,7 +76,7 @@ void die_if_kernel(char *str, struct pt_
4403 count++ < 30 && 4395 count++ < 30 &&
4404 (((unsigned long) rw) >= PAGE_OFFSET) && 4396 (((unsigned long) rw) >= PAGE_OFFSET) &&
@@ -4408,9 +4400,9 @@ diff -urNp linux-2.6.38.2/arch/sparc/kernel/traps_32.c linux-2.6.38.2/arch/sparc
4408 (void *) rw->ins[7]); 4400 (void *) rw->ins[7]);
4409 rw = (struct reg_window32 *)rw->ins[6]; 4401 rw = (struct reg_window32 *)rw->ins[6];
4410 } 4402 }
4411diff -urNp linux-2.6.38.2/arch/sparc/kernel/traps_64.c linux-2.6.38.2/arch/sparc/kernel/traps_64.c 4403diff -urNp linux-2.6.38.3/arch/sparc/kernel/traps_64.c linux-2.6.38.3/arch/sparc/kernel/traps_64.c
4412--- linux-2.6.38.2/arch/sparc/kernel/traps_64.c 2011-03-14 21:20:32.000000000 -0400 4404--- linux-2.6.38.3/arch/sparc/kernel/traps_64.c 2011-03-14 21:20:32.000000000 -0400
4413+++ linux-2.6.38.2/arch/sparc/kernel/traps_64.c 2011-03-21 18:31:35.000000000 -0400 4405+++ linux-2.6.38.3/arch/sparc/kernel/traps_64.c 2011-04-17 15:57:32.000000000 -0400
4414@@ -75,7 +75,7 @@ static void dump_tl1_traplog(struct tl1_ 4406@@ -75,7 +75,7 @@ static void dump_tl1_traplog(struct tl1_
4415 i + 1, 4407 i + 1,
4416 p->trapstack[i].tstate, p->trapstack[i].tpc, 4408 p->trapstack[i].tstate, p->trapstack[i].tpc,
@@ -4527,9 +4519,9 @@ diff -urNp linux-2.6.38.2/arch/sparc/kernel/traps_64.c linux-2.6.38.2/arch/sparc
4527 (void *) rw->ins[7]); 4519 (void *) rw->ins[7]);
4528 4520
4529 rw = kernel_stack_up(rw); 4521 rw = kernel_stack_up(rw);
4530diff -urNp linux-2.6.38.2/arch/sparc/kernel/unaligned_64.c linux-2.6.38.2/arch/sparc/kernel/unaligned_64.c 4522diff -urNp linux-2.6.38.3/arch/sparc/kernel/unaligned_64.c linux-2.6.38.3/arch/sparc/kernel/unaligned_64.c
4531--- linux-2.6.38.2/arch/sparc/kernel/unaligned_64.c 2011-03-14 21:20:32.000000000 -0400 4523--- linux-2.6.38.3/arch/sparc/kernel/unaligned_64.c 2011-03-14 21:20:32.000000000 -0400
4532+++ linux-2.6.38.2/arch/sparc/kernel/unaligned_64.c 2011-03-21 18:31:35.000000000 -0400 4524+++ linux-2.6.38.3/arch/sparc/kernel/unaligned_64.c 2011-04-17 15:57:32.000000000 -0400
4533@@ -278,7 +278,7 @@ static void log_unaligned(struct pt_regs 4525@@ -278,7 +278,7 @@ static void log_unaligned(struct pt_regs
4534 static DEFINE_RATELIMIT_STATE(ratelimit, 5 * HZ, 5); 4526 static DEFINE_RATELIMIT_STATE(ratelimit, 5 * HZ, 5);
4535 4527
@@ -4539,9 +4531,9 @@ diff -urNp linux-2.6.38.2/arch/sparc/kernel/unaligned_64.c linux-2.6.38.2/arch/s
4539 regs->tpc, (void *) regs->tpc); 4531 regs->tpc, (void *) regs->tpc);
4540 } 4532 }
4541 } 4533 }
4542diff -urNp linux-2.6.38.2/arch/sparc/lib/atomic_64.S linux-2.6.38.2/arch/sparc/lib/atomic_64.S 4534diff -urNp linux-2.6.38.3/arch/sparc/lib/atomic_64.S linux-2.6.38.3/arch/sparc/lib/atomic_64.S
4543--- linux-2.6.38.2/arch/sparc/lib/atomic_64.S 2011-03-14 21:20:32.000000000 -0400 4535--- linux-2.6.38.3/arch/sparc/lib/atomic_64.S 2011-03-14 21:20:32.000000000 -0400
4544+++ linux-2.6.38.2/arch/sparc/lib/atomic_64.S 2011-03-21 18:31:35.000000000 -0400 4536+++ linux-2.6.38.3/arch/sparc/lib/atomic_64.S 2011-04-17 15:57:32.000000000 -0400
4545@@ -18,7 +18,12 @@ 4537@@ -18,7 +18,12 @@
4546 atomic_add: /* %o0 = increment, %o1 = atomic_ptr */ 4538 atomic_add: /* %o0 = increment, %o1 = atomic_ptr */
4547 BACKOFF_SETUP(%o2) 4539 BACKOFF_SETUP(%o2)
@@ -4776,9 +4768,9 @@ diff -urNp linux-2.6.38.2/arch/sparc/lib/atomic_64.S linux-2.6.38.2/arch/sparc/l
4776 casx [%o1], %g1, %g7 4768 casx [%o1], %g1, %g7
4777 cmp %g1, %g7 4769 cmp %g1, %g7
4778 bne,pn %xcc, BACKOFF_LABEL(2f, 1b) 4770 bne,pn %xcc, BACKOFF_LABEL(2f, 1b)
4779diff -urNp linux-2.6.38.2/arch/sparc/lib/ksyms.c linux-2.6.38.2/arch/sparc/lib/ksyms.c 4771diff -urNp linux-2.6.38.3/arch/sparc/lib/ksyms.c linux-2.6.38.3/arch/sparc/lib/ksyms.c
4780--- linux-2.6.38.2/arch/sparc/lib/ksyms.c 2011-03-14 21:20:32.000000000 -0400 4772--- linux-2.6.38.3/arch/sparc/lib/ksyms.c 2011-03-14 21:20:32.000000000 -0400
4781+++ linux-2.6.38.2/arch/sparc/lib/ksyms.c 2011-03-21 18:31:35.000000000 -0400 4773+++ linux-2.6.38.3/arch/sparc/lib/ksyms.c 2011-04-17 15:57:32.000000000 -0400
4782@@ -142,12 +142,17 @@ EXPORT_SYMBOL(__downgrade_write); 4774@@ -142,12 +142,17 @@ EXPORT_SYMBOL(__downgrade_write);
4783 4775
4784 /* Atomic counter implementation. */ 4776 /* Atomic counter implementation. */
@@ -4797,9 +4789,9 @@ diff -urNp linux-2.6.38.2/arch/sparc/lib/ksyms.c linux-2.6.38.2/arch/sparc/lib/k
4797 EXPORT_SYMBOL(atomic64_sub_ret); 4789 EXPORT_SYMBOL(atomic64_sub_ret);
4798 4790
4799 /* Atomic bit operations. */ 4791 /* Atomic bit operations. */
4800diff -urNp linux-2.6.38.2/arch/sparc/Makefile linux-2.6.38.2/arch/sparc/Makefile 4792diff -urNp linux-2.6.38.3/arch/sparc/Makefile linux-2.6.38.3/arch/sparc/Makefile
4801--- linux-2.6.38.2/arch/sparc/Makefile 2011-03-14 21:20:32.000000000 -0400 4793--- linux-2.6.38.3/arch/sparc/Makefile 2011-03-14 21:20:32.000000000 -0400
4802+++ linux-2.6.38.2/arch/sparc/Makefile 2011-03-21 18:31:35.000000000 -0400 4794+++ linux-2.6.38.3/arch/sparc/Makefile 2011-04-17 15:57:32.000000000 -0400
4803@@ -75,7 +75,7 @@ drivers-$(CONFIG_OPROFILE) += arch/sparc 4795@@ -75,7 +75,7 @@ drivers-$(CONFIG_OPROFILE) += arch/sparc
4804 # Export what is needed by arch/sparc/boot/Makefile 4796 # Export what is needed by arch/sparc/boot/Makefile
4805 export VMLINUX_INIT VMLINUX_MAIN 4797 export VMLINUX_INIT VMLINUX_MAIN
@@ -4809,9 +4801,9 @@ diff -urNp linux-2.6.38.2/arch/sparc/Makefile linux-2.6.38.2/arch/sparc/Makefile
4809 VMLINUX_MAIN += $(patsubst %/, %/lib.a, $(libs-y)) $(libs-y) 4801 VMLINUX_MAIN += $(patsubst %/, %/lib.a, $(libs-y)) $(libs-y)
4810 VMLINUX_MAIN += $(drivers-y) $(net-y) 4802 VMLINUX_MAIN += $(drivers-y) $(net-y)
4811 4803
4812diff -urNp linux-2.6.38.2/arch/sparc/mm/fault_32.c linux-2.6.38.2/arch/sparc/mm/fault_32.c 4804diff -urNp linux-2.6.38.3/arch/sparc/mm/fault_32.c linux-2.6.38.3/arch/sparc/mm/fault_32.c
4813--- linux-2.6.38.2/arch/sparc/mm/fault_32.c 2011-03-14 21:20:32.000000000 -0400 4805--- linux-2.6.38.3/arch/sparc/mm/fault_32.c 2011-03-14 21:20:32.000000000 -0400
4814+++ linux-2.6.38.2/arch/sparc/mm/fault_32.c 2011-03-21 18:31:35.000000000 -0400 4806+++ linux-2.6.38.3/arch/sparc/mm/fault_32.c 2011-04-17 15:57:32.000000000 -0400
4815@@ -22,6 +22,9 @@ 4807@@ -22,6 +22,9 @@
4816 #include <linux/interrupt.h> 4808 #include <linux/interrupt.h>
4817 #include <linux/module.h> 4809 #include <linux/module.h>
@@ -5116,9 +5108,9 @@ diff -urNp linux-2.6.38.2/arch/sparc/mm/fault_32.c linux-2.6.38.2/arch/sparc/mm/
5116 /* Allow reads even for write-only mappings */ 5108 /* Allow reads even for write-only mappings */
5117 if(!(vma->vm_flags & (VM_READ | VM_EXEC))) 5109 if(!(vma->vm_flags & (VM_READ | VM_EXEC)))
5118 goto bad_area; 5110 goto bad_area;
5119diff -urNp linux-2.6.38.2/arch/sparc/mm/fault_64.c linux-2.6.38.2/arch/sparc/mm/fault_64.c 5111diff -urNp linux-2.6.38.3/arch/sparc/mm/fault_64.c linux-2.6.38.3/arch/sparc/mm/fault_64.c
5120--- linux-2.6.38.2/arch/sparc/mm/fault_64.c 2011-03-14 21:20:32.000000000 -0400 5112--- linux-2.6.38.3/arch/sparc/mm/fault_64.c 2011-03-14 21:20:32.000000000 -0400
5121+++ linux-2.6.38.2/arch/sparc/mm/fault_64.c 2011-03-21 18:31:35.000000000 -0400 5113+++ linux-2.6.38.3/arch/sparc/mm/fault_64.c 2011-04-17 15:57:32.000000000 -0400
5122@@ -21,6 +21,9 @@ 5114@@ -21,6 +21,9 @@
5123 #include <linux/kprobes.h> 5115 #include <linux/kprobes.h>
5124 #include <linux/kdebug.h> 5116 #include <linux/kdebug.h>
@@ -5626,9 +5618,9 @@ diff -urNp linux-2.6.38.2/arch/sparc/mm/fault_64.c linux-2.6.38.2/arch/sparc/mm/
5626 /* Pure DTLB misses do not tell us whether the fault causing 5618 /* Pure DTLB misses do not tell us whether the fault causing
5627 * load/store/atomic was a write or not, it only says that there 5619 * load/store/atomic was a write or not, it only says that there
5628 * was no match. So in such a case we (carefully) read the 5620 * was no match. So in such a case we (carefully) read the
5629diff -urNp linux-2.6.38.2/arch/sparc/mm/hugetlbpage.c linux-2.6.38.2/arch/sparc/mm/hugetlbpage.c 5621diff -urNp linux-2.6.38.3/arch/sparc/mm/hugetlbpage.c linux-2.6.38.3/arch/sparc/mm/hugetlbpage.c
5630--- linux-2.6.38.2/arch/sparc/mm/hugetlbpage.c 2011-03-14 21:20:32.000000000 -0400 5622--- linux-2.6.38.3/arch/sparc/mm/hugetlbpage.c 2011-03-14 21:20:32.000000000 -0400
5631+++ linux-2.6.38.2/arch/sparc/mm/hugetlbpage.c 2011-03-21 23:47:41.000000000 -0400 5623+++ linux-2.6.38.3/arch/sparc/mm/hugetlbpage.c 2011-04-17 15:57:32.000000000 -0400
5632@@ -68,7 +68,7 @@ full_search: 5624@@ -68,7 +68,7 @@ full_search:
5633 } 5625 }
5634 return -ENOMEM; 5626 return -ENOMEM;
@@ -5688,9 +5680,9 @@ diff -urNp linux-2.6.38.2/arch/sparc/mm/hugetlbpage.c linux-2.6.38.2/arch/sparc/
5688 return addr; 5680 return addr;
5689 } 5681 }
5690 if (mm->get_unmapped_area == arch_get_unmapped_area) 5682 if (mm->get_unmapped_area == arch_get_unmapped_area)
5691diff -urNp linux-2.6.38.2/arch/sparc/mm/init_32.c linux-2.6.38.2/arch/sparc/mm/init_32.c 5683diff -urNp linux-2.6.38.3/arch/sparc/mm/init_32.c linux-2.6.38.3/arch/sparc/mm/init_32.c
5692--- linux-2.6.38.2/arch/sparc/mm/init_32.c 2011-03-14 21:20:32.000000000 -0400 5684--- linux-2.6.38.3/arch/sparc/mm/init_32.c 2011-03-14 21:20:32.000000000 -0400
5693+++ linux-2.6.38.2/arch/sparc/mm/init_32.c 2011-03-21 18:31:35.000000000 -0400 5685+++ linux-2.6.38.3/arch/sparc/mm/init_32.c 2011-04-17 15:57:32.000000000 -0400
5694@@ -318,6 +318,9 @@ extern void device_scan(void); 5686@@ -318,6 +318,9 @@ extern void device_scan(void);
5695 pgprot_t PAGE_SHARED __read_mostly; 5687 pgprot_t PAGE_SHARED __read_mostly;
5696 EXPORT_SYMBOL(PAGE_SHARED); 5688 EXPORT_SYMBOL(PAGE_SHARED);
@@ -5725,9 +5717,9 @@ diff -urNp linux-2.6.38.2/arch/sparc/mm/init_32.c linux-2.6.38.2/arch/sparc/mm/i
5725 protection_map[12] = PAGE_READONLY; 5717 protection_map[12] = PAGE_READONLY;
5726 protection_map[13] = PAGE_READONLY; 5718 protection_map[13] = PAGE_READONLY;
5727 protection_map[14] = PAGE_SHARED; 5719 protection_map[14] = PAGE_SHARED;
5728diff -urNp linux-2.6.38.2/arch/sparc/mm/Makefile linux-2.6.38.2/arch/sparc/mm/Makefile 5720diff -urNp linux-2.6.38.3/arch/sparc/mm/Makefile linux-2.6.38.3/arch/sparc/mm/Makefile
5729--- linux-2.6.38.2/arch/sparc/mm/Makefile 2011-03-14 21:20:32.000000000 -0400 5721--- linux-2.6.38.3/arch/sparc/mm/Makefile 2011-03-14 21:20:32.000000000 -0400
5730+++ linux-2.6.38.2/arch/sparc/mm/Makefile 2011-03-21 18:31:35.000000000 -0400 5722+++ linux-2.6.38.3/arch/sparc/mm/Makefile 2011-04-17 15:57:32.000000000 -0400
5731@@ -2,7 +2,7 @@ 5723@@ -2,7 +2,7 @@
5732 # 5724 #
5733 5725
@@ -5737,9 +5729,9 @@ diff -urNp linux-2.6.38.2/arch/sparc/mm/Makefile linux-2.6.38.2/arch/sparc/mm/Ma
5737 5729
5738 obj-$(CONFIG_SPARC64) += ultra.o tlb.o tsb.o 5730 obj-$(CONFIG_SPARC64) += ultra.o tlb.o tsb.o
5739 obj-y += fault_$(BITS).o 5731 obj-y += fault_$(BITS).o
5740diff -urNp linux-2.6.38.2/arch/sparc/mm/srmmu.c linux-2.6.38.2/arch/sparc/mm/srmmu.c 5732diff -urNp linux-2.6.38.3/arch/sparc/mm/srmmu.c linux-2.6.38.3/arch/sparc/mm/srmmu.c
5741--- linux-2.6.38.2/arch/sparc/mm/srmmu.c 2011-03-14 21:20:32.000000000 -0400 5733--- linux-2.6.38.3/arch/sparc/mm/srmmu.c 2011-03-14 21:20:32.000000000 -0400
5742+++ linux-2.6.38.2/arch/sparc/mm/srmmu.c 2011-03-21 18:31:35.000000000 -0400 5734+++ linux-2.6.38.3/arch/sparc/mm/srmmu.c 2011-04-17 15:57:32.000000000 -0400
5743@@ -2200,6 +2200,13 @@ void __init ld_mmu_srmmu(void) 5735@@ -2200,6 +2200,13 @@ void __init ld_mmu_srmmu(void)
5744 PAGE_SHARED = pgprot_val(SRMMU_PAGE_SHARED); 5736 PAGE_SHARED = pgprot_val(SRMMU_PAGE_SHARED);
5745 BTFIXUPSET_INT(page_copy, pgprot_val(SRMMU_PAGE_COPY)); 5737 BTFIXUPSET_INT(page_copy, pgprot_val(SRMMU_PAGE_COPY));
@@ -5754,9 +5746,9 @@ diff -urNp linux-2.6.38.2/arch/sparc/mm/srmmu.c linux-2.6.38.2/arch/sparc/mm/srm
5754 BTFIXUPSET_INT(page_kernel, pgprot_val(SRMMU_PAGE_KERNEL)); 5746 BTFIXUPSET_INT(page_kernel, pgprot_val(SRMMU_PAGE_KERNEL));
5755 page_kernel = pgprot_val(SRMMU_PAGE_KERNEL); 5747 page_kernel = pgprot_val(SRMMU_PAGE_KERNEL);
5756 5748
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 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
5758--- linux-2.6.38.2/arch/um/include/asm/kmap_types.h 2011-03-14 21:20:32.000000000 -0400 5750--- linux-2.6.38.3/arch/um/include/asm/kmap_types.h 2011-03-14 21:20:32.000000000 -0400
5759+++ linux-2.6.38.2/arch/um/include/asm/kmap_types.h 2011-03-21 18:31:35.000000000 -0400 5751+++ linux-2.6.38.3/arch/um/include/asm/kmap_types.h 2011-04-17 15:57:32.000000000 -0400
5760@@ -23,6 +23,7 @@ enum km_type { 5752@@ -23,6 +23,7 @@ enum km_type {
5761 KM_IRQ1, 5753 KM_IRQ1,
5762 KM_SOFTIRQ0, 5754 KM_SOFTIRQ0,
@@ -5765,9 +5757,9 @@ diff -urNp linux-2.6.38.2/arch/um/include/asm/kmap_types.h linux-2.6.38.2/arch/u
5765 KM_TYPE_NR 5757 KM_TYPE_NR
5766 }; 5758 };
5767 5759
5768diff -urNp linux-2.6.38.2/arch/um/include/asm/page.h linux-2.6.38.2/arch/um/include/asm/page.h 5760diff -urNp linux-2.6.38.3/arch/um/include/asm/page.h linux-2.6.38.3/arch/um/include/asm/page.h
5769--- linux-2.6.38.2/arch/um/include/asm/page.h 2011-03-14 21:20:32.000000000 -0400 5761--- linux-2.6.38.3/arch/um/include/asm/page.h 2011-03-14 21:20:32.000000000 -0400
5770+++ linux-2.6.38.2/arch/um/include/asm/page.h 2011-03-21 18:31:35.000000000 -0400 5762+++ linux-2.6.38.3/arch/um/include/asm/page.h 2011-04-17 15:57:32.000000000 -0400
5771@@ -14,6 +14,9 @@ 5763@@ -14,6 +14,9 @@
5772 #define PAGE_SIZE (_AC(1, UL) << PAGE_SHIFT) 5764 #define PAGE_SIZE (_AC(1, UL) << PAGE_SHIFT)
5773 #define PAGE_MASK (~(PAGE_SIZE-1)) 5765 #define PAGE_MASK (~(PAGE_SIZE-1))
@@ -5778,9 +5770,9 @@ diff -urNp linux-2.6.38.2/arch/um/include/asm/page.h linux-2.6.38.2/arch/um/incl
5778 #ifndef __ASSEMBLY__ 5770 #ifndef __ASSEMBLY__
5779 5771
5780 struct page; 5772 struct page;
5781diff -urNp linux-2.6.38.2/arch/um/kernel/process.c linux-2.6.38.2/arch/um/kernel/process.c 5773diff -urNp linux-2.6.38.3/arch/um/kernel/process.c linux-2.6.38.3/arch/um/kernel/process.c
5782--- linux-2.6.38.2/arch/um/kernel/process.c 2011-03-14 21:20:32.000000000 -0400 5774--- linux-2.6.38.3/arch/um/kernel/process.c 2011-03-14 21:20:32.000000000 -0400
5783+++ linux-2.6.38.2/arch/um/kernel/process.c 2011-03-21 18:31:35.000000000 -0400 5775+++ linux-2.6.38.3/arch/um/kernel/process.c 2011-04-17 15:57:32.000000000 -0400
5784@@ -404,22 +404,6 @@ int singlestepping(void * t) 5776@@ -404,22 +404,6 @@ int singlestepping(void * t)
5785 return 2; 5777 return 2;
5786 } 5778 }
@@ -5804,9 +5796,9 @@ diff -urNp linux-2.6.38.2/arch/um/kernel/process.c linux-2.6.38.2/arch/um/kernel
5804 unsigned long get_wchan(struct task_struct *p) 5796 unsigned long get_wchan(struct task_struct *p)
5805 { 5797 {
5806 unsigned long stack_page, sp, ip; 5798 unsigned long stack_page, sp, ip;
5807diff -urNp linux-2.6.38.2/arch/um/sys-i386/syscalls.c linux-2.6.38.2/arch/um/sys-i386/syscalls.c 5799diff -urNp linux-2.6.38.3/arch/um/sys-i386/syscalls.c linux-2.6.38.3/arch/um/sys-i386/syscalls.c
5808--- linux-2.6.38.2/arch/um/sys-i386/syscalls.c 2011-03-14 21:20:32.000000000 -0400 5800--- linux-2.6.38.3/arch/um/sys-i386/syscalls.c 2011-03-14 21:20:32.000000000 -0400
5809+++ linux-2.6.38.2/arch/um/sys-i386/syscalls.c 2011-03-21 18:31:35.000000000 -0400 5801+++ linux-2.6.38.3/arch/um/sys-i386/syscalls.c 2011-04-17 15:57:32.000000000 -0400
5810@@ -11,6 +11,21 @@ 5802@@ -11,6 +11,21 @@
5811 #include "asm/uaccess.h" 5803 #include "asm/uaccess.h"
5812 #include "asm/unistd.h" 5804 #include "asm/unistd.h"
@@ -5829,9 +5821,9 @@ diff -urNp linux-2.6.38.2/arch/um/sys-i386/syscalls.c linux-2.6.38.2/arch/um/sys
5829 /* 5821 /*
5830 * The prototype on i386 is: 5822 * The prototype on i386 is:
5831 * 5823 *
5832diff -urNp linux-2.6.38.2/arch/x86/boot/bitops.h linux-2.6.38.2/arch/x86/boot/bitops.h 5824diff -urNp linux-2.6.38.3/arch/x86/boot/bitops.h linux-2.6.38.3/arch/x86/boot/bitops.h
5833--- linux-2.6.38.2/arch/x86/boot/bitops.h 2011-03-14 21:20:32.000000000 -0400 5825--- linux-2.6.38.3/arch/x86/boot/bitops.h 2011-03-14 21:20:32.000000000 -0400
5834+++ linux-2.6.38.2/arch/x86/boot/bitops.h 2011-03-21 18:31:35.000000000 -0400 5826+++ linux-2.6.38.3/arch/x86/boot/bitops.h 2011-04-17 15:57:32.000000000 -0400
5835@@ -26,7 +26,7 @@ static inline int variable_test_bit(int 5827@@ -26,7 +26,7 @@ static inline int variable_test_bit(int
5836 u8 v; 5828 u8 v;
5837 const u32 *p = (const u32 *)addr; 5829 const u32 *p = (const u32 *)addr;
@@ -5850,9 +5842,9 @@ diff -urNp linux-2.6.38.2/arch/x86/boot/bitops.h linux-2.6.38.2/arch/x86/boot/bi
5850 } 5842 }
5851 5843
5852 #endif /* BOOT_BITOPS_H */ 5844 #endif /* BOOT_BITOPS_H */
5853diff -urNp linux-2.6.38.2/arch/x86/boot/boot.h linux-2.6.38.2/arch/x86/boot/boot.h 5845diff -urNp linux-2.6.38.3/arch/x86/boot/boot.h linux-2.6.38.3/arch/x86/boot/boot.h
5854--- linux-2.6.38.2/arch/x86/boot/boot.h 2011-03-14 21:20:32.000000000 -0400 5846--- linux-2.6.38.3/arch/x86/boot/boot.h 2011-03-14 21:20:32.000000000 -0400
5855+++ linux-2.6.38.2/arch/x86/boot/boot.h 2011-03-21 18:31:35.000000000 -0400 5847+++ linux-2.6.38.3/arch/x86/boot/boot.h 2011-04-17 15:57:32.000000000 -0400
5856@@ -85,7 +85,7 @@ static inline void io_delay(void) 5848@@ -85,7 +85,7 @@ static inline void io_delay(void)
5857 static inline u16 ds(void) 5849 static inline u16 ds(void)
5858 { 5850 {
@@ -5871,9 +5863,9 @@ diff -urNp linux-2.6.38.2/arch/x86/boot/boot.h linux-2.6.38.2/arch/x86/boot/boot
5871 : "=qm" (diff), "+D" (s1), "+S" (s2), "+c" (len)); 5863 : "=qm" (diff), "+D" (s1), "+S" (s2), "+c" (len));
5872 return diff; 5864 return diff;
5873 } 5865 }
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 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
5875--- linux-2.6.38.2/arch/x86/boot/compressed/head_32.S 2011-03-14 21:20:32.000000000 -0400 5867--- linux-2.6.38.3/arch/x86/boot/compressed/head_32.S 2011-03-14 21:20:32.000000000 -0400
5876+++ linux-2.6.38.2/arch/x86/boot/compressed/head_32.S 2011-03-21 18:31:35.000000000 -0400 5868+++ linux-2.6.38.3/arch/x86/boot/compressed/head_32.S 2011-04-17 15:57:32.000000000 -0400
5877@@ -76,7 +76,7 @@ ENTRY(startup_32) 5869@@ -76,7 +76,7 @@ ENTRY(startup_32)
5878 notl %eax 5870 notl %eax
5879 andl %eax, %ebx 5871 andl %eax, %ebx
@@ -5902,9 +5894,9 @@ diff -urNp linux-2.6.38.2/arch/x86/boot/compressed/head_32.S linux-2.6.38.2/arch
5902 addl %ebx, -__PAGE_OFFSET(%ebx, %ecx) 5894 addl %ebx, -__PAGE_OFFSET(%ebx, %ecx)
5903 jmp 1b 5895 jmp 1b
5904 2: 5896 2:
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 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
5906--- linux-2.6.38.2/arch/x86/boot/compressed/head_64.S 2011-03-14 21:20:32.000000000 -0400 5898--- linux-2.6.38.3/arch/x86/boot/compressed/head_64.S 2011-03-14 21:20:32.000000000 -0400
5907+++ linux-2.6.38.2/arch/x86/boot/compressed/head_64.S 2011-03-21 18:31:35.000000000 -0400 5899+++ linux-2.6.38.3/arch/x86/boot/compressed/head_64.S 2011-04-17 15:57:32.000000000 -0400
5908@@ -91,7 +91,7 @@ ENTRY(startup_32) 5900@@ -91,7 +91,7 @@ ENTRY(startup_32)
5909 notl %eax 5901 notl %eax
5910 andl %eax, %ebx 5902 andl %eax, %ebx
@@ -5923,9 +5915,9 @@ diff -urNp linux-2.6.38.2/arch/x86/boot/compressed/head_64.S linux-2.6.38.2/arch
5923 #endif 5915 #endif
5924 5916
5925 /* Target address to relocate to for decompression */ 5917 /* Target address to relocate to for decompression */
5926diff -urNp linux-2.6.38.2/arch/x86/boot/compressed/misc.c linux-2.6.38.2/arch/x86/boot/compressed/misc.c 5918diff -urNp linux-2.6.38.3/arch/x86/boot/compressed/misc.c linux-2.6.38.3/arch/x86/boot/compressed/misc.c
5927--- linux-2.6.38.2/arch/x86/boot/compressed/misc.c 2011-03-14 21:20:32.000000000 -0400 5919--- linux-2.6.38.3/arch/x86/boot/compressed/misc.c 2011-03-14 21:20:32.000000000 -0400
5928+++ linux-2.6.38.2/arch/x86/boot/compressed/misc.c 2011-03-21 18:31:35.000000000 -0400 5920+++ linux-2.6.38.3/arch/x86/boot/compressed/misc.c 2011-04-17 15:57:32.000000000 -0400
5929@@ -310,7 +310,7 @@ static void parse_elf(void *output) 5921@@ -310,7 +310,7 @@ static void parse_elf(void *output)
5930 case PT_LOAD: 5922 case PT_LOAD:
5931 #ifdef CONFIG_RELOCATABLE 5923 #ifdef CONFIG_RELOCATABLE
@@ -5944,9 +5936,9 @@ diff -urNp linux-2.6.38.2/arch/x86/boot/compressed/misc.c linux-2.6.38.2/arch/x8
5944 error("Wrong destination address"); 5936 error("Wrong destination address");
5945 #endif 5937 #endif
5946 5938
5947diff -urNp linux-2.6.38.2/arch/x86/boot/compressed/relocs.c linux-2.6.38.2/arch/x86/boot/compressed/relocs.c 5939diff -urNp linux-2.6.38.3/arch/x86/boot/compressed/relocs.c linux-2.6.38.3/arch/x86/boot/compressed/relocs.c
5948--- linux-2.6.38.2/arch/x86/boot/compressed/relocs.c 2011-03-14 21:20:32.000000000 -0400 5940--- linux-2.6.38.3/arch/x86/boot/compressed/relocs.c 2011-03-14 21:20:32.000000000 -0400
5949+++ linux-2.6.38.2/arch/x86/boot/compressed/relocs.c 2011-03-21 18:31:35.000000000 -0400 5941+++ linux-2.6.38.3/arch/x86/boot/compressed/relocs.c 2011-04-17 15:57:32.000000000 -0400
5950@@ -13,8 +13,11 @@ 5942@@ -13,8 +13,11 @@
5951 5943
5952 static void die(char *fmt, ...); 5944 static void die(char *fmt, ...);
@@ -6139,9 +6131,9 @@ diff -urNp linux-2.6.38.2/arch/x86/boot/compressed/relocs.c linux-2.6.38.2/arch/
6139 read_shdrs(fp); 6131 read_shdrs(fp);
6140 read_strtabs(fp); 6132 read_strtabs(fp);
6141 read_symtabs(fp); 6133 read_symtabs(fp);
6142diff -urNp linux-2.6.38.2/arch/x86/boot/cpucheck.c linux-2.6.38.2/arch/x86/boot/cpucheck.c 6134diff -urNp linux-2.6.38.3/arch/x86/boot/cpucheck.c linux-2.6.38.3/arch/x86/boot/cpucheck.c
6143--- linux-2.6.38.2/arch/x86/boot/cpucheck.c 2011-03-14 21:20:32.000000000 -0400 6135--- linux-2.6.38.3/arch/x86/boot/cpucheck.c 2011-03-14 21:20:32.000000000 -0400
6144+++ linux-2.6.38.2/arch/x86/boot/cpucheck.c 2011-03-21 18:31:35.000000000 -0400 6136+++ linux-2.6.38.3/arch/x86/boot/cpucheck.c 2011-04-17 15:57:32.000000000 -0400
6145@@ -74,7 +74,7 @@ static int has_fpu(void) 6137@@ -74,7 +74,7 @@ static int has_fpu(void)
6146 u16 fcw = -1, fsw = -1; 6138 u16 fcw = -1, fsw = -1;
6147 u32 cr0; 6139 u32 cr0;
@@ -6237,9 +6229,9 @@ diff -urNp linux-2.6.38.2/arch/x86/boot/cpucheck.c linux-2.6.38.2/arch/x86/boot/
6237 6229
6238 err = check_flags(); 6230 err = check_flags();
6239 } 6231 }
6240diff -urNp linux-2.6.38.2/arch/x86/boot/header.S linux-2.6.38.2/arch/x86/boot/header.S 6232diff -urNp linux-2.6.38.3/arch/x86/boot/header.S linux-2.6.38.3/arch/x86/boot/header.S
6241--- linux-2.6.38.2/arch/x86/boot/header.S 2011-03-14 21:20:32.000000000 -0400 6233--- linux-2.6.38.3/arch/x86/boot/header.S 2011-03-14 21:20:32.000000000 -0400
6242+++ linux-2.6.38.2/arch/x86/boot/header.S 2011-03-21 18:31:35.000000000 -0400 6234+++ linux-2.6.38.3/arch/x86/boot/header.S 2011-04-17 15:57:32.000000000 -0400
6243@@ -224,7 +224,7 @@ setup_data: .quad 0 # 64-bit physical 6235@@ -224,7 +224,7 @@ setup_data: .quad 0 # 64-bit physical
6244 # single linked list of 6236 # single linked list of
6245 # struct setup_data 6237 # struct setup_data
@@ -6249,9 +6241,9 @@ diff -urNp linux-2.6.38.2/arch/x86/boot/header.S linux-2.6.38.2/arch/x86/boot/he
6249 6241
6250 #define ZO_INIT_SIZE (ZO__end - ZO_startup_32 + ZO_z_extract_offset) 6242 #define ZO_INIT_SIZE (ZO__end - ZO_startup_32 + ZO_z_extract_offset)
6251 #define VO_INIT_SIZE (VO__end - VO__text) 6243 #define VO_INIT_SIZE (VO__end - VO__text)
6252diff -urNp linux-2.6.38.2/arch/x86/boot/memory.c linux-2.6.38.2/arch/x86/boot/memory.c 6244diff -urNp linux-2.6.38.3/arch/x86/boot/memory.c linux-2.6.38.3/arch/x86/boot/memory.c
6253--- linux-2.6.38.2/arch/x86/boot/memory.c 2011-03-14 21:20:32.000000000 -0400 6245--- linux-2.6.38.3/arch/x86/boot/memory.c 2011-03-14 21:20:32.000000000 -0400
6254+++ linux-2.6.38.2/arch/x86/boot/memory.c 2011-03-21 18:31:35.000000000 -0400 6246+++ linux-2.6.38.3/arch/x86/boot/memory.c 2011-04-17 15:57:32.000000000 -0400
6255@@ -19,7 +19,7 @@ 6247@@ -19,7 +19,7 @@
6256 6248
6257 static int detect_memory_e820(void) 6249 static int detect_memory_e820(void)
@@ -6261,9 +6253,9 @@ diff -urNp linux-2.6.38.2/arch/x86/boot/memory.c linux-2.6.38.2/arch/x86/boot/me
6261 struct biosregs ireg, oreg; 6253 struct biosregs ireg, oreg;
6262 struct e820entry *desc = boot_params.e820_map; 6254 struct e820entry *desc = boot_params.e820_map;
6263 static struct e820entry buf; /* static so it is zeroed */ 6255 static struct e820entry buf; /* static so it is zeroed */
6264diff -urNp linux-2.6.38.2/arch/x86/boot/video.c linux-2.6.38.2/arch/x86/boot/video.c 6256diff -urNp linux-2.6.38.3/arch/x86/boot/video.c linux-2.6.38.3/arch/x86/boot/video.c
6265--- linux-2.6.38.2/arch/x86/boot/video.c 2011-03-14 21:20:32.000000000 -0400 6257--- linux-2.6.38.3/arch/x86/boot/video.c 2011-03-14 21:20:32.000000000 -0400
6266+++ linux-2.6.38.2/arch/x86/boot/video.c 2011-03-21 18:31:35.000000000 -0400 6258+++ linux-2.6.38.3/arch/x86/boot/video.c 2011-04-17 15:57:32.000000000 -0400
6267@@ -96,7 +96,7 @@ static void store_mode_params(void) 6259@@ -96,7 +96,7 @@ static void store_mode_params(void)
6268 static unsigned int get_entry(void) 6260 static unsigned int get_entry(void)
6269 { 6261 {
@@ -6273,9 +6265,9 @@ diff -urNp linux-2.6.38.2/arch/x86/boot/video.c linux-2.6.38.2/arch/x86/boot/vid
6273 int key; 6265 int key;
6274 unsigned int v; 6266 unsigned int v;
6275 6267
6276diff -urNp linux-2.6.38.2/arch/x86/boot/video-vesa.c linux-2.6.38.2/arch/x86/boot/video-vesa.c 6268diff -urNp linux-2.6.38.3/arch/x86/boot/video-vesa.c linux-2.6.38.3/arch/x86/boot/video-vesa.c
6277--- linux-2.6.38.2/arch/x86/boot/video-vesa.c 2011-03-14 21:20:32.000000000 -0400 6269--- linux-2.6.38.3/arch/x86/boot/video-vesa.c 2011-03-14 21:20:32.000000000 -0400
6278+++ linux-2.6.38.2/arch/x86/boot/video-vesa.c 2011-03-21 18:31:35.000000000 -0400 6270+++ linux-2.6.38.3/arch/x86/boot/video-vesa.c 2011-04-17 15:57:32.000000000 -0400
6279@@ -200,6 +200,7 @@ static void vesa_store_pm_info(void) 6271@@ -200,6 +200,7 @@ static void vesa_store_pm_info(void)
6280 6272
6281 boot_params.screen_info.vesapm_seg = oreg.es; 6273 boot_params.screen_info.vesapm_seg = oreg.es;
@@ -6284,9 +6276,9 @@ diff -urNp linux-2.6.38.2/arch/x86/boot/video-vesa.c linux-2.6.38.2/arch/x86/boo
6284 } 6276 }
6285 6277
6286 /* 6278 /*
6287diff -urNp linux-2.6.38.2/arch/x86/ia32/ia32_aout.c linux-2.6.38.2/arch/x86/ia32/ia32_aout.c 6279diff -urNp linux-2.6.38.3/arch/x86/ia32/ia32_aout.c linux-2.6.38.3/arch/x86/ia32/ia32_aout.c
6288--- linux-2.6.38.2/arch/x86/ia32/ia32_aout.c 2011-03-14 21:20:32.000000000 -0400 6280--- linux-2.6.38.3/arch/x86/ia32/ia32_aout.c 2011-03-14 21:20:32.000000000 -0400
6289+++ linux-2.6.38.2/arch/x86/ia32/ia32_aout.c 2011-03-21 18:31:35.000000000 -0400 6281+++ linux-2.6.38.3/arch/x86/ia32/ia32_aout.c 2011-04-17 15:57:32.000000000 -0400
6290@@ -162,6 +162,8 @@ static int aout_core_dump(long signr, st 6282@@ -162,6 +162,8 @@ static int aout_core_dump(long signr, st
6291 unsigned long dump_start, dump_size; 6283 unsigned long dump_start, dump_size;
6292 struct user32 dump; 6284 struct user32 dump;
@@ -6296,9 +6288,9 @@ diff -urNp linux-2.6.38.2/arch/x86/ia32/ia32_aout.c linux-2.6.38.2/arch/x86/ia32
6296 fs = get_fs(); 6288 fs = get_fs();
6297 set_fs(KERNEL_DS); 6289 set_fs(KERNEL_DS);
6298 has_dumped = 1; 6290 has_dumped = 1;
6299diff -urNp linux-2.6.38.2/arch/x86/ia32/ia32entry.S linux-2.6.38.2/arch/x86/ia32/ia32entry.S 6291diff -urNp linux-2.6.38.3/arch/x86/ia32/ia32entry.S linux-2.6.38.3/arch/x86/ia32/ia32entry.S
6300--- linux-2.6.38.2/arch/x86/ia32/ia32entry.S 2011-03-14 21:20:32.000000000 -0400 6292--- linux-2.6.38.3/arch/x86/ia32/ia32entry.S 2011-03-14 21:20:32.000000000 -0400
6301+++ linux-2.6.38.2/arch/x86/ia32/ia32entry.S 2011-03-21 18:31:35.000000000 -0400 6293+++ linux-2.6.38.3/arch/x86/ia32/ia32entry.S 2011-04-17 15:57:32.000000000 -0400
6302@@ -13,6 +13,7 @@ 6294@@ -13,6 +13,7 @@
6303 #include <asm/thread_info.h> 6295 #include <asm/thread_info.h>
6304 #include <asm/segment.h> 6296 #include <asm/segment.h>
@@ -6307,7 +6299,7 @@ diff -urNp linux-2.6.38.2/arch/x86/ia32/ia32entry.S linux-2.6.38.2/arch/x86/ia32
6307 #include <linux/linkage.h> 6299 #include <linux/linkage.h>
6308 6300
6309 /* Avoid __ASSEMBLER__'ifying <linux/audit.h> just for this. */ 6301 /* Avoid __ASSEMBLER__'ifying <linux/audit.h> just for this. */
6310@@ -93,6 +94,18 @@ ENTRY(native_irq_enable_sysexit) 6302@@ -93,6 +94,23 @@ ENTRY(native_irq_enable_sysexit)
6311 ENDPROC(native_irq_enable_sysexit) 6303 ENDPROC(native_irq_enable_sysexit)
6312 #endif 6304 #endif
6313 6305
@@ -6321,20 +6313,36 @@ diff -urNp linux-2.6.38.2/arch/x86/ia32/ia32entry.S linux-2.6.38.2/arch/x86/ia32
6321+#ifdef CONFIG_PAX_MEMORY_UDEREF 6313+#ifdef CONFIG_PAX_MEMORY_UDEREF
6322+ call pax_exit_kernel_user 6314+ call pax_exit_kernel_user
6323+#endif 6315+#endif
6316+#ifdef CONFIG_PAX_RANDKSTACK
6317+ push %rax
6318+ call pax_randomize_kstack
6319+ pop %rax
6320+#endif
6324+ .endm 6321+ .endm
6325+ 6322+
6326 /* 6323 /*
6327 * 32bit SYSENTER instruction entry. 6324 * 32bit SYSENTER instruction entry.
6328 * 6325 *
6329@@ -120,6 +133,7 @@ ENTRY(ia32_sysenter_target) 6326@@ -119,7 +137,7 @@ ENTRY(ia32_sysenter_target)
6327 CFI_REGISTER rsp,rbp
6330 SWAPGS_UNSAFE_STACK 6328 SWAPGS_UNSAFE_STACK
6331 movq PER_CPU_VAR(kernel_stack), %rsp 6329 movq PER_CPU_VAR(kernel_stack), %rsp
6332 addq $(KERNEL_STACK_OFFSET),%rsp 6330- addq $(KERNEL_STACK_OFFSET),%rsp
6333+ pax_enter_kernel_user 6331+ pax_enter_kernel_user
6334 /* 6332 /*
6335 * No need to follow this irqs on/off section: the syscall 6333 * No need to follow this irqs on/off section: the syscall
6336 * disabled irqs, here we enable it straight after entry: 6334 * disabled irqs, here we enable it straight after entry:
6337@@ -150,6 +164,12 @@ ENTRY(ia32_sysenter_target) 6335@@ -135,7 +153,8 @@ 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)
6338 SAVE_ARGS 0,0,1 6346 SAVE_ARGS 0,0,1
6339 /* no need to do an access_ok check here because rbp has been 6347 /* no need to do an access_ok check here because rbp has been
6340 32bit zero extended */ 6348 32bit zero extended */
@@ -6347,7 +6355,7 @@ diff -urNp linux-2.6.38.2/arch/x86/ia32/ia32entry.S linux-2.6.38.2/arch/x86/ia32
6347 1: movl (%rbp),%ebp 6355 1: movl (%rbp),%ebp
6348 .section __ex_table,"a" 6356 .section __ex_table,"a"
6349 .quad 1b,ia32_badarg 6357 .quad 1b,ia32_badarg
6350@@ -172,6 +192,7 @@ sysenter_dispatch: 6358@@ -172,6 +197,7 @@ sysenter_dispatch:
6351 testl $_TIF_ALLWORK_MASK,TI_flags(%r10) 6359 testl $_TIF_ALLWORK_MASK,TI_flags(%r10)
6352 jnz sysexit_audit 6360 jnz sysexit_audit
6353 sysexit_from_sys_call: 6361 sysexit_from_sys_call:
@@ -6355,7 +6363,15 @@ diff -urNp linux-2.6.38.2/arch/x86/ia32/ia32entry.S linux-2.6.38.2/arch/x86/ia32
6355 andl $~TS_COMPAT,TI_status(%r10) 6363 andl $~TS_COMPAT,TI_status(%r10)
6356 /* clear IF, that popfq doesn't enable interrupts early */ 6364 /* clear IF, that popfq doesn't enable interrupts early */
6357 andl $~0x200,EFLAGS-R11(%rsp) 6365 andl $~0x200,EFLAGS-R11(%rsp)
6358@@ -290,6 +311,11 @@ ENTRY(ia32_cstar_target) 6366@@ -283,19 +309,24 @@ ENDPROC(ia32_sysenter_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
6359 movl %esp,%r8d 6375 movl %esp,%r8d
6360 CFI_REGISTER rsp,r8 6376 CFI_REGISTER rsp,r8
6361 movq PER_CPU_VAR(kernel_stack),%rsp 6377 movq PER_CPU_VAR(kernel_stack),%rsp
@@ -6367,7 +6383,14 @@ diff -urNp linux-2.6.38.2/arch/x86/ia32/ia32entry.S linux-2.6.38.2/arch/x86/ia32
6367 /* 6383 /*
6368 * No need to follow this irqs on/off section: the syscall 6384 * No need to follow this irqs on/off section: the syscall
6369 * disabled irqs and here we enable it straight after entry: 6385 * disabled irqs and here we enable it straight after entry:
6370@@ -311,6 +337,12 @@ ENTRY(ia32_cstar_target) 6386 */
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)
6371 /* no need to do an access_ok check here because r8 has been 6394 /* no need to do an access_ok check here because r8 has been
6372 32bit zero extended */ 6395 32bit zero extended */
6373 /* hardware stack frame is complete now */ 6396 /* hardware stack frame is complete now */
@@ -6380,7 +6403,16 @@ diff -urNp linux-2.6.38.2/arch/x86/ia32/ia32entry.S linux-2.6.38.2/arch/x86/ia32
6380 1: movl (%r8),%r9d 6403 1: movl (%r8),%r9d
6381 .section __ex_table,"a" 6404 .section __ex_table,"a"
6382 .quad 1b,ia32_badarg 6405 .quad 1b,ia32_badarg
6383@@ -333,6 +365,7 @@ cstar_dispatch: 6406@@ -323,7 +360,7 @@ ENTRY(ia32_cstar_target)
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:
6384 testl $_TIF_ALLWORK_MASK,TI_flags(%r10) 6416 testl $_TIF_ALLWORK_MASK,TI_flags(%r10)
6385 jnz sysretl_audit 6417 jnz sysretl_audit
6386 sysretl_from_sys_call: 6418 sysretl_from_sys_call:
@@ -6388,7 +6420,7 @@ diff -urNp linux-2.6.38.2/arch/x86/ia32/ia32entry.S linux-2.6.38.2/arch/x86/ia32
6388 andl $~TS_COMPAT,TI_status(%r10) 6420 andl $~TS_COMPAT,TI_status(%r10)
6389 RESTORE_ARGS 1,-ARG_SKIP,1,1,1 6421 RESTORE_ARGS 1,-ARG_SKIP,1,1,1
6390 movl RIP-ARGOFFSET(%rsp),%ecx 6422 movl RIP-ARGOFFSET(%rsp),%ecx
6391@@ -415,6 +448,7 @@ ENTRY(ia32_syscall) 6423@@ -415,6 +453,7 @@ ENTRY(ia32_syscall)
6392 CFI_REL_OFFSET rip,RIP-RIP 6424 CFI_REL_OFFSET rip,RIP-RIP
6393 PARAVIRT_ADJUST_EXCEPTION_FRAME 6425 PARAVIRT_ADJUST_EXCEPTION_FRAME
6394 SWAPGS 6426 SWAPGS
@@ -6396,9 +6428,9 @@ diff -urNp linux-2.6.38.2/arch/x86/ia32/ia32entry.S linux-2.6.38.2/arch/x86/ia32
6396 /* 6428 /*
6397 * No need to follow this irqs on/off section: the syscall 6429 * No need to follow this irqs on/off section: the syscall
6398 * disabled irqs and here we enable it straight after entry: 6430 * disabled irqs and here we enable it straight after entry:
6399diff -urNp linux-2.6.38.2/arch/x86/ia32/ia32_signal.c linux-2.6.38.2/arch/x86/ia32/ia32_signal.c 6431diff -urNp linux-2.6.38.3/arch/x86/ia32/ia32_signal.c linux-2.6.38.3/arch/x86/ia32/ia32_signal.c
6400--- linux-2.6.38.2/arch/x86/ia32/ia32_signal.c 2011-03-14 21:20:32.000000000 -0400 6432--- linux-2.6.38.3/arch/x86/ia32/ia32_signal.c 2011-03-14 21:20:32.000000000 -0400
6401+++ linux-2.6.38.2/arch/x86/ia32/ia32_signal.c 2011-03-21 18:31:35.000000000 -0400 6433+++ linux-2.6.38.3/arch/x86/ia32/ia32_signal.c 2011-04-17 15:57:32.000000000 -0400
6402@@ -403,7 +403,7 @@ static void __user *get_sigframe(struct 6434@@ -403,7 +403,7 @@ static void __user *get_sigframe(struct
6403 sp -= frame_size; 6435 sp -= frame_size;
6404 /* Align the stack pointer according to the i386 ABI, 6436 /* Align the stack pointer according to the i386 ABI,
@@ -6448,9 +6480,9 @@ diff -urNp linux-2.6.38.2/arch/x86/ia32/ia32_signal.c linux-2.6.38.2/arch/x86/ia
6448 } put_user_catch(err); 6480 } put_user_catch(err);
6449 6481
6450 if (err) 6482 if (err)
6451diff -urNp linux-2.6.38.2/arch/x86/include/asm/alternative.h linux-2.6.38.2/arch/x86/include/asm/alternative.h 6483diff -urNp linux-2.6.38.3/arch/x86/include/asm/alternative.h linux-2.6.38.3/arch/x86/include/asm/alternative.h
6452--- linux-2.6.38.2/arch/x86/include/asm/alternative.h 2011-03-14 21:20:32.000000000 -0400 6484--- linux-2.6.38.3/arch/x86/include/asm/alternative.h 2011-03-14 21:20:32.000000000 -0400
6453+++ linux-2.6.38.2/arch/x86/include/asm/alternative.h 2011-03-21 18:31:35.000000000 -0400 6485+++ linux-2.6.38.3/arch/x86/include/asm/alternative.h 2011-04-17 15:57:32.000000000 -0400
6454@@ -94,7 +94,7 @@ static inline int alternatives_text_rese 6486@@ -94,7 +94,7 @@ static inline int alternatives_text_rese
6455 ".section .discard,\"aw\",@progbits\n" \ 6487 ".section .discard,\"aw\",@progbits\n" \
6456 " .byte 0xff + (664f-663f) - (662b-661b)\n" /* rlen <= slen */ \ 6488 " .byte 0xff + (664f-663f) - (662b-661b)\n" /* rlen <= slen */ \
@@ -6460,9 +6492,9 @@ diff -urNp linux-2.6.38.2/arch/x86/include/asm/alternative.h linux-2.6.38.2/arch
6460 "663:\n\t" newinstr "\n664:\n" /* replacement */ \ 6492 "663:\n\t" newinstr "\n664:\n" /* replacement */ \
6461 ".previous" 6493 ".previous"
6462 6494
6463diff -urNp linux-2.6.38.2/arch/x86/include/asm/apm.h linux-2.6.38.2/arch/x86/include/asm/apm.h 6495diff -urNp linux-2.6.38.3/arch/x86/include/asm/apm.h linux-2.6.38.3/arch/x86/include/asm/apm.h
6464--- linux-2.6.38.2/arch/x86/include/asm/apm.h 2011-03-14 21:20:32.000000000 -0400 6496--- linux-2.6.38.3/arch/x86/include/asm/apm.h 2011-03-14 21:20:32.000000000 -0400
6465+++ linux-2.6.38.2/arch/x86/include/asm/apm.h 2011-03-21 18:31:35.000000000 -0400 6497+++ linux-2.6.38.3/arch/x86/include/asm/apm.h 2011-04-17 15:57:32.000000000 -0400
6466@@ -34,7 +34,7 @@ static inline void apm_bios_call_asm(u32 6498@@ -34,7 +34,7 @@ static inline void apm_bios_call_asm(u32
6467 __asm__ __volatile__(APM_DO_ZERO_SEGS 6499 __asm__ __volatile__(APM_DO_ZERO_SEGS
6468 "pushl %%edi\n\t" 6500 "pushl %%edi\n\t"
@@ -6481,9 +6513,9 @@ diff -urNp linux-2.6.38.2/arch/x86/include/asm/apm.h linux-2.6.38.2/arch/x86/inc
6481 "setc %%bl\n\t" 6513 "setc %%bl\n\t"
6482 "popl %%ebp\n\t" 6514 "popl %%ebp\n\t"
6483 "popl %%edi\n\t" 6515 "popl %%edi\n\t"
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 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
6485--- linux-2.6.38.2/arch/x86/include/asm/atomic64_32.h 2011-03-14 21:20:32.000000000 -0400 6517--- linux-2.6.38.3/arch/x86/include/asm/atomic64_32.h 2011-03-14 21:20:32.000000000 -0400
6486+++ linux-2.6.38.2/arch/x86/include/asm/atomic64_32.h 2011-03-21 18:31:35.000000000 -0400 6518+++ linux-2.6.38.3/arch/x86/include/asm/atomic64_32.h 2011-04-17 15:57:32.000000000 -0400
6487@@ -12,6 +12,14 @@ typedef struct { 6519@@ -12,6 +12,14 @@ typedef struct {
6488 u64 __aligned(8) counter; 6520 u64 __aligned(8) counter;
6489 } atomic64_t; 6521 } atomic64_t;
@@ -6499,9 +6531,9 @@ diff -urNp linux-2.6.38.2/arch/x86/include/asm/atomic64_32.h linux-2.6.38.2/arch
6499 #define ATOMIC64_INIT(val) { (val) } 6531 #define ATOMIC64_INIT(val) { (val) }
6500 6532
6501 #ifdef CONFIG_X86_CMPXCHG64 6533 #ifdef CONFIG_X86_CMPXCHG64
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 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
6503--- linux-2.6.38.2/arch/x86/include/asm/atomic64_64.h 2011-03-14 21:20:32.000000000 -0400 6535--- linux-2.6.38.3/arch/x86/include/asm/atomic64_64.h 2011-03-14 21:20:32.000000000 -0400
6504+++ linux-2.6.38.2/arch/x86/include/asm/atomic64_64.h 2011-03-21 18:31:35.000000000 -0400 6536+++ linux-2.6.38.3/arch/x86/include/asm/atomic64_64.h 2011-04-17 15:57:32.000000000 -0400
6505@@ -18,7 +18,19 @@ 6537@@ -18,7 +18,19 @@
6506 */ 6538 */
6507 static inline long atomic64_read(const atomic64_t *v) 6539 static inline long atomic64_read(const atomic64_t *v)
@@ -6811,9 +6843,9 @@ diff -urNp linux-2.6.38.2/arch/x86/include/asm/atomic64_64.h linux-2.6.38.2/arch
6811 } 6843 }
6812 6844
6813 #define atomic64_inc_not_zero(v) atomic64_add_unless((v), 1, 0) 6845 #define atomic64_inc_not_zero(v) atomic64_add_unless((v), 1, 0)
6814diff -urNp linux-2.6.38.2/arch/x86/include/asm/atomic.h linux-2.6.38.2/arch/x86/include/asm/atomic.h 6846diff -urNp linux-2.6.38.3/arch/x86/include/asm/atomic.h linux-2.6.38.3/arch/x86/include/asm/atomic.h
6815--- linux-2.6.38.2/arch/x86/include/asm/atomic.h 2011-03-14 21:20:32.000000000 -0400 6847--- linux-2.6.38.3/arch/x86/include/asm/atomic.h 2011-03-14 21:20:32.000000000 -0400
6816+++ linux-2.6.38.2/arch/x86/include/asm/atomic.h 2011-03-21 18:31:35.000000000 -0400 6848+++ linux-2.6.38.3/arch/x86/include/asm/atomic.h 2011-04-17 15:57:32.000000000 -0400
6817@@ -22,7 +22,18 @@ 6849@@ -22,7 +22,18 @@
6818 */ 6850 */
6819 static inline int atomic_read(const atomic_t *v) 6851 static inline int atomic_read(const atomic_t *v)
@@ -7185,9 +7217,9 @@ diff -urNp linux-2.6.38.2/arch/x86/include/asm/atomic.h linux-2.6.38.2/arch/x86/
7185 /* 7217 /*
7186 * atomic_dec_if_positive - decrement by 1 if old value positive 7218 * atomic_dec_if_positive - decrement by 1 if old value positive
7187 * @v: pointer of type atomic_t 7219 * @v: pointer of type atomic_t
7188diff -urNp linux-2.6.38.2/arch/x86/include/asm/bitops.h linux-2.6.38.2/arch/x86/include/asm/bitops.h 7220diff -urNp linux-2.6.38.3/arch/x86/include/asm/bitops.h linux-2.6.38.3/arch/x86/include/asm/bitops.h
7189--- linux-2.6.38.2/arch/x86/include/asm/bitops.h 2011-03-14 21:20:32.000000000 -0400 7221--- linux-2.6.38.3/arch/x86/include/asm/bitops.h 2011-03-14 21:20:32.000000000 -0400
7190+++ linux-2.6.38.2/arch/x86/include/asm/bitops.h 2011-03-21 18:31:35.000000000 -0400 7222+++ linux-2.6.38.3/arch/x86/include/asm/bitops.h 2011-04-17 15:57:32.000000000 -0400
7191@@ -38,7 +38,7 @@ 7223@@ -38,7 +38,7 @@
7192 * a mask operation on a byte. 7224 * a mask operation on a byte.
7193 */ 7225 */
@@ -7197,9 +7229,9 @@ diff -urNp linux-2.6.38.2/arch/x86/include/asm/bitops.h linux-2.6.38.2/arch/x86/
7197 #define CONST_MASK(nr) (1 << ((nr) & 7)) 7229 #define CONST_MASK(nr) (1 << ((nr) & 7))
7198 7230
7199 /** 7231 /**
7200diff -urNp linux-2.6.38.2/arch/x86/include/asm/boot.h linux-2.6.38.2/arch/x86/include/asm/boot.h 7232diff -urNp linux-2.6.38.3/arch/x86/include/asm/boot.h linux-2.6.38.3/arch/x86/include/asm/boot.h
7201--- linux-2.6.38.2/arch/x86/include/asm/boot.h 2011-03-14 21:20:32.000000000 -0400 7233--- linux-2.6.38.3/arch/x86/include/asm/boot.h 2011-03-14 21:20:32.000000000 -0400
7202+++ linux-2.6.38.2/arch/x86/include/asm/boot.h 2011-03-21 18:31:35.000000000 -0400 7234+++ linux-2.6.38.3/arch/x86/include/asm/boot.h 2011-04-17 15:57:32.000000000 -0400
7203@@ -11,10 +11,15 @@ 7235@@ -11,10 +11,15 @@
7204 #include <asm/pgtable_types.h> 7236 #include <asm/pgtable_types.h>
7205 7237
@@ -7217,9 +7249,9 @@ diff -urNp linux-2.6.38.2/arch/x86/include/asm/boot.h linux-2.6.38.2/arch/x86/in
7217 /* Minimum kernel alignment, as a power of two */ 7249 /* Minimum kernel alignment, as a power of two */
7218 #ifdef CONFIG_X86_64 7250 #ifdef CONFIG_X86_64
7219 #define MIN_KERNEL_ALIGN_LG2 PMD_SHIFT 7251 #define MIN_KERNEL_ALIGN_LG2 PMD_SHIFT
7220diff -urNp linux-2.6.38.2/arch/x86/include/asm/cacheflush.h linux-2.6.38.2/arch/x86/include/asm/cacheflush.h 7252diff -urNp linux-2.6.38.3/arch/x86/include/asm/cacheflush.h linux-2.6.38.3/arch/x86/include/asm/cacheflush.h
7221--- linux-2.6.38.2/arch/x86/include/asm/cacheflush.h 2011-03-14 21:20:32.000000000 -0400 7253--- linux-2.6.38.3/arch/x86/include/asm/cacheflush.h 2011-03-14 21:20:32.000000000 -0400
7222+++ linux-2.6.38.2/arch/x86/include/asm/cacheflush.h 2011-03-21 18:31:35.000000000 -0400 7254+++ linux-2.6.38.3/arch/x86/include/asm/cacheflush.h 2011-04-17 15:57:32.000000000 -0400
7223@@ -26,7 +26,7 @@ static inline unsigned long get_page_mem 7255@@ -26,7 +26,7 @@ static inline unsigned long get_page_mem
7224 unsigned long pg_flags = pg->flags & _PGMT_MASK; 7256 unsigned long pg_flags = pg->flags & _PGMT_MASK;
7225 7257
@@ -7229,9 +7261,9 @@ diff -urNp linux-2.6.38.2/arch/x86/include/asm/cacheflush.h linux-2.6.38.2/arch/
7229 else if (pg_flags == _PGMT_WC) 7261 else if (pg_flags == _PGMT_WC)
7230 return _PAGE_CACHE_WC; 7262 return _PAGE_CACHE_WC;
7231 else if (pg_flags == _PGMT_UC_MINUS) 7263 else if (pg_flags == _PGMT_UC_MINUS)
7232diff -urNp linux-2.6.38.2/arch/x86/include/asm/cache.h linux-2.6.38.2/arch/x86/include/asm/cache.h 7264diff -urNp linux-2.6.38.3/arch/x86/include/asm/cache.h linux-2.6.38.3/arch/x86/include/asm/cache.h
7233--- linux-2.6.38.2/arch/x86/include/asm/cache.h 2011-03-14 21:20:32.000000000 -0400 7265--- linux-2.6.38.3/arch/x86/include/asm/cache.h 2011-03-14 21:20:32.000000000 -0400
7234+++ linux-2.6.38.2/arch/x86/include/asm/cache.h 2011-03-21 18:31:35.000000000 -0400 7266+++ linux-2.6.38.3/arch/x86/include/asm/cache.h 2011-04-17 15:57:32.000000000 -0400
7235@@ -8,6 +8,7 @@ 7267@@ -8,6 +8,7 @@
7236 #define L1_CACHE_BYTES (1 << L1_CACHE_SHIFT) 7268 #define L1_CACHE_BYTES (1 << L1_CACHE_SHIFT)
7237 7269
@@ -7240,9 +7272,9 @@ diff -urNp linux-2.6.38.2/arch/x86/include/asm/cache.h linux-2.6.38.2/arch/x86/i
7240 7272
7241 #define INTERNODE_CACHE_SHIFT CONFIG_X86_INTERNODE_CACHE_SHIFT 7273 #define INTERNODE_CACHE_SHIFT CONFIG_X86_INTERNODE_CACHE_SHIFT
7242 #define INTERNODE_CACHE_BYTES (1 << INTERNODE_CACHE_SHIFT) 7274 #define INTERNODE_CACHE_BYTES (1 << INTERNODE_CACHE_SHIFT)
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 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
7244--- linux-2.6.38.2/arch/x86/include/asm/checksum_32.h 2011-03-14 21:20:32.000000000 -0400 7276--- linux-2.6.38.3/arch/x86/include/asm/checksum_32.h 2011-03-14 21:20:32.000000000 -0400
7245+++ linux-2.6.38.2/arch/x86/include/asm/checksum_32.h 2011-03-21 18:31:35.000000000 -0400 7277+++ linux-2.6.38.3/arch/x86/include/asm/checksum_32.h 2011-04-17 15:57:32.000000000 -0400
7246@@ -31,6 +31,14 @@ asmlinkage __wsum csum_partial_copy_gene 7278@@ -31,6 +31,14 @@ asmlinkage __wsum csum_partial_copy_gene
7247 int len, __wsum sum, 7279 int len, __wsum sum,
7248 int *src_err_ptr, int *dst_err_ptr); 7280 int *src_err_ptr, int *dst_err_ptr);
@@ -7276,9 +7308,9 @@ diff -urNp linux-2.6.38.2/arch/x86/include/asm/checksum_32.h linux-2.6.38.2/arch
7276 len, sum, NULL, err_ptr); 7308 len, sum, NULL, err_ptr);
7277 7309
7278 if (len) 7310 if (len)
7279diff -urNp linux-2.6.38.2/arch/x86/include/asm/cpufeature.h linux-2.6.38.2/arch/x86/include/asm/cpufeature.h 7311diff -urNp linux-2.6.38.3/arch/x86/include/asm/cpufeature.h linux-2.6.38.3/arch/x86/include/asm/cpufeature.h
7280--- linux-2.6.38.2/arch/x86/include/asm/cpufeature.h 2011-03-14 21:20:32.000000000 -0400 7312--- linux-2.6.38.3/arch/x86/include/asm/cpufeature.h 2011-03-14 21:20:32.000000000 -0400
7281+++ linux-2.6.38.2/arch/x86/include/asm/cpufeature.h 2011-03-21 18:31:35.000000000 -0400 7313+++ linux-2.6.38.3/arch/x86/include/asm/cpufeature.h 2011-04-17 15:57:32.000000000 -0400
7282@@ -349,7 +349,7 @@ static __always_inline __pure bool __sta 7314@@ -349,7 +349,7 @@ static __always_inline __pure bool __sta
7283 ".section .discard,\"aw\",@progbits\n" 7315 ".section .discard,\"aw\",@progbits\n"
7284 " .byte 0xff + (4f-3f) - (2b-1b)\n" /* size check */ 7316 " .byte 0xff + (4f-3f) - (2b-1b)\n" /* size check */
@@ -7288,9 +7320,9 @@ diff -urNp linux-2.6.38.2/arch/x86/include/asm/cpufeature.h linux-2.6.38.2/arch/
7288 "3: movb $1,%0\n" 7320 "3: movb $1,%0\n"
7289 "4:\n" 7321 "4:\n"
7290 ".previous\n" 7322 ".previous\n"
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 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
7292--- linux-2.6.38.2/arch/x86/include/asm/desc_defs.h 2011-03-14 21:20:32.000000000 -0400 7324--- linux-2.6.38.3/arch/x86/include/asm/desc_defs.h 2011-03-14 21:20:32.000000000 -0400
7293+++ linux-2.6.38.2/arch/x86/include/asm/desc_defs.h 2011-03-21 18:31:35.000000000 -0400 7325+++ linux-2.6.38.3/arch/x86/include/asm/desc_defs.h 2011-04-17 15:57:32.000000000 -0400
7294@@ -31,6 +31,12 @@ struct desc_struct { 7326@@ -31,6 +31,12 @@ struct desc_struct {
7295 unsigned base1: 8, type: 4, s: 1, dpl: 2, p: 1; 7327 unsigned base1: 8, type: 4, s: 1, dpl: 2, p: 1;
7296 unsigned limit: 4, avl: 1, l: 1, d: 1, g: 1, base2: 8; 7328 unsigned limit: 4, avl: 1, l: 1, d: 1, g: 1, base2: 8;
@@ -7304,9 +7336,9 @@ diff -urNp linux-2.6.38.2/arch/x86/include/asm/desc_defs.h linux-2.6.38.2/arch/x
7304 }; 7336 };
7305 } __attribute__((packed)); 7337 } __attribute__((packed));
7306 7338
7307diff -urNp linux-2.6.38.2/arch/x86/include/asm/desc.h linux-2.6.38.2/arch/x86/include/asm/desc.h 7339diff -urNp linux-2.6.38.3/arch/x86/include/asm/desc.h linux-2.6.38.3/arch/x86/include/asm/desc.h
7308--- linux-2.6.38.2/arch/x86/include/asm/desc.h 2011-03-14 21:20:32.000000000 -0400 7340--- linux-2.6.38.3/arch/x86/include/asm/desc.h 2011-03-14 21:20:32.000000000 -0400
7309+++ linux-2.6.38.2/arch/x86/include/asm/desc.h 2011-03-21 18:31:35.000000000 -0400 7341+++ linux-2.6.38.3/arch/x86/include/asm/desc.h 2011-04-17 15:57:32.000000000 -0400
7310@@ -4,6 +4,7 @@ 7342@@ -4,6 +4,7 @@
7311 #include <asm/desc_defs.h> 7343 #include <asm/desc_defs.h>
7312 #include <asm/ldt.h> 7344 #include <asm/ldt.h>
@@ -7494,9 +7526,9 @@ diff -urNp linux-2.6.38.2/arch/x86/include/asm/desc.h linux-2.6.38.2/arch/x86/in
7494+#endif 7526+#endif
7495+ 7527+
7496 #endif /* _ASM_X86_DESC_H */ 7528 #endif /* _ASM_X86_DESC_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 7529diff -urNp linux-2.6.38.3/arch/x86/include/asm/device.h linux-2.6.38.3/arch/x86/include/asm/device.h
7498--- linux-2.6.38.2/arch/x86/include/asm/device.h 2011-03-14 21:20:32.000000000 -0400 7530--- linux-2.6.38.3/arch/x86/include/asm/device.h 2011-03-14 21:20:32.000000000 -0400
7499+++ linux-2.6.38.2/arch/x86/include/asm/device.h 2011-03-21 18:31:35.000000000 -0400 7531+++ linux-2.6.38.3/arch/x86/include/asm/device.h 2011-04-17 15:57:32.000000000 -0400
7500@@ -6,7 +6,7 @@ struct dev_archdata { 7532@@ -6,7 +6,7 @@ struct dev_archdata {
7501 void *acpi_handle; 7533 void *acpi_handle;
7502 #endif 7534 #endif
@@ -7506,9 +7538,9 @@ diff -urNp linux-2.6.38.2/arch/x86/include/asm/device.h linux-2.6.38.2/arch/x86/
7506 #endif 7538 #endif
7507 #if defined(CONFIG_DMAR) || defined(CONFIG_AMD_IOMMU) 7539 #if defined(CONFIG_DMAR) || defined(CONFIG_AMD_IOMMU)
7508 void *iommu; /* hook for IOMMU specific extension */ 7540 void *iommu; /* hook for IOMMU specific extension */
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 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
7510--- linux-2.6.38.2/arch/x86/include/asm/dma-mapping.h 2011-03-14 21:20:32.000000000 -0400 7542--- linux-2.6.38.3/arch/x86/include/asm/dma-mapping.h 2011-03-14 21:20:32.000000000 -0400
7511+++ linux-2.6.38.2/arch/x86/include/asm/dma-mapping.h 2011-03-21 18:31:35.000000000 -0400 7543+++ linux-2.6.38.3/arch/x86/include/asm/dma-mapping.h 2011-04-17 15:57:32.000000000 -0400
7512@@ -26,9 +26,9 @@ extern int iommu_merge; 7544@@ -26,9 +26,9 @@ extern int iommu_merge;
7513 extern struct device x86_dma_fallback_dev; 7545 extern struct device x86_dma_fallback_dev;
7514 extern int panic_on_overflow; 7546 extern int panic_on_overflow;
@@ -7548,9 +7580,9 @@ diff -urNp linux-2.6.38.2/arch/x86/include/asm/dma-mapping.h linux-2.6.38.2/arch
7548 7580
7549 WARN_ON(irqs_disabled()); /* for portability */ 7581 WARN_ON(irqs_disabled()); /* for portability */
7550 7582
7551diff -urNp linux-2.6.38.2/arch/x86/include/asm/e820.h linux-2.6.38.2/arch/x86/include/asm/e820.h 7583diff -urNp linux-2.6.38.3/arch/x86/include/asm/e820.h linux-2.6.38.3/arch/x86/include/asm/e820.h
7552--- linux-2.6.38.2/arch/x86/include/asm/e820.h 2011-03-14 21:20:32.000000000 -0400 7584--- linux-2.6.38.3/arch/x86/include/asm/e820.h 2011-03-14 21:20:32.000000000 -0400
7553+++ linux-2.6.38.2/arch/x86/include/asm/e820.h 2011-03-21 18:31:35.000000000 -0400 7585+++ linux-2.6.38.3/arch/x86/include/asm/e820.h 2011-04-17 15:57:32.000000000 -0400
7554@@ -69,7 +69,7 @@ struct e820map { 7586@@ -69,7 +69,7 @@ struct e820map {
7555 #define ISA_START_ADDRESS 0xa0000 7587 #define ISA_START_ADDRESS 0xa0000
7556 #define ISA_END_ADDRESS 0x100000 7588 #define ISA_END_ADDRESS 0x100000
@@ -7560,9 +7592,9 @@ diff -urNp linux-2.6.38.2/arch/x86/include/asm/e820.h linux-2.6.38.2/arch/x86/in
7560 #define BIOS_END 0x00100000 7592 #define BIOS_END 0x00100000
7561 7593
7562 #define BIOS_ROM_BASE 0xffe00000 7594 #define BIOS_ROM_BASE 0xffe00000
7563diff -urNp linux-2.6.38.2/arch/x86/include/asm/elf.h linux-2.6.38.2/arch/x86/include/asm/elf.h 7595diff -urNp linux-2.6.38.3/arch/x86/include/asm/elf.h linux-2.6.38.3/arch/x86/include/asm/elf.h
7564--- linux-2.6.38.2/arch/x86/include/asm/elf.h 2011-03-14 21:20:32.000000000 -0400 7596--- linux-2.6.38.3/arch/x86/include/asm/elf.h 2011-03-14 21:20:32.000000000 -0400
7565+++ linux-2.6.38.2/arch/x86/include/asm/elf.h 2011-03-21 18:31:35.000000000 -0400 7597+++ linux-2.6.38.3/arch/x86/include/asm/elf.h 2011-04-17 15:57:32.000000000 -0400
7566@@ -237,7 +237,25 @@ extern int force_personality32; 7598@@ -237,7 +237,25 @@ extern int force_personality32;
7567 the loader. We need to make sure that it is out of the way of the program 7599 the loader. We need to make sure that it is out of the way of the program
7568 that it will "exec", and that there is sufficient room for the brk. */ 7600 that it will "exec", and that there is sufficient room for the brk. */
@@ -7616,9 +7648,9 @@ diff -urNp linux-2.6.38.2/arch/x86/include/asm/elf.h linux-2.6.38.2/arch/x86/inc
7616-#define arch_randomize_brk arch_randomize_brk 7648-#define arch_randomize_brk arch_randomize_brk
7617- 7649-
7618 #endif /* _ASM_X86_ELF_H */ 7650 #endif /* _ASM_X86_ELF_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 7651diff -urNp linux-2.6.38.3/arch/x86/include/asm/futex.h linux-2.6.38.3/arch/x86/include/asm/futex.h
7620--- linux-2.6.38.2/arch/x86/include/asm/futex.h 2011-03-14 21:20:32.000000000 -0400 7652--- linux-2.6.38.3/arch/x86/include/asm/futex.h 2011-03-14 21:20:32.000000000 -0400
7621+++ linux-2.6.38.2/arch/x86/include/asm/futex.h 2011-03-21 18:31:35.000000000 -0400 7653+++ linux-2.6.38.3/arch/x86/include/asm/futex.h 2011-04-17 15:57:32.000000000 -0400
7622@@ -12,16 +12,18 @@ 7654@@ -12,16 +12,18 @@
7623 #include <asm/system.h> 7655 #include <asm/system.h>
7624 7656
@@ -7694,9 +7726,9 @@ diff -urNp linux-2.6.38.2/arch/x86/include/asm/futex.h linux-2.6.38.2/arch/x86/i
7694 : "i" (-EFAULT), "r" (newval), "0" (oldval) 7726 : "i" (-EFAULT), "r" (newval), "0" (oldval)
7695 : "memory" 7727 : "memory"
7696 ); 7728 );
7697diff -urNp linux-2.6.38.2/arch/x86/include/asm/i387.h linux-2.6.38.2/arch/x86/include/asm/i387.h 7729diff -urNp linux-2.6.38.3/arch/x86/include/asm/i387.h linux-2.6.38.3/arch/x86/include/asm/i387.h
7698--- linux-2.6.38.2/arch/x86/include/asm/i387.h 2011-03-14 21:20:32.000000000 -0400 7730--- linux-2.6.38.3/arch/x86/include/asm/i387.h 2011-03-14 21:20:32.000000000 -0400
7699+++ linux-2.6.38.2/arch/x86/include/asm/i387.h 2011-03-21 18:31:35.000000000 -0400 7731+++ linux-2.6.38.3/arch/x86/include/asm/i387.h 2011-04-17 15:57:32.000000000 -0400
7700@@ -92,6 +92,11 @@ static inline int fxrstor_checking(struc 7732@@ -92,6 +92,11 @@ static inline int fxrstor_checking(struc
7701 { 7733 {
7702 int err; 7734 int err;
@@ -7737,9 +7769,27 @@ diff -urNp linux-2.6.38.2/arch/x86/include/asm/i387.h linux-2.6.38.2/arch/x86/in
7737 7769
7738 /* 7770 /*
7739 * These must be called with preempt disabled 7771 * These must be called with preempt disabled
7740diff -urNp linux-2.6.38.2/arch/x86/include/asm/io.h linux-2.6.38.2/arch/x86/include/asm/io.h 7772@@ -237,7 +242,7 @@ static inline void fpu_save_init(struct
7741--- linux-2.6.38.2/arch/x86/include/asm/io.h 2011-03-14 21:20:32.000000000 -0400 7773 } else if (use_fxsr()) {
7742+++ linux-2.6.38.2/arch/x86/include/asm/io.h 2011-03-21 18:31:35.000000000 -0400 7774 fpu_fxsave(fpu);
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
7743@@ -216,6 +216,17 @@ extern void set_iounmap_nonlazy(void); 7793@@ -216,6 +216,17 @@ extern void set_iounmap_nonlazy(void);
7744 7794
7745 #include <linux/vmalloc.h> 7795 #include <linux/vmalloc.h>
@@ -7758,9 +7808,9 @@ diff -urNp linux-2.6.38.2/arch/x86/include/asm/io.h linux-2.6.38.2/arch/x86/incl
7758 /* 7808 /*
7759 * Convert a virtual cached pointer to an uncached pointer 7809 * Convert a virtual cached pointer to an uncached pointer
7760 */ 7810 */
7761diff -urNp linux-2.6.38.2/arch/x86/include/asm/iommu.h linux-2.6.38.2/arch/x86/include/asm/iommu.h 7811diff -urNp linux-2.6.38.3/arch/x86/include/asm/iommu.h linux-2.6.38.3/arch/x86/include/asm/iommu.h
7762--- linux-2.6.38.2/arch/x86/include/asm/iommu.h 2011-03-14 21:20:32.000000000 -0400 7812--- linux-2.6.38.3/arch/x86/include/asm/iommu.h 2011-03-14 21:20:32.000000000 -0400
7763+++ linux-2.6.38.2/arch/x86/include/asm/iommu.h 2011-03-21 18:31:35.000000000 -0400 7813+++ linux-2.6.38.3/arch/x86/include/asm/iommu.h 2011-04-17 15:57:32.000000000 -0400
7764@@ -1,7 +1,7 @@ 7814@@ -1,7 +1,7 @@
7765 #ifndef _ASM_X86_IOMMU_H 7815 #ifndef _ASM_X86_IOMMU_H
7766 #define _ASM_X86_IOMMU_H 7816 #define _ASM_X86_IOMMU_H
@@ -7770,9 +7820,9 @@ diff -urNp linux-2.6.38.2/arch/x86/include/asm/iommu.h linux-2.6.38.2/arch/x86/i
7770 extern int force_iommu, no_iommu; 7820 extern int force_iommu, no_iommu;
7771 extern int iommu_detected; 7821 extern int iommu_detected;
7772 extern int iommu_pass_through; 7822 extern int iommu_pass_through;
7773diff -urNp linux-2.6.38.2/arch/x86/include/asm/irqflags.h linux-2.6.38.2/arch/x86/include/asm/irqflags.h 7823diff -urNp linux-2.6.38.3/arch/x86/include/asm/irqflags.h linux-2.6.38.3/arch/x86/include/asm/irqflags.h
7774--- linux-2.6.38.2/arch/x86/include/asm/irqflags.h 2011-03-14 21:20:32.000000000 -0400 7824--- linux-2.6.38.3/arch/x86/include/asm/irqflags.h 2011-03-14 21:20:32.000000000 -0400
7775+++ linux-2.6.38.2/arch/x86/include/asm/irqflags.h 2011-03-21 18:31:35.000000000 -0400 7825+++ linux-2.6.38.3/arch/x86/include/asm/irqflags.h 2011-04-17 15:57:32.000000000 -0400
7776@@ -140,6 +140,11 @@ static inline unsigned long arch_local_i 7826@@ -140,6 +140,11 @@ static inline unsigned long arch_local_i
7777 sti; \ 7827 sti; \
7778 sysexit 7828 sysexit
@@ -7785,9 +7835,9 @@ diff -urNp linux-2.6.38.2/arch/x86/include/asm/irqflags.h linux-2.6.38.2/arch/x8
7785 #else 7835 #else
7786 #define INTERRUPT_RETURN iret 7836 #define INTERRUPT_RETURN iret
7787 #define ENABLE_INTERRUPTS_SYSEXIT sti; sysexit 7837 #define ENABLE_INTERRUPTS_SYSEXIT sti; sysexit
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 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
7789--- linux-2.6.38.2/arch/x86/include/asm/kvm_host.h 2011-03-14 21:20:32.000000000 -0400 7839--- linux-2.6.38.3/arch/x86/include/asm/kvm_host.h 2011-03-14 21:20:32.000000000 -0400
7790+++ linux-2.6.38.2/arch/x86/include/asm/kvm_host.h 2011-03-21 18:31:35.000000000 -0400 7840+++ linux-2.6.38.3/arch/x86/include/asm/kvm_host.h 2011-04-17 15:57:32.000000000 -0400
7791@@ -603,7 +603,7 @@ struct kvm_arch_async_pf { 7841@@ -603,7 +603,7 @@ struct kvm_arch_async_pf {
7792 bool direct_map; 7842 bool direct_map;
7793 }; 7843 };
@@ -7797,9 +7847,9 @@ diff -urNp linux-2.6.38.2/arch/x86/include/asm/kvm_host.h linux-2.6.38.2/arch/x8
7797 7847
7798 int kvm_mmu_module_init(void); 7848 int kvm_mmu_module_init(void);
7799 void kvm_mmu_module_exit(void); 7849 void kvm_mmu_module_exit(void);
7800diff -urNp linux-2.6.38.2/arch/x86/include/asm/local.h linux-2.6.38.2/arch/x86/include/asm/local.h 7850diff -urNp linux-2.6.38.3/arch/x86/include/asm/local.h linux-2.6.38.3/arch/x86/include/asm/local.h
7801--- linux-2.6.38.2/arch/x86/include/asm/local.h 2011-03-14 21:20:32.000000000 -0400 7851--- linux-2.6.38.3/arch/x86/include/asm/local.h 2011-03-14 21:20:32.000000000 -0400
7802+++ linux-2.6.38.2/arch/x86/include/asm/local.h 2011-03-21 18:31:35.000000000 -0400 7852+++ linux-2.6.38.3/arch/x86/include/asm/local.h 2011-04-17 15:57:32.000000000 -0400
7803@@ -18,26 +18,58 @@ typedef struct { 7853@@ -18,26 +18,58 @@ typedef struct {
7804 7854
7805 static inline void local_inc(local_t *l) 7855 static inline void local_inc(local_t *l)
@@ -7952,9 +8002,9 @@ diff -urNp linux-2.6.38.2/arch/x86/include/asm/local.h linux-2.6.38.2/arch/x86/i
7952 : "+r" (i), "+m" (l->a.counter) 8002 : "+r" (i), "+m" (l->a.counter)
7953 : : "memory"); 8003 : : "memory");
7954 return i + __i; 8004 return i + __i;
7955diff -urNp linux-2.6.38.2/arch/x86/include/asm/mc146818rtc.h linux-2.6.38.2/arch/x86/include/asm/mc146818rtc.h 8005diff -urNp linux-2.6.38.3/arch/x86/include/asm/mc146818rtc.h linux-2.6.38.3/arch/x86/include/asm/mc146818rtc.h
7956--- linux-2.6.38.2/arch/x86/include/asm/mc146818rtc.h 2011-03-14 21:20:32.000000000 -0400 8006--- linux-2.6.38.3/arch/x86/include/asm/mc146818rtc.h 2011-03-14 21:20:32.000000000 -0400
7957+++ linux-2.6.38.2/arch/x86/include/asm/mc146818rtc.h 2011-03-21 18:31:35.000000000 -0400 8007+++ linux-2.6.38.3/arch/x86/include/asm/mc146818rtc.h 2011-04-17 15:57:32.000000000 -0400
7958@@ -81,8 +81,8 @@ static inline unsigned char current_lock 8008@@ -81,8 +81,8 @@ static inline unsigned char current_lock
7959 #else 8009 #else
7960 #define lock_cmos_prefix(reg) do {} while (0) 8010 #define lock_cmos_prefix(reg) do {} while (0)
@@ -7966,9 +8016,9 @@ diff -urNp linux-2.6.38.2/arch/x86/include/asm/mc146818rtc.h linux-2.6.38.2/arch
7966 #define do_i_have_lock_cmos() 0 8016 #define do_i_have_lock_cmos() 0
7967 #define current_lock_cmos_reg() 0 8017 #define current_lock_cmos_reg() 0
7968 #endif 8018 #endif
7969diff -urNp linux-2.6.38.2/arch/x86/include/asm/mce.h linux-2.6.38.2/arch/x86/include/asm/mce.h 8019diff -urNp linux-2.6.38.3/arch/x86/include/asm/mce.h linux-2.6.38.3/arch/x86/include/asm/mce.h
7970--- linux-2.6.38.2/arch/x86/include/asm/mce.h 2011-03-14 21:20:32.000000000 -0400 8020--- linux-2.6.38.3/arch/x86/include/asm/mce.h 2011-03-14 21:20:32.000000000 -0400
7971+++ linux-2.6.38.2/arch/x86/include/asm/mce.h 2011-03-21 18:31:35.000000000 -0400 8021+++ linux-2.6.38.3/arch/x86/include/asm/mce.h 2011-04-17 15:57:32.000000000 -0400
7972@@ -198,7 +198,7 @@ int mce_notify_irq(void); 8022@@ -198,7 +198,7 @@ int mce_notify_irq(void);
7973 void mce_notify_process(void); 8023 void mce_notify_process(void);
7974 8024
@@ -7978,9 +8028,9 @@ diff -urNp linux-2.6.38.2/arch/x86/include/asm/mce.h linux-2.6.38.2/arch/x86/inc
7978 8028
7979 /* 8029 /*
7980 * Exception handler 8030 * Exception handler
7981diff -urNp linux-2.6.38.2/arch/x86/include/asm/microcode.h linux-2.6.38.2/arch/x86/include/asm/microcode.h 8031diff -urNp linux-2.6.38.3/arch/x86/include/asm/microcode.h linux-2.6.38.3/arch/x86/include/asm/microcode.h
7982--- linux-2.6.38.2/arch/x86/include/asm/microcode.h 2011-03-14 21:20:32.000000000 -0400 8032--- linux-2.6.38.3/arch/x86/include/asm/microcode.h 2011-03-14 21:20:32.000000000 -0400
7983+++ linux-2.6.38.2/arch/x86/include/asm/microcode.h 2011-03-21 18:31:35.000000000 -0400 8033+++ linux-2.6.38.3/arch/x86/include/asm/microcode.h 2011-04-17 15:57:32.000000000 -0400
7984@@ -12,13 +12,13 @@ struct device; 8034@@ -12,13 +12,13 @@ struct device;
7985 enum ucode_state { UCODE_ERROR, UCODE_OK, UCODE_NFOUND }; 8035 enum ucode_state { UCODE_ERROR, UCODE_OK, UCODE_NFOUND };
7986 8036
@@ -8027,9 +8077,9 @@ diff -urNp linux-2.6.38.2/arch/x86/include/asm/microcode.h linux-2.6.38.2/arch/x
8027 { 8077 {
8028 return NULL; 8078 return NULL;
8029 } 8079 }
8030diff -urNp linux-2.6.38.2/arch/x86/include/asm/mman.h linux-2.6.38.2/arch/x86/include/asm/mman.h 8080diff -urNp linux-2.6.38.3/arch/x86/include/asm/mman.h linux-2.6.38.3/arch/x86/include/asm/mman.h
8031--- linux-2.6.38.2/arch/x86/include/asm/mman.h 2011-03-14 21:20:32.000000000 -0400 8081--- linux-2.6.38.3/arch/x86/include/asm/mman.h 2011-03-14 21:20:32.000000000 -0400
8032+++ linux-2.6.38.2/arch/x86/include/asm/mman.h 2011-03-21 18:31:35.000000000 -0400 8082+++ linux-2.6.38.3/arch/x86/include/asm/mman.h 2011-04-17 15:57:32.000000000 -0400
8033@@ -5,4 +5,14 @@ 8083@@ -5,4 +5,14 @@
8034 8084
8035 #include <asm-generic/mman.h> 8085 #include <asm-generic/mman.h>
@@ -8045,9 +8095,9 @@ diff -urNp linux-2.6.38.2/arch/x86/include/asm/mman.h linux-2.6.38.2/arch/x86/in
8045+#endif 8095+#endif
8046+ 8096+
8047 #endif /* _ASM_X86_MMAN_H */ 8097 #endif /* _ASM_X86_MMAN_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 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
8049--- linux-2.6.38.2/arch/x86/include/asm/mmu_context.h 2011-03-14 21:20:32.000000000 -0400 8099--- linux-2.6.38.3/arch/x86/include/asm/mmu_context.h 2011-03-14 21:20:32.000000000 -0400
8050+++ linux-2.6.38.2/arch/x86/include/asm/mmu_context.h 2011-03-28 16:54:16.000000000 -0400 8100+++ linux-2.6.38.3/arch/x86/include/asm/mmu_context.h 2011-04-17 15:57:32.000000000 -0400
8051@@ -24,6 +24,21 @@ void destroy_context(struct mm_struct *m 8101@@ -24,6 +24,21 @@ void destroy_context(struct mm_struct *m
8052 8102
8053 static inline void enter_lazy_tlb(struct mm_struct *mm, struct task_struct *tsk) 8103 static inline void enter_lazy_tlb(struct mm_struct *mm, struct task_struct *tsk)
@@ -8171,9 +8221,9 @@ diff -urNp linux-2.6.38.2/arch/x86/include/asm/mmu_context.h linux-2.6.38.2/arch
8171 } 8221 }
8172 8222
8173 #define activate_mm(prev, next) \ 8223 #define activate_mm(prev, next) \
8174diff -urNp linux-2.6.38.2/arch/x86/include/asm/mmu.h linux-2.6.38.2/arch/x86/include/asm/mmu.h 8224diff -urNp linux-2.6.38.3/arch/x86/include/asm/mmu.h linux-2.6.38.3/arch/x86/include/asm/mmu.h
8175--- linux-2.6.38.2/arch/x86/include/asm/mmu.h 2011-03-14 21:20:32.000000000 -0400 8225--- linux-2.6.38.3/arch/x86/include/asm/mmu.h 2011-03-14 21:20:32.000000000 -0400
8176+++ linux-2.6.38.2/arch/x86/include/asm/mmu.h 2011-03-21 18:31:35.000000000 -0400 8226+++ linux-2.6.38.3/arch/x86/include/asm/mmu.h 2011-04-17 15:57:32.000000000 -0400
8177@@ -9,10 +9,23 @@ 8227@@ -9,10 +9,23 @@
8178 * we put the segment information here. 8228 * we put the segment information here.
8179 */ 8229 */
@@ -8200,9 +8250,9 @@ diff -urNp linux-2.6.38.2/arch/x86/include/asm/mmu.h linux-2.6.38.2/arch/x86/inc
8200 } mm_context_t; 8250 } mm_context_t;
8201 8251
8202 #ifdef CONFIG_SMP 8252 #ifdef CONFIG_SMP
8203diff -urNp linux-2.6.38.2/arch/x86/include/asm/module.h linux-2.6.38.2/arch/x86/include/asm/module.h 8253diff -urNp linux-2.6.38.3/arch/x86/include/asm/module.h linux-2.6.38.3/arch/x86/include/asm/module.h
8204--- linux-2.6.38.2/arch/x86/include/asm/module.h 2011-03-14 21:20:32.000000000 -0400 8254--- linux-2.6.38.3/arch/x86/include/asm/module.h 2011-03-14 21:20:32.000000000 -0400
8205+++ linux-2.6.38.2/arch/x86/include/asm/module.h 2011-03-21 18:31:35.000000000 -0400 8255+++ linux-2.6.38.3/arch/x86/include/asm/module.h 2011-04-17 15:57:32.000000000 -0400
8206@@ -59,8 +59,26 @@ 8256@@ -59,8 +59,26 @@
8207 #error unknown processor family 8257 #error unknown processor family
8208 #endif 8258 #endif
@@ -8231,9 +8281,9 @@ diff -urNp linux-2.6.38.2/arch/x86/include/asm/module.h linux-2.6.38.2/arch/x86/
8231 #endif 8281 #endif
8232 8282
8233 #endif /* _ASM_X86_MODULE_H */ 8283 #endif /* _ASM_X86_MODULE_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 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
8235--- linux-2.6.38.2/arch/x86/include/asm/page_64_types.h 2011-03-14 21:20:32.000000000 -0400 8285--- linux-2.6.38.3/arch/x86/include/asm/page_64_types.h 2011-03-14 21:20: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 8286+++ linux-2.6.38.3/arch/x86/include/asm/page_64_types.h 2011-04-17 15:57:32.000000000 -0400
8237@@ -56,7 +56,7 @@ void copy_page(void *to, void *from); 8287@@ -56,7 +56,7 @@ void copy_page(void *to, void *from);
8238 8288
8239 /* duplicated to the one in bootmem.h */ 8289 /* duplicated to the one in bootmem.h */
@@ -8243,9 +8293,9 @@ diff -urNp linux-2.6.38.2/arch/x86/include/asm/page_64_types.h linux-2.6.38.2/ar
8243 8293
8244 extern unsigned long __phys_addr(unsigned long); 8294 extern unsigned long __phys_addr(unsigned long);
8245 #define __phys_reloc_hide(x) (x) 8295 #define __phys_reloc_hide(x) (x)
8246diff -urNp linux-2.6.38.2/arch/x86/include/asm/paravirt.h linux-2.6.38.2/arch/x86/include/asm/paravirt.h 8296diff -urNp linux-2.6.38.3/arch/x86/include/asm/paravirt.h linux-2.6.38.3/arch/x86/include/asm/paravirt.h
8247--- linux-2.6.38.2/arch/x86/include/asm/paravirt.h 2011-03-14 21:20:32.000000000 -0400 8297--- linux-2.6.38.3/arch/x86/include/asm/paravirt.h 2011-03-14 21:20:32.000000000 -0400
8248+++ linux-2.6.38.2/arch/x86/include/asm/paravirt.h 2011-03-21 18:31:35.000000000 -0400 8298+++ linux-2.6.38.3/arch/x86/include/asm/paravirt.h 2011-04-17 15:57:32.000000000 -0400
8249@@ -739,6 +739,21 @@ static inline void __set_fixmap(unsigned 8299@@ -739,6 +739,21 @@ static inline void __set_fixmap(unsigned
8250 pv_mmu_ops.set_fixmap(idx, phys, flags); 8300 pv_mmu_ops.set_fixmap(idx, phys, flags);
8251 } 8301 }
@@ -8299,9 +8349,9 @@ diff -urNp linux-2.6.38.2/arch/x86/include/asm/paravirt.h linux-2.6.38.2/arch/x8
8299 #endif /* CONFIG_X86_32 */ 8349 #endif /* CONFIG_X86_32 */
8300 8350
8301 #endif /* __ASSEMBLY__ */ 8351 #endif /* __ASSEMBLY__ */
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 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
8303--- linux-2.6.38.2/arch/x86/include/asm/paravirt_types.h 2011-03-14 21:20:32.000000000 -0400 8353--- linux-2.6.38.3/arch/x86/include/asm/paravirt_types.h 2011-03-14 21:20:32.000000000 -0400
8304+++ linux-2.6.38.2/arch/x86/include/asm/paravirt_types.h 2011-03-21 18:31:35.000000000 -0400 8354+++ linux-2.6.38.3/arch/x86/include/asm/paravirt_types.h 2011-04-17 15:57:32.000000000 -0400
8305@@ -317,6 +317,12 @@ struct pv_mmu_ops { 8355@@ -317,6 +317,12 @@ struct pv_mmu_ops {
8306 an mfn. We can tell which is which from the index. */ 8356 an mfn. We can tell which is which from the index. */
8307 void (*set_fixmap)(unsigned /* enum fixed_addresses */ idx, 8357 void (*set_fixmap)(unsigned /* enum fixed_addresses */ idx,
@@ -8315,9 +8365,9 @@ diff -urNp linux-2.6.38.2/arch/x86/include/asm/paravirt_types.h linux-2.6.38.2/a
8315 }; 8365 };
8316 8366
8317 struct arch_spinlock; 8367 struct arch_spinlock;
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 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
8319--- linux-2.6.38.2/arch/x86/include/asm/pci_x86.h 2011-03-14 21:20:32.000000000 -0400 8369--- linux-2.6.38.3/arch/x86/include/asm/pci_x86.h 2011-03-14 21:20:32.000000000 -0400
8320+++ linux-2.6.38.2/arch/x86/include/asm/pci_x86.h 2011-03-21 18:31:35.000000000 -0400 8370+++ linux-2.6.38.3/arch/x86/include/asm/pci_x86.h 2011-04-17 15:57:32.000000000 -0400
8321@@ -93,16 +93,16 @@ extern int (*pcibios_enable_irq)(struct 8371@@ -93,16 +93,16 @@ extern int (*pcibios_enable_irq)(struct
8322 extern void (*pcibios_disable_irq)(struct pci_dev *dev); 8372 extern void (*pcibios_disable_irq)(struct pci_dev *dev);
8323 8373
@@ -8340,9 +8390,9 @@ diff -urNp linux-2.6.38.2/arch/x86/include/asm/pci_x86.h linux-2.6.38.2/arch/x86
8340 extern bool port_cf9_safe; 8390 extern bool port_cf9_safe;
8341 8391
8342 /* arch_initcall level */ 8392 /* arch_initcall level */
8343diff -urNp linux-2.6.38.2/arch/x86/include/asm/pgalloc.h linux-2.6.38.2/arch/x86/include/asm/pgalloc.h 8393diff -urNp linux-2.6.38.3/arch/x86/include/asm/pgalloc.h linux-2.6.38.3/arch/x86/include/asm/pgalloc.h
8344--- linux-2.6.38.2/arch/x86/include/asm/pgalloc.h 2011-03-14 21:20:32.000000000 -0400 8394--- linux-2.6.38.3/arch/x86/include/asm/pgalloc.h 2011-03-14 21:20:32.000000000 -0400
8345+++ linux-2.6.38.2/arch/x86/include/asm/pgalloc.h 2011-03-21 18:31:35.000000000 -0400 8395+++ linux-2.6.38.3/arch/x86/include/asm/pgalloc.h 2011-04-17 15:57:32.000000000 -0400
8346@@ -63,6 +63,13 @@ static inline void pmd_populate_kernel(s 8396@@ -63,6 +63,13 @@ static inline void pmd_populate_kernel(s
8347 pmd_t *pmd, pte_t *pte) 8397 pmd_t *pmd, pte_t *pte)
8348 { 8398 {
@@ -8357,9 +8407,9 @@ diff -urNp linux-2.6.38.2/arch/x86/include/asm/pgalloc.h linux-2.6.38.2/arch/x86
8357 set_pmd(pmd, __pmd(__pa(pte) | _PAGE_TABLE)); 8407 set_pmd(pmd, __pmd(__pa(pte) | _PAGE_TABLE));
8358 } 8408 }
8359 8409
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 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
8361--- linux-2.6.38.2/arch/x86/include/asm/pgtable-2level.h 2011-03-14 21:20:32.000000000 -0400 8411--- linux-2.6.38.3/arch/x86/include/asm/pgtable-2level.h 2011-03-14 21:20:32.000000000 -0400
8362+++ linux-2.6.38.2/arch/x86/include/asm/pgtable-2level.h 2011-03-21 18:31:35.000000000 -0400 8412+++ linux-2.6.38.3/arch/x86/include/asm/pgtable-2level.h 2011-04-17 15:57:32.000000000 -0400
8363@@ -18,7 +18,9 @@ static inline void native_set_pte(pte_t 8413@@ -18,7 +18,9 @@ static inline void native_set_pte(pte_t
8364 8414
8365 static inline void native_set_pmd(pmd_t *pmdp, pmd_t pmd) 8415 static inline void native_set_pmd(pmd_t *pmdp, pmd_t pmd)
@@ -8370,9 +8420,9 @@ diff -urNp linux-2.6.38.2/arch/x86/include/asm/pgtable-2level.h linux-2.6.38.2/a
8370 } 8420 }
8371 8421
8372 static inline void native_set_pte_atomic(pte_t *ptep, pte_t pte) 8422 static inline void native_set_pte_atomic(pte_t *ptep, pte_t pte)
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 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
8374--- linux-2.6.38.2/arch/x86/include/asm/pgtable_32.h 2011-03-14 21:20:32.000000000 -0400 8424--- linux-2.6.38.3/arch/x86/include/asm/pgtable_32.h 2011-03-14 21:20:32.000000000 -0400
8375+++ linux-2.6.38.2/arch/x86/include/asm/pgtable_32.h 2011-03-21 18:31:35.000000000 -0400 8425+++ linux-2.6.38.3/arch/x86/include/asm/pgtable_32.h 2011-04-17 15:57:32.000000000 -0400
8376@@ -25,9 +25,6 @@ 8426@@ -25,9 +25,6 @@
8377 struct mm_struct; 8427 struct mm_struct;
8378 struct vm_area_struct; 8428 struct vm_area_struct;
@@ -8416,9 +8466,9 @@ diff -urNp linux-2.6.38.2/arch/x86/include/asm/pgtable_32.h linux-2.6.38.2/arch/
8416 /* 8466 /*
8417 * kern_addr_valid() is (1) for FLATMEM and (0) for 8467 * kern_addr_valid() is (1) for FLATMEM and (0) for
8418 * SPARSEMEM and DISCONTIGMEM 8468 * SPARSEMEM and DISCONTIGMEM
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 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
8420--- linux-2.6.38.2/arch/x86/include/asm/pgtable_32_types.h 2011-03-14 21:20:32.000000000 -0400 8470--- linux-2.6.38.3/arch/x86/include/asm/pgtable_32_types.h 2011-03-14 21:20: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 8471+++ linux-2.6.38.3/arch/x86/include/asm/pgtable_32_types.h 2011-04-17 15:57:32.000000000 -0400
8422@@ -8,7 +8,7 @@ 8472@@ -8,7 +8,7 @@
8423 */ 8473 */
8424 #ifdef CONFIG_X86_PAE 8474 #ifdef CONFIG_X86_PAE
@@ -8448,9 +8498,9 @@ diff -urNp linux-2.6.38.2/arch/x86/include/asm/pgtable_32_types.h linux-2.6.38.2
8448 #define MODULES_VADDR VMALLOC_START 8498 #define MODULES_VADDR VMALLOC_START
8449 #define MODULES_END VMALLOC_END 8499 #define MODULES_END VMALLOC_END
8450 #define MODULES_LEN (MODULES_VADDR - MODULES_END) 8500 #define MODULES_LEN (MODULES_VADDR - MODULES_END)
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 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
8452--- linux-2.6.38.2/arch/x86/include/asm/pgtable-3level.h 2011-03-23 17:20:06.000000000 -0400 8502--- linux-2.6.38.3/arch/x86/include/asm/pgtable-3level.h 2011-04-18 17:27:13.000000000 -0400
8453+++ linux-2.6.38.2/arch/x86/include/asm/pgtable-3level.h 2011-03-23 17:21:43.000000000 -0400 8503+++ linux-2.6.38.3/arch/x86/include/asm/pgtable-3level.h 2011-04-17 15:57:32.000000000 -0400
8454@@ -38,12 +38,16 @@ static inline void native_set_pte_atomic 8504@@ -38,12 +38,16 @@ static inline void native_set_pte_atomic
8455 8505
8456 static inline void native_set_pmd(pmd_t *pmdp, pmd_t pmd) 8506 static inline void native_set_pmd(pmd_t *pmdp, pmd_t pmd)
@@ -8468,9 +8518,9 @@ diff -urNp linux-2.6.38.2/arch/x86/include/asm/pgtable-3level.h linux-2.6.38.2/a
8468 } 8518 }
8469 8519
8470 /* 8520 /*
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 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
8472--- linux-2.6.38.2/arch/x86/include/asm/pgtable_64.h 2011-03-14 21:20:32.000000000 -0400 8522--- linux-2.6.38.3/arch/x86/include/asm/pgtable_64.h 2011-03-14 21:20:32.000000000 -0400
8473+++ linux-2.6.38.2/arch/x86/include/asm/pgtable_64.h 2011-03-21 18:31:35.000000000 -0400 8523+++ linux-2.6.38.3/arch/x86/include/asm/pgtable_64.h 2011-04-17 15:57:32.000000000 -0400
8474@@ -16,10 +16,13 @@ 8524@@ -16,10 +16,13 @@
8475 8525
8476 extern pud_t level3_kernel_pgt[512]; 8526 extern pud_t level3_kernel_pgt[512];
@@ -8507,9 +8557,9 @@ diff -urNp linux-2.6.38.2/arch/x86/include/asm/pgtable_64.h linux-2.6.38.2/arch/
8507 } 8557 }
8508 8558
8509 static inline void native_pgd_clear(pgd_t *pgd) 8559 static inline void native_pgd_clear(pgd_t *pgd)
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 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
8511--- linux-2.6.38.2/arch/x86/include/asm/pgtable_64_types.h 2011-03-14 21:20:32.000000000 -0400 8561--- linux-2.6.38.3/arch/x86/include/asm/pgtable_64_types.h 2011-03-14 21:20: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 8562+++ linux-2.6.38.3/arch/x86/include/asm/pgtable_64_types.h 2011-04-17 15:57:32.000000000 -0400
8513@@ -59,5 +59,10 @@ typedef struct { pteval_t pte; } pte_t; 8563@@ -59,5 +59,10 @@ typedef struct { pteval_t pte; } pte_t;
8514 #define MODULES_VADDR _AC(0xffffffffa0000000, UL) 8564 #define MODULES_VADDR _AC(0xffffffffa0000000, UL)
8515 #define MODULES_END _AC(0xffffffffff000000, UL) 8565 #define MODULES_END _AC(0xffffffffff000000, UL)
@@ -8521,9 +8571,9 @@ diff -urNp linux-2.6.38.2/arch/x86/include/asm/pgtable_64_types.h linux-2.6.38.2
8521+#define ktva_ktla(addr) (addr) 8571+#define ktva_ktla(addr) (addr)
8522 8572
8523 #endif /* _ASM_X86_PGTABLE_64_DEFS_H */ 8573 #endif /* _ASM_X86_PGTABLE_64_DEFS_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 8574diff -urNp linux-2.6.38.3/arch/x86/include/asm/pgtable.h linux-2.6.38.3/arch/x86/include/asm/pgtable.h
8525--- linux-2.6.38.2/arch/x86/include/asm/pgtable.h 2011-03-14 21:20:32.000000000 -0400 8575--- linux-2.6.38.3/arch/x86/include/asm/pgtable.h 2011-03-14 21:20:32.000000000 -0400
8526+++ linux-2.6.38.2/arch/x86/include/asm/pgtable.h 2011-03-21 18:31:35.000000000 -0400 8576+++ linux-2.6.38.3/arch/x86/include/asm/pgtable.h 2011-04-17 15:57:32.000000000 -0400
8527@@ -81,12 +81,51 @@ extern struct mm_struct *pgd_page_get_mm 8577@@ -81,12 +81,51 @@ extern struct mm_struct *pgd_page_get_mm
8528 8578
8529 #define arch_end_context_switch(prev) do {} while(0) 8579 #define arch_end_context_switch(prev) do {} while(0)
@@ -8693,9 +8743,9 @@ diff -urNp linux-2.6.38.2/arch/x86/include/asm/pgtable.h linux-2.6.38.2/arch/x86
8693 8743
8694 #include <asm-generic/pgtable.h> 8744 #include <asm-generic/pgtable.h>
8695 #endif /* __ASSEMBLY__ */ 8745 #endif /* __ASSEMBLY__ */
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 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
8697--- linux-2.6.38.2/arch/x86/include/asm/pgtable_types.h 2011-03-14 21:20:32.000000000 -0400 8747--- linux-2.6.38.3/arch/x86/include/asm/pgtable_types.h 2011-03-14 21:20:32.000000000 -0400
8698+++ linux-2.6.38.2/arch/x86/include/asm/pgtable_types.h 2011-03-21 18:31:35.000000000 -0400 8748+++ linux-2.6.38.3/arch/x86/include/asm/pgtable_types.h 2011-04-17 15:57:32.000000000 -0400
8699@@ -16,13 +16,12 @@ 8749@@ -16,13 +16,12 @@
8700 #define _PAGE_BIT_PSE 7 /* 4 MB (or 2MB) page */ 8750 #define _PAGE_BIT_PSE 7 /* 4 MB (or 2MB) page */
8701 #define _PAGE_BIT_PAT 7 /* on 4KB pages */ 8751 #define _PAGE_BIT_PAT 7 /* on 4KB pages */
@@ -8809,9 +8859,9 @@ diff -urNp linux-2.6.38.2/arch/x86/include/asm/pgtable_types.h linux-2.6.38.2/ar
8809 8859
8810 #define pgprot_writecombine pgprot_writecombine 8860 #define pgprot_writecombine pgprot_writecombine
8811 extern pgprot_t pgprot_writecombine(pgprot_t prot); 8861 extern pgprot_t pgprot_writecombine(pgprot_t prot);
8812diff -urNp linux-2.6.38.2/arch/x86/include/asm/processor.h linux-2.6.38.2/arch/x86/include/asm/processor.h 8862diff -urNp linux-2.6.38.3/arch/x86/include/asm/processor.h linux-2.6.38.3/arch/x86/include/asm/processor.h
8813--- linux-2.6.38.2/arch/x86/include/asm/processor.h 2011-03-14 21:20:32.000000000 -0400 8863--- linux-2.6.38.3/arch/x86/include/asm/processor.h 2011-03-14 21:20:32.000000000 -0400
8814+++ linux-2.6.38.2/arch/x86/include/asm/processor.h 2011-03-21 18:31:35.000000000 -0400 8864+++ linux-2.6.38.3/arch/x86/include/asm/processor.h 2011-04-17 15:57:32.000000000 -0400
8815@@ -270,7 +270,7 @@ struct tss_struct { 8865@@ -270,7 +270,7 @@ struct tss_struct {
8816 8866
8817 } ____cacheline_aligned; 8867 } ____cacheline_aligned;
@@ -8896,9 +8946,9 @@ diff -urNp linux-2.6.38.2/arch/x86/include/asm/processor.h linux-2.6.38.2/arch/x
8896 #define KSTK_EIP(task) (task_pt_regs(task)->ip) 8946 #define KSTK_EIP(task) (task_pt_regs(task)->ip)
8897 8947
8898 /* Get/set a process' ability to use the timestamp counter instruction */ 8948 /* Get/set a process' ability to use the timestamp counter instruction */
8899diff -urNp linux-2.6.38.2/arch/x86/include/asm/ptrace.h linux-2.6.38.2/arch/x86/include/asm/ptrace.h 8949diff -urNp linux-2.6.38.3/arch/x86/include/asm/ptrace.h linux-2.6.38.3/arch/x86/include/asm/ptrace.h
8900--- linux-2.6.38.2/arch/x86/include/asm/ptrace.h 2011-03-14 21:20:32.000000000 -0400 8950--- linux-2.6.38.3/arch/x86/include/asm/ptrace.h 2011-03-14 21:20:32.000000000 -0400
8901+++ linux-2.6.38.2/arch/x86/include/asm/ptrace.h 2011-03-21 18:31:35.000000000 -0400 8951+++ linux-2.6.38.3/arch/x86/include/asm/ptrace.h 2011-04-17 15:57:32.000000000 -0400
8902@@ -152,28 +152,29 @@ static inline unsigned long regs_return_ 8952@@ -152,28 +152,29 @@ static inline unsigned long regs_return_
8903 } 8953 }
8904 8954
@@ -8935,9 +8985,9 @@ diff -urNp linux-2.6.38.2/arch/x86/include/asm/ptrace.h linux-2.6.38.2/arch/x86/
8935 #endif 8985 #endif
8936 } 8986 }
8937 8987
8938diff -urNp linux-2.6.38.2/arch/x86/include/asm/reboot.h linux-2.6.38.2/arch/x86/include/asm/reboot.h 8988diff -urNp linux-2.6.38.3/arch/x86/include/asm/reboot.h linux-2.6.38.3/arch/x86/include/asm/reboot.h
8939--- linux-2.6.38.2/arch/x86/include/asm/reboot.h 2011-03-14 21:20:32.000000000 -0400 8989--- linux-2.6.38.3/arch/x86/include/asm/reboot.h 2011-03-14 21:20:32.000000000 -0400
8940+++ linux-2.6.38.2/arch/x86/include/asm/reboot.h 2011-03-21 18:31:35.000000000 -0400 8990+++ linux-2.6.38.3/arch/x86/include/asm/reboot.h 2011-04-17 15:57:32.000000000 -0400
8941@@ -18,7 +18,7 @@ extern struct machine_ops machine_ops; 8991@@ -18,7 +18,7 @@ extern struct machine_ops machine_ops;
8942 8992
8943 void native_machine_crash_shutdown(struct pt_regs *regs); 8993 void native_machine_crash_shutdown(struct pt_regs *regs);
@@ -8947,9 +8997,9 @@ diff -urNp linux-2.6.38.2/arch/x86/include/asm/reboot.h linux-2.6.38.2/arch/x86/
8947 8997
8948 typedef void (*nmi_shootdown_cb)(int, struct die_args*); 8998 typedef void (*nmi_shootdown_cb)(int, struct die_args*);
8949 void nmi_shootdown_cpus(nmi_shootdown_cb callback); 8999 void nmi_shootdown_cpus(nmi_shootdown_cb callback);
8950diff -urNp linux-2.6.38.2/arch/x86/include/asm/rwsem.h linux-2.6.38.2/arch/x86/include/asm/rwsem.h 9000diff -urNp linux-2.6.38.3/arch/x86/include/asm/rwsem.h linux-2.6.38.3/arch/x86/include/asm/rwsem.h
8951--- linux-2.6.38.2/arch/x86/include/asm/rwsem.h 2011-03-14 21:20:32.000000000 -0400 9001--- linux-2.6.38.3/arch/x86/include/asm/rwsem.h 2011-03-14 21:20:32.000000000 -0400
8952+++ linux-2.6.38.2/arch/x86/include/asm/rwsem.h 2011-03-21 18:31:35.000000000 -0400 9002+++ linux-2.6.38.3/arch/x86/include/asm/rwsem.h 2011-04-17 15:57:32.000000000 -0400
8953@@ -118,6 +118,14 @@ static inline void __down_read(struct rw 9003@@ -118,6 +118,14 @@ static inline void __down_read(struct rw
8954 { 9004 {
8955 asm volatile("# beginning down_read\n\t" 9005 asm volatile("# beginning down_read\n\t"
@@ -9074,9 +9124,9 @@ diff -urNp linux-2.6.38.2/arch/x86/include/asm/rwsem.h linux-2.6.38.2/arch/x86/i
9074 : "+r" (tmp), "+m" (sem->count) 9124 : "+r" (tmp), "+m" (sem->count)
9075 : : "memory"); 9125 : : "memory");
9076 9126
9077diff -urNp linux-2.6.38.2/arch/x86/include/asm/segment.h linux-2.6.38.2/arch/x86/include/asm/segment.h 9127diff -urNp linux-2.6.38.3/arch/x86/include/asm/segment.h linux-2.6.38.3/arch/x86/include/asm/segment.h
9078--- linux-2.6.38.2/arch/x86/include/asm/segment.h 2011-03-14 21:20:32.000000000 -0400 9128--- linux-2.6.38.3/arch/x86/include/asm/segment.h 2011-03-14 21:20:32.000000000 -0400
9079+++ linux-2.6.38.2/arch/x86/include/asm/segment.h 2011-03-21 18:31:35.000000000 -0400 9129+++ linux-2.6.38.3/arch/x86/include/asm/segment.h 2011-04-17 15:57:32.000000000 -0400
9080@@ -62,8 +62,8 @@ 9130@@ -62,8 +62,8 @@
9081 * 26 - ESPFIX small SS 9131 * 26 - ESPFIX small SS
9082 * 27 - per-cpu [ offset to per-cpu data area ] 9132 * 27 - per-cpu [ offset to per-cpu data area ]
@@ -9136,9 +9186,9 @@ diff -urNp linux-2.6.38.2/arch/x86/include/asm/segment.h linux-2.6.38.2/arch/x86
9136 #define __KERNEL_DS (GDT_ENTRY_KERNEL_DS*8) 9186 #define __KERNEL_DS (GDT_ENTRY_KERNEL_DS*8)
9137 #define __USER_DS (GDT_ENTRY_DEFAULT_USER_DS*8+3) 9187 #define __USER_DS (GDT_ENTRY_DEFAULT_USER_DS*8+3)
9138 #define __USER_CS (GDT_ENTRY_DEFAULT_USER_CS*8+3) 9188 #define __USER_CS (GDT_ENTRY_DEFAULT_USER_CS*8+3)
9139diff -urNp linux-2.6.38.2/arch/x86/include/asm/smp.h linux-2.6.38.2/arch/x86/include/asm/smp.h 9189diff -urNp linux-2.6.38.3/arch/x86/include/asm/smp.h linux-2.6.38.3/arch/x86/include/asm/smp.h
9140--- linux-2.6.38.2/arch/x86/include/asm/smp.h 2011-03-14 21:20:32.000000000 -0400 9190--- linux-2.6.38.3/arch/x86/include/asm/smp.h 2011-03-14 21:20:32.000000000 -0400
9141+++ linux-2.6.38.2/arch/x86/include/asm/smp.h 2011-03-21 18:31:35.000000000 -0400 9191+++ linux-2.6.38.3/arch/x86/include/asm/smp.h 2011-04-17 15:57:32.000000000 -0400
9142@@ -24,7 +24,7 @@ extern unsigned int num_processors; 9192@@ -24,7 +24,7 @@ extern unsigned int num_processors;
9143 DECLARE_PER_CPU(cpumask_var_t, cpu_sibling_map); 9193 DECLARE_PER_CPU(cpumask_var_t, cpu_sibling_map);
9144 DECLARE_PER_CPU(cpumask_var_t, cpu_core_map); 9194 DECLARE_PER_CPU(cpumask_var_t, cpu_core_map);
@@ -9148,9 +9198,26 @@ diff -urNp linux-2.6.38.2/arch/x86/include/asm/smp.h linux-2.6.38.2/arch/x86/inc
9148 9198
9149 static inline struct cpumask *cpu_sibling_mask(int cpu) 9199 static inline struct cpumask *cpu_sibling_mask(int cpu)
9150 { 9200 {
9151diff -urNp linux-2.6.38.2/arch/x86/include/asm/spinlock.h linux-2.6.38.2/arch/x86/include/asm/spinlock.h 9201@@ -172,14 +172,8 @@ extern unsigned disabled_cpus __cpuinitd
9152--- linux-2.6.38.2/arch/x86/include/asm/spinlock.h 2011-03-14 21:20:32.000000000 -0400 9202 extern int safe_smp_processor_id(void);
9153+++ linux-2.6.38.2/arch/x86/include/asm/spinlock.h 2011-03-21 18:31:35.000000000 -0400 9203
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
9154@@ -249,6 +249,14 @@ static inline int arch_write_can_lock(ar 9221@@ -249,6 +249,14 @@ static inline int arch_write_can_lock(ar
9155 static inline void arch_read_lock(arch_rwlock_t *rw) 9222 static inline void arch_read_lock(arch_rwlock_t *rw)
9156 { 9223 {
@@ -9213,9 +9280,9 @@ diff -urNp linux-2.6.38.2/arch/x86/include/asm/spinlock.h linux-2.6.38.2/arch/x8
9213 : "+m" (rw->lock) : "i" (RW_LOCK_BIAS) : "memory"); 9280 : "+m" (rw->lock) : "i" (RW_LOCK_BIAS) : "memory");
9214 } 9281 }
9215 9282
9216diff -urNp linux-2.6.38.2/arch/x86/include/asm/stackprotector.h linux-2.6.38.2/arch/x86/include/asm/stackprotector.h 9283diff -urNp linux-2.6.38.3/arch/x86/include/asm/stackprotector.h linux-2.6.38.3/arch/x86/include/asm/stackprotector.h
9217--- linux-2.6.38.2/arch/x86/include/asm/stackprotector.h 2011-03-14 21:20:32.000000000 -0400 9284--- linux-2.6.38.3/arch/x86/include/asm/stackprotector.h 2011-03-14 21:20:32.000000000 -0400
9218+++ linux-2.6.38.2/arch/x86/include/asm/stackprotector.h 2011-03-21 18:31:35.000000000 -0400 9285+++ linux-2.6.38.3/arch/x86/include/asm/stackprotector.h 2011-04-17 15:57:32.000000000 -0400
9219@@ -113,7 +113,7 @@ static inline void setup_stack_canary_se 9286@@ -113,7 +113,7 @@ static inline void setup_stack_canary_se
9220 9287
9221 static inline void load_stack_canary_segment(void) 9288 static inline void load_stack_canary_segment(void)
@@ -9225,9 +9292,80 @@ diff -urNp linux-2.6.38.2/arch/x86/include/asm/stackprotector.h linux-2.6.38.2/a
9225 asm volatile ("mov %0, %%gs" : : "r" (0)); 9292 asm volatile ("mov %0, %%gs" : : "r" (0));
9226 #endif 9293 #endif
9227 } 9294 }
9228diff -urNp linux-2.6.38.2/arch/x86/include/asm/system.h linux-2.6.38.2/arch/x86/include/asm/system.h 9295diff -urNp linux-2.6.38.3/arch/x86/include/asm/stacktrace.h linux-2.6.38.3/arch/x86/include/asm/stacktrace.h
9229--- linux-2.6.38.2/arch/x86/include/asm/system.h 2011-03-14 21:20:32.000000000 -0400 9296--- linux-2.6.38.3/arch/x86/include/asm/stacktrace.h 2011-03-14 21:20:32.000000000 -0400
9230+++ linux-2.6.38.2/arch/x86/include/asm/system.h 2011-03-21 18:31:35.000000000 -0400 9297+++ linux-2.6.38.3/arch/x86/include/asm/stacktrace.h 2011-04-17 15:57:32.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)
9231@@ -202,7 +202,7 @@ static inline unsigned long get_limit(un 9369@@ -202,7 +202,7 @@ static inline unsigned long get_limit(un
9232 { 9370 {
9233 unsigned long __limit; 9371 unsigned long __limit;
@@ -9246,9 +9384,156 @@ diff -urNp linux-2.6.38.2/arch/x86/include/asm/system.h linux-2.6.38.2/arch/x86/
9246 extern void free_init_pages(char *what, unsigned long begin, unsigned long end); 9384 extern void free_init_pages(char *what, unsigned long begin, unsigned long end);
9247 9385
9248 void default_idle(void); 9386 void default_idle(void);
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 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
9250--- linux-2.6.38.2/arch/x86/include/asm/uaccess_32.h 2011-03-14 21:20:32.000000000 -0400 9388--- linux-2.6.38.3/arch/x86/include/asm/thread_info.h 2011-03-14 21:20:32.000000000 -0400
9251+++ linux-2.6.38.2/arch/x86/include/asm/uaccess_32.h 2011-03-21 18:31:35.000000000 -0400 9389+++ linux-2.6.38.3/arch/x86/include/asm/thread_info.h 2011-04-17 15:57:32.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
9252@@ -44,6 +44,9 @@ unsigned long __must_check __copy_from_u 9537@@ -44,6 +44,9 @@ unsigned long __must_check __copy_from_u
9253 static __always_inline unsigned long __must_check 9538 static __always_inline unsigned long __must_check
9254 __copy_to_user_inatomic(void __user *to, const void *from, unsigned long n) 9539 __copy_to_user_inatomic(void __user *to, const void *from, unsigned long n)
@@ -9405,9 +9690,9 @@ diff -urNp linux-2.6.38.2/arch/x86/include/asm/uaccess_32.h linux-2.6.38.2/arch/
9405 return n; 9690 return n;
9406 } 9691 }
9407 9692
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 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
9409--- linux-2.6.38.2/arch/x86/include/asm/uaccess_64.h 2011-03-14 21:20:32.000000000 -0400 9694--- linux-2.6.38.3/arch/x86/include/asm/uaccess_64.h 2011-03-14 21:20:32.000000000 -0400
9410+++ linux-2.6.38.2/arch/x86/include/asm/uaccess_64.h 2011-03-21 18:31:35.000000000 -0400 9695+++ linux-2.6.38.3/arch/x86/include/asm/uaccess_64.h 2011-04-17 15:57:32.000000000 -0400
9411@@ -11,6 +11,9 @@ 9696@@ -11,6 +11,9 @@
9412 #include <asm/alternative.h> 9697 #include <asm/alternative.h>
9413 #include <asm/cpufeature.h> 9698 #include <asm/cpufeature.h>
@@ -9780,9 +10065,9 @@ diff -urNp linux-2.6.38.2/arch/x86/include/asm/uaccess_64.h linux-2.6.38.2/arch/
9780 copy_user_handle_tail(char *to, char *from, unsigned len, unsigned zerorest); 10065 copy_user_handle_tail(char *to, char *from, unsigned len, unsigned zerorest);
9781 10066
9782 #endif /* _ASM_X86_UACCESS_64_H */ 10067 #endif /* _ASM_X86_UACCESS_64_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 10068diff -urNp linux-2.6.38.3/arch/x86/include/asm/uaccess.h linux-2.6.38.3/arch/x86/include/asm/uaccess.h
9784--- linux-2.6.38.2/arch/x86/include/asm/uaccess.h 2011-03-14 21:20:32.000000000 -0400 10069--- linux-2.6.38.3/arch/x86/include/asm/uaccess.h 2011-03-14 21:20:32.000000000 -0400
9785+++ linux-2.6.38.2/arch/x86/include/asm/uaccess.h 2011-03-21 18:31:35.000000000 -0400 10070+++ linux-2.6.38.3/arch/x86/include/asm/uaccess.h 2011-04-17 15:57:32.000000000 -0400
9786@@ -8,12 +8,15 @@ 10071@@ -8,12 +8,15 @@
9787 #include <linux/thread_info.h> 10072 #include <linux/thread_info.h>
9788 #include <linux/prefetch.h> 10073 #include <linux/prefetch.h>
@@ -10001,9 +10286,9 @@ diff -urNp linux-2.6.38.2/arch/x86/include/asm/uaccess.h linux-2.6.38.2/arch/x86
10001 #ifdef CONFIG_X86_32 10286 #ifdef CONFIG_X86_32
10002 # include "uaccess_32.h" 10287 # include "uaccess_32.h"
10003 #else 10288 #else
10004diff -urNp linux-2.6.38.2/arch/x86/include/asm/vgtod.h linux-2.6.38.2/arch/x86/include/asm/vgtod.h 10289diff -urNp linux-2.6.38.3/arch/x86/include/asm/vgtod.h linux-2.6.38.3/arch/x86/include/asm/vgtod.h
10005--- linux-2.6.38.2/arch/x86/include/asm/vgtod.h 2011-03-14 21:20:32.000000000 -0400 10290--- linux-2.6.38.3/arch/x86/include/asm/vgtod.h 2011-03-14 21:20:32.000000000 -0400
10006+++ linux-2.6.38.2/arch/x86/include/asm/vgtod.h 2011-03-21 18:31:35.000000000 -0400 10291+++ linux-2.6.38.3/arch/x86/include/asm/vgtod.h 2011-04-17 15:57:32.000000000 -0400
10007@@ -14,6 +14,7 @@ struct vsyscall_gtod_data { 10292@@ -14,6 +14,7 @@ struct vsyscall_gtod_data {
10008 int sysctl_enabled; 10293 int sysctl_enabled;
10009 struct timezone sys_tz; 10294 struct timezone sys_tz;
@@ -10012,9 +10297,9 @@ diff -urNp linux-2.6.38.2/arch/x86/include/asm/vgtod.h linux-2.6.38.2/arch/x86/i
10012 cycle_t (*vread)(void); 10297 cycle_t (*vread)(void);
10013 cycle_t cycle_last; 10298 cycle_t cycle_last;
10014 cycle_t mask; 10299 cycle_t mask;
10015diff -urNp linux-2.6.38.2/arch/x86/include/asm/vsyscall.h linux-2.6.38.2/arch/x86/include/asm/vsyscall.h 10300diff -urNp linux-2.6.38.3/arch/x86/include/asm/vsyscall.h linux-2.6.38.3/arch/x86/include/asm/vsyscall.h
10016--- linux-2.6.38.2/arch/x86/include/asm/vsyscall.h 2011-03-14 21:20:32.000000000 -0400 10301--- linux-2.6.38.3/arch/x86/include/asm/vsyscall.h 2011-03-14 21:20:32.000000000 -0400
10017+++ linux-2.6.38.2/arch/x86/include/asm/vsyscall.h 2011-03-21 18:31:35.000000000 -0400 10302+++ linux-2.6.38.3/arch/x86/include/asm/vsyscall.h 2011-04-17 15:57:32.000000000 -0400
10018@@ -15,9 +15,10 @@ enum vsyscall_num { 10303@@ -15,9 +15,10 @@ enum vsyscall_num {
10019 10304
10020 #ifdef __KERNEL__ 10305 #ifdef __KERNEL__
@@ -10045,9 +10330,9 @@ diff -urNp linux-2.6.38.2/arch/x86/include/asm/vsyscall.h linux-2.6.38.2/arch/x8
10045 #endif /* __KERNEL__ */ 10330 #endif /* __KERNEL__ */
10046 10331
10047 #endif /* _ASM_X86_VSYSCALL_H */ 10332 #endif /* _ASM_X86_VSYSCALL_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 10333diff -urNp linux-2.6.38.3/arch/x86/include/asm/xsave.h linux-2.6.38.3/arch/x86/include/asm/xsave.h
10049--- linux-2.6.38.2/arch/x86/include/asm/xsave.h 2011-03-14 21:20:32.000000000 -0400 10334--- linux-2.6.38.3/arch/x86/include/asm/xsave.h 2011-03-14 21:20:32.000000000 -0400
10050+++ linux-2.6.38.2/arch/x86/include/asm/xsave.h 2011-03-21 18:31:35.000000000 -0400 10335+++ linux-2.6.38.3/arch/x86/include/asm/xsave.h 2011-04-17 15:57:32.000000000 -0400
10051@@ -65,6 +65,11 @@ static inline int xsave_user(struct xsav 10336@@ -65,6 +65,11 @@ static inline int xsave_user(struct xsav
10052 { 10337 {
10053 int err; 10338 int err;
@@ -10072,9 +10357,9 @@ diff -urNp linux-2.6.38.2/arch/x86/include/asm/xsave.h linux-2.6.38.2/arch/x86/i
10072 __asm__ __volatile__("1: .byte " REX_PREFIX "0x0f,0xae,0x2f\n" 10357 __asm__ __volatile__("1: .byte " REX_PREFIX "0x0f,0xae,0x2f\n"
10073 "2:\n" 10358 "2:\n"
10074 ".section .fixup,\"ax\"\n" 10359 ".section .fixup,\"ax\"\n"
10075diff -urNp linux-2.6.38.2/arch/x86/Kconfig linux-2.6.38.2/arch/x86/Kconfig 10360diff -urNp linux-2.6.38.3/arch/x86/Kconfig linux-2.6.38.3/arch/x86/Kconfig
10076--- linux-2.6.38.2/arch/x86/Kconfig 2011-03-14 21:20:32.000000000 -0400 10361--- linux-2.6.38.3/arch/x86/Kconfig 2011-03-14 21:20:32.000000000 -0400
10077+++ linux-2.6.38.2/arch/x86/Kconfig 2011-03-21 18:31:35.000000000 -0400 10362+++ linux-2.6.38.3/arch/x86/Kconfig 2011-04-17 15:57:32.000000000 -0400
10078@@ -223,7 +223,7 @@ config X86_TRAMPOLINE 10363@@ -223,7 +223,7 @@ config X86_TRAMPOLINE
10079 10364
10080 config X86_32_LAZY_GS 10365 config X86_32_LAZY_GS
@@ -10156,9 +10441,9 @@ diff -urNp linux-2.6.38.2/arch/x86/Kconfig linux-2.6.38.2/arch/x86/Kconfig
10156 ---help--- 10441 ---help---
10157 Map the 32-bit VDSO to the predictable old-style address too. 10442 Map the 32-bit VDSO to the predictable old-style address too.
10158 10443
10159diff -urNp linux-2.6.38.2/arch/x86/Kconfig.cpu linux-2.6.38.2/arch/x86/Kconfig.cpu 10444diff -urNp linux-2.6.38.3/arch/x86/Kconfig.cpu linux-2.6.38.3/arch/x86/Kconfig.cpu
10160--- linux-2.6.38.2/arch/x86/Kconfig.cpu 2011-03-14 21:20:32.000000000 -0400 10445--- linux-2.6.38.3/arch/x86/Kconfig.cpu 2011-03-14 21:20:32.000000000 -0400
10161+++ linux-2.6.38.2/arch/x86/Kconfig.cpu 2011-03-21 18:31:35.000000000 -0400 10446+++ linux-2.6.38.3/arch/x86/Kconfig.cpu 2011-04-17 15:57:32.000000000 -0400
10162@@ -339,7 +339,7 @@ config X86_PPRO_FENCE 10447@@ -339,7 +339,7 @@ config X86_PPRO_FENCE
10163 10448
10164 config X86_F00F_BUG 10449 config X86_F00F_BUG
@@ -10186,9 +10471,9 @@ diff -urNp linux-2.6.38.2/arch/x86/Kconfig.cpu linux-2.6.38.2/arch/x86/Kconfig.c
10186 10471
10187 config X86_MINIMUM_CPU_FAMILY 10472 config X86_MINIMUM_CPU_FAMILY
10188 int 10473 int
10189diff -urNp linux-2.6.38.2/arch/x86/Kconfig.debug linux-2.6.38.2/arch/x86/Kconfig.debug 10474diff -urNp linux-2.6.38.3/arch/x86/Kconfig.debug linux-2.6.38.3/arch/x86/Kconfig.debug
10190--- linux-2.6.38.2/arch/x86/Kconfig.debug 2011-03-14 21:20:32.000000000 -0400 10475--- linux-2.6.38.3/arch/x86/Kconfig.debug 2011-03-14 21:20:32.000000000 -0400
10191+++ linux-2.6.38.2/arch/x86/Kconfig.debug 2011-03-21 18:31:35.000000000 -0400 10476+++ linux-2.6.38.3/arch/x86/Kconfig.debug 2011-04-17 15:57:32.000000000 -0400
10192@@ -101,7 +101,7 @@ config X86_PTDUMP 10477@@ -101,7 +101,7 @@ config X86_PTDUMP
10193 config DEBUG_RODATA 10478 config DEBUG_RODATA
10194 bool "Write protect kernel read-only data structures" 10479 bool "Write protect kernel read-only data structures"
@@ -10207,9 +10492,9 @@ diff -urNp linux-2.6.38.2/arch/x86/Kconfig.debug linux-2.6.38.2/arch/x86/Kconfig
10207 ---help--- 10492 ---help---
10208 This option helps catch unintended modifications to loadable 10493 This option helps catch unintended modifications to loadable
10209 kernel module's text and read-only data. It also prevents execution 10494 kernel module's text and read-only data. It also prevents execution
10210diff -urNp linux-2.6.38.2/arch/x86/kernel/acpi/boot.c linux-2.6.38.2/arch/x86/kernel/acpi/boot.c 10495diff -urNp linux-2.6.38.3/arch/x86/kernel/acpi/boot.c linux-2.6.38.3/arch/x86/kernel/acpi/boot.c
10211--- linux-2.6.38.2/arch/x86/kernel/acpi/boot.c 2011-03-14 21:20:32.000000000 -0400 10496--- linux-2.6.38.3/arch/x86/kernel/acpi/boot.c 2011-03-14 21:20:32.000000000 -0400
10212+++ linux-2.6.38.2/arch/x86/kernel/acpi/boot.c 2011-03-21 18:31:35.000000000 -0400 10497+++ linux-2.6.38.3/arch/x86/kernel/acpi/boot.c 2011-04-17 15:57:32.000000000 -0400
10213@@ -1472,7 +1472,7 @@ static struct dmi_system_id __initdata a 10498@@ -1472,7 +1472,7 @@ static struct dmi_system_id __initdata a
10214 DMI_MATCH(DMI_PRODUCT_NAME, "HP Compaq 6715b"), 10499 DMI_MATCH(DMI_PRODUCT_NAME, "HP Compaq 6715b"),
10215 }, 10500 },
@@ -10219,9 +10504,9 @@ diff -urNp linux-2.6.38.2/arch/x86/kernel/acpi/boot.c linux-2.6.38.2/arch/x86/ke
10219 }; 10504 };
10220 10505
10221 /* 10506 /*
10222diff -urNp linux-2.6.38.2/arch/x86/kernel/acpi/sleep.c linux-2.6.38.2/arch/x86/kernel/acpi/sleep.c 10507diff -urNp linux-2.6.38.3/arch/x86/kernel/acpi/sleep.c linux-2.6.38.3/arch/x86/kernel/acpi/sleep.c
10223--- linux-2.6.38.2/arch/x86/kernel/acpi/sleep.c 2011-03-14 21:20:32.000000000 -0400 10508--- linux-2.6.38.3/arch/x86/kernel/acpi/sleep.c 2011-03-14 21:20:32.000000000 -0400
10224+++ linux-2.6.38.2/arch/x86/kernel/acpi/sleep.c 2011-03-21 18:31:35.000000000 -0400 10509+++ linux-2.6.38.3/arch/x86/kernel/acpi/sleep.c 2011-04-17 15:57:32.000000000 -0400
10225@@ -18,7 +18,7 @@ 10510@@ -18,7 +18,7 @@
10226 #include "realmode/wakeup.h" 10511 #include "realmode/wakeup.h"
10227 #include "sleep.h" 10512 #include "sleep.h"
@@ -10244,9 +10529,9 @@ diff -urNp linux-2.6.38.2/arch/x86/kernel/acpi/sleep.c linux-2.6.38.2/arch/x86/k
10244 initial_gs = per_cpu_offset(smp_processor_id()); 10529 initial_gs = per_cpu_offset(smp_processor_id());
10245 #endif 10530 #endif
10246 initial_code = (unsigned long)wakeup_long64; 10531 initial_code = (unsigned long)wakeup_long64;
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 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
10248--- linux-2.6.38.2/arch/x86/kernel/acpi/wakeup_32.S 2011-03-14 21:20:32.000000000 -0400 10533--- linux-2.6.38.3/arch/x86/kernel/acpi/wakeup_32.S 2011-03-14 21:20:32.000000000 -0400
10249+++ linux-2.6.38.2/arch/x86/kernel/acpi/wakeup_32.S 2011-03-21 18:31:35.000000000 -0400 10534+++ linux-2.6.38.3/arch/x86/kernel/acpi/wakeup_32.S 2011-04-17 15:57:32.000000000 -0400
10250@@ -30,13 +30,11 @@ wakeup_pmode_return: 10535@@ -30,13 +30,11 @@ wakeup_pmode_return:
10251 # and restore the stack ... but you need gdt for this to work 10536 # and restore the stack ... but you need gdt for this to work
10252 movl saved_context_esp, %esp 10537 movl saved_context_esp, %esp
@@ -10263,9 +10548,9 @@ diff -urNp linux-2.6.38.2/arch/x86/kernel/acpi/wakeup_32.S linux-2.6.38.2/arch/x
10263 10548
10264 bogus_magic: 10549 bogus_magic:
10265 jmp bogus_magic 10550 jmp bogus_magic
10266diff -urNp linux-2.6.38.2/arch/x86/kernel/alternative.c linux-2.6.38.2/arch/x86/kernel/alternative.c 10551diff -urNp linux-2.6.38.3/arch/x86/kernel/alternative.c linux-2.6.38.3/arch/x86/kernel/alternative.c
10267--- linux-2.6.38.2/arch/x86/kernel/alternative.c 2011-03-23 17:20:06.000000000 -0400 10552--- linux-2.6.38.3/arch/x86/kernel/alternative.c 2011-04-18 17:27:13.000000000 -0400
10268+++ linux-2.6.38.2/arch/x86/kernel/alternative.c 2011-03-28 16:55:19.000000000 -0400 10553+++ linux-2.6.38.3/arch/x86/kernel/alternative.c 2011-04-17 15:57:32.000000000 -0400
10269@@ -248,7 +248,7 @@ static void alternatives_smp_lock(const 10554@@ -248,7 +248,7 @@ static void alternatives_smp_lock(const
10270 if (!*poff || ptr < text || ptr >= text_end) 10555 if (!*poff || ptr < text || ptr >= text_end)
10271 continue; 10556 continue;
@@ -10379,9 +10664,9 @@ diff -urNp linux-2.6.38.2/arch/x86/kernel/alternative.c linux-2.6.38.2/arch/x86/
10379 #endif 10664 #endif
10380 10665
10381 void __init arch_init_ideal_nop5(void) 10666 void __init arch_init_ideal_nop5(void)
10382diff -urNp linux-2.6.38.2/arch/x86/kernel/amd_iommu.c linux-2.6.38.2/arch/x86/kernel/amd_iommu.c 10667diff -urNp linux-2.6.38.3/arch/x86/kernel/amd_iommu.c linux-2.6.38.3/arch/x86/kernel/amd_iommu.c
10383--- linux-2.6.38.2/arch/x86/kernel/amd_iommu.c 2011-03-14 21:20:32.000000000 -0400 10668--- linux-2.6.38.3/arch/x86/kernel/amd_iommu.c 2011-03-14 21:20:32.000000000 -0400
10384+++ linux-2.6.38.2/arch/x86/kernel/amd_iommu.c 2011-03-21 18:31:35.000000000 -0400 10669+++ linux-2.6.38.3/arch/x86/kernel/amd_iommu.c 2011-04-17 15:57:32.000000000 -0400
10385@@ -2286,7 +2286,7 @@ static void prealloc_protection_domains( 10670@@ -2286,7 +2286,7 @@ static void prealloc_protection_domains(
10386 } 10671 }
10387 } 10672 }
@@ -10391,9 +10676,9 @@ diff -urNp linux-2.6.38.2/arch/x86/kernel/amd_iommu.c linux-2.6.38.2/arch/x86/ke
10391 .alloc_coherent = alloc_coherent, 10676 .alloc_coherent = alloc_coherent,
10392 .free_coherent = free_coherent, 10677 .free_coherent = free_coherent,
10393 .map_page = map_page, 10678 .map_page = map_page,
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 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
10395--- linux-2.6.38.2/arch/x86/kernel/apic/io_apic.c 2011-03-14 21:20:32.000000000 -0400 10680--- linux-2.6.38.3/arch/x86/kernel/apic/io_apic.c 2011-03-14 21:20:32.000000000 -0400
10396+++ linux-2.6.38.2/arch/x86/kernel/apic/io_apic.c 2011-03-21 18:31:35.000000000 -0400 10681+++ linux-2.6.38.3/arch/x86/kernel/apic/io_apic.c 2011-04-17 15:57:32.000000000 -0400
10397@@ -617,7 +617,7 @@ struct IO_APIC_route_entry **alloc_ioapi 10682@@ -617,7 +617,7 @@ struct IO_APIC_route_entry **alloc_ioapi
10398 ioapic_entries = kzalloc(sizeof(*ioapic_entries) * nr_ioapics, 10683 ioapic_entries = kzalloc(sizeof(*ioapic_entries) * nr_ioapics,
10399 GFP_KERNEL); 10684 GFP_KERNEL);
@@ -10430,9 +10715,9 @@ diff -urNp linux-2.6.38.2/arch/x86/kernel/apic/io_apic.c linux-2.6.38.2/arch/x86
10430 { 10715 {
10431 raw_spin_unlock(&vector_lock); 10716 raw_spin_unlock(&vector_lock);
10432 } 10717 }
10433diff -urNp linux-2.6.38.2/arch/x86/kernel/apm_32.c linux-2.6.38.2/arch/x86/kernel/apm_32.c 10718diff -urNp linux-2.6.38.3/arch/x86/kernel/apm_32.c linux-2.6.38.3/arch/x86/kernel/apm_32.c
10434--- linux-2.6.38.2/arch/x86/kernel/apm_32.c 2011-03-14 21:20:32.000000000 -0400 10719--- linux-2.6.38.3/arch/x86/kernel/apm_32.c 2011-03-14 21:20:32.000000000 -0400
10435+++ linux-2.6.38.2/arch/x86/kernel/apm_32.c 2011-03-21 18:31:35.000000000 -0400 10720+++ linux-2.6.38.3/arch/x86/kernel/apm_32.c 2011-04-17 15:57:32.000000000 -0400
10436@@ -410,7 +410,7 @@ static DEFINE_MUTEX(apm_mutex); 10721@@ -410,7 +410,7 @@ static DEFINE_MUTEX(apm_mutex);
10437 * This is for buggy BIOS's that refer to (real mode) segment 0x40 10722 * This is for buggy BIOS's that refer to (real mode) segment 0x40
10438 * even though they are called in protected mode. 10723 * even though they are called in protected mode.
@@ -10534,10 +10819,18 @@ diff -urNp linux-2.6.38.2/arch/x86/kernel/apm_32.c linux-2.6.38.2/arch/x86/kerne
10534 10819
10535 proc_create("apm", 0, NULL, &apm_file_ops); 10820 proc_create("apm", 0, NULL, &apm_file_ops);
10536 10821
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 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
10538--- linux-2.6.38.2/arch/x86/kernel/asm-offsets_32.c 2011-03-14 21:20:32.000000000 -0400 10823--- linux-2.6.38.3/arch/x86/kernel/asm-offsets_32.c 2011-03-14 21:20:32.000000000 -0400
10539+++ linux-2.6.38.2/arch/x86/kernel/asm-offsets_32.c 2011-03-21 18:31:35.000000000 -0400 10824+++ linux-2.6.38.3/arch/x86/kernel/asm-offsets_32.c 2011-04-17 15:57:32.000000000 -0400
10540@@ -113,6 +113,11 @@ void foo(void) 10825@@ -51,7 +51,6 @@ 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)
10541 OFFSET(PV_CPU_iret, pv_cpu_ops, iret); 10834 OFFSET(PV_CPU_iret, pv_cpu_ops, iret);
10542 OFFSET(PV_CPU_irq_enable_sysexit, pv_cpu_ops, irq_enable_sysexit); 10835 OFFSET(PV_CPU_irq_enable_sysexit, pv_cpu_ops, irq_enable_sysexit);
10543 OFFSET(PV_CPU_read_cr0, pv_cpu_ops, read_cr0); 10836 OFFSET(PV_CPU_read_cr0, pv_cpu_ops, read_cr0);
@@ -10549,9 +10842,9 @@ diff -urNp linux-2.6.38.2/arch/x86/kernel/asm-offsets_32.c linux-2.6.38.2/arch/x
10549 #endif 10842 #endif
10550 10843
10551 #ifdef CONFIG_XEN 10844 #ifdef CONFIG_XEN
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 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
10553--- linux-2.6.38.2/arch/x86/kernel/asm-offsets_64.c 2011-03-14 21:20:32.000000000 -0400 10846--- linux-2.6.38.3/arch/x86/kernel/asm-offsets_64.c 2011-03-14 21:20:32.000000000 -0400
10554+++ linux-2.6.38.2/arch/x86/kernel/asm-offsets_64.c 2011-03-21 18:31:35.000000000 -0400 10847+++ linux-2.6.38.3/arch/x86/kernel/asm-offsets_64.c 2011-04-17 15:57:32.000000000 -0400
10555@@ -63,6 +63,18 @@ int main(void) 10848@@ -63,6 +63,18 @@ int main(void)
10556 OFFSET(PV_CPU_irq_enable_sysexit, pv_cpu_ops, irq_enable_sysexit); 10849 OFFSET(PV_CPU_irq_enable_sysexit, pv_cpu_ops, irq_enable_sysexit);
10557 OFFSET(PV_CPU_swapgs, pv_cpu_ops, swapgs); 10850 OFFSET(PV_CPU_swapgs, pv_cpu_ops, swapgs);
@@ -10579,9 +10872,21 @@ diff -urNp linux-2.6.38.2/arch/x86/kernel/asm-offsets_64.c linux-2.6.38.2/arch/x
10579 DEFINE(TSS_ist, offsetof(struct tss_struct, x86_tss.ist)); 10872 DEFINE(TSS_ist, offsetof(struct tss_struct, x86_tss.ist));
10580 BLANK(); 10873 BLANK();
10581 DEFINE(crypto_tfm_ctx_offset, offsetof(struct crypto_tfm, __crt_ctx)); 10874 DEFINE(crypto_tfm_ctx_offset, offsetof(struct crypto_tfm, __crt_ctx));
10582diff -urNp linux-2.6.38.2/arch/x86/kernel/cpu/common.c linux-2.6.38.2/arch/x86/kernel/cpu/common.c 10875diff -urNp linux-2.6.38.3/arch/x86/kernel/cpu/amd.c linux-2.6.38.3/arch/x86/kernel/cpu/amd.c
10583--- linux-2.6.38.2/arch/x86/kernel/cpu/common.c 2011-03-14 21:20:32.000000000 -0400 10876--- linux-2.6.38.3/arch/x86/kernel/cpu/amd.c 2011-03-14 21:20:32.000000000 -0400
10584+++ linux-2.6.38.2/arch/x86/kernel/cpu/common.c 2011-03-21 18:31:35.000000000 -0400 10877+++ linux-2.6.38.3/arch/x86/kernel/cpu/amd.c 2011-04-17 15:57:32.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
10585@@ -83,60 +83,6 @@ static const struct cpu_dev __cpuinitcon 10890@@ -83,60 +83,6 @@ static const struct cpu_dev __cpuinitcon
10586 10891
10587 static const struct cpu_dev *this_cpu __cpuinitdata = &default_cpu; 10892 static const struct cpu_dev *this_cpu __cpuinitdata = &default_cpu;
@@ -10663,7 +10968,26 @@ diff -urNp linux-2.6.38.2/arch/x86/kernel/cpu/common.c linux-2.6.38.2/arch/x86/k
10663 /* If the model name is still unset, do table lookup. */ 10968 /* If the model name is still unset, do table lookup. */
10664 if (!c->x86_model_id[0]) { 10969 if (!c->x86_model_id[0]) {
10665 const char *p; 10970 const char *p;
10666@@ -1084,7 +1034,7 @@ struct pt_regs * __cpuinit idle_regs(str 10971@@ -1004,6 +954,9 @@ static __init int setup_disablecpuid(cha
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
10667 { 10991 {
10668 memset(regs, 0, sizeof(struct pt_regs)); 10992 memset(regs, 0, sizeof(struct pt_regs));
10669 regs->fs = __KERNEL_PERCPU; 10993 regs->fs = __KERNEL_PERCPU;
@@ -10672,7 +10996,7 @@ diff -urNp linux-2.6.38.2/arch/x86/kernel/cpu/common.c linux-2.6.38.2/arch/x86/k
10672 10996
10673 return regs; 10997 return regs;
10674 } 10998 }
10675@@ -1139,7 +1089,7 @@ void __cpuinit cpu_init(void) 10999@@ -1139,7 +1092,7 @@ void __cpuinit cpu_init(void)
10676 int i; 11000 int i;
10677 11001
10678 cpu = stack_smp_processor_id(); 11002 cpu = stack_smp_processor_id();
@@ -10681,7 +11005,7 @@ diff -urNp linux-2.6.38.2/arch/x86/kernel/cpu/common.c linux-2.6.38.2/arch/x86/k
10681 oist = &per_cpu(orig_ist, cpu); 11005 oist = &per_cpu(orig_ist, cpu);
10682 11006
10683 #ifdef CONFIG_NUMA 11007 #ifdef CONFIG_NUMA
10684@@ -1165,7 +1115,7 @@ void __cpuinit cpu_init(void) 11008@@ -1165,7 +1118,7 @@ void __cpuinit cpu_init(void)
10685 switch_to_new_gdt(cpu); 11009 switch_to_new_gdt(cpu);
10686 loadsegment(fs, 0); 11010 loadsegment(fs, 0);
10687 11011
@@ -10690,7 +11014,7 @@ diff -urNp linux-2.6.38.2/arch/x86/kernel/cpu/common.c linux-2.6.38.2/arch/x86/k
10690 11014
10691 memset(me->thread.tls_array, 0, GDT_ENTRY_TLS_ENTRIES * 8); 11015 memset(me->thread.tls_array, 0, GDT_ENTRY_TLS_ENTRIES * 8);
10692 syscall_init(); 11016 syscall_init();
10693@@ -1174,7 +1124,6 @@ void __cpuinit cpu_init(void) 11017@@ -1174,7 +1127,6 @@ void __cpuinit cpu_init(void)
10694 wrmsrl(MSR_KERNEL_GS_BASE, 0); 11018 wrmsrl(MSR_KERNEL_GS_BASE, 0);
10695 barrier(); 11019 barrier();
10696 11020
@@ -10698,7 +11022,7 @@ diff -urNp linux-2.6.38.2/arch/x86/kernel/cpu/common.c linux-2.6.38.2/arch/x86/k
10698 if (cpu != 0) 11022 if (cpu != 0)
10699 enable_x2apic(); 11023 enable_x2apic();
10700 11024
10701@@ -1228,7 +1177,7 @@ void __cpuinit cpu_init(void) 11025@@ -1228,7 +1180,7 @@ void __cpuinit cpu_init(void)
10702 { 11026 {
10703 int cpu = smp_processor_id(); 11027 int cpu = smp_processor_id();
10704 struct task_struct *curr = current; 11028 struct task_struct *curr = current;
@@ -10707,9 +11031,9 @@ diff -urNp linux-2.6.38.2/arch/x86/kernel/cpu/common.c linux-2.6.38.2/arch/x86/k
10707 struct thread_struct *thread = &curr->thread; 11031 struct thread_struct *thread = &curr->thread;
10708 11032
10709 if (cpumask_test_and_set_cpu(cpu, cpu_initialized_mask)) { 11033 if (cpumask_test_and_set_cpu(cpu, cpu_initialized_mask)) {
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 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
10711--- linux-2.6.38.2/arch/x86/kernel/cpu/cpufreq/acpi-cpufreq.c 2011-03-14 21:20:32.000000000 -0400 11035--- linux-2.6.38.3/arch/x86/kernel/cpu/cpufreq/acpi-cpufreq.c 2011-03-14 21:20: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 11036+++ linux-2.6.38.3/arch/x86/kernel/cpu/cpufreq/acpi-cpufreq.c 2011-04-17 15:57:32.000000000 -0400
10713@@ -481,7 +481,7 @@ static const struct dmi_system_id sw_any 11037@@ -481,7 +481,7 @@ static const struct dmi_system_id sw_any
10714 DMI_MATCH(DMI_PRODUCT_NAME, "X6DLP"), 11038 DMI_MATCH(DMI_PRODUCT_NAME, "X6DLP"),
10715 }, 11039 },
@@ -10719,9 +11043,9 @@ diff -urNp linux-2.6.38.2/arch/x86/kernel/cpu/cpufreq/acpi-cpufreq.c linux-2.6.3
10719 }; 11043 };
10720 11044
10721 static int acpi_cpufreq_blacklist(struct cpuinfo_x86 *c) 11045 static int acpi_cpufreq_blacklist(struct cpuinfo_x86 *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 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
10723--- linux-2.6.38.2/arch/x86/kernel/cpu/cpufreq/speedstep-centrino.c 2011-03-14 21:20:32.000000000 -0400 11047--- linux-2.6.38.3/arch/x86/kernel/cpu/cpufreq/speedstep-centrino.c 2011-03-14 21:20: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 11048+++ linux-2.6.38.3/arch/x86/kernel/cpu/cpufreq/speedstep-centrino.c 2011-04-17 15:57:32.000000000 -0400
10725@@ -226,7 +226,7 @@ static struct cpu_model models[] = 11049@@ -226,7 +226,7 @@ static struct cpu_model models[] =
10726 { &cpu_ids[CPU_MP4HT_D0], NULL, 0, NULL }, 11050 { &cpu_ids[CPU_MP4HT_D0], NULL, 0, NULL },
10727 { &cpu_ids[CPU_MP4HT_E0], NULL, 0, NULL }, 11051 { &cpu_ids[CPU_MP4HT_E0], NULL, 0, NULL },
@@ -10731,9 +11055,9 @@ diff -urNp linux-2.6.38.2/arch/x86/kernel/cpu/cpufreq/speedstep-centrino.c linux
10731 }; 11055 };
10732 #undef _BANIAS 11056 #undef _BANIAS
10733 #undef BANIAS 11057 #undef BANIAS
10734diff -urNp linux-2.6.38.2/arch/x86/kernel/cpu/intel.c linux-2.6.38.2/arch/x86/kernel/cpu/intel.c 11058diff -urNp linux-2.6.38.3/arch/x86/kernel/cpu/intel.c linux-2.6.38.3/arch/x86/kernel/cpu/intel.c
10735--- linux-2.6.38.2/arch/x86/kernel/cpu/intel.c 2011-03-14 21:20:32.000000000 -0400 11059--- linux-2.6.38.3/arch/x86/kernel/cpu/intel.c 2011-03-14 21:20:32.000000000 -0400
10736+++ linux-2.6.38.2/arch/x86/kernel/cpu/intel.c 2011-03-21 18:31:35.000000000 -0400 11060+++ linux-2.6.38.3/arch/x86/kernel/cpu/intel.c 2011-04-17 15:57:32.000000000 -0400
10737@@ -161,7 +161,7 @@ static void __cpuinit trap_init_f00f_bug 11061@@ -161,7 +161,7 @@ static void __cpuinit trap_init_f00f_bug
10738 * Update the IDT descriptor and reload the IDT so that 11062 * Update the IDT descriptor and reload the IDT so that
10739 * it uses the read-only mapped virtual address. 11063 * it uses the read-only mapped virtual address.
@@ -10743,9 +11067,9 @@ diff -urNp linux-2.6.38.2/arch/x86/kernel/cpu/intel.c linux-2.6.38.2/arch/x86/ke
10743 load_idt(&idt_descr); 11067 load_idt(&idt_descr);
10744 } 11068 }
10745 #endif 11069 #endif
10746diff -urNp linux-2.6.38.2/arch/x86/kernel/cpu/Makefile linux-2.6.38.2/arch/x86/kernel/cpu/Makefile 11070diff -urNp linux-2.6.38.3/arch/x86/kernel/cpu/Makefile linux-2.6.38.3/arch/x86/kernel/cpu/Makefile
10747--- linux-2.6.38.2/arch/x86/kernel/cpu/Makefile 2011-03-14 21:20:32.000000000 -0400 11071--- linux-2.6.38.3/arch/x86/kernel/cpu/Makefile 2011-03-14 21:20:32.000000000 -0400
10748+++ linux-2.6.38.2/arch/x86/kernel/cpu/Makefile 2011-03-21 18:31:35.000000000 -0400 11072+++ linux-2.6.38.3/arch/x86/kernel/cpu/Makefile 2011-04-17 15:57:32.000000000 -0400
10749@@ -8,10 +8,6 @@ CFLAGS_REMOVE_common.o = -pg 11073@@ -8,10 +8,6 @@ CFLAGS_REMOVE_common.o = -pg
10750 CFLAGS_REMOVE_perf_event.o = -pg 11074 CFLAGS_REMOVE_perf_event.o = -pg
10751 endif 11075 endif
@@ -10757,9 +11081,9 @@ diff -urNp linux-2.6.38.2/arch/x86/kernel/cpu/Makefile linux-2.6.38.2/arch/x86/k
10757 obj-y := intel_cacheinfo.o scattered.o topology.o 11081 obj-y := intel_cacheinfo.o scattered.o topology.o
10758 obj-y += proc.o capflags.o powerflags.o common.o 11082 obj-y += proc.o capflags.o powerflags.o common.o
10759 obj-y += vmware.o hypervisor.o sched.o mshyperv.o 11083 obj-y += vmware.o hypervisor.o sched.o mshyperv.o
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 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
10761--- linux-2.6.38.2/arch/x86/kernel/cpu/mcheck/mce.c 2011-03-14 21:20:32.000000000 -0400 11085--- linux-2.6.38.3/arch/x86/kernel/cpu/mcheck/mce.c 2011-03-14 21:20:32.000000000 -0400
10762+++ linux-2.6.38.2/arch/x86/kernel/cpu/mcheck/mce.c 2011-03-21 18:31:35.000000000 -0400 11086+++ linux-2.6.38.3/arch/x86/kernel/cpu/mcheck/mce.c 2011-04-17 15:57:32.000000000 -0400
10763@@ -45,6 +45,7 @@ 11087@@ -45,6 +45,7 @@
10764 #include <asm/ipi.h> 11088 #include <asm/ipi.h>
10765 #include <asm/mce.h> 11089 #include <asm/mce.h>
@@ -10830,9 +11154,9 @@ diff -urNp linux-2.6.38.2/arch/x86/kernel/cpu/mcheck/mce.c linux-2.6.38.2/arch/x
10830 }; 11154 };
10831 11155
10832 /* 11156 /*
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 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
10834--- linux-2.6.38.2/arch/x86/kernel/cpu/mtrr/generic.c 2011-03-14 21:20:32.000000000 -0400 11158--- linux-2.6.38.3/arch/x86/kernel/cpu/mtrr/generic.c 2011-03-14 21:20:32.000000000 -0400
10835+++ linux-2.6.38.2/arch/x86/kernel/cpu/mtrr/generic.c 2011-03-21 18:31:35.000000000 -0400 11159+++ linux-2.6.38.3/arch/x86/kernel/cpu/mtrr/generic.c 2011-04-17 15:57:32.000000000 -0400
10836@@ -28,7 +28,7 @@ static struct fixed_range_block fixed_ra 11160@@ -28,7 +28,7 @@ static struct fixed_range_block fixed_ra
10837 { MSR_MTRRfix64K_00000, 1 }, /* one 64k MTRR */ 11161 { MSR_MTRRfix64K_00000, 1 }, /* one 64k MTRR */
10838 { MSR_MTRRfix16K_80000, 2 }, /* two 16k MTRRs */ 11162 { MSR_MTRRfix16K_80000, 2 }, /* two 16k MTRRs */
@@ -10842,9 +11166,9 @@ diff -urNp linux-2.6.38.2/arch/x86/kernel/cpu/mtrr/generic.c linux-2.6.38.2/arch
10842 }; 11166 };
10843 11167
10844 static unsigned long smp_changes_mask; 11168 static unsigned long smp_changes_mask;
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 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
10846--- linux-2.6.38.2/arch/x86/kernel/cpu/mtrr/main.c 2011-03-14 21:20:32.000000000 -0400 11170--- linux-2.6.38.3/arch/x86/kernel/cpu/mtrr/main.c 2011-04-18 17:27:18.000000000 -0400
10847+++ linux-2.6.38.2/arch/x86/kernel/cpu/mtrr/main.c 2011-03-21 18:31:35.000000000 -0400 11171+++ linux-2.6.38.3/arch/x86/kernel/cpu/mtrr/main.c 2011-04-17 16:53:16.000000000 -0400
10848@@ -61,7 +61,7 @@ static DEFINE_MUTEX(mtrr_mutex); 11172@@ -61,7 +61,7 @@ static DEFINE_MUTEX(mtrr_mutex);
10849 u64 size_or_mask, size_and_mask; 11173 u64 size_or_mask, size_and_mask;
10850 static bool mtrr_aps_delayed_init; 11174 static bool mtrr_aps_delayed_init;
@@ -10854,9 +11178,9 @@ diff -urNp linux-2.6.38.2/arch/x86/kernel/cpu/mtrr/main.c linux-2.6.38.2/arch/x8
10854 11178
10855 const struct mtrr_ops *mtrr_if; 11179 const struct mtrr_ops *mtrr_if;
10856 11180
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 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
10858--- linux-2.6.38.2/arch/x86/kernel/cpu/mtrr/mtrr.h 2011-03-14 21:20:32.000000000 -0400 11182--- linux-2.6.38.3/arch/x86/kernel/cpu/mtrr/mtrr.h 2011-03-14 21:20:32.000000000 -0400
10859+++ linux-2.6.38.2/arch/x86/kernel/cpu/mtrr/mtrr.h 2011-03-21 18:31:35.000000000 -0400 11183+++ linux-2.6.38.3/arch/x86/kernel/cpu/mtrr/mtrr.h 2011-04-17 15:57:32.000000000 -0400
10860@@ -12,19 +12,19 @@ 11184@@ -12,19 +12,19 @@
10861 extern unsigned int mtrr_usage_table[MTRR_MAX_VAR_RANGES]; 11185 extern unsigned int mtrr_usage_table[MTRR_MAX_VAR_RANGES];
10862 11186
@@ -10885,9 +11209,9 @@ diff -urNp linux-2.6.38.2/arch/x86/kernel/cpu/mtrr/mtrr.h linux-2.6.38.2/arch/x8
10885 }; 11209 };
10886 11210
10887 extern int generic_get_free_region(unsigned long base, unsigned long size, 11211 extern int generic_get_free_region(unsigned long base, unsigned long size,
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 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
10889--- linux-2.6.38.2/arch/x86/kernel/cpu/perf_event.c 2011-03-14 21:20:32.000000000 -0400 11213--- linux-2.6.38.3/arch/x86/kernel/cpu/perf_event.c 2011-03-14 21:20:32.000000000 -0400
10890+++ linux-2.6.38.2/arch/x86/kernel/cpu/perf_event.c 2011-03-21 18:31:35.000000000 -0400 11214+++ linux-2.6.38.3/arch/x86/kernel/cpu/perf_event.c 2011-04-17 15:57:32.000000000 -0400
10891@@ -1781,7 +1781,7 @@ perf_callchain_user(struct perf_callchai 11215@@ -1781,7 +1781,7 @@ perf_callchain_user(struct perf_callchai
10892 break; 11216 break;
10893 11217
@@ -10897,9 +11221,9 @@ diff -urNp linux-2.6.38.2/arch/x86/kernel/cpu/perf_event.c linux-2.6.38.2/arch/x
10897 } 11221 }
10898 } 11222 }
10899 11223
10900diff -urNp linux-2.6.38.2/arch/x86/kernel/crash.c linux-2.6.38.2/arch/x86/kernel/crash.c 11224diff -urNp linux-2.6.38.3/arch/x86/kernel/crash.c linux-2.6.38.3/arch/x86/kernel/crash.c
10901--- linux-2.6.38.2/arch/x86/kernel/crash.c 2011-03-14 21:20:32.000000000 -0400 11225--- linux-2.6.38.3/arch/x86/kernel/crash.c 2011-03-14 21:20:32.000000000 -0400
10902+++ linux-2.6.38.2/arch/x86/kernel/crash.c 2011-03-21 18:31:35.000000000 -0400 11226+++ linux-2.6.38.3/arch/x86/kernel/crash.c 2011-04-17 15:57:32.000000000 -0400
10903@@ -42,7 +42,7 @@ static void kdump_nmi_callback(int cpu, 11227@@ -42,7 +42,7 @@ static void kdump_nmi_callback(int cpu,
10904 regs = args->regs; 11228 regs = args->regs;
10905 11229
@@ -10909,9 +11233,9 @@ diff -urNp linux-2.6.38.2/arch/x86/kernel/crash.c linux-2.6.38.2/arch/x86/kernel
10909 crash_fixup_ss_esp(&fixed_regs, regs); 11233 crash_fixup_ss_esp(&fixed_regs, regs);
10910 regs = &fixed_regs; 11234 regs = &fixed_regs;
10911 } 11235 }
10912diff -urNp linux-2.6.38.2/arch/x86/kernel/doublefault_32.c linux-2.6.38.2/arch/x86/kernel/doublefault_32.c 11236diff -urNp linux-2.6.38.3/arch/x86/kernel/doublefault_32.c linux-2.6.38.3/arch/x86/kernel/doublefault_32.c
10913--- linux-2.6.38.2/arch/x86/kernel/doublefault_32.c 2011-03-14 21:20:32.000000000 -0400 11237--- linux-2.6.38.3/arch/x86/kernel/doublefault_32.c 2011-03-14 21:20:32.000000000 -0400
10914+++ linux-2.6.38.2/arch/x86/kernel/doublefault_32.c 2011-03-21 18:31:35.000000000 -0400 11238+++ linux-2.6.38.3/arch/x86/kernel/doublefault_32.c 2011-04-17 15:57:32.000000000 -0400
10915@@ -11,7 +11,7 @@ 11239@@ -11,7 +11,7 @@
10916 11240
10917 #define DOUBLEFAULT_STACKSIZE (1024) 11241 #define DOUBLEFAULT_STACKSIZE (1024)
@@ -10943,10 +11267,30 @@ diff -urNp linux-2.6.38.2/arch/x86/kernel/doublefault_32.c linux-2.6.38.2/arch/x
10943 .fs = __KERNEL_PERCPU, 11267 .fs = __KERNEL_PERCPU,
10944 11268
10945 .__cr3 = __pa_nodebug(swapper_pg_dir), 11269 .__cr3 = __pa_nodebug(swapper_pg_dir),
10946diff -urNp linux-2.6.38.2/arch/x86/kernel/dumpstack_32.c linux-2.6.38.2/arch/x86/kernel/dumpstack_32.c 11270diff -urNp linux-2.6.38.3/arch/x86/kernel/dumpstack_32.c linux-2.6.38.3/arch/x86/kernel/dumpstack_32.c
10947--- linux-2.6.38.2/arch/x86/kernel/dumpstack_32.c 2011-03-14 21:20:32.000000000 -0400 11271--- linux-2.6.38.3/arch/x86/kernel/dumpstack_32.c 2011-03-14 21:20:32.000000000 -0400
10948+++ linux-2.6.38.2/arch/x86/kernel/dumpstack_32.c 2011-03-21 18:31:35.000000000 -0400 11272+++ linux-2.6.38.3/arch/x86/kernel/dumpstack_32.c 2011-04-17 15:57:32.000000000 -0400
10949@@ -95,21 +95,22 @@ void show_registers(struct pt_regs *regs 11273@@ -37,15 +37,12 @@ void dump_trace(struct task_struct *task
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
10950 * When in-kernel, we also print out the stack and code at the 11294 * When in-kernel, we also print out the stack and code at the
10951 * time of the fault.. 11295 * time of the fault..
10952 */ 11296 */
@@ -10972,7 +11316,7 @@ diff -urNp linux-2.6.38.2/arch/x86/kernel/dumpstack_32.c linux-2.6.38.2/arch/x86
10972 code_len = code_len - code_prologue + 1; 11316 code_len = code_len - code_prologue + 1;
10973 } 11317 }
10974 for (i = 0; i < code_len; i++, ip++) { 11318 for (i = 0; i < code_len; i++, ip++) {
10975@@ -118,7 +119,7 @@ void show_registers(struct pt_regs *regs 11319@@ -118,7 +116,7 @@ void show_registers(struct pt_regs *regs
10976 printk(" Bad EIP value."); 11320 printk(" Bad EIP value.");
10977 break; 11321 break;
10978 } 11322 }
@@ -10981,7 +11325,7 @@ diff -urNp linux-2.6.38.2/arch/x86/kernel/dumpstack_32.c linux-2.6.38.2/arch/x86
10981 printk("<%02x> ", c); 11325 printk("<%02x> ", c);
10982 else 11326 else
10983 printk("%02x ", c); 11327 printk("%02x ", c);
10984@@ -131,6 +132,7 @@ int is_valid_bugaddr(unsigned long ip) 11328@@ -131,6 +129,7 @@ int is_valid_bugaddr(unsigned long ip)
10985 { 11329 {
10986 unsigned short ud2; 11330 unsigned short ud2;
10987 11331
@@ -10989,9 +11333,64 @@ diff -urNp linux-2.6.38.2/arch/x86/kernel/dumpstack_32.c linux-2.6.38.2/arch/x86
10989 if (ip < PAGE_OFFSET) 11333 if (ip < PAGE_OFFSET)
10990 return 0; 11334 return 0;
10991 if (probe_kernel_address((unsigned short *)ip, ud2)) 11335 if (probe_kernel_address((unsigned short *)ip, ud2))
10992diff -urNp linux-2.6.38.2/arch/x86/kernel/dumpstack.c linux-2.6.38.2/arch/x86/kernel/dumpstack.c 11336diff -urNp linux-2.6.38.3/arch/x86/kernel/dumpstack_64.c linux-2.6.38.3/arch/x86/kernel/dumpstack_64.c
10993--- linux-2.6.38.2/arch/x86/kernel/dumpstack.c 2011-03-14 21:20:32.000000000 -0400 11337--- linux-2.6.38.3/arch/x86/kernel/dumpstack_64.c 2011-03-14 21:20:32.000000000 -0400
10994+++ linux-2.6.38.2/arch/x86/kernel/dumpstack.c 2011-03-21 18:31:35.000000000 -0400 11338+++ linux-2.6.38.3/arch/x86/kernel/dumpstack_64.c 2011-04-17 15:57:32.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
10995@@ -2,6 +2,9 @@ 11394@@ -2,6 +2,9 @@
10996 * Copyright (C) 1991, 1992 Linus Torvalds 11395 * Copyright (C) 1991, 1992 Linus Torvalds
10997 * Copyright (C) 2000, 2001, 2002 Andi Kleen, SuSE Labs 11396 * Copyright (C) 2000, 2001, 2002 Andi Kleen, SuSE Labs
@@ -11011,7 +11410,92 @@ diff -urNp linux-2.6.38.2/arch/x86/kernel/dumpstack.c linux-2.6.38.2/arch/x86/ke
11011 reliable ? "" : "? ", (void *) address); 11410 reliable ? "" : "? ", (void *) address);
11012 } 11411 }
11013 11412
11014@@ -200,7 +203,7 @@ void dump_stack(void) 11413@@ -35,9 +38,8 @@ void printk_address(unsigned long addres
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)
11015 unsigned long stack; 11499 unsigned long stack;
11016 11500
11017 printk("Pid: %d, comm: %.20s %s %s %.*s\n", 11501 printk("Pid: %d, comm: %.20s %s %s %.*s\n",
@@ -11020,16 +11504,28 @@ diff -urNp linux-2.6.38.2/arch/x86/kernel/dumpstack.c linux-2.6.38.2/arch/x86/ke
11020 init_utsname()->release, 11504 init_utsname()->release,
11021 (int)strcspn(init_utsname()->version, " "), 11505 (int)strcspn(init_utsname()->version, " "),
11022 init_utsname()->version); 11506 init_utsname()->version);
11023@@ -257,7 +260,7 @@ void __kprobes oops_end(unsigned long fl 11507@@ -236,6 +236,8 @@ unsigned __kprobes long oops_begin(void)
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
11024 panic("Fatal exception in interrupt"); 11517 panic("Fatal exception in interrupt");
11025 if (panic_on_oops) 11518 if (panic_on_oops)
11026 panic("Fatal exception"); 11519 panic("Fatal exception");
11027- do_exit(signr); 11520- do_exit(signr);
11521+
11522+ gr_handle_kernel_exploit();
11523+
11028+ do_group_exit(signr); 11524+ do_group_exit(signr);
11029 } 11525 }
11030 11526
11031 int __kprobes __die(const char *str, struct pt_regs *regs, long err) 11527 int __kprobes __die(const char *str, struct pt_regs *regs, long err)
11032@@ -284,7 +287,7 @@ int __kprobes __die(const char *str, str 11528@@ -284,7 +289,7 @@ int __kprobes __die(const char *str, str
11033 11529
11034 show_registers(regs); 11530 show_registers(regs);
11035 #ifdef CONFIG_X86_32 11531 #ifdef CONFIG_X86_32
@@ -11038,7 +11534,7 @@ diff -urNp linux-2.6.38.2/arch/x86/kernel/dumpstack.c linux-2.6.38.2/arch/x86/ke
11038 sp = regs->sp; 11534 sp = regs->sp;
11039 ss = regs->ss & 0xffff; 11535 ss = regs->ss & 0xffff;
11040 } else { 11536 } else {
11041@@ -312,7 +315,7 @@ void die(const char *str, struct pt_regs 11537@@ -312,7 +317,7 @@ void die(const char *str, struct pt_regs
11042 unsigned long flags = oops_begin(); 11538 unsigned long flags = oops_begin();
11043 int sig = SIGSEGV; 11539 int sig = SIGSEGV;
11044 11540
@@ -11047,9 +11543,9 @@ diff -urNp linux-2.6.38.2/arch/x86/kernel/dumpstack.c linux-2.6.38.2/arch/x86/ke
11047 report_bug(regs->ip, regs); 11543 report_bug(regs->ip, regs);
11048 11544
11049 if (__die(str, regs, err)) 11545 if (__die(str, regs, err))
11050diff -urNp linux-2.6.38.2/arch/x86/kernel/entry_32.S linux-2.6.38.2/arch/x86/kernel/entry_32.S 11546diff -urNp linux-2.6.38.3/arch/x86/kernel/entry_32.S linux-2.6.38.3/arch/x86/kernel/entry_32.S
11051--- linux-2.6.38.2/arch/x86/kernel/entry_32.S 2011-03-28 17:42:40.000000000 -0400 11547--- linux-2.6.38.3/arch/x86/kernel/entry_32.S 2011-04-18 17:27:16.000000000 -0400
11052+++ linux-2.6.38.2/arch/x86/kernel/entry_32.S 2011-03-28 17:42:53.000000000 -0400 11548+++ linux-2.6.38.3/arch/x86/kernel/entry_32.S 2011-04-17 15:57:32.000000000 -0400
11053@@ -183,13 +183,81 @@ 11549@@ -183,13 +183,81 @@
11054 /*CFI_REL_OFFSET gs, PT_GS*/ 11550 /*CFI_REL_OFFSET gs, PT_GS*/
11055 .endm 11551 .endm
@@ -11422,9 +11918,9 @@ diff -urNp linux-2.6.38.2/arch/x86/kernel/entry_32.S linux-2.6.38.2/arch/x86/ker
11422 RESTORE_REGS 11918 RESTORE_REGS
11423 lss 12+4(%esp), %esp # back to espfix stack 11919 lss 12+4(%esp), %esp # back to espfix stack
11424 CFI_ADJUST_CFA_OFFSET -24 11920 CFI_ADJUST_CFA_OFFSET -24
11425diff -urNp linux-2.6.38.2/arch/x86/kernel/entry_64.S linux-2.6.38.2/arch/x86/kernel/entry_64.S 11921diff -urNp linux-2.6.38.3/arch/x86/kernel/entry_64.S linux-2.6.38.3/arch/x86/kernel/entry_64.S
11426--- linux-2.6.38.2/arch/x86/kernel/entry_64.S 2011-03-23 17:20:06.000000000 -0400 11922--- linux-2.6.38.3/arch/x86/kernel/entry_64.S 2011-04-18 17:27:13.000000000 -0400
11427+++ linux-2.6.38.2/arch/x86/kernel/entry_64.S 2011-03-23 17:21:49.000000000 -0400 11923+++ linux-2.6.38.3/arch/x86/kernel/entry_64.S 2011-04-17 15:57:32.000000000 -0400
11428@@ -53,6 +53,7 @@ 11924@@ -53,6 +53,7 @@
11429 #include <asm/paravirt.h> 11925 #include <asm/paravirt.h>
11430 #include <asm/ftrace.h> 11926 #include <asm/ftrace.h>
@@ -11433,7 +11929,7 @@ diff -urNp linux-2.6.38.2/arch/x86/kernel/entry_64.S linux-2.6.38.2/arch/x86/ker
11433 11929
11434 /* Avoid __ASSEMBLER__'ifying <linux/audit.h> just for this. */ 11930 /* Avoid __ASSEMBLER__'ifying <linux/audit.h> just for this. */
11435 #include <linux/elf-em.h> 11931 #include <linux/elf-em.h>
11436@@ -174,6 +175,201 @@ ENTRY(native_usergs_sysret64) 11932@@ -174,6 +175,206 @@ ENTRY(native_usergs_sysret64)
11437 ENDPROC(native_usergs_sysret64) 11933 ENDPROC(native_usergs_sysret64)
11438 #endif /* CONFIG_PARAVIRT */ 11934 #endif /* CONFIG_PARAVIRT */
11439 11935
@@ -11525,6 +12021,11 @@ diff -urNp linux-2.6.38.2/arch/x86/kernel/entry_64.S linux-2.6.38.2/arch/x86/ker
11525+#ifdef CONFIG_PAX_MEMORY_UDEREF 12021+#ifdef CONFIG_PAX_MEMORY_UDEREF
11526+ call pax_exit_kernel_user 12022+ call pax_exit_kernel_user
11527+#endif 12023+#endif
12024+#ifdef CONFIG_PAX_RANDKSTACK
12025+ push %rax
12026+ call pax_randomize_kstack
12027+ pop %rax
12028+#endif
11528+ .endm 12029+ .endm
11529+ 12030+
11530+#ifdef CONFIG_PAX_MEMORY_UDEREF 12031+#ifdef CONFIG_PAX_MEMORY_UDEREF
@@ -11635,7 +12136,7 @@ diff -urNp linux-2.6.38.2/arch/x86/kernel/entry_64.S linux-2.6.38.2/arch/x86/ker
11635 12136
11636 .macro TRACE_IRQS_IRETQ offset=ARGOFFSET 12137 .macro TRACE_IRQS_IRETQ offset=ARGOFFSET
11637 #ifdef CONFIG_TRACE_IRQFLAGS 12138 #ifdef CONFIG_TRACE_IRQFLAGS
11638@@ -316,7 +512,7 @@ ENTRY(save_args) 12139@@ -316,7 +517,7 @@ ENTRY(save_args)
11639 leaq -RBP+8(%rsp),%rdi /* arg1 for handler */ 12140 leaq -RBP+8(%rsp),%rdi /* arg1 for handler */
11640 movq_cfi rbp, 8 /* push %rbp */ 12141 movq_cfi rbp, 8 /* push %rbp */
11641 leaq 8(%rsp), %rbp /* mov %rsp, %ebp */ 12142 leaq 8(%rsp), %rbp /* mov %rsp, %ebp */
@@ -11644,7 +12145,7 @@ diff -urNp linux-2.6.38.2/arch/x86/kernel/entry_64.S linux-2.6.38.2/arch/x86/ker
11644 je 1f 12145 je 1f
11645 SWAPGS 12146 SWAPGS
11646 /* 12147 /*
11647@@ -407,7 +603,7 @@ ENTRY(ret_from_fork) 12148@@ -407,7 +608,7 @@ ENTRY(ret_from_fork)
11648 12149
11649 RESTORE_REST 12150 RESTORE_REST
11650 12151
@@ -11653,7 +12154,16 @@ diff -urNp linux-2.6.38.2/arch/x86/kernel/entry_64.S linux-2.6.38.2/arch/x86/ker
11653 je int_ret_from_sys_call 12154 je int_ret_from_sys_call
11654 12155
11655 testl $_TIF_IA32, TI_flags(%rcx) # 32-bit compat task needs IRET 12156 testl $_TIF_IA32, TI_flags(%rcx) # 32-bit compat task needs IRET
11656@@ -466,6 +662,7 @@ ENTRY(system_call_after_swapgs) 12157@@ -453,7 +654,7 @@ END(ret_from_fork)
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)
11657 12167
11658 movq %rsp,PER_CPU_VAR(old_rsp) 12168 movq %rsp,PER_CPU_VAR(old_rsp)
11659 movq PER_CPU_VAR(kernel_stack),%rsp 12169 movq PER_CPU_VAR(kernel_stack),%rsp
@@ -11661,7 +12171,14 @@ diff -urNp linux-2.6.38.2/arch/x86/kernel/entry_64.S linux-2.6.38.2/arch/x86/ker
11661 /* 12171 /*
11662 * No need to follow this irqs off/on section - it's straight 12172 * No need to follow this irqs off/on section - it's straight
11663 * and short: 12173 * and short:
11664@@ -500,6 +697,7 @@ sysret_check: 12174 */
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:
11665 andl %edi,%edx 12182 andl %edi,%edx
11666 jnz sysret_careful 12183 jnz sysret_careful
11667 CFI_REMEMBER_STATE 12184 CFI_REMEMBER_STATE
@@ -11669,7 +12186,7 @@ diff -urNp linux-2.6.38.2/arch/x86/kernel/entry_64.S linux-2.6.38.2/arch/x86/ker
11669 /* 12186 /*
11670 * sysretq will re-enable interrupts: 12187 * sysretq will re-enable interrupts:
11671 */ 12188 */
11672@@ -609,7 +807,7 @@ tracesys: 12189@@ -609,7 +812,7 @@ tracesys:
11673 GLOBAL(int_ret_from_sys_call) 12190 GLOBAL(int_ret_from_sys_call)
11674 DISABLE_INTERRUPTS(CLBR_NONE) 12191 DISABLE_INTERRUPTS(CLBR_NONE)
11675 TRACE_IRQS_OFF 12192 TRACE_IRQS_OFF
@@ -11678,7 +12195,7 @@ diff -urNp linux-2.6.38.2/arch/x86/kernel/entry_64.S linux-2.6.38.2/arch/x86/ker
11678 je retint_restore_args 12195 je retint_restore_args
11679 movl $_TIF_ALLWORK_MASK,%edi 12196 movl $_TIF_ALLWORK_MASK,%edi
11680 /* edi: mask to check */ 12197 /* edi: mask to check */
11681@@ -791,6 +989,16 @@ END(interrupt) 12198@@ -791,6 +994,16 @@ END(interrupt)
11682 CFI_ADJUST_CFA_OFFSET ORIG_RAX-RBP 12199 CFI_ADJUST_CFA_OFFSET ORIG_RAX-RBP
11683 call save_args 12200 call save_args
11684 PARTIAL_FRAME 0 12201 PARTIAL_FRAME 0
@@ -11695,7 +12212,7 @@ diff -urNp linux-2.6.38.2/arch/x86/kernel/entry_64.S linux-2.6.38.2/arch/x86/ker
11695 call \func 12212 call \func
11696 .endm 12213 .endm
11697 12214
11698@@ -823,7 +1031,7 @@ ret_from_intr: 12215@@ -823,7 +1036,7 @@ ret_from_intr:
11699 CFI_ADJUST_CFA_OFFSET -8 12216 CFI_ADJUST_CFA_OFFSET -8
11700 exit_intr: 12217 exit_intr:
11701 GET_THREAD_INFO(%rcx) 12218 GET_THREAD_INFO(%rcx)
@@ -11704,7 +12221,7 @@ diff -urNp linux-2.6.38.2/arch/x86/kernel/entry_64.S linux-2.6.38.2/arch/x86/ker
11704 je retint_kernel 12221 je retint_kernel
11705 12222
11706 /* Interrupt came from user space */ 12223 /* Interrupt came from user space */
11707@@ -845,12 +1053,14 @@ retint_swapgs: /* return to user-space 12224@@ -845,12 +1058,14 @@ retint_swapgs: /* return to user-space
11708 * The iretq could re-enable interrupts: 12225 * The iretq could re-enable interrupts:
11709 */ 12226 */
11710 DISABLE_INTERRUPTS(CLBR_ANY) 12227 DISABLE_INTERRUPTS(CLBR_ANY)
@@ -11719,7 +12236,7 @@ diff -urNp linux-2.6.38.2/arch/x86/kernel/entry_64.S linux-2.6.38.2/arch/x86/ker
11719 /* 12236 /*
11720 * The iretq could re-enable interrupts: 12237 * The iretq could re-enable interrupts:
11721 */ 12238 */
11722@@ -1022,6 +1232,16 @@ ENTRY(\sym) 12239@@ -1022,6 +1237,16 @@ ENTRY(\sym)
11723 CFI_ADJUST_CFA_OFFSET ORIG_RAX-R15 12240 CFI_ADJUST_CFA_OFFSET ORIG_RAX-R15
11724 call error_entry 12241 call error_entry
11725 DEFAULT_FRAME 0 12242 DEFAULT_FRAME 0
@@ -11736,7 +12253,7 @@ diff -urNp linux-2.6.38.2/arch/x86/kernel/entry_64.S linux-2.6.38.2/arch/x86/ker
11736 movq %rsp,%rdi /* pt_regs pointer */ 12253 movq %rsp,%rdi /* pt_regs pointer */
11737 xorl %esi,%esi /* no error code */ 12254 xorl %esi,%esi /* no error code */
11738 call \do_sym 12255 call \do_sym
11739@@ -1039,6 +1259,16 @@ ENTRY(\sym) 12256@@ -1039,6 +1264,16 @@ ENTRY(\sym)
11740 CFI_ADJUST_CFA_OFFSET ORIG_RAX-R15 12257 CFI_ADJUST_CFA_OFFSET ORIG_RAX-R15
11741 call save_paranoid 12258 call save_paranoid
11742 TRACE_IRQS_OFF 12259 TRACE_IRQS_OFF
@@ -11753,7 +12270,7 @@ diff -urNp linux-2.6.38.2/arch/x86/kernel/entry_64.S linux-2.6.38.2/arch/x86/ker
11753 movq %rsp,%rdi /* pt_regs pointer */ 12270 movq %rsp,%rdi /* pt_regs pointer */
11754 xorl %esi,%esi /* no error code */ 12271 xorl %esi,%esi /* no error code */
11755 call \do_sym 12272 call \do_sym
11756@@ -1047,7 +1277,7 @@ ENTRY(\sym) 12273@@ -1047,7 +1282,7 @@ ENTRY(\sym)
11757 END(\sym) 12274 END(\sym)
11758 .endm 12275 .endm
11759 12276
@@ -11762,7 +12279,7 @@ diff -urNp linux-2.6.38.2/arch/x86/kernel/entry_64.S linux-2.6.38.2/arch/x86/ker
11762 .macro paranoidzeroentry_ist sym do_sym ist 12279 .macro paranoidzeroentry_ist sym do_sym ist
11763 ENTRY(\sym) 12280 ENTRY(\sym)
11764 INTR_FRAME 12281 INTR_FRAME
11765@@ -1057,8 +1287,24 @@ ENTRY(\sym) 12282@@ -1057,8 +1292,24 @@ ENTRY(\sym)
11766 CFI_ADJUST_CFA_OFFSET ORIG_RAX-R15 12283 CFI_ADJUST_CFA_OFFSET ORIG_RAX-R15
11767 call save_paranoid 12284 call save_paranoid
11768 TRACE_IRQS_OFF 12285 TRACE_IRQS_OFF
@@ -11787,7 +12304,7 @@ diff -urNp linux-2.6.38.2/arch/x86/kernel/entry_64.S linux-2.6.38.2/arch/x86/ker
11787 subq $EXCEPTION_STKSZ, INIT_TSS_IST(\ist) 12304 subq $EXCEPTION_STKSZ, INIT_TSS_IST(\ist)
11788 call \do_sym 12305 call \do_sym
11789 addq $EXCEPTION_STKSZ, INIT_TSS_IST(\ist) 12306 addq $EXCEPTION_STKSZ, INIT_TSS_IST(\ist)
11790@@ -1075,6 +1321,16 @@ ENTRY(\sym) 12307@@ -1075,6 +1326,16 @@ ENTRY(\sym)
11791 CFI_ADJUST_CFA_OFFSET ORIG_RAX-R15 12308 CFI_ADJUST_CFA_OFFSET ORIG_RAX-R15
11792 call error_entry 12309 call error_entry
11793 DEFAULT_FRAME 0 12310 DEFAULT_FRAME 0
@@ -11804,7 +12321,7 @@ diff -urNp linux-2.6.38.2/arch/x86/kernel/entry_64.S linux-2.6.38.2/arch/x86/ker
11804 movq %rsp,%rdi /* pt_regs pointer */ 12321 movq %rsp,%rdi /* pt_regs pointer */
11805 movq ORIG_RAX(%rsp),%rsi /* get error code */ 12322 movq ORIG_RAX(%rsp),%rsi /* get error code */
11806 movq $-1,ORIG_RAX(%rsp) /* no syscall to restart */ 12323 movq $-1,ORIG_RAX(%rsp) /* no syscall to restart */
11807@@ -1094,6 +1350,16 @@ ENTRY(\sym) 12324@@ -1094,6 +1355,16 @@ ENTRY(\sym)
11808 call save_paranoid 12325 call save_paranoid
11809 DEFAULT_FRAME 0 12326 DEFAULT_FRAME 0
11810 TRACE_IRQS_OFF 12327 TRACE_IRQS_OFF
@@ -11821,7 +12338,7 @@ diff -urNp linux-2.6.38.2/arch/x86/kernel/entry_64.S linux-2.6.38.2/arch/x86/ker
11821 movq %rsp,%rdi /* pt_regs pointer */ 12338 movq %rsp,%rdi /* pt_regs pointer */
11822 movq ORIG_RAX(%rsp),%rsi /* get error code */ 12339 movq ORIG_RAX(%rsp),%rsi /* get error code */
11823 movq $-1,ORIG_RAX(%rsp) /* no syscall to restart */ 12340 movq $-1,ORIG_RAX(%rsp) /* no syscall to restart */
11824@@ -1356,14 +1622,27 @@ ENTRY(paranoid_exit) 12341@@ -1356,14 +1627,27 @@ ENTRY(paranoid_exit)
11825 TRACE_IRQS_OFF 12342 TRACE_IRQS_OFF
11826 testl %ebx,%ebx /* swapgs needed? */ 12343 testl %ebx,%ebx /* swapgs needed? */
11827 jnz paranoid_restore 12344 jnz paranoid_restore
@@ -11850,7 +12367,7 @@ diff -urNp linux-2.6.38.2/arch/x86/kernel/entry_64.S linux-2.6.38.2/arch/x86/ker
11850 TRACE_IRQS_IRETQ 0 12367 TRACE_IRQS_IRETQ 0
11851 RESTORE_ALL 8 12368 RESTORE_ALL 8
11852 jmp irq_return 12369 jmp irq_return
11853@@ -1421,7 +1700,7 @@ ENTRY(error_entry) 12370@@ -1421,7 +1705,7 @@ ENTRY(error_entry)
11854 movq_cfi r14, R14+8 12371 movq_cfi r14, R14+8
11855 movq_cfi r15, R15+8 12372 movq_cfi r15, R15+8
11856 xorl %ebx,%ebx 12373 xorl %ebx,%ebx
@@ -11859,7 +12376,7 @@ diff -urNp linux-2.6.38.2/arch/x86/kernel/entry_64.S linux-2.6.38.2/arch/x86/ker
11859 je error_kernelspace 12376 je error_kernelspace
11860 error_swapgs: 12377 error_swapgs:
11861 SWAPGS 12378 SWAPGS
11862@@ -1485,6 +1764,16 @@ ENTRY(nmi) 12379@@ -1485,6 +1769,16 @@ ENTRY(nmi)
11863 CFI_ADJUST_CFA_OFFSET ORIG_RAX-R15 12380 CFI_ADJUST_CFA_OFFSET ORIG_RAX-R15
11864 call save_paranoid 12381 call save_paranoid
11865 DEFAULT_FRAME 0 12382 DEFAULT_FRAME 0
@@ -11876,7 +12393,7 @@ diff -urNp linux-2.6.38.2/arch/x86/kernel/entry_64.S linux-2.6.38.2/arch/x86/ker
11876 /* paranoidentry do_nmi, 0; without TRACE_IRQS_OFF */ 12393 /* paranoidentry do_nmi, 0; without TRACE_IRQS_OFF */
11877 movq %rsp,%rdi 12394 movq %rsp,%rdi
11878 movq $-1,%rsi 12395 movq $-1,%rsi
11879@@ -1495,11 +1784,25 @@ ENTRY(nmi) 12396@@ -1495,11 +1789,25 @@ ENTRY(nmi)
11880 DISABLE_INTERRUPTS(CLBR_NONE) 12397 DISABLE_INTERRUPTS(CLBR_NONE)
11881 testl %ebx,%ebx /* swapgs needed? */ 12398 testl %ebx,%ebx /* swapgs needed? */
11882 jnz nmi_restore 12399 jnz nmi_restore
@@ -11903,9 +12420,9 @@ diff -urNp linux-2.6.38.2/arch/x86/kernel/entry_64.S linux-2.6.38.2/arch/x86/ker
11903 RESTORE_ALL 8 12420 RESTORE_ALL 8
11904 jmp irq_return 12421 jmp irq_return
11905 nmi_userspace: 12422 nmi_userspace:
11906diff -urNp linux-2.6.38.2/arch/x86/kernel/ftrace.c linux-2.6.38.2/arch/x86/kernel/ftrace.c 12423diff -urNp linux-2.6.38.3/arch/x86/kernel/ftrace.c linux-2.6.38.3/arch/x86/kernel/ftrace.c
11907--- linux-2.6.38.2/arch/x86/kernel/ftrace.c 2011-03-14 21:20:32.000000000 -0400 12424--- linux-2.6.38.3/arch/x86/kernel/ftrace.c 2011-03-14 21:20:32.000000000 -0400
11908+++ linux-2.6.38.2/arch/x86/kernel/ftrace.c 2011-03-21 18:31:35.000000000 -0400 12425+++ linux-2.6.38.3/arch/x86/kernel/ftrace.c 2011-04-17 15:57:32.000000000 -0400
11909@@ -177,7 +177,9 @@ void ftrace_nmi_enter(void) 12426@@ -177,7 +177,9 @@ void ftrace_nmi_enter(void)
11910 12427
11911 if (atomic_inc_return(&nmi_running) & MOD_CODE_WRITE_FLAG) { 12428 if (atomic_inc_return(&nmi_running) & MOD_CODE_WRITE_FLAG) {
@@ -11943,9 +12460,9 @@ diff -urNp linux-2.6.38.2/arch/x86/kernel/ftrace.c linux-2.6.38.2/arch/x86/kerne
11943 if (probe_kernel_read(code, (void *)ip, MCOUNT_INSN_SIZE)) 12460 if (probe_kernel_read(code, (void *)ip, MCOUNT_INSN_SIZE))
11944 return -EFAULT; 12461 return -EFAULT;
11945 12462
11946diff -urNp linux-2.6.38.2/arch/x86/kernel/head32.c linux-2.6.38.2/arch/x86/kernel/head32.c 12463diff -urNp linux-2.6.38.3/arch/x86/kernel/head32.c linux-2.6.38.3/arch/x86/kernel/head32.c
11947--- linux-2.6.38.2/arch/x86/kernel/head32.c 2011-03-14 21:20:32.000000000 -0400 12464--- linux-2.6.38.3/arch/x86/kernel/head32.c 2011-03-14 21:20:32.000000000 -0400
11948+++ linux-2.6.38.2/arch/x86/kernel/head32.c 2011-03-21 18:31:35.000000000 -0400 12465+++ linux-2.6.38.3/arch/x86/kernel/head32.c 2011-04-17 15:57:32.000000000 -0400
11949@@ -19,6 +19,7 @@ 12466@@ -19,6 +19,7 @@
11950 #include <asm/io_apic.h> 12467 #include <asm/io_apic.h>
11951 #include <asm/bios_ebda.h> 12468 #include <asm/bios_ebda.h>
@@ -11963,9 +12480,9 @@ diff -urNp linux-2.6.38.2/arch/x86/kernel/head32.c linux-2.6.38.2/arch/x86/kerne
11963 12480
11964 #ifdef CONFIG_BLK_DEV_INITRD 12481 #ifdef CONFIG_BLK_DEV_INITRD
11965 /* Reserve INITRD */ 12482 /* Reserve INITRD */
11966diff -urNp linux-2.6.38.2/arch/x86/kernel/head_32.S linux-2.6.38.2/arch/x86/kernel/head_32.S 12483diff -urNp linux-2.6.38.3/arch/x86/kernel/head_32.S linux-2.6.38.3/arch/x86/kernel/head_32.S
11967--- linux-2.6.38.2/arch/x86/kernel/head_32.S 2011-03-14 21:20:32.000000000 -0400 12484--- linux-2.6.38.3/arch/x86/kernel/head_32.S 2011-03-14 21:20:32.000000000 -0400
11968+++ linux-2.6.38.2/arch/x86/kernel/head_32.S 2011-03-21 18:31:35.000000000 -0400 12485+++ linux-2.6.38.3/arch/x86/kernel/head_32.S 2011-04-17 16:02:16.000000000 -0400
11969@@ -25,6 +25,12 @@ 12486@@ -25,6 +25,12 @@
11970 /* Physical address */ 12487 /* Physical address */
11971 #define pa(X) ((X) - __PAGE_OFFSET) 12488 #define pa(X) ((X) - __PAGE_OFFSET)
@@ -12283,7 +12800,7 @@ diff -urNp linux-2.6.38.2/arch/x86/kernel/head_32.S linux-2.6.38.2/arch/x86/kern
12283 ENTRY(initial_page_table) 12800 ENTRY(initial_page_table)
12284 .long pa(initial_pg_pmd+PGD_IDENT_ATTR),0 /* low identity map */ 12801 .long pa(initial_pg_pmd+PGD_IDENT_ATTR),0 /* low identity map */
12285 # if KPMDS == 3 12802 # if KPMDS == 3
12286@@ -663,13 +758,22 @@ ENTRY(initial_page_table) 12803@@ -663,18 +758,27 @@ ENTRY(initial_page_table)
12287 # error "Kernel PMDs should be 1, 2 or 3" 12804 # error "Kernel PMDs should be 1, 2 or 3"
12288 # endif 12805 # endif
12289 .align PAGE_SIZE_asm /* needs to be page-sized too */ 12806 .align PAGE_SIZE_asm /* needs to be page-sized too */
@@ -12302,11 +12819,18 @@ diff -urNp linux-2.6.38.2/arch/x86/kernel/head_32.S linux-2.6.38.2/arch/x86/kern
12302 ENTRY(stack_start) 12819 ENTRY(stack_start)
12303- .long init_thread_union+THREAD_SIZE 12820- .long init_thread_union+THREAD_SIZE
12304+ .long init_thread_union+THREAD_SIZE-8 12821+ .long init_thread_union+THREAD_SIZE-8
12822+
12823+ready: .byte 0
12305 12824
12306+.section .rodata,"a",@progbits 12825+.section .rodata,"a",@progbits
12307 early_recursion_flag: 12826 early_recursion_flag:
12308 .long 0 12827 .long 0
12309 12828
12829-ready: .byte 0
12830-
12831 int_msg:
12832 .asciz "Unknown interrupt or fault at: %p %p %p\n"
12833
12310@@ -707,7 +811,7 @@ fault_msg: 12834@@ -707,7 +811,7 @@ fault_msg:
12311 .word 0 # 32 bit align gdt_desc.address 12835 .word 0 # 32 bit align gdt_desc.address
12312 boot_gdt_descr: 12836 boot_gdt_descr:
@@ -12393,9 +12917,9 @@ diff -urNp linux-2.6.38.2/arch/x86/kernel/head_32.S linux-2.6.38.2/arch/x86/kern
12393+ /* Be sure this is zeroed to avoid false validations in Xen */ 12917+ /* Be sure this is zeroed to avoid false validations in Xen */
12394+ .fill PAGE_SIZE_asm - GDT_SIZE,1,0 12918+ .fill PAGE_SIZE_asm - GDT_SIZE,1,0
12395+ .endr 12919+ .endr
12396diff -urNp linux-2.6.38.2/arch/x86/kernel/head_64.S linux-2.6.38.2/arch/x86/kernel/head_64.S 12920diff -urNp linux-2.6.38.3/arch/x86/kernel/head_64.S linux-2.6.38.3/arch/x86/kernel/head_64.S
12397--- linux-2.6.38.2/arch/x86/kernel/head_64.S 2011-03-14 21:20:32.000000000 -0400 12921--- linux-2.6.38.3/arch/x86/kernel/head_64.S 2011-03-14 21:20:32.000000000 -0400
12398+++ linux-2.6.38.2/arch/x86/kernel/head_64.S 2011-03-21 18:31:35.000000000 -0400 12922+++ linux-2.6.38.3/arch/x86/kernel/head_64.S 2011-04-17 15:57:32.000000000 -0400
12399@@ -19,6 +19,7 @@ 12923@@ -19,6 +19,7 @@
12400 #include <asm/cache.h> 12924 #include <asm/cache.h>
12401 #include <asm/processor-flags.h> 12925 #include <asm/processor-flags.h>
@@ -12665,9 +13189,9 @@ diff -urNp linux-2.6.38.2/arch/x86/kernel/head_64.S linux-2.6.38.2/arch/x86/kern
12665 13189
12666 __PAGE_ALIGNED_BSS 13190 __PAGE_ALIGNED_BSS
12667 .align PAGE_SIZE 13191 .align PAGE_SIZE
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 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
12669--- linux-2.6.38.2/arch/x86/kernel/i386_ksyms_32.c 2011-03-14 21:20:32.000000000 -0400 13193--- linux-2.6.38.3/arch/x86/kernel/i386_ksyms_32.c 2011-03-14 21:20:32.000000000 -0400
12670+++ linux-2.6.38.2/arch/x86/kernel/i386_ksyms_32.c 2011-03-21 18:31:35.000000000 -0400 13194+++ linux-2.6.38.3/arch/x86/kernel/i386_ksyms_32.c 2011-04-17 15:57:32.000000000 -0400
12671@@ -20,8 +20,12 @@ extern void cmpxchg8b_emu(void); 13195@@ -20,8 +20,12 @@ extern void cmpxchg8b_emu(void);
12672 EXPORT_SYMBOL(cmpxchg8b_emu); 13196 EXPORT_SYMBOL(cmpxchg8b_emu);
12673 #endif 13197 #endif
@@ -12689,10 +13213,20 @@ diff -urNp linux-2.6.38.2/arch/x86/kernel/i386_ksyms_32.c linux-2.6.38.2/arch/x8
12689+#ifdef CONFIG_PAX_KERNEXEC 13213+#ifdef CONFIG_PAX_KERNEXEC
12690+EXPORT_SYMBOL(__LOAD_PHYSICAL_ADDR); 13214+EXPORT_SYMBOL(__LOAD_PHYSICAL_ADDR);
12691+#endif 13215+#endif
12692diff -urNp linux-2.6.38.2/arch/x86/kernel/init_task.c linux-2.6.38.2/arch/x86/kernel/init_task.c 13216diff -urNp linux-2.6.38.3/arch/x86/kernel/init_task.c linux-2.6.38.3/arch/x86/kernel/init_task.c
12693--- linux-2.6.38.2/arch/x86/kernel/init_task.c 2011-03-14 21:20:32.000000000 -0400 13217--- linux-2.6.38.3/arch/x86/kernel/init_task.c 2011-03-14 21:20:32.000000000 -0400
12694+++ linux-2.6.38.2/arch/x86/kernel/init_task.c 2011-03-21 18:31:35.000000000 -0400 13218+++ linux-2.6.38.3/arch/x86/kernel/init_task.c 2011-04-17 15:57:32.000000000 -0400
12695@@ -38,5 +38,5 @@ EXPORT_SYMBOL(init_task); 13219@@ -20,8 +20,7 @@ static struct sighand_struct init_sighan
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);
12696 * section. Since TSS's are completely CPU-local, we want them 13230 * section. Since TSS's are completely CPU-local, we want them
12697 * on exact cacheline boundaries, to eliminate cacheline ping-pong. 13231 * on exact cacheline boundaries, to eliminate cacheline ping-pong.
12698 */ 13232 */
@@ -12700,9 +13234,9 @@ diff -urNp linux-2.6.38.2/arch/x86/kernel/init_task.c linux-2.6.38.2/arch/x86/ke
12700- 13234-
12701+struct tss_struct init_tss[NR_CPUS] ____cacheline_internodealigned_in_smp = { [0 ... NR_CPUS-1] = INIT_TSS }; 13235+struct tss_struct init_tss[NR_CPUS] ____cacheline_internodealigned_in_smp = { [0 ... NR_CPUS-1] = INIT_TSS };
12702+EXPORT_SYMBOL(init_tss); 13236+EXPORT_SYMBOL(init_tss);
12703diff -urNp linux-2.6.38.2/arch/x86/kernel/ioport.c linux-2.6.38.2/arch/x86/kernel/ioport.c 13237diff -urNp linux-2.6.38.3/arch/x86/kernel/ioport.c linux-2.6.38.3/arch/x86/kernel/ioport.c
12704--- linux-2.6.38.2/arch/x86/kernel/ioport.c 2011-03-14 21:20:32.000000000 -0400 13238--- linux-2.6.38.3/arch/x86/kernel/ioport.c 2011-03-14 21:20:32.000000000 -0400
12705+++ linux-2.6.38.2/arch/x86/kernel/ioport.c 2011-03-21 18:31:35.000000000 -0400 13239+++ linux-2.6.38.3/arch/x86/kernel/ioport.c 2011-04-17 15:57:32.000000000 -0400
12706@@ -6,6 +6,7 @@ 13240@@ -6,6 +6,7 @@
12707 #include <linux/sched.h> 13241 #include <linux/sched.h>
12708 #include <linux/kernel.h> 13242 #include <linux/kernel.h>
@@ -12746,64 +13280,153 @@ diff -urNp linux-2.6.38.2/arch/x86/kernel/ioport.c linux-2.6.38.2/arch/x86/kerne
12746 if (!capable(CAP_SYS_RAWIO)) 13280 if (!capable(CAP_SYS_RAWIO))
12747 return -EPERM; 13281 return -EPERM;
12748 } 13282 }
12749diff -urNp linux-2.6.38.2/arch/x86/kernel/irq_32.c linux-2.6.38.2/arch/x86/kernel/irq_32.c 13283diff -urNp linux-2.6.38.3/arch/x86/kernel/irq_32.c linux-2.6.38.3/arch/x86/kernel/irq_32.c
12750--- linux-2.6.38.2/arch/x86/kernel/irq_32.c 2011-03-14 21:20:32.000000000 -0400 13284--- linux-2.6.38.3/arch/x86/kernel/irq_32.c 2011-03-14 21:20:32.000000000 -0400
12751+++ linux-2.6.38.2/arch/x86/kernel/irq_32.c 2011-03-21 18:31:35.000000000 -0400 13285+++ linux-2.6.38.3/arch/x86/kernel/irq_32.c 2011-04-17 15:57:32.000000000 -0400
12752@@ -91,7 +91,7 @@ execute_on_irq_stack(int overflow, struc 13286@@ -36,7 +36,7 @@ static int check_stack_overflow(void)
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))
12753 return 0; 13324 return 0;
12754 13325
12755 /* build the stack frame on the IRQ stack */ 13326 /* build the stack frame on the IRQ stack */
12756- isp = (u32 *) ((char *)irqctx + sizeof(*irqctx)); 13327- isp = (u32 *) ((char *)irqctx + sizeof(*irqctx));
13328- irqctx->tinfo.task = curctx->tinfo.task;
13329- irqctx->tinfo.previous_esp = current_stack_pointer;
12757+ isp = (u32 *) ((char *)irqctx + sizeof(*irqctx) - 8); 13330+ isp = (u32 *) ((char *)irqctx + sizeof(*irqctx) - 8);
12758 irqctx->tinfo.task = curctx->tinfo.task; 13331+ irqctx->previous_esp = current_stack_pointer;
12759 irqctx->tinfo.previous_esp = current_stack_pointer; 13332+ add_preempt_count(HARDIRQ_OFFSET);
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);
12764 13333
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);
12765+#ifdef CONFIG_PAX_MEMORY_UDEREF 13341+#ifdef CONFIG_PAX_MEMORY_UDEREF
12766+ __set_fs(irqctx->tinfo.addr_limit); 13342+ __set_fs(MAKE_MM_SEG(0));
12767+#endif 13343+#endif
12768+ 13344
12769 if (unlikely(overflow)) 13345 if (unlikely(overflow))
12770 call_on_stack(print_stack_overflow, isp); 13346 call_on_stack(print_stack_overflow, isp);
12771 13347@@ -113,6 +108,12 @@ execute_on_irq_stack(int overflow, struc
12772@@ -113,6 +117,11 @@ execute_on_irq_stack(int overflow, struc
12773 : "0" (irq), "1" (desc), "2" (isp), 13348 : "0" (irq), "1" (desc), "2" (isp),
12774 "D" (desc->handle_irq) 13349 "D" (desc->handle_irq)
12775 : "memory", "cc", "ecx"); 13350 : "memory", "cc", "ecx");
12776+ 13351+
12777+#ifdef CONFIG_PAX_MEMORY_UDEREF 13352+#ifdef CONFIG_PAX_MEMORY_UDEREF
12778+ __set_fs(curctx->tinfo.addr_limit); 13353+ __set_fs(current_thread_info()->addr_limit);
12779+#endif 13354+#endif
12780+ 13355+
13356+ sub_preempt_count(HARDIRQ_OFFSET);
12781 return 1; 13357 return 1;
12782 } 13358 }
12783 13359
12784@@ -168,9 +177,18 @@ asmlinkage void do_softirq(void) 13360@@ -121,29 +122,11 @@ execute_on_irq_stack(int overflow, struc
12785 irqctx->tinfo.previous_esp = current_stack_pointer; 13361 */
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;
12786 13409
12787 /* build the stack frame on the softirq stack */ 13410 /* build the stack frame on the softirq stack */
12788- isp = (u32 *) ((char *)irqctx + sizeof(*irqctx)); 13411- isp = (u32 *) ((char *)irqctx + sizeof(*irqctx));
12789+ isp = (u32 *) ((char *)irqctx + sizeof(*irqctx) - 8); 13412+ isp = (u32 *) ((char *)irqctx + sizeof(*irqctx) - 8);
12790+ 13413+
12791+#ifdef CONFIG_PAX_MEMORY_UDEREF 13414+#ifdef CONFIG_PAX_MEMORY_UDEREF
12792+ __set_fs(irqctx->tinfo.addr_limit); 13415+ __set_fs(MAKE_MM_SEG(0));
12793+#endif 13416+#endif
12794 13417
12795 call_on_stack(__do_softirq, isp); 13418 call_on_stack(__do_softirq, isp);
12796+ 13419+
12797+#ifdef CONFIG_PAX_MEMORY_UDEREF 13420+#ifdef CONFIG_PAX_MEMORY_UDEREF
12798+ __set_fs(curctx->addr_limit); 13421+ __set_fs(current_thread_info()->addr_limit);
12799+#endif 13422+#endif
12800+ 13423+
12801 /* 13424 /*
12802 * Shouldnt happen, we returned above if in_interrupt(): 13425 * Shouldnt happen, we returned above if in_interrupt():
12803 */ 13426 */
12804diff -urNp linux-2.6.38.2/arch/x86/kernel/kgdb.c linux-2.6.38.2/arch/x86/kernel/kgdb.c 13427diff -urNp linux-2.6.38.3/arch/x86/kernel/kgdb.c linux-2.6.38.3/arch/x86/kernel/kgdb.c
12805--- linux-2.6.38.2/arch/x86/kernel/kgdb.c 2011-03-14 21:20:32.000000000 -0400 13428--- linux-2.6.38.3/arch/x86/kernel/kgdb.c 2011-03-14 21:20:32.000000000 -0400
12806+++ linux-2.6.38.2/arch/x86/kernel/kgdb.c 2011-03-21 18:31:35.000000000 -0400 13429+++ linux-2.6.38.3/arch/x86/kernel/kgdb.c 2011-04-17 15:57:32.000000000 -0400
12807@@ -124,11 +124,11 @@ char *dbg_get_reg(int regno, void *mem, 13430@@ -124,11 +124,11 @@ char *dbg_get_reg(int regno, void *mem,
12808 switch (regno) { 13431 switch (regno) {
12809 #ifdef CONFIG_X86_32 13432 #ifdef CONFIG_X86_32
@@ -12827,9 +13450,9 @@ diff -urNp linux-2.6.38.2/arch/x86/kernel/kgdb.c linux-2.6.38.2/arch/x86/kernel/
12827 /* Breakpoint instruction: */ 13450 /* Breakpoint instruction: */
12828 .gdb_bpt_instr = { 0xcc }, 13451 .gdb_bpt_instr = { 0xcc },
12829 .flags = KGDB_HW_BREAKPOINT, 13452 .flags = KGDB_HW_BREAKPOINT,
12830diff -urNp linux-2.6.38.2/arch/x86/kernel/kprobes.c linux-2.6.38.2/arch/x86/kernel/kprobes.c 13453diff -urNp linux-2.6.38.3/arch/x86/kernel/kprobes.c linux-2.6.38.3/arch/x86/kernel/kprobes.c
12831--- linux-2.6.38.2/arch/x86/kernel/kprobes.c 2011-03-14 21:20:32.000000000 -0400 13454--- linux-2.6.38.3/arch/x86/kernel/kprobes.c 2011-03-14 21:20:32.000000000 -0400
12832+++ linux-2.6.38.2/arch/x86/kernel/kprobes.c 2011-03-21 18:31:35.000000000 -0400 13455+++ linux-2.6.38.3/arch/x86/kernel/kprobes.c 2011-04-17 15:57:32.000000000 -0400
12833@@ -115,8 +115,11 @@ static void __kprobes __synthesize_relat 13456@@ -115,8 +115,11 @@ static void __kprobes __synthesize_relat
12834 } __attribute__((packed)) *insn; 13457 } __attribute__((packed)) *insn;
12835 13458
@@ -12963,9 +13586,9 @@ diff -urNp linux-2.6.38.2/arch/x86/kernel/kprobes.c linux-2.6.38.2/arch/x86/kern
12963 RELATIVE_ADDR_SIZE); 13586 RELATIVE_ADDR_SIZE);
12964 13587
12965 insn_buf[0] = RELATIVEJUMP_OPCODE; 13588 insn_buf[0] = RELATIVEJUMP_OPCODE;
12966diff -urNp linux-2.6.38.2/arch/x86/kernel/ldt.c linux-2.6.38.2/arch/x86/kernel/ldt.c 13589diff -urNp linux-2.6.38.3/arch/x86/kernel/ldt.c linux-2.6.38.3/arch/x86/kernel/ldt.c
12967--- linux-2.6.38.2/arch/x86/kernel/ldt.c 2011-03-14 21:20:32.000000000 -0400 13590--- linux-2.6.38.3/arch/x86/kernel/ldt.c 2011-03-14 21:20:32.000000000 -0400
12968+++ linux-2.6.38.2/arch/x86/kernel/ldt.c 2011-03-21 18:31:35.000000000 -0400 13591+++ linux-2.6.38.3/arch/x86/kernel/ldt.c 2011-04-17 15:57:32.000000000 -0400
12969@@ -67,13 +67,13 @@ static int alloc_ldt(mm_context_t *pc, i 13592@@ -67,13 +67,13 @@ static int alloc_ldt(mm_context_t *pc, i
12970 if (reload) { 13593 if (reload) {
12971 #ifdef CONFIG_SMP 13594 #ifdef CONFIG_SMP
@@ -13030,9 +13653,9 @@ diff -urNp linux-2.6.38.2/arch/x86/kernel/ldt.c linux-2.6.38.2/arch/x86/kernel/l
13030 fill_ldt(&ldt, &ldt_info); 13653 fill_ldt(&ldt, &ldt_info);
13031 if (oldmode) 13654 if (oldmode)
13032 ldt.avl = 0; 13655 ldt.avl = 0;
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 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
13034--- linux-2.6.38.2/arch/x86/kernel/machine_kexec_32.c 2011-03-14 21:20:32.000000000 -0400 13657--- linux-2.6.38.3/arch/x86/kernel/machine_kexec_32.c 2011-03-14 21:20:32.000000000 -0400
13035+++ linux-2.6.38.2/arch/x86/kernel/machine_kexec_32.c 2011-03-21 18:31:35.000000000 -0400 13658+++ linux-2.6.38.3/arch/x86/kernel/machine_kexec_32.c 2011-04-17 15:57:32.000000000 -0400
13036@@ -27,7 +27,7 @@ 13659@@ -27,7 +27,7 @@
13037 #include <asm/cacheflush.h> 13660 #include <asm/cacheflush.h>
13038 #include <asm/debugreg.h> 13661 #include <asm/debugreg.h>
@@ -13060,9 +13683,9 @@ diff -urNp linux-2.6.38.2/arch/x86/kernel/machine_kexec_32.c linux-2.6.38.2/arch
13060 13683
13061 relocate_kernel_ptr = control_page; 13684 relocate_kernel_ptr = control_page;
13062 page_list[PA_CONTROL_PAGE] = __pa(control_page); 13685 page_list[PA_CONTROL_PAGE] = __pa(control_page);
13063diff -urNp linux-2.6.38.2/arch/x86/kernel/microcode_amd.c linux-2.6.38.2/arch/x86/kernel/microcode_amd.c 13686diff -urNp linux-2.6.38.3/arch/x86/kernel/microcode_amd.c linux-2.6.38.3/arch/x86/kernel/microcode_amd.c
13064--- linux-2.6.38.2/arch/x86/kernel/microcode_amd.c 2011-03-14 21:20:32.000000000 -0400 13687--- linux-2.6.38.3/arch/x86/kernel/microcode_amd.c 2011-03-14 21:20:32.000000000 -0400
13065+++ linux-2.6.38.2/arch/x86/kernel/microcode_amd.c 2011-03-21 18:31:35.000000000 -0400 13688+++ linux-2.6.38.3/arch/x86/kernel/microcode_amd.c 2011-04-17 15:57:32.000000000 -0400
13066@@ -317,7 +317,7 @@ static void microcode_fini_cpu_amd(int c 13689@@ -317,7 +317,7 @@ static void microcode_fini_cpu_amd(int c
13067 uci->mc = NULL; 13690 uci->mc = NULL;
13068 } 13691 }
@@ -13081,9 +13704,9 @@ diff -urNp linux-2.6.38.2/arch/x86/kernel/microcode_amd.c linux-2.6.38.2/arch/x8
13081 { 13704 {
13082 return &microcode_amd_ops; 13705 return &microcode_amd_ops;
13083 } 13706 }
13084diff -urNp linux-2.6.38.2/arch/x86/kernel/microcode_core.c linux-2.6.38.2/arch/x86/kernel/microcode_core.c 13707diff -urNp linux-2.6.38.3/arch/x86/kernel/microcode_core.c linux-2.6.38.3/arch/x86/kernel/microcode_core.c
13085--- linux-2.6.38.2/arch/x86/kernel/microcode_core.c 2011-03-14 21:20:32.000000000 -0400 13708--- linux-2.6.38.3/arch/x86/kernel/microcode_core.c 2011-03-14 21:20:32.000000000 -0400
13086+++ linux-2.6.38.2/arch/x86/kernel/microcode_core.c 2011-03-21 18:31:35.000000000 -0400 13709+++ linux-2.6.38.3/arch/x86/kernel/microcode_core.c 2011-04-17 15:57:32.000000000 -0400
13087@@ -92,7 +92,7 @@ MODULE_LICENSE("GPL"); 13710@@ -92,7 +92,7 @@ MODULE_LICENSE("GPL");
13088 13711
13089 #define MICROCODE_VERSION "2.00" 13712 #define MICROCODE_VERSION "2.00"
@@ -13093,9 +13716,9 @@ diff -urNp linux-2.6.38.2/arch/x86/kernel/microcode_core.c linux-2.6.38.2/arch/x
13093 13716
13094 /* 13717 /*
13095 * Synchronization. 13718 * Synchronization.
13096diff -urNp linux-2.6.38.2/arch/x86/kernel/microcode_intel.c linux-2.6.38.2/arch/x86/kernel/microcode_intel.c 13719diff -urNp linux-2.6.38.3/arch/x86/kernel/microcode_intel.c linux-2.6.38.3/arch/x86/kernel/microcode_intel.c
13097--- linux-2.6.38.2/arch/x86/kernel/microcode_intel.c 2011-03-14 21:20:32.000000000 -0400 13720--- linux-2.6.38.3/arch/x86/kernel/microcode_intel.c 2011-03-14 21:20:32.000000000 -0400
13098+++ linux-2.6.38.2/arch/x86/kernel/microcode_intel.c 2011-03-21 18:31:35.000000000 -0400 13721+++ linux-2.6.38.3/arch/x86/kernel/microcode_intel.c 2011-04-17 15:57:32.000000000 -0400
13099@@ -440,13 +440,13 @@ static enum ucode_state request_microcod 13722@@ -440,13 +440,13 @@ static enum ucode_state request_microcod
13100 13723
13101 static int get_ucode_user(void *to, const void *from, size_t n) 13724 static int get_ucode_user(void *to, const void *from, size_t n)
@@ -13130,9 +13753,9 @@ diff -urNp linux-2.6.38.2/arch/x86/kernel/microcode_intel.c linux-2.6.38.2/arch/
13130 { 13753 {
13131 return &microcode_intel_ops; 13754 return &microcode_intel_ops;
13132 } 13755 }
13133diff -urNp linux-2.6.38.2/arch/x86/kernel/module.c linux-2.6.38.2/arch/x86/kernel/module.c 13756diff -urNp linux-2.6.38.3/arch/x86/kernel/module.c linux-2.6.38.3/arch/x86/kernel/module.c
13134--- linux-2.6.38.2/arch/x86/kernel/module.c 2011-03-14 21:20:32.000000000 -0400 13757--- linux-2.6.38.3/arch/x86/kernel/module.c 2011-03-14 21:20:32.000000000 -0400
13135+++ linux-2.6.38.2/arch/x86/kernel/module.c 2011-03-21 18:31:35.000000000 -0400 13758+++ linux-2.6.38.3/arch/x86/kernel/module.c 2011-04-17 15:57:32.000000000 -0400
13136@@ -35,21 +35,66 @@ 13759@@ -35,21 +35,66 @@
13137 #define DEBUGP(fmt...) 13760 #define DEBUGP(fmt...)
13138 #endif 13761 #endif
@@ -13271,9 +13894,9 @@ diff -urNp linux-2.6.38.2/arch/x86/kernel/module.c linux-2.6.38.2/arch/x86/kerne
13271 #if 0 13894 #if 0
13272 if ((s64)val != *(s32 *)loc) 13895 if ((s64)val != *(s32 *)loc)
13273 goto overflow; 13896 goto overflow;
13274diff -urNp linux-2.6.38.2/arch/x86/kernel/paravirt.c linux-2.6.38.2/arch/x86/kernel/paravirt.c 13897diff -urNp linux-2.6.38.3/arch/x86/kernel/paravirt.c linux-2.6.38.3/arch/x86/kernel/paravirt.c
13275--- linux-2.6.38.2/arch/x86/kernel/paravirt.c 2011-03-14 21:20:32.000000000 -0400 13898--- linux-2.6.38.3/arch/x86/kernel/paravirt.c 2011-03-14 21:20:32.000000000 -0400
13276+++ linux-2.6.38.2/arch/x86/kernel/paravirt.c 2011-03-21 18:31:35.000000000 -0400 13899+++ linux-2.6.38.3/arch/x86/kernel/paravirt.c 2011-04-17 15:57:32.000000000 -0400
13277@@ -122,7 +122,7 @@ unsigned paravirt_patch_jmp(void *insnbu 13900@@ -122,7 +122,7 @@ unsigned paravirt_patch_jmp(void *insnbu
13278 * corresponding structure. */ 13901 * corresponding structure. */
13279 static void *get_call_destination(u8 type) 13902 static void *get_call_destination(u8 type)
@@ -13377,9 +14000,9 @@ diff -urNp linux-2.6.38.2/arch/x86/kernel/paravirt.c linux-2.6.38.2/arch/x86/ker
13377 }; 14000 };
13378 14001
13379 EXPORT_SYMBOL_GPL(pv_time_ops); 14002 EXPORT_SYMBOL_GPL(pv_time_ops);
13380diff -urNp linux-2.6.38.2/arch/x86/kernel/paravirt-spinlocks.c linux-2.6.38.2/arch/x86/kernel/paravirt-spinlocks.c 14003diff -urNp linux-2.6.38.3/arch/x86/kernel/paravirt-spinlocks.c linux-2.6.38.3/arch/x86/kernel/paravirt-spinlocks.c
13381--- linux-2.6.38.2/arch/x86/kernel/paravirt-spinlocks.c 2011-03-14 21:20:32.000000000 -0400 14004--- linux-2.6.38.3/arch/x86/kernel/paravirt-spinlocks.c 2011-03-14 21:20:32.000000000 -0400
13382+++ linux-2.6.38.2/arch/x86/kernel/paravirt-spinlocks.c 2011-03-21 18:31:35.000000000 -0400 14005+++ linux-2.6.38.3/arch/x86/kernel/paravirt-spinlocks.c 2011-04-17 15:57:32.000000000 -0400
13383@@ -13,7 +13,7 @@ default_spin_lock_flags(arch_spinlock_t 14006@@ -13,7 +13,7 @@ default_spin_lock_flags(arch_spinlock_t
13384 arch_spin_lock(lock); 14007 arch_spin_lock(lock);
13385 } 14008 }
@@ -13389,9 +14012,9 @@ diff -urNp linux-2.6.38.2/arch/x86/kernel/paravirt-spinlocks.c linux-2.6.38.2/ar
13389 #ifdef CONFIG_SMP 14012 #ifdef CONFIG_SMP
13390 .spin_is_locked = __ticket_spin_is_locked, 14013 .spin_is_locked = __ticket_spin_is_locked,
13391 .spin_is_contended = __ticket_spin_is_contended, 14014 .spin_is_contended = __ticket_spin_is_contended,
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 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
13393--- linux-2.6.38.2/arch/x86/kernel/pci-calgary_64.c 2011-03-14 21:20:32.000000000 -0400 14016--- linux-2.6.38.3/arch/x86/kernel/pci-calgary_64.c 2011-03-14 21:20:32.000000000 -0400
13394+++ linux-2.6.38.2/arch/x86/kernel/pci-calgary_64.c 2011-03-21 18:31:35.000000000 -0400 14017+++ linux-2.6.38.3/arch/x86/kernel/pci-calgary_64.c 2011-04-17 15:57:32.000000000 -0400
13395@@ -476,7 +476,7 @@ static void calgary_free_coherent(struct 14018@@ -476,7 +476,7 @@ static void calgary_free_coherent(struct
13396 free_pages((unsigned long)vaddr, get_order(size)); 14019 free_pages((unsigned long)vaddr, get_order(size));
13397 } 14020 }
@@ -13401,9 +14024,9 @@ diff -urNp linux-2.6.38.2/arch/x86/kernel/pci-calgary_64.c linux-2.6.38.2/arch/x
13401 .alloc_coherent = calgary_alloc_coherent, 14024 .alloc_coherent = calgary_alloc_coherent,
13402 .free_coherent = calgary_free_coherent, 14025 .free_coherent = calgary_free_coherent,
13403 .map_sg = calgary_map_sg, 14026 .map_sg = calgary_map_sg,
13404diff -urNp linux-2.6.38.2/arch/x86/kernel/pci-dma.c linux-2.6.38.2/arch/x86/kernel/pci-dma.c 14027diff -urNp linux-2.6.38.3/arch/x86/kernel/pci-dma.c linux-2.6.38.3/arch/x86/kernel/pci-dma.c
13405--- linux-2.6.38.2/arch/x86/kernel/pci-dma.c 2011-03-14 21:20:32.000000000 -0400 14028--- linux-2.6.38.3/arch/x86/kernel/pci-dma.c 2011-03-14 21:20:32.000000000 -0400
13406+++ linux-2.6.38.2/arch/x86/kernel/pci-dma.c 2011-03-21 18:31:35.000000000 -0400 14029+++ linux-2.6.38.3/arch/x86/kernel/pci-dma.c 2011-04-17 15:57:32.000000000 -0400
13407@@ -16,7 +16,7 @@ 14030@@ -16,7 +16,7 @@
13408 14031
13409 static int forbid_dac __read_mostly; 14032 static int forbid_dac __read_mostly;
@@ -13422,9 +14045,9 @@ diff -urNp linux-2.6.38.2/arch/x86/kernel/pci-dma.c linux-2.6.38.2/arch/x86/kern
13422 14045
13423 #ifdef CONFIG_PCI 14046 #ifdef CONFIG_PCI
13424 if (mask > 0xffffffff && forbid_dac > 0) { 14047 if (mask > 0xffffffff && forbid_dac > 0) {
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 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
13426--- linux-2.6.38.2/arch/x86/kernel/pci-gart_64.c 2011-03-14 21:20:32.000000000 -0400 14049--- linux-2.6.38.3/arch/x86/kernel/pci-gart_64.c 2011-03-14 21:20:32.000000000 -0400
13427+++ linux-2.6.38.2/arch/x86/kernel/pci-gart_64.c 2011-03-21 18:31:35.000000000 -0400 14050+++ linux-2.6.38.3/arch/x86/kernel/pci-gart_64.c 2011-04-17 15:57:32.000000000 -0400
13428@@ -706,7 +706,7 @@ static __init int init_amd_gatt(struct a 14051@@ -706,7 +706,7 @@ static __init int init_amd_gatt(struct a
13429 return -1; 14052 return -1;
13430 } 14053 }
@@ -13434,9 +14057,9 @@ diff -urNp linux-2.6.38.2/arch/x86/kernel/pci-gart_64.c linux-2.6.38.2/arch/x86/
13434 .map_sg = gart_map_sg, 14057 .map_sg = gart_map_sg,
13435 .unmap_sg = gart_unmap_sg, 14058 .unmap_sg = gart_unmap_sg,
13436 .map_page = gart_map_page, 14059 .map_page = gart_map_page,
13437diff -urNp linux-2.6.38.2/arch/x86/kernel/pci-nommu.c linux-2.6.38.2/arch/x86/kernel/pci-nommu.c 14060diff -urNp linux-2.6.38.3/arch/x86/kernel/pci-nommu.c linux-2.6.38.3/arch/x86/kernel/pci-nommu.c
13438--- linux-2.6.38.2/arch/x86/kernel/pci-nommu.c 2011-03-14 21:20:32.000000000 -0400 14061--- linux-2.6.38.3/arch/x86/kernel/pci-nommu.c 2011-03-14 21:20:32.000000000 -0400
13439+++ linux-2.6.38.2/arch/x86/kernel/pci-nommu.c 2011-03-21 18:31:35.000000000 -0400 14062+++ linux-2.6.38.3/arch/x86/kernel/pci-nommu.c 2011-04-17 15:57:32.000000000 -0400
13440@@ -95,7 +95,7 @@ static void nommu_sync_sg_for_device(str 14063@@ -95,7 +95,7 @@ static void nommu_sync_sg_for_device(str
13441 flush_write_buffers(); 14064 flush_write_buffers();
13442 } 14065 }
@@ -13446,9 +14069,9 @@ diff -urNp linux-2.6.38.2/arch/x86/kernel/pci-nommu.c linux-2.6.38.2/arch/x86/ke
13446 .alloc_coherent = dma_generic_alloc_coherent, 14069 .alloc_coherent = dma_generic_alloc_coherent,
13447 .free_coherent = nommu_free_coherent, 14070 .free_coherent = nommu_free_coherent,
13448 .map_sg = nommu_map_sg, 14071 .map_sg = nommu_map_sg,
13449diff -urNp linux-2.6.38.2/arch/x86/kernel/pci-swiotlb.c linux-2.6.38.2/arch/x86/kernel/pci-swiotlb.c 14072diff -urNp linux-2.6.38.3/arch/x86/kernel/pci-swiotlb.c linux-2.6.38.3/arch/x86/kernel/pci-swiotlb.c
13450--- linux-2.6.38.2/arch/x86/kernel/pci-swiotlb.c 2011-03-14 21:20:32.000000000 -0400 14073--- linux-2.6.38.3/arch/x86/kernel/pci-swiotlb.c 2011-03-14 21:20:32.000000000 -0400
13451+++ linux-2.6.38.2/arch/x86/kernel/pci-swiotlb.c 2011-03-21 18:31:35.000000000 -0400 14074+++ linux-2.6.38.3/arch/x86/kernel/pci-swiotlb.c 2011-04-17 15:57:32.000000000 -0400
13452@@ -26,7 +26,7 @@ static void *x86_swiotlb_alloc_coherent( 14075@@ -26,7 +26,7 @@ static void *x86_swiotlb_alloc_coherent(
13453 return swiotlb_alloc_coherent(hwdev, size, dma_handle, flags); 14076 return swiotlb_alloc_coherent(hwdev, size, dma_handle, flags);
13454 } 14077 }
@@ -13458,9 +14081,9 @@ diff -urNp linux-2.6.38.2/arch/x86/kernel/pci-swiotlb.c linux-2.6.38.2/arch/x86/
13458 .mapping_error = swiotlb_dma_mapping_error, 14081 .mapping_error = swiotlb_dma_mapping_error,
13459 .alloc_coherent = x86_swiotlb_alloc_coherent, 14082 .alloc_coherent = x86_swiotlb_alloc_coherent,
13460 .free_coherent = swiotlb_free_coherent, 14083 .free_coherent = swiotlb_free_coherent,
13461diff -urNp linux-2.6.38.2/arch/x86/kernel/process_32.c linux-2.6.38.2/arch/x86/kernel/process_32.c 14084diff -urNp linux-2.6.38.3/arch/x86/kernel/process_32.c linux-2.6.38.3/arch/x86/kernel/process_32.c
13462--- linux-2.6.38.2/arch/x86/kernel/process_32.c 2011-03-14 21:20:32.000000000 -0400 14085--- linux-2.6.38.3/arch/x86/kernel/process_32.c 2011-03-14 21:20:32.000000000 -0400
13463+++ linux-2.6.38.2/arch/x86/kernel/process_32.c 2011-03-21 18:31:35.000000000 -0400 14086+++ linux-2.6.38.3/arch/x86/kernel/process_32.c 2011-04-17 15:57:32.000000000 -0400
13464@@ -65,6 +65,7 @@ asmlinkage void ret_from_fork(void) __as 14087@@ -65,6 +65,7 @@ asmlinkage void ret_from_fork(void) __as
13465 unsigned long thread_saved_pc(struct task_struct *tsk) 14088 unsigned long thread_saved_pc(struct task_struct *tsk)
13466 { 14089 {
@@ -13516,37 +14139,33 @@ diff -urNp linux-2.6.38.2/arch/x86/kernel/process_32.c linux-2.6.38.2/arch/x86/k
13516 /* 14139 /*
13517 * Load the per-thread Thread-Local Storage descriptor. 14140 * Load the per-thread Thread-Local Storage descriptor.
13518 */ 14141 */
13519@@ -404,3 +408,27 @@ unsigned long get_wchan(struct task_stru 14142@@ -363,6 +367,9 @@ __switch_to(struct task_struct *prev_p,
13520 return 0; 14143 */
13521 } 14144 arch_end_context_switch(next_p);
13522 14145
13523+#ifdef CONFIG_PAX_RANDKSTACK 14146+ percpu_write(current_task, next_p);
13524+asmlinkage void pax_randomize_kstack(void) 14147+ percpu_write(current_tinfo, &next_p->tinfo);
13525+{
13526+ struct thread_struct *thread = &current->thread;
13527+ unsigned long time;
13528+ 14148+
13529+ if (!randomize_va_space) 14149 if (preload_fpu)
13530+ return; 14150 __math_state_restore();
13531+ 14151
13532+ rdtscl(time); 14152@@ -372,8 +379,6 @@ __switch_to(struct task_struct *prev_p,
13533+ 14153 if (prev->gs | next->gs)
13534+ /* P4 seems to return a 0 LSB, ignore it */ 14154 lazy_load_gs(next->gs);
13535+#ifdef CONFIG_MPENTIUM4 14155
13536+ time &= 0x1EUL; 14156- percpu_write(current_task, next_p);
13537+ time <<= 2; 14157-
13538+#else 14158 return prev_p;
13539+ time &= 0xFUL; 14159 }
13540+ time <<= 3; 14160
13541+#endif 14161@@ -403,4 +408,3 @@ unsigned long get_wchan(struct task_stru
13542+ 14162 } while (count++ < 16);
13543+ thread->sp0 ^= time; 14163 return 0;
13544+ load_sp0(init_tss + smp_processor_id(), thread); 14164 }
13545+} 14165-
13546+#endif 14166diff -urNp linux-2.6.38.3/arch/x86/kernel/process_64.c linux-2.6.38.3/arch/x86/kernel/process_64.c
13547diff -urNp linux-2.6.38.2/arch/x86/kernel/process_64.c linux-2.6.38.2/arch/x86/kernel/process_64.c 14167--- linux-2.6.38.3/arch/x86/kernel/process_64.c 2011-03-14 21:20:32.000000000 -0400
13548--- linux-2.6.38.2/arch/x86/kernel/process_64.c 2011-03-14 21:20:32.000000000 -0400 14168+++ linux-2.6.38.3/arch/x86/kernel/process_64.c 2011-04-17 15:57:32.000000000 -0400
13549+++ linux-2.6.38.2/arch/x86/kernel/process_64.c 2011-03-21 18:31:35.000000000 -0400
13550@@ -87,7 +87,7 @@ static void __exit_idle(void) 14169@@ -87,7 +87,7 @@ static void __exit_idle(void)
13551 void exit_idle(void) 14170 void exit_idle(void)
13552 { 14171 {
@@ -13556,7 +14175,17 @@ diff -urNp linux-2.6.38.2/arch/x86/kernel/process_64.c linux-2.6.38.2/arch/x86/k
13556 return; 14175 return;
13557 __exit_idle(); 14176 __exit_idle();
13558 } 14177 }
13559@@ -376,7 +376,7 @@ __switch_to(struct task_struct *prev_p, 14178@@ -260,8 +260,7 @@ int copy_thread(unsigned long clone_flag
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,
13560 struct thread_struct *prev = &prev_p->thread; 14189 struct thread_struct *prev = &prev_p->thread;
13561 struct thread_struct *next = &next_p->thread; 14190 struct thread_struct *next = &next_p->thread;
13562 int cpu = smp_processor_id(); 14191 int cpu = smp_processor_id();
@@ -13565,7 +14194,20 @@ diff -urNp linux-2.6.38.2/arch/x86/kernel/process_64.c linux-2.6.38.2/arch/x86/k
13565 unsigned fsindex, gsindex; 14194 unsigned fsindex, gsindex;
13566 bool preload_fpu; 14195 bool preload_fpu;
13567 14196
13568@@ -529,12 +529,11 @@ unsigned long get_wchan(struct task_stru 14197@@ -472,10 +471,9 @@ __switch_to(struct task_struct *prev_p,
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
13569 if (!p || p == current || p->state == TASK_RUNNING) 14211 if (!p || p == current || p->state == TASK_RUNNING)
13570 return 0; 14212 return 0;
13571 stack = (unsigned long)task_stack_page(p); 14213 stack = (unsigned long)task_stack_page(p);
@@ -13580,10 +14222,48 @@ diff -urNp linux-2.6.38.2/arch/x86/kernel/process_64.c linux-2.6.38.2/arch/x86/k
13580 return 0; 14222 return 0;
13581 ip = *(u64 *)(fp+8); 14223 ip = *(u64 *)(fp+8);
13582 if (!in_sched_functions(ip)) 14224 if (!in_sched_functions(ip))
13583diff -urNp linux-2.6.38.2/arch/x86/kernel/process.c linux-2.6.38.2/arch/x86/kernel/process.c 14225diff -urNp linux-2.6.38.3/arch/x86/kernel/process.c linux-2.6.38.3/arch/x86/kernel/process.c
13584--- linux-2.6.38.2/arch/x86/kernel/process.c 2011-03-14 21:20:32.000000000 -0400 14226--- linux-2.6.38.3/arch/x86/kernel/process.c 2011-03-14 21:20:32.000000000 -0400
13585+++ linux-2.6.38.2/arch/x86/kernel/process.c 2011-03-28 16:56:19.000000000 -0400 14227+++ linux-2.6.38.3/arch/x86/kernel/process.c 2011-04-17 15:57:32.000000000 -0400
13586@@ -70,7 +70,7 @@ void exit_thread(void) 14228@@ -48,16 +48,33 @@ void free_thread_xstate(struct task_stru
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)
13587 unsigned long *bp = t->io_bitmap_ptr; 14267 unsigned long *bp = t->io_bitmap_ptr;
13588 14268
13589 if (bp) { 14269 if (bp) {
@@ -13592,7 +14272,7 @@ diff -urNp linux-2.6.38.2/arch/x86/kernel/process.c linux-2.6.38.2/arch/x86/kern
13592 14272
13593 t->io_bitmap_ptr = NULL; 14273 t->io_bitmap_ptr = NULL;
13594 clear_thread_flag(TIF_IO_BITMAP); 14274 clear_thread_flag(TIF_IO_BITMAP);
13595@@ -106,7 +106,7 @@ void show_regs_common(void) 14275@@ -106,7 +123,7 @@ void show_regs_common(void)
13596 14276
13597 printk(KERN_CONT "\n"); 14277 printk(KERN_CONT "\n");
13598 printk(KERN_DEFAULT "Pid: %d, comm: %.20s %s %s %.*s", 14278 printk(KERN_DEFAULT "Pid: %d, comm: %.20s %s %s %.*s",
@@ -13601,7 +14281,7 @@ diff -urNp linux-2.6.38.2/arch/x86/kernel/process.c linux-2.6.38.2/arch/x86/kern
13601 init_utsname()->release, 14281 init_utsname()->release,
13602 (int)strcspn(init_utsname()->version, " "), 14282 (int)strcspn(init_utsname()->version, " "),
13603 init_utsname()->version); 14283 init_utsname()->version);
13604@@ -123,6 +123,9 @@ void flush_thread(void) 14284@@ -123,6 +140,9 @@ void flush_thread(void)
13605 { 14285 {
13606 struct task_struct *tsk = current; 14286 struct task_struct *tsk = current;
13607 14287
@@ -13611,7 +14291,7 @@ diff -urNp linux-2.6.38.2/arch/x86/kernel/process.c linux-2.6.38.2/arch/x86/kern
13611 flush_ptrace_hw_breakpoint(tsk); 14291 flush_ptrace_hw_breakpoint(tsk);
13612 memset(tsk->thread.tls_array, 0, sizeof(tsk->thread.tls_array)); 14292 memset(tsk->thread.tls_array, 0, sizeof(tsk->thread.tls_array));
13613 /* 14293 /*
13614@@ -285,10 +288,10 @@ int kernel_thread(int (*fn)(void *), voi 14294@@ -285,10 +305,10 @@ int kernel_thread(int (*fn)(void *), voi
13615 regs.di = (unsigned long) arg; 14295 regs.di = (unsigned long) arg;
13616 14296
13617 #ifdef CONFIG_X86_32 14297 #ifdef CONFIG_X86_32
@@ -13625,27 +14305,51 @@ diff -urNp linux-2.6.38.2/arch/x86/kernel/process.c linux-2.6.38.2/arch/x86/kern
13625 #else 14305 #else
13626 regs.ss = __KERNEL_DS; 14306 regs.ss = __KERNEL_DS;
13627 #endif 14307 #endif
13628@@ -667,17 +670,3 @@ static int __init idle_setup(char *str) 14308@@ -668,16 +688,31 @@ static int __init idle_setup(char *str)
13629 return 0;
13630 } 14309 }
13631 early_param("idle", idle_setup); 14310 early_param("idle", idle_setup);
13632- 14311
13633-unsigned long arch_align_stack(unsigned long sp) 14312-unsigned long arch_align_stack(unsigned long sp)
13634-{ 14313+#ifdef CONFIG_PAX_RANDKSTACK
14314+asmlinkage void pax_randomize_kstack(void)
14315 {
13635- if (!(current->personality & ADDR_NO_RANDOMIZE) && randomize_va_space) 14316- if (!(current->personality & ADDR_NO_RANDOMIZE) && randomize_va_space)
13636- sp -= get_random_int() % 8192; 14317- sp -= get_random_int() % 8192;
13637- return sp & ~0xf; 14318- return sp & ~0xf;
13638-} 14319-}
13639- 14320+ struct thread_struct *thread = &current->thread;
14321+ unsigned long time;
14322
13640-unsigned long arch_randomize_brk(struct mm_struct *mm) 14323-unsigned long arch_randomize_brk(struct mm_struct *mm)
13641-{ 14324-{
13642- unsigned long range_end = mm->brk + 0x02000000; 14325- unsigned long range_end = mm->brk + 0x02000000;
13643- return randomize_range(mm->brk, range_end, 0) ? : mm->brk; 14326- return randomize_range(mm->brk, range_end, 0) ? : mm->brk;
13644-} 14327-}
13645- 14328+ if (!randomize_va_space)
13646diff -urNp linux-2.6.38.2/arch/x86/kernel/ptrace.c linux-2.6.38.2/arch/x86/kernel/ptrace.c 14329+ return;
13647--- linux-2.6.38.2/arch/x86/kernel/ptrace.c 2011-03-14 21:20:32.000000000 -0400 14330+
13648+++ linux-2.6.38.2/arch/x86/kernel/ptrace.c 2011-03-21 18:31:35.000000000 -0400 14331+ rdtscl(time);
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
13649@@ -805,7 +805,7 @@ long arch_ptrace(struct task_struct *chi 14353@@ -805,7 +805,7 @@ long arch_ptrace(struct task_struct *chi
13650 unsigned long addr, unsigned long data) 14354 unsigned long addr, unsigned long data)
13651 { 14355 {
@@ -13699,9 +14403,9 @@ diff -urNp linux-2.6.38.2/arch/x86/kernel/ptrace.c linux-2.6.38.2/arch/x86/kerne
13699 { 14403 {
13700 bool step; 14404 bool step;
13701 14405
13702diff -urNp linux-2.6.38.2/arch/x86/kernel/reboot.c linux-2.6.38.2/arch/x86/kernel/reboot.c 14406diff -urNp linux-2.6.38.3/arch/x86/kernel/reboot.c linux-2.6.38.3/arch/x86/kernel/reboot.c
13703--- linux-2.6.38.2/arch/x86/kernel/reboot.c 2011-03-14 21:20:32.000000000 -0400 14407--- linux-2.6.38.3/arch/x86/kernel/reboot.c 2011-03-14 21:20:32.000000000 -0400
13704+++ linux-2.6.38.2/arch/x86/kernel/reboot.c 2011-03-21 18:31:35.000000000 -0400 14408+++ linux-2.6.38.3/arch/x86/kernel/reboot.c 2011-04-17 15:57:32.000000000 -0400
13705@@ -34,7 +34,7 @@ void (*pm_power_off)(void); 14409@@ -34,7 +34,7 @@ void (*pm_power_off)(void);
13706 EXPORT_SYMBOL(pm_power_off); 14410 EXPORT_SYMBOL(pm_power_off);
13707 14411
@@ -13767,10 +14471,10 @@ diff -urNp linux-2.6.38.2/arch/x86/kernel/reboot.c linux-2.6.38.2/arch/x86/kerne
13767 14471
13768 /* Set up the IDT for real mode. */ 14472 /* Set up the IDT for real mode. */
13769 load_idt(&real_mode_idt); 14473 load_idt(&real_mode_idt);
13770diff -urNp linux-2.6.38.2/arch/x86/kernel/setup.c linux-2.6.38.2/arch/x86/kernel/setup.c 14474diff -urNp linux-2.6.38.3/arch/x86/kernel/setup.c linux-2.6.38.3/arch/x86/kernel/setup.c
13771--- linux-2.6.38.2/arch/x86/kernel/setup.c 2011-03-28 17:42:40.000000000 -0400 14475--- linux-2.6.38.3/arch/x86/kernel/setup.c 2011-04-18 17:27:18.000000000 -0400
13772+++ linux-2.6.38.2/arch/x86/kernel/setup.c 2011-03-28 17:42:53.000000000 -0400 14476+++ linux-2.6.38.3/arch/x86/kernel/setup.c 2011-04-17 16:53:16.000000000 -0400
13773@@ -657,7 +657,7 @@ static void __init trim_bios_range(void) 14477@@ -654,7 +654,7 @@ static void __init trim_bios_range(void)
13774 * area (640->1Mb) as ram even though it is not. 14478 * area (640->1Mb) as ram even though it is not.
13775 * take them out. 14479 * take them out.
13776 */ 14480 */
@@ -13779,7 +14483,7 @@ diff -urNp linux-2.6.38.2/arch/x86/kernel/setup.c linux-2.6.38.2/arch/x86/kernel
13779 sanitize_e820_map(e820.map, ARRAY_SIZE(e820.map), &e820.nr_map); 14483 sanitize_e820_map(e820.map, ARRAY_SIZE(e820.map), &e820.nr_map);
13780 } 14484 }
13781 14485
13782@@ -793,14 +793,14 @@ void __init setup_arch(char **cmdline_p) 14486@@ -790,14 +790,14 @@ void __init setup_arch(char **cmdline_p)
13783 14487
13784 if (!boot_params.hdr.root_flags) 14488 if (!boot_params.hdr.root_flags)
13785 root_mountflags &= ~MS_RDONLY; 14489 root_mountflags &= ~MS_RDONLY;
@@ -13799,9 +14503,9 @@ diff -urNp linux-2.6.38.2/arch/x86/kernel/setup.c linux-2.6.38.2/arch/x86/kernel
13799 data_resource.end = virt_to_phys(_edata)-1; 14503 data_resource.end = virt_to_phys(_edata)-1;
13800 bss_resource.start = virt_to_phys(&__bss_start); 14504 bss_resource.start = virt_to_phys(&__bss_start);
13801 bss_resource.end = virt_to_phys(&__bss_stop)-1; 14505 bss_resource.end = virt_to_phys(&__bss_stop)-1;
13802diff -urNp linux-2.6.38.2/arch/x86/kernel/setup_percpu.c linux-2.6.38.2/arch/x86/kernel/setup_percpu.c 14506diff -urNp linux-2.6.38.3/arch/x86/kernel/setup_percpu.c linux-2.6.38.3/arch/x86/kernel/setup_percpu.c
13803--- linux-2.6.38.2/arch/x86/kernel/setup_percpu.c 2011-03-14 21:20:32.000000000 -0400 14507--- linux-2.6.38.3/arch/x86/kernel/setup_percpu.c 2011-03-14 21:20:32.000000000 -0400
13804+++ linux-2.6.38.2/arch/x86/kernel/setup_percpu.c 2011-03-21 18:31:35.000000000 -0400 14508+++ linux-2.6.38.3/arch/x86/kernel/setup_percpu.c 2011-04-17 15:57:32.000000000 -0400
13805@@ -21,19 +21,17 @@ 14509@@ -21,19 +21,17 @@
13806 #include <asm/cpu.h> 14510 #include <asm/cpu.h>
13807 #include <asm/stackprotector.h> 14511 #include <asm/stackprotector.h>
@@ -13865,9 +14569,9 @@ diff -urNp linux-2.6.38.2/arch/x86/kernel/setup_percpu.c linux-2.6.38.2/arch/x86
13865 /* 14569 /*
13866 * Up to this point, the boot CPU has been using .init.data 14570 * Up to this point, the boot CPU has been using .init.data
13867 * area. Reload any changed state for the boot CPU. 14571 * area. Reload any changed state for the boot CPU.
13868diff -urNp linux-2.6.38.2/arch/x86/kernel/signal.c linux-2.6.38.2/arch/x86/kernel/signal.c 14572diff -urNp linux-2.6.38.3/arch/x86/kernel/signal.c linux-2.6.38.3/arch/x86/kernel/signal.c
13869--- linux-2.6.38.2/arch/x86/kernel/signal.c 2011-03-14 21:20:32.000000000 -0400 14573--- linux-2.6.38.3/arch/x86/kernel/signal.c 2011-03-14 21:20:32.000000000 -0400
13870+++ linux-2.6.38.2/arch/x86/kernel/signal.c 2011-03-21 18:31:35.000000000 -0400 14574+++ linux-2.6.38.3/arch/x86/kernel/signal.c 2011-04-17 15:57:32.000000000 -0400
13871@@ -198,7 +198,7 @@ static unsigned long align_sigframe(unsi 14575@@ -198,7 +198,7 @@ static unsigned long align_sigframe(unsi
13872 * Align the stack pointer according to the i386 ABI, 14576 * Align the stack pointer according to the i386 ABI,
13873 * i.e. so that on function entry ((sp + 4) & 15) == 0. 14577 * i.e. so that on function entry ((sp + 4) & 15) == 0.
@@ -13942,12 +14646,24 @@ diff -urNp linux-2.6.38.2/arch/x86/kernel/signal.c linux-2.6.38.2/arch/x86/kerne
13942 return; 14646 return;
13943 14647
13944 if (current_thread_info()->status & TS_RESTORE_SIGMASK) 14648 if (current_thread_info()->status & TS_RESTORE_SIGMASK)
13945diff -urNp linux-2.6.38.2/arch/x86/kernel/smpboot.c linux-2.6.38.2/arch/x86/kernel/smpboot.c 14649diff -urNp linux-2.6.38.3/arch/x86/kernel/smpboot.c linux-2.6.38.3/arch/x86/kernel/smpboot.c
13946--- linux-2.6.38.2/arch/x86/kernel/smpboot.c 2011-03-14 21:20:32.000000000 -0400 14650--- linux-2.6.38.3/arch/x86/kernel/smpboot.c 2011-03-14 21:20:32.000000000 -0400
13947+++ linux-2.6.38.2/arch/x86/kernel/smpboot.c 2011-03-21 18:31:35.000000000 -0400 14651+++ linux-2.6.38.3/arch/x86/kernel/smpboot.c 2011-04-17 15:57:32.000000000 -0400
13948@@ -783,7 +783,11 @@ do_rest: 14652@@ -773,17 +773,20 @@ static int __cpuinit do_boot_cpu(int api
13949 (unsigned long)task_stack_page(c_idle.idle) - 14653 set_idle_for_cpu(cpu, c_idle.idle);
13950 KERNEL_STACK_OFFSET + THREAD_SIZE; 14654 do_rest:
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;
13951 #endif 14667 #endif
13952+ 14668+
13953+ pax_open_kernel(); 14669+ pax_open_kernel();
@@ -13957,7 +14673,7 @@ diff -urNp linux-2.6.38.2/arch/x86/kernel/smpboot.c linux-2.6.38.2/arch/x86/kern
13957 initial_code = (unsigned long)start_secondary; 14673 initial_code = (unsigned long)start_secondary;
13958 stack_start = c_idle.idle->thread.sp; 14674 stack_start = c_idle.idle->thread.sp;
13959 14675
13960@@ -923,6 +927,12 @@ int __cpuinit native_cpu_up(unsigned int 14676@@ -923,6 +926,12 @@ int __cpuinit native_cpu_up(unsigned int
13961 14677
13962 per_cpu(cpu_state, cpu) = CPU_UP_PREPARE; 14678 per_cpu(cpu_state, cpu) = CPU_UP_PREPARE;
13963 14679
@@ -13970,9 +14686,9 @@ diff -urNp linux-2.6.38.2/arch/x86/kernel/smpboot.c linux-2.6.38.2/arch/x86/kern
13970 err = do_boot_cpu(apicid, cpu); 14686 err = do_boot_cpu(apicid, cpu);
13971 if (err) { 14687 if (err) {
13972 pr_debug("do_boot_cpu failed %d\n", err); 14688 pr_debug("do_boot_cpu failed %d\n", err);
13973diff -urNp linux-2.6.38.2/arch/x86/kernel/step.c linux-2.6.38.2/arch/x86/kernel/step.c 14689diff -urNp linux-2.6.38.3/arch/x86/kernel/step.c linux-2.6.38.3/arch/x86/kernel/step.c
13974--- linux-2.6.38.2/arch/x86/kernel/step.c 2011-03-14 21:20:32.000000000 -0400 14690--- linux-2.6.38.3/arch/x86/kernel/step.c 2011-03-14 21:20:32.000000000 -0400
13975+++ linux-2.6.38.2/arch/x86/kernel/step.c 2011-03-21 18:31:35.000000000 -0400 14691+++ linux-2.6.38.3/arch/x86/kernel/step.c 2011-04-17 15:57:32.000000000 -0400
13976@@ -27,10 +27,10 @@ unsigned long convert_ip_to_linear(struc 14692@@ -27,10 +27,10 @@ unsigned long convert_ip_to_linear(struc
13977 struct desc_struct *desc; 14693 struct desc_struct *desc;
13978 unsigned long base; 14694 unsigned long base;
@@ -14015,17 +14731,17 @@ diff -urNp linux-2.6.38.2/arch/x86/kernel/step.c linux-2.6.38.2/arch/x86/kernel/
14015 /* 32-bit mode: register increment */ 14731 /* 32-bit mode: register increment */
14016 return 0; 14732 return 0;
14017 /* 64-bit mode: REX prefix */ 14733 /* 64-bit mode: REX prefix */
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 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
14019--- linux-2.6.38.2/arch/x86/kernel/syscall_table_32.S 2011-03-14 21:20:32.000000000 -0400 14735--- linux-2.6.38.3/arch/x86/kernel/syscall_table_32.S 2011-03-14 21:20:32.000000000 -0400
14020+++ linux-2.6.38.2/arch/x86/kernel/syscall_table_32.S 2011-03-21 18:31:35.000000000 -0400 14736+++ linux-2.6.38.3/arch/x86/kernel/syscall_table_32.S 2011-04-17 15:57:32.000000000 -0400
14021@@ -1,3 +1,4 @@ 14737@@ -1,3 +1,4 @@
14022+.section .rodata,"a",@progbits 14738+.section .rodata,"a",@progbits
14023 ENTRY(sys_call_table) 14739 ENTRY(sys_call_table)
14024 .long sys_restart_syscall /* 0 - old "setup()" system call, used for restarting */ 14740 .long sys_restart_syscall /* 0 - old "setup()" system call, used for restarting */
14025 .long sys_exit 14741 .long sys_exit
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 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
14027--- linux-2.6.38.2/arch/x86/kernel/sys_i386_32.c 2011-03-14 21:20:32.000000000 -0400 14743--- linux-2.6.38.3/arch/x86/kernel/sys_i386_32.c 2011-03-14 21:20:32.000000000 -0400
14028+++ linux-2.6.38.2/arch/x86/kernel/sys_i386_32.c 2011-03-21 23:47:41.000000000 -0400 14744+++ linux-2.6.38.3/arch/x86/kernel/sys_i386_32.c 2011-04-17 15:57:32.000000000 -0400
14029@@ -24,17 +24,224 @@ 14745@@ -24,17 +24,224 @@
14030 14746
14031 #include <asm/syscalls.h> 14747 #include <asm/syscalls.h>
@@ -14263,9 +14979,9 @@ diff -urNp linux-2.6.38.2/arch/x86/kernel/sys_i386_32.c linux-2.6.38.2/arch/x86/
14263+ 14979+
14264+ return addr; 14980+ return addr;
14265 } 14981 }
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 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
14267--- linux-2.6.38.2/arch/x86/kernel/sys_x86_64.c 2011-03-14 21:20:32.000000000 -0400 14983--- linux-2.6.38.3/arch/x86/kernel/sys_x86_64.c 2011-03-14 21:20:32.000000000 -0400
14268+++ linux-2.6.38.2/arch/x86/kernel/sys_x86_64.c 2011-03-21 23:47:41.000000000 -0400 14984+++ linux-2.6.38.3/arch/x86/kernel/sys_x86_64.c 2011-04-17 15:57:32.000000000 -0400
14269@@ -32,8 +32,8 @@ out: 14985@@ -32,8 +32,8 @@ out:
14270 return error; 14986 return error;
14271 } 14987 }
@@ -14403,9 +15119,9 @@ diff -urNp linux-2.6.38.2/arch/x86/kernel/sys_x86_64.c linux-2.6.38.2/arch/x86/k
14403 mm->cached_hole_size = ~0UL; 15119 mm->cached_hole_size = ~0UL;
14404 15120
14405 return addr; 15121 return addr;
14406diff -urNp linux-2.6.38.2/arch/x86/kernel/time.c linux-2.6.38.2/arch/x86/kernel/time.c 15122diff -urNp linux-2.6.38.3/arch/x86/kernel/time.c linux-2.6.38.3/arch/x86/kernel/time.c
14407--- linux-2.6.38.2/arch/x86/kernel/time.c 2011-03-14 21:20:32.000000000 -0400 15123--- linux-2.6.38.3/arch/x86/kernel/time.c 2011-03-14 21:20:32.000000000 -0400
14408+++ linux-2.6.38.2/arch/x86/kernel/time.c 2011-03-21 18:31:35.000000000 -0400 15124+++ linux-2.6.38.3/arch/x86/kernel/time.c 2011-04-17 15:57:32.000000000 -0400
14409@@ -22,17 +22,13 @@ 15125@@ -22,17 +22,13 @@
14410 #include <asm/hpet.h> 15126 #include <asm/hpet.h>
14411 #include <asm/time.h> 15127 #include <asm/time.h>
@@ -14444,9 +15160,9 @@ diff -urNp linux-2.6.38.2/arch/x86/kernel/time.c linux-2.6.38.2/arch/x86/kernel/
14444 } 15160 }
14445 return pc; 15161 return pc;
14446 } 15162 }
14447diff -urNp linux-2.6.38.2/arch/x86/kernel/tls.c linux-2.6.38.2/arch/x86/kernel/tls.c 15163diff -urNp linux-2.6.38.3/arch/x86/kernel/tls.c linux-2.6.38.3/arch/x86/kernel/tls.c
14448--- linux-2.6.38.2/arch/x86/kernel/tls.c 2011-03-14 21:20:32.000000000 -0400 15164--- linux-2.6.38.3/arch/x86/kernel/tls.c 2011-03-14 21:20:32.000000000 -0400
14449+++ linux-2.6.38.2/arch/x86/kernel/tls.c 2011-03-21 18:31:35.000000000 -0400 15165+++ linux-2.6.38.3/arch/x86/kernel/tls.c 2011-04-17 15:57:32.000000000 -0400
14450@@ -85,6 +85,11 @@ int do_set_thread_area(struct task_struc 15166@@ -85,6 +85,11 @@ int do_set_thread_area(struct task_struc
14451 if (idx < GDT_ENTRY_TLS_MIN || idx > GDT_ENTRY_TLS_MAX) 15167 if (idx < GDT_ENTRY_TLS_MIN || idx > GDT_ENTRY_TLS_MAX)
14452 return -EINVAL; 15168 return -EINVAL;
@@ -14459,9 +15175,9 @@ diff -urNp linux-2.6.38.2/arch/x86/kernel/tls.c linux-2.6.38.2/arch/x86/kernel/t
14459 set_tls_desc(p, idx, &info, 1); 15175 set_tls_desc(p, idx, &info, 1);
14460 15176
14461 return 0; 15177 return 0;
14462diff -urNp linux-2.6.38.2/arch/x86/kernel/trampoline_32.S linux-2.6.38.2/arch/x86/kernel/trampoline_32.S 15178diff -urNp linux-2.6.38.3/arch/x86/kernel/trampoline_32.S linux-2.6.38.3/arch/x86/kernel/trampoline_32.S
14463--- linux-2.6.38.2/arch/x86/kernel/trampoline_32.S 2011-03-14 21:20:32.000000000 -0400 15179--- linux-2.6.38.3/arch/x86/kernel/trampoline_32.S 2011-03-14 21:20:32.000000000 -0400
14464+++ linux-2.6.38.2/arch/x86/kernel/trampoline_32.S 2011-03-21 18:31:35.000000000 -0400 15180+++ linux-2.6.38.3/arch/x86/kernel/trampoline_32.S 2011-04-17 15:57:32.000000000 -0400
14465@@ -32,6 +32,12 @@ 15181@@ -32,6 +32,12 @@
14466 #include <asm/segment.h> 15182 #include <asm/segment.h>
14467 #include <asm/page_types.h> 15183 #include <asm/page_types.h>
@@ -14484,9 +15200,9 @@ diff -urNp linux-2.6.38.2/arch/x86/kernel/trampoline_32.S linux-2.6.38.2/arch/x8
14484 15200
14485 # These need to be in the same 64K segment as the above; 15201 # These need to be in the same 64K segment as the above;
14486 # hence we don't use the boot_gdt_descr defined in head.S 15202 # hence we don't use the boot_gdt_descr defined in head.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 15203diff -urNp linux-2.6.38.3/arch/x86/kernel/trampoline_64.S linux-2.6.38.3/arch/x86/kernel/trampoline_64.S
14488--- linux-2.6.38.2/arch/x86/kernel/trampoline_64.S 2011-03-14 21:20:32.000000000 -0400 15204--- linux-2.6.38.3/arch/x86/kernel/trampoline_64.S 2011-03-14 21:20:32.000000000 -0400
14489+++ linux-2.6.38.2/arch/x86/kernel/trampoline_64.S 2011-03-21 18:31:35.000000000 -0400 15205+++ linux-2.6.38.3/arch/x86/kernel/trampoline_64.S 2011-04-17 15:57:32.000000000 -0400
14490@@ -91,7 +91,7 @@ startup_32: 15206@@ -91,7 +91,7 @@ startup_32:
14491 movl $__KERNEL_DS, %eax # Initialize the %ds segment register 15207 movl $__KERNEL_DS, %eax # Initialize the %ds segment register
14492 movl %eax, %ds 15208 movl %eax, %ds
@@ -14505,9 +15221,9 @@ diff -urNp linux-2.6.38.2/arch/x86/kernel/trampoline_64.S linux-2.6.38.2/arch/x8
14505 .long tgdt - r_base 15221 .long tgdt - r_base
14506 .short 0 15222 .short 0
14507 .quad 0x00cf9b000000ffff # __KERNEL32_CS 15223 .quad 0x00cf9b000000ffff # __KERNEL32_CS
14508diff -urNp linux-2.6.38.2/arch/x86/kernel/traps.c linux-2.6.38.2/arch/x86/kernel/traps.c 15224diff -urNp linux-2.6.38.3/arch/x86/kernel/traps.c linux-2.6.38.3/arch/x86/kernel/traps.c
14509--- linux-2.6.38.2/arch/x86/kernel/traps.c 2011-03-14 21:20:32.000000000 -0400 15225--- linux-2.6.38.3/arch/x86/kernel/traps.c 2011-03-14 21:20:32.000000000 -0400
14510+++ linux-2.6.38.2/arch/x86/kernel/traps.c 2011-03-21 18:31:35.000000000 -0400 15226+++ linux-2.6.38.3/arch/x86/kernel/traps.c 2011-04-17 15:57:32.000000000 -0400
14511@@ -70,12 +70,6 @@ asmlinkage int system_call(void); 15227@@ -70,12 +70,6 @@ asmlinkage int system_call(void);
14512 15228
14513 /* Do we ignore FPU interrupts ? */ 15229 /* Do we ignore FPU interrupts ? */
@@ -14650,9 +15366,28 @@ diff -urNp linux-2.6.38.2/arch/x86/kernel/traps.c linux-2.6.38.2/arch/x86/kernel
14650 { 15366 {
14651 if (!fixup_exception(regs)) { 15367 if (!fixup_exception(regs)) {
14652 task->thread.error_code = error_code; 15368 task->thread.error_code = error_code;
14653diff -urNp linux-2.6.38.2/arch/x86/kernel/tsc.c linux-2.6.38.2/arch/x86/kernel/tsc.c 15369@@ -723,7 +752,7 @@ asmlinkage void __attribute__((weak)) sm
14654--- linux-2.6.38.2/arch/x86/kernel/tsc.c 2011-03-14 21:20:32.000000000 -0400 15370 void __math_state_restore(void)
14655+++ linux-2.6.38.2/arch/x86/kernel/tsc.c 2011-03-21 18:31:35.000000000 -0400 15371 {
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
14656@@ -837,7 +837,7 @@ static struct dmi_system_id __initdata b 15391@@ -837,7 +837,7 @@ static struct dmi_system_id __initdata b
14657 DMI_MATCH(DMI_BOARD_NAME, "2635FA0"), 15392 DMI_MATCH(DMI_BOARD_NAME, "2635FA0"),
14658 }, 15393 },
@@ -14662,9 +15397,9 @@ diff -urNp linux-2.6.38.2/arch/x86/kernel/tsc.c linux-2.6.38.2/arch/x86/kernel/t
14662 }; 15397 };
14663 15398
14664 static void __init check_system_tsc_reliable(void) 15399 static void __init check_system_tsc_reliable(void)
14665diff -urNp linux-2.6.38.2/arch/x86/kernel/vm86_32.c linux-2.6.38.2/arch/x86/kernel/vm86_32.c 15400diff -urNp linux-2.6.38.3/arch/x86/kernel/vm86_32.c linux-2.6.38.3/arch/x86/kernel/vm86_32.c
14666--- linux-2.6.38.2/arch/x86/kernel/vm86_32.c 2011-03-14 21:20:32.000000000 -0400 15401--- linux-2.6.38.3/arch/x86/kernel/vm86_32.c 2011-03-14 21:20:32.000000000 -0400
14667+++ linux-2.6.38.2/arch/x86/kernel/vm86_32.c 2011-03-21 18:31:35.000000000 -0400 15402+++ linux-2.6.38.3/arch/x86/kernel/vm86_32.c 2011-04-17 15:57:32.000000000 -0400
14668@@ -41,6 +41,7 @@ 15403@@ -41,6 +41,7 @@
14669 #include <linux/ptrace.h> 15404 #include <linux/ptrace.h>
14670 #include <linux/audit.h> 15405 #include <linux/audit.h>
@@ -14729,9 +15464,9 @@ diff -urNp linux-2.6.38.2/arch/x86/kernel/vm86_32.c linux-2.6.38.2/arch/x86/kern
14729 if (get_user(segoffs, intr_ptr)) 15464 if (get_user(segoffs, intr_ptr))
14730 goto cannot_handle; 15465 goto cannot_handle;
14731 if ((segoffs >> 16) == BIOSSEG) 15466 if ((segoffs >> 16) == BIOSSEG)
14732diff -urNp linux-2.6.38.2/arch/x86/kernel/vmlinux.lds.S linux-2.6.38.2/arch/x86/kernel/vmlinux.lds.S 15467diff -urNp linux-2.6.38.3/arch/x86/kernel/vmlinux.lds.S linux-2.6.38.3/arch/x86/kernel/vmlinux.lds.S
14733--- linux-2.6.38.2/arch/x86/kernel/vmlinux.lds.S 2011-03-14 21:20:32.000000000 -0400 15468--- linux-2.6.38.3/arch/x86/kernel/vmlinux.lds.S 2011-03-14 21:20:32.000000000 -0400
14734+++ linux-2.6.38.2/arch/x86/kernel/vmlinux.lds.S 2011-03-21 18:31:35.000000000 -0400 15469+++ linux-2.6.38.3/arch/x86/kernel/vmlinux.lds.S 2011-04-17 15:57:32.000000000 -0400
14735@@ -26,6 +26,13 @@ 15470@@ -26,6 +26,13 @@
14736 #include <asm/page_types.h> 15471 #include <asm/page_types.h>
14737 #include <asm/cache.h> 15472 #include <asm/cache.h>
@@ -15028,9 +15763,9 @@ diff -urNp linux-2.6.38.2/arch/x86/kernel/vmlinux.lds.S linux-2.6.38.2/arch/x86/
15028 "kernel image bigger than KERNEL_IMAGE_SIZE"); 15763 "kernel image bigger than KERNEL_IMAGE_SIZE");
15029 15764
15030 #ifdef CONFIG_SMP 15765 #ifdef CONFIG_SMP
15031diff -urNp linux-2.6.38.2/arch/x86/kernel/vsyscall_64.c linux-2.6.38.2/arch/x86/kernel/vsyscall_64.c 15766diff -urNp linux-2.6.38.3/arch/x86/kernel/vsyscall_64.c linux-2.6.38.3/arch/x86/kernel/vsyscall_64.c
15032--- linux-2.6.38.2/arch/x86/kernel/vsyscall_64.c 2011-03-14 21:20:32.000000000 -0400 15767--- linux-2.6.38.3/arch/x86/kernel/vsyscall_64.c 2011-03-14 21:20:32.000000000 -0400
15033+++ linux-2.6.38.2/arch/x86/kernel/vsyscall_64.c 2011-03-21 18:31:35.000000000 -0400 15768+++ linux-2.6.38.3/arch/x86/kernel/vsyscall_64.c 2011-04-17 15:57:32.000000000 -0400
15034@@ -80,6 +80,7 @@ void update_vsyscall(struct timespec *wa 15769@@ -80,6 +80,7 @@ void update_vsyscall(struct timespec *wa
15035 15770
15036 write_seqlock_irqsave(&vsyscall_gtod_data.lock, flags); 15771 write_seqlock_irqsave(&vsyscall_gtod_data.lock, flags);
@@ -15048,9 +15783,9 @@ diff -urNp linux-2.6.38.2/arch/x86/kernel/vsyscall_64.c linux-2.6.38.2/arch/x86/
15048 p = tcache->blob[1]; 15783 p = tcache->blob[1];
15049 } else if (__vgetcpu_mode == VGETCPU_RDTSCP) { 15784 } else if (__vgetcpu_mode == VGETCPU_RDTSCP) {
15050 /* Load per CPU data from RDTSCP */ 15785 /* Load per CPU data from RDTSCP */
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 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
15052--- linux-2.6.38.2/arch/x86/kernel/x8664_ksyms_64.c 2011-03-14 21:20:32.000000000 -0400 15787--- linux-2.6.38.3/arch/x86/kernel/x8664_ksyms_64.c 2011-03-14 21:20:32.000000000 -0400
15053+++ linux-2.6.38.2/arch/x86/kernel/x8664_ksyms_64.c 2011-03-21 18:31:35.000000000 -0400 15788+++ linux-2.6.38.3/arch/x86/kernel/x8664_ksyms_64.c 2011-04-17 15:57:32.000000000 -0400
15054@@ -29,8 +29,6 @@ EXPORT_SYMBOL(__put_user_8); 15789@@ -29,8 +29,6 @@ EXPORT_SYMBOL(__put_user_8);
15055 EXPORT_SYMBOL(copy_user_generic_string); 15790 EXPORT_SYMBOL(copy_user_generic_string);
15056 EXPORT_SYMBOL(copy_user_generic_unrolled); 15791 EXPORT_SYMBOL(copy_user_generic_unrolled);
@@ -15060,9 +15795,9 @@ diff -urNp linux-2.6.38.2/arch/x86/kernel/x8664_ksyms_64.c linux-2.6.38.2/arch/x
15060 15795
15061 EXPORT_SYMBOL(copy_page); 15796 EXPORT_SYMBOL(copy_page);
15062 EXPORT_SYMBOL(clear_page); 15797 EXPORT_SYMBOL(clear_page);
15063diff -urNp linux-2.6.38.2/arch/x86/kernel/xsave.c linux-2.6.38.2/arch/x86/kernel/xsave.c 15798diff -urNp linux-2.6.38.3/arch/x86/kernel/xsave.c linux-2.6.38.3/arch/x86/kernel/xsave.c
15064--- linux-2.6.38.2/arch/x86/kernel/xsave.c 2011-03-14 21:20:32.000000000 -0400 15799--- linux-2.6.38.3/arch/x86/kernel/xsave.c 2011-03-14 21:20:32.000000000 -0400
15065+++ linux-2.6.38.2/arch/x86/kernel/xsave.c 2011-03-21 18:31:35.000000000 -0400 15800+++ linux-2.6.38.3/arch/x86/kernel/xsave.c 2011-04-17 15:57:32.000000000 -0400
15066@@ -130,7 +130,7 @@ int check_for_xstate(struct i387_fxsave_ 15801@@ -130,7 +130,7 @@ int check_for_xstate(struct i387_fxsave_
15067 fx_sw_user->xstate_size > fx_sw_user->extended_size) 15802 fx_sw_user->xstate_size > fx_sw_user->extended_size)
15068 return -EINVAL; 15803 return -EINVAL;
@@ -15090,9 +15825,9 @@ diff -urNp linux-2.6.38.2/arch/x86/kernel/xsave.c linux-2.6.38.2/arch/x86/kernel
15090 buf); 15825 buf);
15091 if (unlikely(err)) { 15826 if (unlikely(err)) {
15092 /* 15827 /*
15093diff -urNp linux-2.6.38.2/arch/x86/kvm/emulate.c linux-2.6.38.2/arch/x86/kvm/emulate.c 15828diff -urNp linux-2.6.38.3/arch/x86/kvm/emulate.c linux-2.6.38.3/arch/x86/kvm/emulate.c
15094--- linux-2.6.38.2/arch/x86/kvm/emulate.c 2011-03-14 21:20:32.000000000 -0400 15829--- linux-2.6.38.3/arch/x86/kvm/emulate.c 2011-03-14 21:20:32.000000000 -0400
15095+++ linux-2.6.38.2/arch/x86/kvm/emulate.c 2011-03-21 18:31:35.000000000 -0400 15830+++ linux-2.6.38.3/arch/x86/kvm/emulate.c 2011-04-17 15:57:32.000000000 -0400
15096@@ -88,7 +88,7 @@ 15831@@ -88,7 +88,7 @@
15097 #define Src2ImmByte (2<<29) 15832 #define Src2ImmByte (2<<29)
15098 #define Src2One (3<<29) 15833 #define Src2One (3<<29)
@@ -15127,9 +15862,9 @@ diff -urNp linux-2.6.38.2/arch/x86/kvm/emulate.c linux-2.6.38.2/arch/x86/kvm/emu
15127 switch ((_dst).bytes) { \ 15862 switch ((_dst).bytes) { \
15128 case 1: \ 15863 case 1: \
15129 ____emulate_2op(_op,_src,_dst,_eflags,_bx,_by,"b",u8); \ 15864 ____emulate_2op(_op,_src,_dst,_eflags,_bx,_by,"b",u8); \
15130diff -urNp linux-2.6.38.2/arch/x86/kvm/lapic.c linux-2.6.38.2/arch/x86/kvm/lapic.c 15865diff -urNp linux-2.6.38.3/arch/x86/kvm/lapic.c linux-2.6.38.3/arch/x86/kvm/lapic.c
15131--- linux-2.6.38.2/arch/x86/kvm/lapic.c 2011-03-14 21:20:32.000000000 -0400 15866--- linux-2.6.38.3/arch/x86/kvm/lapic.c 2011-03-14 21:20:32.000000000 -0400
15132+++ linux-2.6.38.2/arch/x86/kvm/lapic.c 2011-03-21 18:31:35.000000000 -0400 15867+++ linux-2.6.38.3/arch/x86/kvm/lapic.c 2011-04-17 15:57:32.000000000 -0400
15133@@ -53,7 +53,7 @@ 15868@@ -53,7 +53,7 @@
15134 #define APIC_BUS_CYCLE_NS 1 15869 #define APIC_BUS_CYCLE_NS 1
15135 15870
@@ -15139,9 +15874,9 @@ diff -urNp linux-2.6.38.2/arch/x86/kvm/lapic.c linux-2.6.38.2/arch/x86/kvm/lapic
15139 15874
15140 #define APIC_LVT_NUM 6 15875 #define APIC_LVT_NUM 6
15141 /* 14 is the version for Xeon and Pentium 8.4.8*/ 15876 /* 14 is the version for Xeon and Pentium 8.4.8*/
15142diff -urNp linux-2.6.38.2/arch/x86/kvm/svm.c linux-2.6.38.2/arch/x86/kvm/svm.c 15877diff -urNp linux-2.6.38.3/arch/x86/kvm/svm.c linux-2.6.38.3/arch/x86/kvm/svm.c
15143--- linux-2.6.38.2/arch/x86/kvm/svm.c 2011-03-14 21:20:32.000000000 -0400 15878--- linux-2.6.38.3/arch/x86/kvm/svm.c 2011-03-14 21:20:32.000000000 -0400
15144+++ linux-2.6.38.2/arch/x86/kvm/svm.c 2011-03-21 18:31:35.000000000 -0400 15879+++ linux-2.6.38.3/arch/x86/kvm/svm.c 2011-04-17 15:57:32.000000000 -0400
15145@@ -3273,7 +3273,11 @@ static void reload_tss(struct kvm_vcpu * 15880@@ -3273,7 +3273,11 @@ static void reload_tss(struct kvm_vcpu *
15146 int cpu = raw_smp_processor_id(); 15881 int cpu = raw_smp_processor_id();
15147 15882
@@ -15163,9 +15898,9 @@ diff -urNp linux-2.6.38.2/arch/x86/kvm/svm.c linux-2.6.38.2/arch/x86/kvm/svm.c
15163 .cpu_has_kvm_support = has_svm, 15898 .cpu_has_kvm_support = has_svm,
15164 .disabled_by_bios = is_disabled, 15899 .disabled_by_bios = is_disabled,
15165 .hardware_setup = svm_hardware_setup, 15900 .hardware_setup = svm_hardware_setup,
15166diff -urNp linux-2.6.38.2/arch/x86/kvm/vmx.c linux-2.6.38.2/arch/x86/kvm/vmx.c 15901diff -urNp linux-2.6.38.3/arch/x86/kvm/vmx.c linux-2.6.38.3/arch/x86/kvm/vmx.c
15167--- linux-2.6.38.2/arch/x86/kvm/vmx.c 2011-03-14 21:20:32.000000000 -0400 15902--- linux-2.6.38.3/arch/x86/kvm/vmx.c 2011-03-14 21:20:32.000000000 -0400
15168+++ linux-2.6.38.2/arch/x86/kvm/vmx.c 2011-03-21 18:31:35.000000000 -0400 15903+++ linux-2.6.38.3/arch/x86/kvm/vmx.c 2011-04-17 15:57:32.000000000 -0400
15169@@ -725,7 +725,11 @@ static void reload_tss(void) 15904@@ -725,7 +725,11 @@ static void reload_tss(void)
15170 struct desc_struct *descs; 15905 struct desc_struct *descs;
15171 15906
@@ -15244,9 +15979,9 @@ diff -urNp linux-2.6.38.2/arch/x86/kvm/vmx.c linux-2.6.38.2/arch/x86/kvm/vmx.c
15244 .cpu_has_kvm_support = cpu_has_kvm_support, 15979 .cpu_has_kvm_support = cpu_has_kvm_support,
15245 .disabled_by_bios = vmx_disabled_by_bios, 15980 .disabled_by_bios = vmx_disabled_by_bios,
15246 .hardware_setup = hardware_setup, 15981 .hardware_setup = hardware_setup,
15247diff -urNp linux-2.6.38.2/arch/x86/kvm/x86.c linux-2.6.38.2/arch/x86/kvm/x86.c 15982diff -urNp linux-2.6.38.3/arch/x86/kvm/x86.c linux-2.6.38.3/arch/x86/kvm/x86.c
15248--- linux-2.6.38.2/arch/x86/kvm/x86.c 2011-03-14 21:20:32.000000000 -0400 15983--- linux-2.6.38.3/arch/x86/kvm/x86.c 2011-03-14 21:20:32.000000000 -0400
15249+++ linux-2.6.38.2/arch/x86/kvm/x86.c 2011-03-21 18:31:35.000000000 -0400 15984+++ linux-2.6.38.3/arch/x86/kvm/x86.c 2011-04-17 15:57:32.000000000 -0400
15250@@ -93,7 +93,7 @@ static void update_cr8_intercept(struct 15985@@ -93,7 +93,7 @@ static void update_cr8_intercept(struct
15251 static int kvm_dev_ioctl_get_supported_cpuid(struct kvm_cpuid2 *cpuid, 15986 static int kvm_dev_ioctl_get_supported_cpuid(struct kvm_cpuid2 *cpuid,
15252 struct kvm_cpuid_entry2 __user *entries); 15987 struct kvm_cpuid_entry2 __user *entries);
@@ -15358,9 +16093,9 @@ diff -urNp linux-2.6.38.2/arch/x86/kvm/x86.c linux-2.6.38.2/arch/x86/kvm/x86.c
15358 16093
15359 if (kvm_x86_ops) { 16094 if (kvm_x86_ops) {
15360 printk(KERN_ERR "kvm: already loaded the other module\n"); 16095 printk(KERN_ERR "kvm: already loaded the other module\n");
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 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
15362--- linux-2.6.38.2/arch/x86/lib/atomic64_cx8_32.S 2011-03-14 21:20:32.000000000 -0400 16097--- linux-2.6.38.3/arch/x86/lib/atomic64_cx8_32.S 2011-03-14 21:20:32.000000000 -0400
15363+++ linux-2.6.38.2/arch/x86/lib/atomic64_cx8_32.S 2011-03-21 18:31:35.000000000 -0400 16098+++ linux-2.6.38.3/arch/x86/lib/atomic64_cx8_32.S 2011-04-17 15:57:32.000000000 -0400
15364@@ -86,13 +86,23 @@ ENTRY(atomic64_\func\()_return_cx8) 16099@@ -86,13 +86,23 @@ ENTRY(atomic64_\func\()_return_cx8)
15365 movl %edx, %ecx 16100 movl %edx, %ecx
15366 \ins\()l %esi, %ebx 16101 \ins\()l %esi, %ebx
@@ -15441,9 +16176,9 @@ diff -urNp linux-2.6.38.2/arch/x86/lib/atomic64_cx8_32.S linux-2.6.38.2/arch/x86
15441 LOCK_PREFIX 16176 LOCK_PREFIX
15442 cmpxchg8b (%esi) 16177 cmpxchg8b (%esi)
15443 jne 1b 16178 jne 1b
15444diff -urNp linux-2.6.38.2/arch/x86/lib/checksum_32.S linux-2.6.38.2/arch/x86/lib/checksum_32.S 16179diff -urNp linux-2.6.38.3/arch/x86/lib/checksum_32.S linux-2.6.38.3/arch/x86/lib/checksum_32.S
15445--- linux-2.6.38.2/arch/x86/lib/checksum_32.S 2011-03-14 21:20:32.000000000 -0400 16180--- linux-2.6.38.3/arch/x86/lib/checksum_32.S 2011-03-14 21:20:32.000000000 -0400
15446+++ linux-2.6.38.2/arch/x86/lib/checksum_32.S 2011-03-21 18:31:35.000000000 -0400 16181+++ linux-2.6.38.3/arch/x86/lib/checksum_32.S 2011-04-17 15:57:32.000000000 -0400
15447@@ -28,7 +28,8 @@ 16182@@ -28,7 +28,8 @@
15448 #include <linux/linkage.h> 16183 #include <linux/linkage.h>
15449 #include <asm/dwarf2.h> 16184 #include <asm/dwarf2.h>
@@ -15704,9 +16439,9 @@ diff -urNp linux-2.6.38.2/arch/x86/lib/checksum_32.S linux-2.6.38.2/arch/x86/lib
15704 16439
15705 #undef ROUND 16440 #undef ROUND
15706 #undef ROUND1 16441 #undef ROUND1
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 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
15708--- linux-2.6.38.2/arch/x86/lib/clear_page_64.S 2011-03-14 21:20:32.000000000 -0400 16443--- linux-2.6.38.3/arch/x86/lib/clear_page_64.S 2011-03-14 21:20:32.000000000 -0400
15709+++ linux-2.6.38.2/arch/x86/lib/clear_page_64.S 2011-03-21 18:31:35.000000000 -0400 16444+++ linux-2.6.38.3/arch/x86/lib/clear_page_64.S 2011-04-17 15:57:32.000000000 -0400
15710@@ -43,7 +43,7 @@ ENDPROC(clear_page) 16445@@ -43,7 +43,7 @@ ENDPROC(clear_page)
15711 16446
15712 #include <asm/cpufeature.h> 16447 #include <asm/cpufeature.h>
@@ -15716,9 +16451,9 @@ diff -urNp linux-2.6.38.2/arch/x86/lib/clear_page_64.S linux-2.6.38.2/arch/x86/l
15716 1: .byte 0xeb /* jmp <disp8> */ 16451 1: .byte 0xeb /* jmp <disp8> */
15717 .byte (clear_page_c - clear_page) - (2f - 1b) /* offset */ 16452 .byte (clear_page_c - clear_page) - (2f - 1b) /* offset */
15718 2: 16453 2:
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 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
15720--- linux-2.6.38.2/arch/x86/lib/copy_page_64.S 2011-03-14 21:20:32.000000000 -0400 16455--- linux-2.6.38.3/arch/x86/lib/copy_page_64.S 2011-03-14 21:20:32.000000000 -0400
15721+++ linux-2.6.38.2/arch/x86/lib/copy_page_64.S 2011-03-21 18:31:35.000000000 -0400 16456+++ linux-2.6.38.3/arch/x86/lib/copy_page_64.S 2011-04-17 15:57:32.000000000 -0400
15722@@ -104,7 +104,7 @@ ENDPROC(copy_page) 16457@@ -104,7 +104,7 @@ ENDPROC(copy_page)
15723 16458
15724 #include <asm/cpufeature.h> 16459 #include <asm/cpufeature.h>
@@ -15728,9 +16463,9 @@ diff -urNp linux-2.6.38.2/arch/x86/lib/copy_page_64.S linux-2.6.38.2/arch/x86/li
15728 1: .byte 0xeb /* jmp <disp8> */ 16463 1: .byte 0xeb /* jmp <disp8> */
15729 .byte (copy_page_c - copy_page) - (2f - 1b) /* offset */ 16464 .byte (copy_page_c - copy_page) - (2f - 1b) /* offset */
15730 2: 16465 2:
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 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
15732--- linux-2.6.38.2/arch/x86/lib/copy_user_64.S 2011-03-14 21:20:32.000000000 -0400 16467--- linux-2.6.38.3/arch/x86/lib/copy_user_64.S 2011-03-14 21:20:32.000000000 -0400
15733+++ linux-2.6.38.2/arch/x86/lib/copy_user_64.S 2011-03-21 18:31:35.000000000 -0400 16468+++ linux-2.6.38.3/arch/x86/lib/copy_user_64.S 2011-04-17 15:57:32.000000000 -0400
15734@@ -15,13 +15,14 @@ 16469@@ -15,13 +15,14 @@
15735 #include <asm/asm-offsets.h> 16470 #include <asm/asm-offsets.h>
15736 #include <asm/thread_info.h> 16471 #include <asm/thread_info.h>
@@ -15787,9 +16522,9 @@ diff -urNp linux-2.6.38.2/arch/x86/lib/copy_user_64.S linux-2.6.38.2/arch/x86/li
15787 movl %edx,%ecx 16522 movl %edx,%ecx
15788 xorl %eax,%eax 16523 xorl %eax,%eax
15789 rep 16524 rep
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 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
15791--- linux-2.6.38.2/arch/x86/lib/copy_user_nocache_64.S 2011-03-14 21:20:32.000000000 -0400 16526--- linux-2.6.38.3/arch/x86/lib/copy_user_nocache_64.S 2011-03-14 21:20: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 16527+++ linux-2.6.38.3/arch/x86/lib/copy_user_nocache_64.S 2011-04-17 15:57:32.000000000 -0400
15793@@ -14,6 +14,7 @@ 16528@@ -14,6 +14,7 @@
15794 #include <asm/current.h> 16529 #include <asm/current.h>
15795 #include <asm/asm-offsets.h> 16530 #include <asm/asm-offsets.h>
@@ -15814,9 +16549,9 @@ diff -urNp linux-2.6.38.2/arch/x86/lib/copy_user_nocache_64.S linux-2.6.38.2/arc
15814 cmpl $8,%edx 16549 cmpl $8,%edx
15815 jb 20f /* less then 8 bytes, go to byte copy loop */ 16550 jb 20f /* less then 8 bytes, go to byte copy loop */
15816 ALIGN_DESTINATION 16551 ALIGN_DESTINATION
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 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
15818--- linux-2.6.38.2/arch/x86/lib/csum-wrappers_64.c 2011-03-14 21:20:32.000000000 -0400 16553--- linux-2.6.38.3/arch/x86/lib/csum-wrappers_64.c 2011-03-14 21:20:32.000000000 -0400
15819+++ linux-2.6.38.2/arch/x86/lib/csum-wrappers_64.c 2011-03-21 18:31:35.000000000 -0400 16554+++ linux-2.6.38.3/arch/x86/lib/csum-wrappers_64.c 2011-04-17 15:57:32.000000000 -0400
15820@@ -52,6 +52,8 @@ csum_partial_copy_from_user(const void _ 16555@@ -52,6 +52,8 @@ csum_partial_copy_from_user(const void _
15821 len -= 2; 16556 len -= 2;
15822 } 16557 }
@@ -15835,9 +16570,9 @@ diff -urNp linux-2.6.38.2/arch/x86/lib/csum-wrappers_64.c linux-2.6.38.2/arch/x8
15835 return csum_partial_copy_generic(src, (void __force *)dst, 16570 return csum_partial_copy_generic(src, (void __force *)dst,
15836 len, isum, NULL, errp); 16571 len, isum, NULL, errp);
15837 } 16572 }
15838diff -urNp linux-2.6.38.2/arch/x86/lib/getuser.S linux-2.6.38.2/arch/x86/lib/getuser.S 16573diff -urNp linux-2.6.38.3/arch/x86/lib/getuser.S linux-2.6.38.3/arch/x86/lib/getuser.S
15839--- linux-2.6.38.2/arch/x86/lib/getuser.S 2011-03-14 21:20:32.000000000 -0400 16574--- linux-2.6.38.3/arch/x86/lib/getuser.S 2011-03-14 21:20:32.000000000 -0400
15840+++ linux-2.6.38.2/arch/x86/lib/getuser.S 2011-03-21 18:31:35.000000000 -0400 16575+++ linux-2.6.38.3/arch/x86/lib/getuser.S 2011-04-17 15:57:32.000000000 -0400
15841@@ -33,14 +33,35 @@ 16576@@ -33,14 +33,35 @@
15842 #include <asm/asm-offsets.h> 16577 #include <asm/asm-offsets.h>
15843 #include <asm/thread_info.h> 16578 #include <asm/thread_info.h>
@@ -15943,9 +16678,9 @@ diff -urNp linux-2.6.38.2/arch/x86/lib/getuser.S linux-2.6.38.2/arch/x86/lib/get
15943 4: movq -7(%_ASM_AX),%_ASM_DX 16678 4: movq -7(%_ASM_AX),%_ASM_DX
15944 xor %eax,%eax 16679 xor %eax,%eax
15945 ret 16680 ret
15946diff -urNp linux-2.6.38.2/arch/x86/lib/insn.c linux-2.6.38.2/arch/x86/lib/insn.c 16681diff -urNp linux-2.6.38.3/arch/x86/lib/insn.c linux-2.6.38.3/arch/x86/lib/insn.c
15947--- linux-2.6.38.2/arch/x86/lib/insn.c 2011-03-14 21:20:32.000000000 -0400 16682--- linux-2.6.38.3/arch/x86/lib/insn.c 2011-03-14 21:20:32.000000000 -0400
15948+++ linux-2.6.38.2/arch/x86/lib/insn.c 2011-03-21 18:31:35.000000000 -0400 16683+++ linux-2.6.38.3/arch/x86/lib/insn.c 2011-04-17 15:57:32.000000000 -0400
15949@@ -21,6 +21,11 @@ 16684@@ -21,6 +21,11 @@
15950 #include <linux/string.h> 16685 #include <linux/string.h>
15951 #include <asm/inat.h> 16686 #include <asm/inat.h>
@@ -15969,9 +16704,9 @@ diff -urNp linux-2.6.38.2/arch/x86/lib/insn.c linux-2.6.38.2/arch/x86/lib/insn.c
15969 insn->x86_64 = x86_64 ? 1 : 0; 16704 insn->x86_64 = x86_64 ? 1 : 0;
15970 insn->opnd_bytes = 4; 16705 insn->opnd_bytes = 4;
15971 if (x86_64) 16706 if (x86_64)
15972diff -urNp linux-2.6.38.2/arch/x86/lib/mmx_32.c linux-2.6.38.2/arch/x86/lib/mmx_32.c 16707diff -urNp linux-2.6.38.3/arch/x86/lib/mmx_32.c linux-2.6.38.3/arch/x86/lib/mmx_32.c
15973--- linux-2.6.38.2/arch/x86/lib/mmx_32.c 2011-03-14 21:20:32.000000000 -0400 16708--- linux-2.6.38.3/arch/x86/lib/mmx_32.c 2011-03-14 21:20:32.000000000 -0400
15974+++ linux-2.6.38.2/arch/x86/lib/mmx_32.c 2011-03-21 18:31:35.000000000 -0400 16709+++ linux-2.6.38.3/arch/x86/lib/mmx_32.c 2011-04-17 15:57:32.000000000 -0400
15975@@ -29,6 +29,7 @@ void *_mmx_memcpy(void *to, const void * 16710@@ -29,6 +29,7 @@ void *_mmx_memcpy(void *to, const void *
15976 { 16711 {
15977 void *p; 16712 void *p;
@@ -16287,9 +17022,9 @@ diff -urNp linux-2.6.38.2/arch/x86/lib/mmx_32.c linux-2.6.38.2/arch/x86/lib/mmx_
16287 17022
16288 from += 64; 17023 from += 64;
16289 to += 64; 17024 to += 64;
16290diff -urNp linux-2.6.38.2/arch/x86/lib/putuser.S linux-2.6.38.2/arch/x86/lib/putuser.S 17025diff -urNp linux-2.6.38.3/arch/x86/lib/putuser.S linux-2.6.38.3/arch/x86/lib/putuser.S
16291--- linux-2.6.38.2/arch/x86/lib/putuser.S 2011-03-14 21:20:32.000000000 -0400 17026--- linux-2.6.38.3/arch/x86/lib/putuser.S 2011-03-14 21:20:32.000000000 -0400
16292+++ linux-2.6.38.2/arch/x86/lib/putuser.S 2011-03-21 18:31:35.000000000 -0400 17027+++ linux-2.6.38.3/arch/x86/lib/putuser.S 2011-04-17 15:57:32.000000000 -0400
16293@@ -15,7 +15,8 @@ 17028@@ -15,7 +15,8 @@
16294 #include <asm/thread_info.h> 17029 #include <asm/thread_info.h>
16295 #include <asm/errno.h> 17030 #include <asm/errno.h>
@@ -16427,9 +17162,9 @@ diff -urNp linux-2.6.38.2/arch/x86/lib/putuser.S linux-2.6.38.2/arch/x86/lib/put
16427 #endif 17162 #endif
16428 xor %eax,%eax 17163 xor %eax,%eax
16429 EXIT 17164 EXIT
16430diff -urNp linux-2.6.38.2/arch/x86/lib/usercopy_32.c linux-2.6.38.2/arch/x86/lib/usercopy_32.c 17165diff -urNp linux-2.6.38.3/arch/x86/lib/usercopy_32.c linux-2.6.38.3/arch/x86/lib/usercopy_32.c
16431--- linux-2.6.38.2/arch/x86/lib/usercopy_32.c 2011-03-14 21:20:32.000000000 -0400 17166--- linux-2.6.38.3/arch/x86/lib/usercopy_32.c 2011-03-14 21:20:32.000000000 -0400
16432+++ linux-2.6.38.2/arch/x86/lib/usercopy_32.c 2011-03-21 18:31:35.000000000 -0400 17167+++ linux-2.6.38.3/arch/x86/lib/usercopy_32.c 2011-04-17 15:57:32.000000000 -0400
16433@@ -43,7 +43,7 @@ do { \ 17168@@ -43,7 +43,7 @@ do { \
16434 __asm__ __volatile__( \ 17169 __asm__ __volatile__( \
16435 " testl %1,%1\n" \ 17170 " testl %1,%1\n" \
@@ -17049,9 +17784,9 @@ diff -urNp linux-2.6.38.2/arch/x86/lib/usercopy_32.c linux-2.6.38.2/arch/x86/lib
17049+} 17784+}
17050+EXPORT_SYMBOL(set_fs); 17785+EXPORT_SYMBOL(set_fs);
17051+#endif 17786+#endif
17052diff -urNp linux-2.6.38.2/arch/x86/lib/usercopy_64.c linux-2.6.38.2/arch/x86/lib/usercopy_64.c 17787diff -urNp linux-2.6.38.3/arch/x86/lib/usercopy_64.c linux-2.6.38.3/arch/x86/lib/usercopy_64.c
17053--- linux-2.6.38.2/arch/x86/lib/usercopy_64.c 2011-03-14 21:20:32.000000000 -0400 17788--- linux-2.6.38.3/arch/x86/lib/usercopy_64.c 2011-03-14 21:20:32.000000000 -0400
17054+++ linux-2.6.38.2/arch/x86/lib/usercopy_64.c 2011-03-21 18:31:35.000000000 -0400 17789+++ linux-2.6.38.3/arch/x86/lib/usercopy_64.c 2011-04-17 15:57:32.000000000 -0400
17055@@ -42,6 +42,8 @@ long 17790@@ -42,6 +42,8 @@ long
17056 __strncpy_from_user(char *dst, const char __user *src, long count) 17791 __strncpy_from_user(char *dst, const char __user *src, long count)
17057 { 17792 {
@@ -17088,9 +17823,9 @@ diff -urNp linux-2.6.38.2/arch/x86/lib/usercopy_64.c linux-2.6.38.2/arch/x86/lib
17088 } 17823 }
17089 EXPORT_SYMBOL(copy_in_user); 17824 EXPORT_SYMBOL(copy_in_user);
17090 17825
17091diff -urNp linux-2.6.38.2/arch/x86/Makefile linux-2.6.38.2/arch/x86/Makefile 17826diff -urNp linux-2.6.38.3/arch/x86/Makefile linux-2.6.38.3/arch/x86/Makefile
17092--- linux-2.6.38.2/arch/x86/Makefile 2011-03-14 21:20:32.000000000 -0400 17827--- linux-2.6.38.3/arch/x86/Makefile 2011-03-14 21:20:32.000000000 -0400
17093+++ linux-2.6.38.2/arch/x86/Makefile 2011-03-21 18:31:35.000000000 -0400 17828+++ linux-2.6.38.3/arch/x86/Makefile 2011-04-17 15:57:32.000000000 -0400
17094@@ -195,3 +195,12 @@ define archhelp 17829@@ -195,3 +195,12 @@ define archhelp
17095 echo ' FDARGS="..." arguments for the booted kernel' 17830 echo ' FDARGS="..." arguments for the booted kernel'
17096 echo ' FDINITRD=file initrd for the booted kernel' 17831 echo ' FDINITRD=file initrd for the booted kernel'
@@ -17104,9 +17839,9 @@ diff -urNp linux-2.6.38.2/arch/x86/Makefile linux-2.6.38.2/arch/x86/Makefile
17104+ 17839+
17105+archprepare: 17840+archprepare:
17106+ $(if $(LDFLAGS_BUILD_ID),,$(error $(OLD_LD))) 17841+ $(if $(LDFLAGS_BUILD_ID),,$(error $(OLD_LD)))
17107diff -urNp linux-2.6.38.2/arch/x86/mm/extable.c linux-2.6.38.2/arch/x86/mm/extable.c 17842diff -urNp linux-2.6.38.3/arch/x86/mm/extable.c linux-2.6.38.3/arch/x86/mm/extable.c
17108--- linux-2.6.38.2/arch/x86/mm/extable.c 2011-03-14 21:20:32.000000000 -0400 17843--- linux-2.6.38.3/arch/x86/mm/extable.c 2011-03-14 21:20:32.000000000 -0400
17109+++ linux-2.6.38.2/arch/x86/mm/extable.c 2011-03-21 18:31:35.000000000 -0400 17844+++ linux-2.6.38.3/arch/x86/mm/extable.c 2011-04-17 15:57:32.000000000 -0400
17110@@ -1,14 +1,71 @@ 17845@@ -1,14 +1,71 @@
17111 #include <linux/module.h> 17846 #include <linux/module.h>
17112 #include <linux/spinlock.h> 17847 #include <linux/spinlock.h>
@@ -17180,9 +17915,9 @@ diff -urNp linux-2.6.38.2/arch/x86/mm/extable.c linux-2.6.38.2/arch/x86/mm/extab
17180 extern u32 pnp_bios_fault_eip, pnp_bios_fault_esp; 17915 extern u32 pnp_bios_fault_eip, pnp_bios_fault_esp;
17181 extern u32 pnp_bios_is_utter_crap; 17916 extern u32 pnp_bios_is_utter_crap;
17182 pnp_bios_is_utter_crap = 1; 17917 pnp_bios_is_utter_crap = 1;
17183diff -urNp linux-2.6.38.2/arch/x86/mm/fault.c linux-2.6.38.2/arch/x86/mm/fault.c 17918diff -urNp linux-2.6.38.3/arch/x86/mm/fault.c linux-2.6.38.3/arch/x86/mm/fault.c
17184--- linux-2.6.38.2/arch/x86/mm/fault.c 2011-03-14 21:20:32.000000000 -0400 17919--- linux-2.6.38.3/arch/x86/mm/fault.c 2011-03-14 21:20:32.000000000 -0400
17185+++ linux-2.6.38.2/arch/x86/mm/fault.c 2011-03-21 23:48:53.000000000 -0400 17920+++ linux-2.6.38.3/arch/x86/mm/fault.c 2011-04-17 15:57:32.000000000 -0400
17186@@ -12,10 +12,18 @@ 17921@@ -12,10 +12,18 @@
17187 #include <linux/mmiotrace.h> /* kmmio_handler, ... */ 17922 #include <linux/mmiotrace.h> /* kmmio_handler, ... */
17188 #include <linux/perf_event.h> /* perf_sw_event */ 17923 #include <linux/perf_event.h> /* perf_sw_event */
@@ -17852,9 +18587,9 @@ diff -urNp linux-2.6.38.2/arch/x86/mm/fault.c linux-2.6.38.2/arch/x86/mm/fault.c
17852+ 18587+
17853+ return ret ? -EFAULT : 0; 18588+ return ret ? -EFAULT : 0;
17854+} 18589+}
17855diff -urNp linux-2.6.38.2/arch/x86/mm/gup.c linux-2.6.38.2/arch/x86/mm/gup.c 18590diff -urNp linux-2.6.38.3/arch/x86/mm/gup.c linux-2.6.38.3/arch/x86/mm/gup.c
17856--- linux-2.6.38.2/arch/x86/mm/gup.c 2011-03-14 21:20:32.000000000 -0400 18591--- linux-2.6.38.3/arch/x86/mm/gup.c 2011-03-14 21:20:32.000000000 -0400
17857+++ linux-2.6.38.2/arch/x86/mm/gup.c 2011-03-21 18:31:35.000000000 -0400 18592+++ linux-2.6.38.3/arch/x86/mm/gup.c 2011-04-17 15:57:32.000000000 -0400
17858@@ -263,7 +263,7 @@ int __get_user_pages_fast(unsigned long 18593@@ -263,7 +263,7 @@ int __get_user_pages_fast(unsigned long
17859 addr = start; 18594 addr = start;
17860 len = (unsigned long) nr_pages << PAGE_SHIFT; 18595 len = (unsigned long) nr_pages << PAGE_SHIFT;
@@ -17864,9 +18599,9 @@ diff -urNp linux-2.6.38.2/arch/x86/mm/gup.c linux-2.6.38.2/arch/x86/mm/gup.c
17864 (void __user *)start, len))) 18599 (void __user *)start, len)))
17865 return 0; 18600 return 0;
17866 18601
17867diff -urNp linux-2.6.38.2/arch/x86/mm/highmem_32.c linux-2.6.38.2/arch/x86/mm/highmem_32.c 18602diff -urNp linux-2.6.38.3/arch/x86/mm/highmem_32.c linux-2.6.38.3/arch/x86/mm/highmem_32.c
17868--- linux-2.6.38.2/arch/x86/mm/highmem_32.c 2011-03-14 21:20:32.000000000 -0400 18603--- linux-2.6.38.3/arch/x86/mm/highmem_32.c 2011-03-14 21:20:32.000000000 -0400
17869+++ linux-2.6.38.2/arch/x86/mm/highmem_32.c 2011-03-21 18:31:35.000000000 -0400 18604+++ linux-2.6.38.3/arch/x86/mm/highmem_32.c 2011-04-17 15:57:32.000000000 -0400
17870@@ -44,7 +44,10 @@ void *kmap_atomic_prot(struct page *page 18605@@ -44,7 +44,10 @@ void *kmap_atomic_prot(struct page *page
17871 idx = type + KM_TYPE_NR*smp_processor_id(); 18606 idx = type + KM_TYPE_NR*smp_processor_id();
17872 vaddr = __fix_to_virt(FIX_KMAP_BEGIN + idx); 18607 vaddr = __fix_to_virt(FIX_KMAP_BEGIN + idx);
@@ -17878,9 +18613,9 @@ diff -urNp linux-2.6.38.2/arch/x86/mm/highmem_32.c linux-2.6.38.2/arch/x86/mm/hi
17878 18613
17879 return (void *)vaddr; 18614 return (void *)vaddr;
17880 } 18615 }
17881diff -urNp linux-2.6.38.2/arch/x86/mm/hugetlbpage.c linux-2.6.38.2/arch/x86/mm/hugetlbpage.c 18616diff -urNp linux-2.6.38.3/arch/x86/mm/hugetlbpage.c linux-2.6.38.3/arch/x86/mm/hugetlbpage.c
17882--- linux-2.6.38.2/arch/x86/mm/hugetlbpage.c 2011-03-14 21:20:32.000000000 -0400 18617--- linux-2.6.38.3/arch/x86/mm/hugetlbpage.c 2011-03-14 21:20:32.000000000 -0400
17883+++ linux-2.6.38.2/arch/x86/mm/hugetlbpage.c 2011-03-21 23:47:41.000000000 -0400 18618+++ linux-2.6.38.3/arch/x86/mm/hugetlbpage.c 2011-04-17 15:57:32.000000000 -0400
17884@@ -266,13 +266,20 @@ static unsigned long hugetlb_get_unmappe 18619@@ -266,13 +266,20 @@ static unsigned long hugetlb_get_unmappe
17885 struct hstate *h = hstate_file(file); 18620 struct hstate *h = hstate_file(file);
17886 struct mm_struct *mm = current->mm; 18621 struct mm_struct *mm = current->mm;
@@ -18088,9 +18823,9 @@ diff -urNp linux-2.6.38.2/arch/x86/mm/hugetlbpage.c linux-2.6.38.2/arch/x86/mm/h
18088 return addr; 18823 return addr;
18089 } 18824 }
18090 if (mm->get_unmapped_area == arch_get_unmapped_area) 18825 if (mm->get_unmapped_area == arch_get_unmapped_area)
18091diff -urNp linux-2.6.38.2/arch/x86/mm/init_32.c linux-2.6.38.2/arch/x86/mm/init_32.c 18826diff -urNp linux-2.6.38.3/arch/x86/mm/init_32.c linux-2.6.38.3/arch/x86/mm/init_32.c
18092--- linux-2.6.38.2/arch/x86/mm/init_32.c 2011-03-14 21:20:32.000000000 -0400 18827--- linux-2.6.38.3/arch/x86/mm/init_32.c 2011-03-14 21:20:32.000000000 -0400
18093+++ linux-2.6.38.2/arch/x86/mm/init_32.c 2011-03-21 18:31:35.000000000 -0400 18828+++ linux-2.6.38.3/arch/x86/mm/init_32.c 2011-04-17 15:57:32.000000000 -0400
18094@@ -74,36 +74,6 @@ static __init void *alloc_low_page(void) 18829@@ -74,36 +74,6 @@ static __init void *alloc_low_page(void)
18095 } 18830 }
18096 18831
@@ -18365,10 +19100,10 @@ diff -urNp linux-2.6.38.2/arch/x86/mm/init_32.c linux-2.6.38.2/arch/x86/mm/init_
18365 set_pages_ro(virt_to_page(start), size >> PAGE_SHIFT); 19100 set_pages_ro(virt_to_page(start), size >> PAGE_SHIFT);
18366 printk(KERN_INFO "Write protecting the kernel text: %luk\n", 19101 printk(KERN_INFO "Write protecting the kernel text: %luk\n",
18367 size >> 10); 19102 size >> 10);
18368diff -urNp linux-2.6.38.2/arch/x86/mm/init_64.c linux-2.6.38.2/arch/x86/mm/init_64.c 19103diff -urNp linux-2.6.38.3/arch/x86/mm/init_64.c linux-2.6.38.3/arch/x86/mm/init_64.c
18369--- linux-2.6.38.2/arch/x86/mm/init_64.c 2011-03-28 17:42:40.000000000 -0400 19104--- linux-2.6.38.3/arch/x86/mm/init_64.c 2011-04-18 17:27:18.000000000 -0400
18370+++ linux-2.6.38.2/arch/x86/mm/init_64.c 2011-03-28 17:42:53.000000000 -0400 19105+++ linux-2.6.38.3/arch/x86/mm/init_64.c 2011-04-17 16:53:16.000000000 -0400
18371@@ -73,7 +73,7 @@ early_param("gbpages", parse_direct_gbpa 19106@@ -72,7 +72,7 @@ early_param("gbpages", parse_direct_gbpa
18372 * around without checking the pgd every time. 19107 * around without checking the pgd every time.
18373 */ 19108 */
18374 19109
@@ -18377,7 +19112,7 @@ diff -urNp linux-2.6.38.2/arch/x86/mm/init_64.c linux-2.6.38.2/arch/x86/mm/init_
18377 EXPORT_SYMBOL_GPL(__supported_pte_mask); 19112 EXPORT_SYMBOL_GPL(__supported_pte_mask);
18378 19113
18379 int force_personality32; 19114 int force_personality32;
18380@@ -106,12 +106,22 @@ void sync_global_pgds(unsigned long star 19115@@ -105,12 +105,22 @@ void sync_global_pgds(unsigned long star
18381 19116
18382 for (address = start; address <= end; address += PGDIR_SIZE) { 19117 for (address = start; address <= end; address += PGDIR_SIZE) {
18383 const pgd_t *pgd_ref = pgd_offset_k(address); 19118 const pgd_t *pgd_ref = pgd_offset_k(address);
@@ -18400,7 +19135,7 @@ diff -urNp linux-2.6.38.2/arch/x86/mm/init_64.c linux-2.6.38.2/arch/x86/mm/init_
18400 list_for_each_entry(page, &pgd_list, lru) { 19135 list_for_each_entry(page, &pgd_list, lru) {
18401 pgd_t *pgd; 19136 pgd_t *pgd;
18402 spinlock_t *pgt_lock; 19137 spinlock_t *pgt_lock;
18403@@ -120,6 +130,7 @@ void sync_global_pgds(unsigned long star 19138@@ -119,6 +129,7 @@ void sync_global_pgds(unsigned long star
18404 /* the pgt_lock only for Xen */ 19139 /* the pgt_lock only for Xen */
18405 pgt_lock = &pgd_page_get_mm(page)->page_table_lock; 19140 pgt_lock = &pgd_page_get_mm(page)->page_table_lock;
18406 spin_lock(pgt_lock); 19141 spin_lock(pgt_lock);
@@ -18408,7 +19143,7 @@ diff -urNp linux-2.6.38.2/arch/x86/mm/init_64.c linux-2.6.38.2/arch/x86/mm/init_
18408 19143
18409 if (pgd_none(*pgd)) 19144 if (pgd_none(*pgd))
18410 set_pgd(pgd, *pgd_ref); 19145 set_pgd(pgd, *pgd_ref);
18411@@ -127,7 +138,10 @@ void sync_global_pgds(unsigned long star 19146@@ -126,7 +137,10 @@ void sync_global_pgds(unsigned long star
18412 BUG_ON(pgd_page_vaddr(*pgd) 19147 BUG_ON(pgd_page_vaddr(*pgd)
18413 != pgd_page_vaddr(*pgd_ref)); 19148 != pgd_page_vaddr(*pgd_ref));
18414 19149
@@ -18419,7 +19154,7 @@ diff -urNp linux-2.6.38.2/arch/x86/mm/init_64.c linux-2.6.38.2/arch/x86/mm/init_
18419 } 19154 }
18420 spin_unlock(&pgd_lock); 19155 spin_unlock(&pgd_lock);
18421 } 19156 }
18422@@ -201,7 +215,9 @@ void set_pte_vaddr_pud(pud_t *pud_page, 19157@@ -200,7 +214,9 @@ void set_pte_vaddr_pud(pud_t *pud_page,
18423 pmd = fill_pmd(pud, vaddr); 19158 pmd = fill_pmd(pud, vaddr);
18424 pte = fill_pte(pmd, vaddr); 19159 pte = fill_pte(pmd, vaddr);
18425 19160
@@ -18429,7 +19164,7 @@ diff -urNp linux-2.6.38.2/arch/x86/mm/init_64.c linux-2.6.38.2/arch/x86/mm/init_
18429 19164
18430 /* 19165 /*
18431 * It's enough to flush this one mapping. 19166 * It's enough to flush this one mapping.
18432@@ -260,14 +276,12 @@ static void __init __init_extra_mapping( 19167@@ -259,14 +275,12 @@ static void __init __init_extra_mapping(
18433 pgd = pgd_offset_k((unsigned long)__va(phys)); 19168 pgd = pgd_offset_k((unsigned long)__va(phys));
18434 if (pgd_none(*pgd)) { 19169 if (pgd_none(*pgd)) {
18435 pud = (pud_t *) spp_getpage(); 19170 pud = (pud_t *) spp_getpage();
@@ -18446,7 +19181,7 @@ diff -urNp linux-2.6.38.2/arch/x86/mm/init_64.c linux-2.6.38.2/arch/x86/mm/init_
18446 } 19181 }
18447 pmd = pmd_offset(pud, phys); 19182 pmd = pmd_offset(pud, phys);
18448 BUG_ON(!pmd_none(*pmd)); 19183 BUG_ON(!pmd_none(*pmd));
18449@@ -707,6 +721,12 @@ void __init mem_init(void) 19184@@ -706,6 +720,12 @@ void __init mem_init(void)
18450 19185
18451 pci_iommu_alloc(); 19186 pci_iommu_alloc();
18452 19187
@@ -18459,7 +19194,7 @@ diff -urNp linux-2.6.38.2/arch/x86/mm/init_64.c linux-2.6.38.2/arch/x86/mm/init_
18459 /* clear_bss() already clear the empty_zero_page */ 19194 /* clear_bss() already clear the empty_zero_page */
18460 19195
18461 reservedpages = 0; 19196 reservedpages = 0;
18462@@ -867,8 +887,8 @@ int kern_addr_valid(unsigned long addr) 19197@@ -866,8 +886,8 @@ int kern_addr_valid(unsigned long addr)
18463 static struct vm_area_struct gate_vma = { 19198 static struct vm_area_struct gate_vma = {
18464 .vm_start = VSYSCALL_START, 19199 .vm_start = VSYSCALL_START,
18465 .vm_end = VSYSCALL_START + (VSYSCALL_MAPPED_PAGES * PAGE_SIZE), 19200 .vm_end = VSYSCALL_START + (VSYSCALL_MAPPED_PAGES * PAGE_SIZE),
@@ -18470,7 +19205,7 @@ diff -urNp linux-2.6.38.2/arch/x86/mm/init_64.c linux-2.6.38.2/arch/x86/mm/init_
18470 }; 19205 };
18471 19206
18472 struct vm_area_struct *get_gate_vma(struct task_struct *tsk) 19207 struct vm_area_struct *get_gate_vma(struct task_struct *tsk)
18473@@ -902,7 +922,7 @@ int in_gate_area_no_task(unsigned long a 19208@@ -901,7 +921,7 @@ int in_gate_area_no_task(unsigned long a
18474 19209
18475 const char *arch_vma_name(struct vm_area_struct *vma) 19210 const char *arch_vma_name(struct vm_area_struct *vma)
18476 { 19211 {
@@ -18479,9 +19214,9 @@ diff -urNp linux-2.6.38.2/arch/x86/mm/init_64.c linux-2.6.38.2/arch/x86/mm/init_
18479 return "[vdso]"; 19214 return "[vdso]";
18480 if (vma == &gate_vma) 19215 if (vma == &gate_vma)
18481 return "[vsyscall]"; 19216 return "[vsyscall]";
18482diff -urNp linux-2.6.38.2/arch/x86/mm/init.c linux-2.6.38.2/arch/x86/mm/init.c 19217diff -urNp linux-2.6.38.3/arch/x86/mm/init.c linux-2.6.38.3/arch/x86/mm/init.c
18483--- linux-2.6.38.2/arch/x86/mm/init.c 2011-03-28 17:42:40.000000000 -0400 19218--- linux-2.6.38.3/arch/x86/mm/init.c 2011-04-18 17:27:18.000000000 -0400
18484+++ linux-2.6.38.2/arch/x86/mm/init.c 2011-03-28 17:42:53.000000000 -0400 19219+++ linux-2.6.38.3/arch/x86/mm/init.c 2011-04-17 16:53:16.000000000 -0400
18485@@ -72,11 +72,7 @@ static void __init find_early_table_spac 19220@@ -72,11 +72,7 @@ static void __init find_early_table_spac
18486 * cause a hotspot and fill up ZONE_DMA. The page tables 19221 * cause a hotspot and fill up ZONE_DMA. The page tables
18487 * need roughly 0.5KB per GB. 19222 * need roughly 0.5KB per GB.
@@ -18495,22 +19230,25 @@ diff -urNp linux-2.6.38.2/arch/x86/mm/init.c linux-2.6.38.2/arch/x86/mm/init.c
18495 base = memblock_find_in_range(start, max_pfn_mapped<<PAGE_SHIFT, 19230 base = memblock_find_in_range(start, max_pfn_mapped<<PAGE_SHIFT,
18496 tables, PAGE_SIZE); 19231 tables, PAGE_SIZE);
18497 if (base == MEMBLOCK_ERROR) 19232 if (base == MEMBLOCK_ERROR)
18498@@ -304,7 +300,13 @@ unsigned long __init_refok init_memory_m 19233@@ -323,7 +319,16 @@ unsigned long __init_refok init_memory_m
18499 */ 19234 */
18500 int devmem_is_allowed(unsigned long pagenr) 19235 int devmem_is_allowed(unsigned long pagenr)
18501 { 19236 {
18502- if (pagenr <= 256) 19237- if (pagenr <= 256)
19238+#ifndef CONFIG_GRKERNSEC_KMEM
18503+ if (!pagenr) 19239+ if (!pagenr)
18504+ return 1; 19240+ return 1;
18505+#ifdef CONFIG_VM86 19241+#ifdef CONFIG_VM86
18506+ if (pagenr < (ISA_START_ADDRESS >> PAGE_SHIFT)) 19242+ if (pagenr < (ISA_START_ADDRESS >> PAGE_SHIFT))
18507+ return 1; 19243+ return 1;
18508+#endif 19244+#endif
19245+#endif
19246+
18509+ if ((ISA_START_ADDRESS >> PAGE_SHIFT) <= pagenr && pagenr < (ISA_END_ADDRESS >> PAGE_SHIFT)) 19247+ if ((ISA_START_ADDRESS >> PAGE_SHIFT) <= pagenr && pagenr < (ISA_END_ADDRESS >> PAGE_SHIFT))
18510 return 1; 19248 return 1;
18511 if (iomem_is_exclusive(pagenr << PAGE_SHIFT)) 19249 if (iomem_is_exclusive(pagenr << PAGE_SHIFT))
18512 return 0; 19250 return 0;
18513@@ -364,6 +366,86 @@ void free_init_pages(char *what, unsigne 19251@@ -383,6 +388,86 @@ void free_init_pages(char *what, unsigne
18514 19252
18515 void free_initmem(void) 19253 void free_initmem(void)
18516 { 19254 {
@@ -18597,9 +19335,9 @@ diff -urNp linux-2.6.38.2/arch/x86/mm/init.c linux-2.6.38.2/arch/x86/mm/init.c
18597 free_init_pages("unused kernel memory", 19335 free_init_pages("unused kernel memory",
18598 (unsigned long)(&__init_begin), 19336 (unsigned long)(&__init_begin),
18599 (unsigned long)(&__init_end)); 19337 (unsigned long)(&__init_end));
18600diff -urNp linux-2.6.38.2/arch/x86/mm/iomap_32.c linux-2.6.38.2/arch/x86/mm/iomap_32.c 19338diff -urNp linux-2.6.38.3/arch/x86/mm/iomap_32.c linux-2.6.38.3/arch/x86/mm/iomap_32.c
18601--- linux-2.6.38.2/arch/x86/mm/iomap_32.c 2011-03-14 21:20:32.000000000 -0400 19339--- linux-2.6.38.3/arch/x86/mm/iomap_32.c 2011-03-14 21:20:32.000000000 -0400
18602+++ linux-2.6.38.2/arch/x86/mm/iomap_32.c 2011-03-21 18:31:35.000000000 -0400 19340+++ linux-2.6.38.3/arch/x86/mm/iomap_32.c 2011-04-17 15:57:32.000000000 -0400
18603@@ -64,7 +64,11 @@ void *kmap_atomic_prot_pfn(unsigned long 19341@@ -64,7 +64,11 @@ void *kmap_atomic_prot_pfn(unsigned long
18604 type = kmap_atomic_idx_push(); 19342 type = kmap_atomic_idx_push();
18605 idx = type + KM_TYPE_NR * smp_processor_id(); 19343 idx = type + KM_TYPE_NR * smp_processor_id();
@@ -18612,9 +19350,9 @@ diff -urNp linux-2.6.38.2/arch/x86/mm/iomap_32.c linux-2.6.38.2/arch/x86/mm/ioma
18612 arch_flush_lazy_mmu_mode(); 19350 arch_flush_lazy_mmu_mode();
18613 19351
18614 return (void *)vaddr; 19352 return (void *)vaddr;
18615diff -urNp linux-2.6.38.2/arch/x86/mm/ioremap.c linux-2.6.38.2/arch/x86/mm/ioremap.c 19353diff -urNp linux-2.6.38.3/arch/x86/mm/ioremap.c linux-2.6.38.3/arch/x86/mm/ioremap.c
18616--- linux-2.6.38.2/arch/x86/mm/ioremap.c 2011-03-14 21:20:32.000000000 -0400 19354--- linux-2.6.38.3/arch/x86/mm/ioremap.c 2011-03-14 21:20:32.000000000 -0400
18617+++ linux-2.6.38.2/arch/x86/mm/ioremap.c 2011-03-21 18:31:35.000000000 -0400 19355+++ linux-2.6.38.3/arch/x86/mm/ioremap.c 2011-04-17 15:57:32.000000000 -0400
18618@@ -104,7 +104,7 @@ static void __iomem *__ioremap_caller(re 19356@@ -104,7 +104,7 @@ static void __iomem *__ioremap_caller(re
18619 for (pfn = phys_addr >> PAGE_SHIFT; pfn <= last_pfn; pfn++) { 19357 for (pfn = phys_addr >> PAGE_SHIFT; pfn <= last_pfn; pfn++) {
18620 int is_ram = page_is_ram(pfn); 19358 int is_ram = page_is_ram(pfn);
@@ -18643,9 +19381,9 @@ diff -urNp linux-2.6.38.2/arch/x86/mm/ioremap.c linux-2.6.38.2/arch/x86/mm/iorem
18643 19381
18644 /* 19382 /*
18645 * The boot-ioremap range spans multiple pmds, for which 19383 * The boot-ioremap range spans multiple pmds, for which
18646diff -urNp linux-2.6.38.2/arch/x86/mm/kmemcheck/kmemcheck.c linux-2.6.38.2/arch/x86/mm/kmemcheck/kmemcheck.c 19384diff -urNp linux-2.6.38.3/arch/x86/mm/kmemcheck/kmemcheck.c linux-2.6.38.3/arch/x86/mm/kmemcheck/kmemcheck.c
18647--- linux-2.6.38.2/arch/x86/mm/kmemcheck/kmemcheck.c 2011-03-14 21:20:32.000000000 -0400 19385--- linux-2.6.38.3/arch/x86/mm/kmemcheck/kmemcheck.c 2011-03-14 21:20:32.000000000 -0400
18648+++ linux-2.6.38.2/arch/x86/mm/kmemcheck/kmemcheck.c 2011-03-21 18:31:35.000000000 -0400 19386+++ linux-2.6.38.3/arch/x86/mm/kmemcheck/kmemcheck.c 2011-04-17 15:57:32.000000000 -0400
18649@@ -622,9 +622,9 @@ bool kmemcheck_fault(struct pt_regs *reg 19387@@ -622,9 +622,9 @@ bool kmemcheck_fault(struct pt_regs *reg
18650 * memory (e.g. tracked pages)? For now, we need this to avoid 19388 * memory (e.g. tracked pages)? For now, we need this to avoid
18651 * invoking kmemcheck for PnP BIOS calls. 19389 * invoking kmemcheck for PnP BIOS calls.
@@ -18658,9 +19396,9 @@ diff -urNp linux-2.6.38.2/arch/x86/mm/kmemcheck/kmemcheck.c linux-2.6.38.2/arch/
18658 return false; 19396 return false;
18659 19397
18660 pte = kmemcheck_pte_lookup(address); 19398 pte = kmemcheck_pte_lookup(address);
18661diff -urNp linux-2.6.38.2/arch/x86/mm/mmap.c linux-2.6.38.2/arch/x86/mm/mmap.c 19399diff -urNp linux-2.6.38.3/arch/x86/mm/mmap.c linux-2.6.38.3/arch/x86/mm/mmap.c
18662--- linux-2.6.38.2/arch/x86/mm/mmap.c 2011-03-14 21:20:32.000000000 -0400 19400--- linux-2.6.38.3/arch/x86/mm/mmap.c 2011-03-14 21:20:32.000000000 -0400
18663+++ linux-2.6.38.2/arch/x86/mm/mmap.c 2011-03-21 18:31:35.000000000 -0400 19401+++ linux-2.6.38.3/arch/x86/mm/mmap.c 2011-04-17 15:57:32.000000000 -0400
18664@@ -49,7 +49,7 @@ static unsigned int stack_maxrandom_size 19402@@ -49,7 +49,7 @@ static unsigned int stack_maxrandom_size
18665 * Leave an at least ~128 MB hole with possible stack randomization. 19403 * Leave an at least ~128 MB hole with possible stack randomization.
18666 */ 19404 */
@@ -18742,9 +19480,9 @@ diff -urNp linux-2.6.38.2/arch/x86/mm/mmap.c linux-2.6.38.2/arch/x86/mm/mmap.c
18742 mm->get_unmapped_area = arch_get_unmapped_area_topdown; 19480 mm->get_unmapped_area = arch_get_unmapped_area_topdown;
18743 mm->unmap_area = arch_unmap_area_topdown; 19481 mm->unmap_area = arch_unmap_area_topdown;
18744 } 19482 }
18745diff -urNp linux-2.6.38.2/arch/x86/mm/numa_32.c linux-2.6.38.2/arch/x86/mm/numa_32.c 19483diff -urNp linux-2.6.38.3/arch/x86/mm/numa_32.c linux-2.6.38.3/arch/x86/mm/numa_32.c
18746--- linux-2.6.38.2/arch/x86/mm/numa_32.c 2011-03-14 21:20:32.000000000 -0400 19484--- linux-2.6.38.3/arch/x86/mm/numa_32.c 2011-03-14 21:20:32.000000000 -0400
18747+++ linux-2.6.38.2/arch/x86/mm/numa_32.c 2011-03-21 18:31:35.000000000 -0400 19485+++ linux-2.6.38.3/arch/x86/mm/numa_32.c 2011-04-17 15:57:32.000000000 -0400
18748@@ -99,7 +99,6 @@ unsigned long node_memmap_size_bytes(int 19486@@ -99,7 +99,6 @@ unsigned long node_memmap_size_bytes(int
18749 } 19487 }
18750 #endif 19488 #endif
@@ -18753,9 +19491,9 @@ diff -urNp linux-2.6.38.2/arch/x86/mm/numa_32.c linux-2.6.38.2/arch/x86/mm/numa_
18753 extern unsigned long highend_pfn, highstart_pfn; 19491 extern unsigned long highend_pfn, highstart_pfn;
18754 19492
18755 #define LARGE_PAGE_BYTES (PTRS_PER_PTE * PAGE_SIZE) 19493 #define LARGE_PAGE_BYTES (PTRS_PER_PTE * PAGE_SIZE)
18756diff -urNp linux-2.6.38.2/arch/x86/mm/pageattr.c linux-2.6.38.2/arch/x86/mm/pageattr.c 19494diff -urNp linux-2.6.38.3/arch/x86/mm/pageattr.c linux-2.6.38.3/arch/x86/mm/pageattr.c
18757--- linux-2.6.38.2/arch/x86/mm/pageattr.c 2011-03-14 21:20:32.000000000 -0400 19495--- linux-2.6.38.3/arch/x86/mm/pageattr.c 2011-03-14 21:20:32.000000000 -0400
18758+++ linux-2.6.38.2/arch/x86/mm/pageattr.c 2011-03-21 18:31:35.000000000 -0400 19496+++ linux-2.6.38.3/arch/x86/mm/pageattr.c 2011-04-17 15:57:32.000000000 -0400
18759@@ -261,7 +261,7 @@ static inline pgprot_t static_protection 19497@@ -261,7 +261,7 @@ static inline pgprot_t static_protection
18760 */ 19498 */
18761 #ifdef CONFIG_PCI_BIOS 19499 #ifdef CONFIG_PCI_BIOS
@@ -18840,9 +19578,9 @@ diff -urNp linux-2.6.38.2/arch/x86/mm/pageattr.c linux-2.6.38.2/arch/x86/mm/page
18840 } 19578 }
18841 19579
18842 static int 19580 static int
18843diff -urNp linux-2.6.38.2/arch/x86/mm/pageattr-test.c linux-2.6.38.2/arch/x86/mm/pageattr-test.c 19581diff -urNp linux-2.6.38.3/arch/x86/mm/pageattr-test.c linux-2.6.38.3/arch/x86/mm/pageattr-test.c
18844--- linux-2.6.38.2/arch/x86/mm/pageattr-test.c 2011-03-14 21:20:32.000000000 -0400 19582--- linux-2.6.38.3/arch/x86/mm/pageattr-test.c 2011-03-14 21:20:32.000000000 -0400
18845+++ linux-2.6.38.2/arch/x86/mm/pageattr-test.c 2011-03-21 18:31:35.000000000 -0400 19583+++ linux-2.6.38.3/arch/x86/mm/pageattr-test.c 2011-04-17 15:57:32.000000000 -0400
18846@@ -36,7 +36,7 @@ enum { 19584@@ -36,7 +36,7 @@ enum {
18847 19585
18848 static int pte_testbit(pte_t pte) 19586 static int pte_testbit(pte_t pte)
@@ -18852,9 +19590,9 @@ diff -urNp linux-2.6.38.2/arch/x86/mm/pageattr-test.c linux-2.6.38.2/arch/x86/mm
18852 } 19590 }
18853 19591
18854 struct split_state { 19592 struct split_state {
18855diff -urNp linux-2.6.38.2/arch/x86/mm/pat.c linux-2.6.38.2/arch/x86/mm/pat.c 19593diff -urNp linux-2.6.38.3/arch/x86/mm/pat.c linux-2.6.38.3/arch/x86/mm/pat.c
18856--- linux-2.6.38.2/arch/x86/mm/pat.c 2011-03-14 21:20:32.000000000 -0400 19594--- linux-2.6.38.3/arch/x86/mm/pat.c 2011-03-14 21:20:32.000000000 -0400
18857+++ linux-2.6.38.2/arch/x86/mm/pat.c 2011-03-21 18:31:35.000000000 -0400 19595+++ linux-2.6.38.3/arch/x86/mm/pat.c 2011-04-17 15:57:32.000000000 -0400
18858@@ -361,7 +361,7 @@ int free_memtype(u64 start, u64 end) 19596@@ -361,7 +361,7 @@ int free_memtype(u64 start, u64 end)
18859 19597
18860 if (!entry) { 19598 if (!entry) {
@@ -18902,9 +19640,9 @@ diff -urNp linux-2.6.38.2/arch/x86/mm/pat.c linux-2.6.38.2/arch/x86/mm/pat.c
18902 cattr_name(want_flags), 19640 cattr_name(want_flags),
18903 (unsigned long long)paddr, 19641 (unsigned long long)paddr,
18904 (unsigned long long)(paddr + size), 19642 (unsigned long long)(paddr + size),
18905diff -urNp linux-2.6.38.2/arch/x86/mm/pgtable_32.c linux-2.6.38.2/arch/x86/mm/pgtable_32.c 19643diff -urNp linux-2.6.38.3/arch/x86/mm/pgtable_32.c linux-2.6.38.3/arch/x86/mm/pgtable_32.c
18906--- linux-2.6.38.2/arch/x86/mm/pgtable_32.c 2011-03-14 21:20:32.000000000 -0400 19644--- linux-2.6.38.3/arch/x86/mm/pgtable_32.c 2011-03-14 21:20:32.000000000 -0400
18907+++ linux-2.6.38.2/arch/x86/mm/pgtable_32.c 2011-03-21 18:31:35.000000000 -0400 19645+++ linux-2.6.38.3/arch/x86/mm/pgtable_32.c 2011-04-17 15:57:32.000000000 -0400
18908@@ -48,10 +48,13 @@ void set_pte_vaddr(unsigned long vaddr, 19646@@ -48,10 +48,13 @@ void set_pte_vaddr(unsigned long vaddr,
18909 return; 19647 return;
18910 } 19648 }
@@ -18919,9 +19657,9 @@ diff -urNp linux-2.6.38.2/arch/x86/mm/pgtable_32.c linux-2.6.38.2/arch/x86/mm/pg
18919 19657
18920 /* 19658 /*
18921 * It's enough to flush this one mapping. 19659 * It's enough to flush this one mapping.
18922diff -urNp linux-2.6.38.2/arch/x86/mm/pgtable.c linux-2.6.38.2/arch/x86/mm/pgtable.c 19660diff -urNp linux-2.6.38.3/arch/x86/mm/pgtable.c linux-2.6.38.3/arch/x86/mm/pgtable.c
18923--- linux-2.6.38.2/arch/x86/mm/pgtable.c 2011-03-23 17:20:06.000000000 -0400 19661--- linux-2.6.38.3/arch/x86/mm/pgtable.c 2011-04-18 17:27:13.000000000 -0400
18924+++ linux-2.6.38.2/arch/x86/mm/pgtable.c 2011-03-24 23:22:14.000000000 -0400 19662+++ linux-2.6.38.3/arch/x86/mm/pgtable.c 2011-04-17 15:57:32.000000000 -0400
18925@@ -84,9 +84,58 @@ static inline void pgd_list_del(pgd_t *p 19663@@ -84,9 +84,58 @@ static inline void pgd_list_del(pgd_t *p
18926 list_del(&page->lru); 19664 list_del(&page->lru);
18927 } 19665 }
@@ -19173,9 +19911,9 @@ diff -urNp linux-2.6.38.2/arch/x86/mm/pgtable.c linux-2.6.38.2/arch/x86/mm/pgtab
19173 pgd_dtor(pgd); 19911 pgd_dtor(pgd);
19174 paravirt_pgd_free(mm, pgd); 19912 paravirt_pgd_free(mm, pgd);
19175 free_page((unsigned long)pgd); 19913 free_page((unsigned long)pgd);
19176diff -urNp linux-2.6.38.2/arch/x86/mm/setup_nx.c linux-2.6.38.2/arch/x86/mm/setup_nx.c 19914diff -urNp linux-2.6.38.3/arch/x86/mm/setup_nx.c linux-2.6.38.3/arch/x86/mm/setup_nx.c
19177--- linux-2.6.38.2/arch/x86/mm/setup_nx.c 2011-03-14 21:20:32.000000000 -0400 19915--- linux-2.6.38.3/arch/x86/mm/setup_nx.c 2011-03-14 21:20:32.000000000 -0400
19178+++ linux-2.6.38.2/arch/x86/mm/setup_nx.c 2011-03-21 18:31:35.000000000 -0400 19916+++ linux-2.6.38.3/arch/x86/mm/setup_nx.c 2011-04-17 15:57:32.000000000 -0400
19179@@ -5,8 +5,10 @@ 19917@@ -5,8 +5,10 @@
19180 #include <asm/pgtable.h> 19918 #include <asm/pgtable.h>
19181 #include <asm/proto.h> 19919 #include <asm/proto.h>
@@ -19205,9 +19943,9 @@ diff -urNp linux-2.6.38.2/arch/x86/mm/setup_nx.c linux-2.6.38.2/arch/x86/mm/setu
19205 __supported_pte_mask &= ~_PAGE_NX; 19943 __supported_pte_mask &= ~_PAGE_NX;
19206 } 19944 }
19207 19945
19208diff -urNp linux-2.6.38.2/arch/x86/mm/tlb.c linux-2.6.38.2/arch/x86/mm/tlb.c 19946diff -urNp linux-2.6.38.3/arch/x86/mm/tlb.c linux-2.6.38.3/arch/x86/mm/tlb.c
19209--- linux-2.6.38.2/arch/x86/mm/tlb.c 2011-03-14 21:20:32.000000000 -0400 19947--- linux-2.6.38.3/arch/x86/mm/tlb.c 2011-03-14 21:20:32.000000000 -0400
19210+++ linux-2.6.38.2/arch/x86/mm/tlb.c 2011-03-21 18:31:35.000000000 -0400 19948+++ linux-2.6.38.3/arch/x86/mm/tlb.c 2011-04-17 15:57:32.000000000 -0400
19211@@ -14,7 +14,7 @@ 19949@@ -14,7 +14,7 @@
19212 #include <asm/uv/uv.h> 19950 #include <asm/uv/uv.h>
19213 19951
@@ -19229,9 +19967,9 @@ diff -urNp linux-2.6.38.2/arch/x86/mm/tlb.c linux-2.6.38.2/arch/x86/mm/tlb.c
19229 } 19967 }
19230 EXPORT_SYMBOL_GPL(leave_mm); 19968 EXPORT_SYMBOL_GPL(leave_mm);
19231 19969
19232diff -urNp linux-2.6.38.2/arch/x86/oprofile/backtrace.c linux-2.6.38.2/arch/x86/oprofile/backtrace.c 19970diff -urNp linux-2.6.38.3/arch/x86/oprofile/backtrace.c linux-2.6.38.3/arch/x86/oprofile/backtrace.c
19233--- linux-2.6.38.2/arch/x86/oprofile/backtrace.c 2011-03-14 21:20:32.000000000 -0400 19971--- linux-2.6.38.3/arch/x86/oprofile/backtrace.c 2011-03-14 21:20:32.000000000 -0400
19234+++ linux-2.6.38.2/arch/x86/oprofile/backtrace.c 2011-03-21 18:31:35.000000000 -0400 19972+++ linux-2.6.38.3/arch/x86/oprofile/backtrace.c 2011-04-17 15:57:32.000000000 -0400
19235@@ -57,7 +57,7 @@ dump_user_backtrace_32(struct stack_fram 19973@@ -57,7 +57,7 @@ dump_user_backtrace_32(struct stack_fram
19236 struct stack_frame_ia32 *fp; 19974 struct stack_frame_ia32 *fp;
19237 19975
@@ -19250,9 +19988,9 @@ diff -urNp linux-2.6.38.2/arch/x86/oprofile/backtrace.c linux-2.6.38.2/arch/x86/
19250 unsigned long stack = kernel_stack_pointer(regs); 19988 unsigned long stack = kernel_stack_pointer(regs);
19251 if (depth) 19989 if (depth)
19252 dump_trace(NULL, regs, (unsigned long *)stack, 19990 dump_trace(NULL, regs, (unsigned long *)stack,
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 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
19254--- linux-2.6.38.2/arch/x86/oprofile/op_model_p4.c 2011-03-14 21:20:32.000000000 -0400 19992--- linux-2.6.38.3/arch/x86/oprofile/op_model_p4.c 2011-03-14 21:20:32.000000000 -0400
19255+++ linux-2.6.38.2/arch/x86/oprofile/op_model_p4.c 2011-03-21 18:31:35.000000000 -0400 19993+++ linux-2.6.38.3/arch/x86/oprofile/op_model_p4.c 2011-04-17 15:57:32.000000000 -0400
19256@@ -50,7 +50,7 @@ static inline void setup_num_counters(vo 19994@@ -50,7 +50,7 @@ static inline void setup_num_counters(vo
19257 #endif 19995 #endif
19258 } 19996 }
@@ -19262,9 +20000,9 @@ diff -urNp linux-2.6.38.2/arch/x86/oprofile/op_model_p4.c linux-2.6.38.2/arch/x8
19262 { 20000 {
19263 #ifdef CONFIG_SMP 20001 #ifdef CONFIG_SMP
19264 return smp_num_siblings == 2 ? 2 : 1; 20002 return smp_num_siblings == 2 ? 2 : 1;
19265diff -urNp linux-2.6.38.2/arch/x86/pci/ce4100.c linux-2.6.38.2/arch/x86/pci/ce4100.c 20003diff -urNp linux-2.6.38.3/arch/x86/pci/ce4100.c linux-2.6.38.3/arch/x86/pci/ce4100.c
19266--- linux-2.6.38.2/arch/x86/pci/ce4100.c 2011-03-14 21:20:32.000000000 -0400 20004--- linux-2.6.38.3/arch/x86/pci/ce4100.c 2011-03-14 21:20:32.000000000 -0400
19267+++ linux-2.6.38.2/arch/x86/pci/ce4100.c 2011-03-21 18:31:35.000000000 -0400 20005+++ linux-2.6.38.3/arch/x86/pci/ce4100.c 2011-04-17 15:57:32.000000000 -0400
19268@@ -302,7 +302,7 @@ static int ce4100_conf_write(unsigned in 20006@@ -302,7 +302,7 @@ static int ce4100_conf_write(unsigned in
19269 return pci_direct_conf1.write(seg, bus, devfn, reg, len, value); 20007 return pci_direct_conf1.write(seg, bus, devfn, reg, len, value);
19270 } 20008 }
@@ -19274,9 +20012,9 @@ diff -urNp linux-2.6.38.2/arch/x86/pci/ce4100.c linux-2.6.38.2/arch/x86/pci/ce41
19274 .read = ce4100_conf_read, 20012 .read = ce4100_conf_read,
19275 .write = ce4100_conf_write, 20013 .write = ce4100_conf_write,
19276 }; 20014 };
19277diff -urNp linux-2.6.38.2/arch/x86/pci/common.c linux-2.6.38.2/arch/x86/pci/common.c 20015diff -urNp linux-2.6.38.3/arch/x86/pci/common.c linux-2.6.38.3/arch/x86/pci/common.c
19278--- linux-2.6.38.2/arch/x86/pci/common.c 2011-03-14 21:20:32.000000000 -0400 20016--- linux-2.6.38.3/arch/x86/pci/common.c 2011-03-14 21:20:32.000000000 -0400
19279+++ linux-2.6.38.2/arch/x86/pci/common.c 2011-03-21 18:31:35.000000000 -0400 20017+++ linux-2.6.38.3/arch/x86/pci/common.c 2011-04-17 15:57:32.000000000 -0400
19280@@ -33,8 +33,8 @@ int noioapicreroute = 1; 20018@@ -33,8 +33,8 @@ int noioapicreroute = 1;
19281 int pcibios_last_bus = -1; 20019 int pcibios_last_bus = -1;
19282 unsigned long pirq_table_addr; 20020 unsigned long pirq_table_addr;
@@ -19297,9 +20035,9 @@ diff -urNp linux-2.6.38.2/arch/x86/pci/common.c linux-2.6.38.2/arch/x86/pci/comm
19297 }; 20035 };
19298 20036
19299 void __init dmi_check_pciprobe(void) 20037 void __init dmi_check_pciprobe(void)
19300diff -urNp linux-2.6.38.2/arch/x86/pci/direct.c linux-2.6.38.2/arch/x86/pci/direct.c 20038diff -urNp linux-2.6.38.3/arch/x86/pci/direct.c linux-2.6.38.3/arch/x86/pci/direct.c
19301--- linux-2.6.38.2/arch/x86/pci/direct.c 2011-03-14 21:20:32.000000000 -0400 20039--- linux-2.6.38.3/arch/x86/pci/direct.c 2011-03-14 21:20:32.000000000 -0400
19302+++ linux-2.6.38.2/arch/x86/pci/direct.c 2011-03-21 18:31:35.000000000 -0400 20040+++ linux-2.6.38.3/arch/x86/pci/direct.c 2011-04-17 15:57:32.000000000 -0400
19303@@ -79,7 +79,7 @@ static int pci_conf1_write(unsigned int 20041@@ -79,7 +79,7 @@ static int pci_conf1_write(unsigned int
19304 20042
19305 #undef PCI_CONF1_ADDRESS 20043 #undef PCI_CONF1_ADDRESS
@@ -19327,9 +20065,9 @@ diff -urNp linux-2.6.38.2/arch/x86/pci/direct.c linux-2.6.38.2/arch/x86/pci/dire
19327 { 20065 {
19328 u32 x = 0; 20066 u32 x = 0;
19329 int year, devfn; 20067 int year, devfn;
19330diff -urNp linux-2.6.38.2/arch/x86/pci/fixup.c linux-2.6.38.2/arch/x86/pci/fixup.c 20068diff -urNp linux-2.6.38.3/arch/x86/pci/fixup.c linux-2.6.38.3/arch/x86/pci/fixup.c
19331--- linux-2.6.38.2/arch/x86/pci/fixup.c 2011-03-14 21:20:32.000000000 -0400 20069--- linux-2.6.38.3/arch/x86/pci/fixup.c 2011-03-14 21:20:32.000000000 -0400
19332+++ linux-2.6.38.2/arch/x86/pci/fixup.c 2011-03-21 18:31:35.000000000 -0400 20070+++ linux-2.6.38.3/arch/x86/pci/fixup.c 2011-04-17 15:57:32.000000000 -0400
19333@@ -364,7 +364,7 @@ static const struct dmi_system_id __devi 20071@@ -364,7 +364,7 @@ static const struct dmi_system_id __devi
19334 DMI_MATCH(DMI_PRODUCT_NAME, "MS-6702E"), 20072 DMI_MATCH(DMI_PRODUCT_NAME, "MS-6702E"),
19335 }, 20073 },
@@ -19348,9 +20086,9 @@ diff -urNp linux-2.6.38.2/arch/x86/pci/fixup.c linux-2.6.38.2/arch/x86/pci/fixup
19348 }; 20086 };
19349 20087
19350 static void __devinit pci_pre_fixup_toshiba_ohci1394(struct pci_dev *dev) 20088 static void __devinit pci_pre_fixup_toshiba_ohci1394(struct pci_dev *dev)
19351diff -urNp linux-2.6.38.2/arch/x86/pci/irq.c linux-2.6.38.2/arch/x86/pci/irq.c 20089diff -urNp linux-2.6.38.3/arch/x86/pci/irq.c linux-2.6.38.3/arch/x86/pci/irq.c
19352--- linux-2.6.38.2/arch/x86/pci/irq.c 2011-03-14 21:20:32.000000000 -0400 20090--- linux-2.6.38.3/arch/x86/pci/irq.c 2011-03-14 21:20:32.000000000 -0400
19353+++ linux-2.6.38.2/arch/x86/pci/irq.c 2011-03-21 18:31:35.000000000 -0400 20091+++ linux-2.6.38.3/arch/x86/pci/irq.c 2011-04-17 15:57:32.000000000 -0400
19354@@ -542,7 +542,7 @@ static __init int intel_router_probe(str 20092@@ -542,7 +542,7 @@ static __init int intel_router_probe(str
19355 static struct pci_device_id __initdata pirq_440gx[] = { 20093 static struct pci_device_id __initdata pirq_440gx[] = {
19356 { PCI_DEVICE(PCI_VENDOR_ID_INTEL, PCI_DEVICE_ID_INTEL_82443GX_0) }, 20094 { PCI_DEVICE(PCI_VENDOR_ID_INTEL, PCI_DEVICE_ID_INTEL_82443GX_0) },
@@ -19369,9 +20107,9 @@ diff -urNp linux-2.6.38.2/arch/x86/pci/irq.c linux-2.6.38.2/arch/x86/pci/irq.c
19369 }; 20107 };
19370 20108
19371 void __init pcibios_irq_init(void) 20109 void __init pcibios_irq_init(void)
19372diff -urNp linux-2.6.38.2/arch/x86/pci/mmconfig_32.c linux-2.6.38.2/arch/x86/pci/mmconfig_32.c 20110diff -urNp linux-2.6.38.3/arch/x86/pci/mmconfig_32.c linux-2.6.38.3/arch/x86/pci/mmconfig_32.c
19373--- linux-2.6.38.2/arch/x86/pci/mmconfig_32.c 2011-03-14 21:20:32.000000000 -0400 20111--- linux-2.6.38.3/arch/x86/pci/mmconfig_32.c 2011-03-14 21:20:32.000000000 -0400
19374+++ linux-2.6.38.2/arch/x86/pci/mmconfig_32.c 2011-03-21 18:31:35.000000000 -0400 20112+++ linux-2.6.38.3/arch/x86/pci/mmconfig_32.c 2011-04-17 15:57:32.000000000 -0400
19375@@ -117,7 +117,7 @@ static int pci_mmcfg_write(unsigned int 20113@@ -117,7 +117,7 @@ static int pci_mmcfg_write(unsigned int
19376 return 0; 20114 return 0;
19377 } 20115 }
@@ -19381,9 +20119,9 @@ diff -urNp linux-2.6.38.2/arch/x86/pci/mmconfig_32.c linux-2.6.38.2/arch/x86/pci
19381 .read = pci_mmcfg_read, 20119 .read = pci_mmcfg_read,
19382 .write = pci_mmcfg_write, 20120 .write = pci_mmcfg_write,
19383 }; 20121 };
19384diff -urNp linux-2.6.38.2/arch/x86/pci/mmconfig_64.c linux-2.6.38.2/arch/x86/pci/mmconfig_64.c 20122diff -urNp linux-2.6.38.3/arch/x86/pci/mmconfig_64.c linux-2.6.38.3/arch/x86/pci/mmconfig_64.c
19385--- linux-2.6.38.2/arch/x86/pci/mmconfig_64.c 2011-03-14 21:20:32.000000000 -0400 20123--- linux-2.6.38.3/arch/x86/pci/mmconfig_64.c 2011-03-14 21:20:32.000000000 -0400
19386+++ linux-2.6.38.2/arch/x86/pci/mmconfig_64.c 2011-03-21 18:31:35.000000000 -0400 20124+++ linux-2.6.38.3/arch/x86/pci/mmconfig_64.c 2011-04-17 15:57:32.000000000 -0400
19387@@ -81,7 +81,7 @@ static int pci_mmcfg_write(unsigned int 20125@@ -81,7 +81,7 @@ static int pci_mmcfg_write(unsigned int
19388 return 0; 20126 return 0;
19389 } 20127 }
@@ -19393,9 +20131,9 @@ diff -urNp linux-2.6.38.2/arch/x86/pci/mmconfig_64.c linux-2.6.38.2/arch/x86/pci
19393 .read = pci_mmcfg_read, 20131 .read = pci_mmcfg_read,
19394 .write = pci_mmcfg_write, 20132 .write = pci_mmcfg_write,
19395 }; 20133 };
19396diff -urNp linux-2.6.38.2/arch/x86/pci/numaq_32.c linux-2.6.38.2/arch/x86/pci/numaq_32.c 20134diff -urNp linux-2.6.38.3/arch/x86/pci/numaq_32.c linux-2.6.38.3/arch/x86/pci/numaq_32.c
19397--- linux-2.6.38.2/arch/x86/pci/numaq_32.c 2011-03-14 21:20:32.000000000 -0400 20135--- linux-2.6.38.3/arch/x86/pci/numaq_32.c 2011-03-14 21:20:32.000000000 -0400
19398+++ linux-2.6.38.2/arch/x86/pci/numaq_32.c 2011-03-21 18:31:35.000000000 -0400 20136+++ linux-2.6.38.3/arch/x86/pci/numaq_32.c 2011-04-17 15:57:32.000000000 -0400
19399@@ -108,7 +108,7 @@ static int pci_conf1_mq_write(unsigned i 20137@@ -108,7 +108,7 @@ static int pci_conf1_mq_write(unsigned i
19400 20138
19401 #undef PCI_CONF1_MQ_ADDRESS 20139 #undef PCI_CONF1_MQ_ADDRESS
@@ -19405,9 +20143,9 @@ diff -urNp linux-2.6.38.2/arch/x86/pci/numaq_32.c linux-2.6.38.2/arch/x86/pci/nu
19405 .read = pci_conf1_mq_read, 20143 .read = pci_conf1_mq_read,
19406 .write = pci_conf1_mq_write 20144 .write = pci_conf1_mq_write
19407 }; 20145 };
19408diff -urNp linux-2.6.38.2/arch/x86/pci/olpc.c linux-2.6.38.2/arch/x86/pci/olpc.c 20146diff -urNp linux-2.6.38.3/arch/x86/pci/olpc.c linux-2.6.38.3/arch/x86/pci/olpc.c
19409--- linux-2.6.38.2/arch/x86/pci/olpc.c 2011-03-14 21:20:32.000000000 -0400 20147--- linux-2.6.38.3/arch/x86/pci/olpc.c 2011-03-14 21:20:32.000000000 -0400
19410+++ linux-2.6.38.2/arch/x86/pci/olpc.c 2011-03-21 18:31:35.000000000 -0400 20148+++ linux-2.6.38.3/arch/x86/pci/olpc.c 2011-04-17 15:57:32.000000000 -0400
19411@@ -297,7 +297,7 @@ static int pci_olpc_write(unsigned int s 20149@@ -297,7 +297,7 @@ static int pci_olpc_write(unsigned int s
19412 return 0; 20150 return 0;
19413 } 20151 }
@@ -19417,9 +20155,9 @@ diff -urNp linux-2.6.38.2/arch/x86/pci/olpc.c linux-2.6.38.2/arch/x86/pci/olpc.c
19417 .read = pci_olpc_read, 20155 .read = pci_olpc_read,
19418 .write = pci_olpc_write, 20156 .write = pci_olpc_write,
19419 }; 20157 };
19420diff -urNp linux-2.6.38.2/arch/x86/pci/pcbios.c linux-2.6.38.2/arch/x86/pci/pcbios.c 20158diff -urNp linux-2.6.38.3/arch/x86/pci/pcbios.c linux-2.6.38.3/arch/x86/pci/pcbios.c
19421--- linux-2.6.38.2/arch/x86/pci/pcbios.c 2011-03-14 21:20:32.000000000 -0400 20159--- linux-2.6.38.3/arch/x86/pci/pcbios.c 2011-03-14 21:20:32.000000000 -0400
19422+++ linux-2.6.38.2/arch/x86/pci/pcbios.c 2011-03-21 18:31:35.000000000 -0400 20160+++ linux-2.6.38.3/arch/x86/pci/pcbios.c 2011-04-17 15:57:32.000000000 -0400
19423@@ -79,50 +79,93 @@ union bios32 { 20161@@ -79,50 +79,93 @@ union bios32 {
19424 static struct { 20162 static struct {
19425 unsigned long address; 20163 unsigned long address;
@@ -19742,9 +20480,9 @@ diff -urNp linux-2.6.38.2/arch/x86/pci/pcbios.c linux-2.6.38.2/arch/x86/pci/pcbi
19742 return !(ret & 0xff00); 20480 return !(ret & 0xff00);
19743 } 20481 }
19744 EXPORT_SYMBOL(pcibios_set_irq_routing); 20482 EXPORT_SYMBOL(pcibios_set_irq_routing);
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 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
19746--- linux-2.6.38.2/arch/x86/platform/efi/efi_32.c 2011-03-14 21:20:32.000000000 -0400 20484--- linux-2.6.38.3/arch/x86/platform/efi/efi_32.c 2011-03-14 21:20:32.000000000 -0400
19747+++ linux-2.6.38.2/arch/x86/platform/efi/efi_32.c 2011-03-21 18:31:35.000000000 -0400 20485+++ linux-2.6.38.3/arch/x86/platform/efi/efi_32.c 2011-04-17 15:57:32.000000000 -0400
19748@@ -38,70 +38,37 @@ 20486@@ -38,70 +38,37 @@
19749 */ 20487 */
19750 20488
@@ -19825,9 +20563,9 @@ diff -urNp linux-2.6.38.2/arch/x86/platform/efi/efi_32.c linux-2.6.38.2/arch/x86
19825 20563
19826 /* 20564 /*
19827 * After the lock is released, the original page table is restored. 20565 * After the lock is released, the original page table is restored.
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 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
19829--- linux-2.6.38.2/arch/x86/platform/efi/efi_stub_32.S 2011-03-14 21:20:32.000000000 -0400 20567--- linux-2.6.38.3/arch/x86/platform/efi/efi_stub_32.S 2011-03-14 21:20: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 20568+++ linux-2.6.38.3/arch/x86/platform/efi/efi_stub_32.S 2011-04-17 15:57:32.000000000 -0400
19831@@ -6,6 +6,7 @@ 20569@@ -6,6 +6,7 @@
19832 */ 20570 */
19833 20571
@@ -19926,9 +20664,9 @@ diff -urNp linux-2.6.38.2/arch/x86/platform/efi/efi_stub_32.S linux-2.6.38.2/arc
19926 saved_return_addr: 20664 saved_return_addr:
19927 .long 0 20665 .long 0
19928 efi_rt_function_ptr: 20666 efi_rt_function_ptr:
19929diff -urNp linux-2.6.38.2/arch/x86/power/cpu.c linux-2.6.38.2/arch/x86/power/cpu.c 20667diff -urNp linux-2.6.38.3/arch/x86/power/cpu.c linux-2.6.38.3/arch/x86/power/cpu.c
19930--- linux-2.6.38.2/arch/x86/power/cpu.c 2011-03-14 21:20:32.000000000 -0400 20668--- linux-2.6.38.3/arch/x86/power/cpu.c 2011-03-14 21:20:32.000000000 -0400
19931+++ linux-2.6.38.2/arch/x86/power/cpu.c 2011-03-21 18:31:35.000000000 -0400 20669+++ linux-2.6.38.3/arch/x86/power/cpu.c 2011-04-17 15:57:32.000000000 -0400
19932@@ -130,7 +130,7 @@ static void do_fpu_end(void) 20670@@ -130,7 +130,7 @@ static void do_fpu_end(void)
19933 static void fix_processor_context(void) 20671 static void fix_processor_context(void)
19934 { 20672 {
@@ -19948,21 +20686,21 @@ diff -urNp linux-2.6.38.2/arch/x86/power/cpu.c linux-2.6.38.2/arch/x86/power/cpu
19948 20686
19949 syscall_init(); /* This sets MSR_*STAR and related */ 20687 syscall_init(); /* This sets MSR_*STAR and related */
19950 #endif 20688 #endif
19951diff -urNp linux-2.6.38.2/arch/x86/vdso/Makefile linux-2.6.38.2/arch/x86/vdso/Makefile 20689diff -urNp linux-2.6.38.3/arch/x86/vdso/Makefile linux-2.6.38.3/arch/x86/vdso/Makefile
19952--- linux-2.6.38.2/arch/x86/vdso/Makefile 2011-03-14 21:20:32.000000000 -0400 20690--- linux-2.6.38.3/arch/x86/vdso/Makefile 2011-03-14 21:20:32.000000000 -0400
19953+++ linux-2.6.38.2/arch/x86/vdso/Makefile 2011-03-21 18:31:35.000000000 -0400 20691+++ linux-2.6.38.3/arch/x86/vdso/Makefile 2011-04-17 15:57:32.000000000 -0400
19954@@ -123,7 +123,7 @@ quiet_cmd_vdso = VDSO $@ 20692@@ -123,7 +123,7 @@ quiet_cmd_vdso = VDSO $@
19955 -Wl,-T,$(filter %.lds,$^) $(filter %.o,$^) && \ 20693 -Wl,-T,$(filter %.lds,$^) $(filter %.o,$^) && \
19956 sh $(srctree)/$(src)/checkundef.sh '$(NM)' '$@' 20694 sh $(srctree)/$(src)/checkundef.sh '$(NM)' '$@'
19957 20695
19958-VDSO_LDFLAGS = -fPIC -shared $(call cc-ldoption, -Wl$(comma)--hash-style=sysv) 20696-VDSO_LDFLAGS = -fPIC -shared $(call cc-ldoption, -Wl$(comma)--hash-style=sysv)
19959+VDSO_LDFLAGS = -fPIC -shared --no-undefined $(call cc-ldoption, -Wl$(comma)--hash-style=sysv) 20697+VDSO_LDFLAGS = -fPIC -shared -Wl,--no-undefined $(call cc-ldoption, -Wl$(comma)--hash-style=sysv)
19960 GCOV_PROFILE := n 20698 GCOV_PROFILE := n
19961 20699
19962 # 20700 #
19963diff -urNp linux-2.6.38.2/arch/x86/vdso/vclock_gettime.c linux-2.6.38.2/arch/x86/vdso/vclock_gettime.c 20701diff -urNp linux-2.6.38.3/arch/x86/vdso/vclock_gettime.c linux-2.6.38.3/arch/x86/vdso/vclock_gettime.c
19964--- linux-2.6.38.2/arch/x86/vdso/vclock_gettime.c 2011-03-14 21:20:32.000000000 -0400 20702--- linux-2.6.38.3/arch/x86/vdso/vclock_gettime.c 2011-03-14 21:20:32.000000000 -0400
19965+++ linux-2.6.38.2/arch/x86/vdso/vclock_gettime.c 2011-03-21 18:31:35.000000000 -0400 20703+++ linux-2.6.38.3/arch/x86/vdso/vclock_gettime.c 2011-04-17 15:57:32.000000000 -0400
19966@@ -22,24 +22,48 @@ 20704@@ -22,24 +22,48 @@
19967 #include <asm/hpet.h> 20705 #include <asm/hpet.h>
19968 #include <asm/unistd.h> 20706 #include <asm/unistd.h>
@@ -20061,9 +20799,9 @@ diff -urNp linux-2.6.38.2/arch/x86/vdso/vclock_gettime.c linux-2.6.38.2/arch/x86
20061 } 20799 }
20062 int gettimeofday(struct timeval *, struct timezone *) 20800 int gettimeofday(struct timeval *, struct timezone *)
20063 __attribute__((weak, alias("__vdso_gettimeofday"))); 20801 __attribute__((weak, alias("__vdso_gettimeofday")));
20064diff -urNp linux-2.6.38.2/arch/x86/vdso/vdso32-setup.c linux-2.6.38.2/arch/x86/vdso/vdso32-setup.c 20802diff -urNp linux-2.6.38.3/arch/x86/vdso/vdso32-setup.c linux-2.6.38.3/arch/x86/vdso/vdso32-setup.c
20065--- linux-2.6.38.2/arch/x86/vdso/vdso32-setup.c 2011-03-14 21:20:32.000000000 -0400 20803--- linux-2.6.38.3/arch/x86/vdso/vdso32-setup.c 2011-03-14 21:20:32.000000000 -0400
20066+++ linux-2.6.38.2/arch/x86/vdso/vdso32-setup.c 2011-03-21 18:31:35.000000000 -0400 20804+++ linux-2.6.38.3/arch/x86/vdso/vdso32-setup.c 2011-04-17 15:57:32.000000000 -0400
20067@@ -25,6 +25,7 @@ 20805@@ -25,6 +25,7 @@
20068 #include <asm/tlbflush.h> 20806 #include <asm/tlbflush.h>
20069 #include <asm/vdso.h> 20807 #include <asm/vdso.h>
@@ -20146,9 +20884,9 @@ diff -urNp linux-2.6.38.2/arch/x86/vdso/vdso32-setup.c linux-2.6.38.2/arch/x86/v
20146 return &gate_vma; 20884 return &gate_vma;
20147 return NULL; 20885 return NULL;
20148 } 20886 }
20149diff -urNp linux-2.6.38.2/arch/x86/vdso/vdso.lds.S linux-2.6.38.2/arch/x86/vdso/vdso.lds.S 20887diff -urNp linux-2.6.38.3/arch/x86/vdso/vdso.lds.S linux-2.6.38.3/arch/x86/vdso/vdso.lds.S
20150--- linux-2.6.38.2/arch/x86/vdso/vdso.lds.S 2011-03-14 21:20:32.000000000 -0400 20888--- linux-2.6.38.3/arch/x86/vdso/vdso.lds.S 2011-03-14 21:20:32.000000000 -0400
20151+++ linux-2.6.38.2/arch/x86/vdso/vdso.lds.S 2011-03-21 18:31:35.000000000 -0400 20889+++ linux-2.6.38.3/arch/x86/vdso/vdso.lds.S 2011-04-17 15:57:32.000000000 -0400
20152@@ -35,3 +35,9 @@ VDSO64_PRELINK = VDSO_PRELINK; 20890@@ -35,3 +35,9 @@ VDSO64_PRELINK = VDSO_PRELINK;
20153 #define VEXTERN(x) VDSO64_ ## x = vdso_ ## x; 20891 #define VEXTERN(x) VDSO64_ ## x = vdso_ ## x;
20154 #include "vextern.h" 20892 #include "vextern.h"
@@ -20159,9 +20897,9 @@ diff -urNp linux-2.6.38.2/arch/x86/vdso/vdso.lds.S linux-2.6.38.2/arch/x86/vdso/
20159+VEXTERN(fallback_time) 20897+VEXTERN(fallback_time)
20160+VEXTERN(getcpu) 20898+VEXTERN(getcpu)
20161+#undef VEXTERN 20899+#undef VEXTERN
20162diff -urNp linux-2.6.38.2/arch/x86/vdso/vextern.h linux-2.6.38.2/arch/x86/vdso/vextern.h 20900diff -urNp linux-2.6.38.3/arch/x86/vdso/vextern.h linux-2.6.38.3/arch/x86/vdso/vextern.h
20163--- linux-2.6.38.2/arch/x86/vdso/vextern.h 2011-03-14 21:20:32.000000000 -0400 20901--- linux-2.6.38.3/arch/x86/vdso/vextern.h 2011-03-14 21:20:32.000000000 -0400
20164+++ linux-2.6.38.2/arch/x86/vdso/vextern.h 2011-03-21 18:31:35.000000000 -0400 20902+++ linux-2.6.38.3/arch/x86/vdso/vextern.h 2011-04-17 15:57:32.000000000 -0400
20165@@ -11,6 +11,5 @@ 20903@@ -11,6 +11,5 @@
20166 put into vextern.h and be referenced as a pointer with vdso prefix. 20904 put into vextern.h and be referenced as a pointer with vdso prefix.
20167 The main kernel later fills in the values. */ 20905 The main kernel later fills in the values. */
@@ -20169,9 +20907,9 @@ diff -urNp linux-2.6.38.2/arch/x86/vdso/vextern.h linux-2.6.38.2/arch/x86/vdso/v
20169-VEXTERN(jiffies) 20907-VEXTERN(jiffies)
20170 VEXTERN(vgetcpu_mode) 20908 VEXTERN(vgetcpu_mode)
20171 VEXTERN(vsyscall_gtod_data) 20909 VEXTERN(vsyscall_gtod_data)
20172diff -urNp linux-2.6.38.2/arch/x86/vdso/vma.c linux-2.6.38.2/arch/x86/vdso/vma.c 20910diff -urNp linux-2.6.38.3/arch/x86/vdso/vma.c linux-2.6.38.3/arch/x86/vdso/vma.c
20173--- linux-2.6.38.2/arch/x86/vdso/vma.c 2011-03-14 21:20:32.000000000 -0400 20911--- linux-2.6.38.3/arch/x86/vdso/vma.c 2011-03-14 21:20:32.000000000 -0400
20174+++ linux-2.6.38.2/arch/x86/vdso/vma.c 2011-03-21 18:31:35.000000000 -0400 20912+++ linux-2.6.38.3/arch/x86/vdso/vma.c 2011-04-17 15:57:32.000000000 -0400
20175@@ -58,7 +58,7 @@ static int __init init_vdso_vars(void) 20913@@ -58,7 +58,7 @@ static int __init init_vdso_vars(void)
20176 if (!vbase) 20914 if (!vbase)
20177 goto oom; 20915 goto oom;
@@ -20210,9 +20948,9 @@ diff -urNp linux-2.6.38.2/arch/x86/vdso/vma.c linux-2.6.38.2/arch/x86/vdso/vma.c
20210- return 0; 20948- return 0;
20211-} 20949-}
20212-__setup("vdso=", vdso_setup); 20950-__setup("vdso=", vdso_setup);
20213diff -urNp linux-2.6.38.2/arch/x86/xen/enlighten.c linux-2.6.38.2/arch/x86/xen/enlighten.c 20951diff -urNp linux-2.6.38.3/arch/x86/xen/enlighten.c linux-2.6.38.3/arch/x86/xen/enlighten.c
20214--- linux-2.6.38.2/arch/x86/xen/enlighten.c 2011-03-14 21:20:32.000000000 -0400 20952--- linux-2.6.38.3/arch/x86/xen/enlighten.c 2011-03-14 21:20:32.000000000 -0400
20215+++ linux-2.6.38.2/arch/x86/xen/enlighten.c 2011-03-21 18:31:35.000000000 -0400 20953+++ linux-2.6.38.3/arch/x86/xen/enlighten.c 2011-04-17 15:57:32.000000000 -0400
20216@@ -85,8 +85,6 @@ EXPORT_SYMBOL_GPL(xen_start_info); 20954@@ -85,8 +85,6 @@ EXPORT_SYMBOL_GPL(xen_start_info);
20217 20955
20218 struct shared_info xen_dummy_shared_info; 20956 struct shared_info xen_dummy_shared_info;
@@ -20255,9 +20993,9 @@ diff -urNp linux-2.6.38.2/arch/x86/xen/enlighten.c linux-2.6.38.2/arch/x86/xen/e
20255 xen_smp_init(); 20993 xen_smp_init();
20256 20994
20257 #ifdef CONFIG_ACPI_NUMA 20995 #ifdef CONFIG_ACPI_NUMA
20258diff -urNp linux-2.6.38.2/arch/x86/xen/mmu.c linux-2.6.38.2/arch/x86/xen/mmu.c 20996diff -urNp linux-2.6.38.3/arch/x86/xen/mmu.c linux-2.6.38.3/arch/x86/xen/mmu.c
20259--- linux-2.6.38.2/arch/x86/xen/mmu.c 2011-03-28 17:42:40.000000000 -0400 20997--- linux-2.6.38.3/arch/x86/xen/mmu.c 2011-04-18 17:27:16.000000000 -0400
20260+++ linux-2.6.38.2/arch/x86/xen/mmu.c 2011-03-28 17:42:53.000000000 -0400 20998+++ linux-2.6.38.3/arch/x86/xen/mmu.c 2011-04-17 15:57:32.000000000 -0400
20261@@ -1721,6 +1721,8 @@ __init pgd_t *xen_setup_kernel_pagetable 20999@@ -1721,6 +1721,8 @@ __init pgd_t *xen_setup_kernel_pagetable
20262 convert_pfn_mfn(init_level4_pgt); 21000 convert_pfn_mfn(init_level4_pgt);
20263 convert_pfn_mfn(level3_ident_pgt); 21001 convert_pfn_mfn(level3_ident_pgt);
@@ -20278,9 +21016,9 @@ diff -urNp linux-2.6.38.2/arch/x86/xen/mmu.c linux-2.6.38.2/arch/x86/xen/mmu.c
20278 set_page_prot(level2_kernel_pgt, PAGE_KERNEL_RO); 21016 set_page_prot(level2_kernel_pgt, PAGE_KERNEL_RO);
20279 set_page_prot(level2_fixmap_pgt, PAGE_KERNEL_RO); 21017 set_page_prot(level2_fixmap_pgt, PAGE_KERNEL_RO);
20280 21018
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 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
20282--- linux-2.6.38.2/arch/x86/xen/pci-swiotlb-xen.c 2011-03-14 21:20:32.000000000 -0400 21020--- linux-2.6.38.3/arch/x86/xen/pci-swiotlb-xen.c 2011-03-14 21:20:32.000000000 -0400
20283+++ linux-2.6.38.2/arch/x86/xen/pci-swiotlb-xen.c 2011-03-21 18:31:35.000000000 -0400 21021+++ linux-2.6.38.3/arch/x86/xen/pci-swiotlb-xen.c 2011-04-17 15:57:32.000000000 -0400
20284@@ -10,7 +10,7 @@ 21022@@ -10,7 +10,7 @@
20285 21023
20286 int xen_swiotlb __read_mostly; 21024 int xen_swiotlb __read_mostly;
@@ -20290,9 +21028,9 @@ diff -urNp linux-2.6.38.2/arch/x86/xen/pci-swiotlb-xen.c linux-2.6.38.2/arch/x86
20290 .mapping_error = xen_swiotlb_dma_mapping_error, 21028 .mapping_error = xen_swiotlb_dma_mapping_error,
20291 .alloc_coherent = xen_swiotlb_alloc_coherent, 21029 .alloc_coherent = xen_swiotlb_alloc_coherent,
20292 .free_coherent = xen_swiotlb_free_coherent, 21030 .free_coherent = xen_swiotlb_free_coherent,
20293diff -urNp linux-2.6.38.2/arch/x86/xen/smp.c linux-2.6.38.2/arch/x86/xen/smp.c 21031diff -urNp linux-2.6.38.3/arch/x86/xen/smp.c linux-2.6.38.3/arch/x86/xen/smp.c
20294--- linux-2.6.38.2/arch/x86/xen/smp.c 2011-03-14 21:20:32.000000000 -0400 21032--- linux-2.6.38.3/arch/x86/xen/smp.c 2011-03-14 21:20:32.000000000 -0400
20295+++ linux-2.6.38.2/arch/x86/xen/smp.c 2011-03-21 18:31:35.000000000 -0400 21033+++ linux-2.6.38.3/arch/x86/xen/smp.c 2011-04-17 15:57:32.000000000 -0400
20296@@ -194,11 +194,6 @@ static void __init xen_smp_prepare_boot_ 21034@@ -194,11 +194,6 @@ static void __init xen_smp_prepare_boot_
20297 { 21035 {
20298 BUG_ON(smp_processor_id() != 0); 21036 BUG_ON(smp_processor_id() != 0);
@@ -20321,9 +21059,25 @@ diff -urNp linux-2.6.38.2/arch/x86/xen/smp.c linux-2.6.38.2/arch/x86/xen/smp.c
20321 #else 21059 #else
20322 ctxt->gs_base_kernel = per_cpu_offset(cpu); 21060 ctxt->gs_base_kernel = per_cpu_offset(cpu);
20323 #endif 21061 #endif
20324diff -urNp linux-2.6.38.2/arch/x86/xen/xen-head.S linux-2.6.38.2/arch/x86/xen/xen-head.S 21062@@ -315,13 +310,12 @@ static int __cpuinit xen_cpu_up(unsigned
20325--- linux-2.6.38.2/arch/x86/xen/xen-head.S 2011-03-14 21:20:32.000000000 -0400 21063 int rc;
20326+++ linux-2.6.38.2/arch/x86/xen/xen-head.S 2011-03-21 18:31:35.000000000 -0400 21064
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
20327@@ -19,6 +19,17 @@ ENTRY(startup_xen) 21081@@ -19,6 +19,17 @@ ENTRY(startup_xen)
20328 #ifdef CONFIG_X86_32 21082 #ifdef CONFIG_X86_32
20329 mov %esi,xen_start_info 21083 mov %esi,xen_start_info
@@ -20342,9 +21096,9 @@ diff -urNp linux-2.6.38.2/arch/x86/xen/xen-head.S linux-2.6.38.2/arch/x86/xen/xe
20342 #else 21096 #else
20343 mov %rsi,xen_start_info 21097 mov %rsi,xen_start_info
20344 mov $init_thread_union+THREAD_SIZE,%rsp 21098 mov $init_thread_union+THREAD_SIZE,%rsp
20345diff -urNp linux-2.6.38.2/arch/x86/xen/xen-ops.h linux-2.6.38.2/arch/x86/xen/xen-ops.h 21099diff -urNp linux-2.6.38.3/arch/x86/xen/xen-ops.h linux-2.6.38.3/arch/x86/xen/xen-ops.h
20346--- linux-2.6.38.2/arch/x86/xen/xen-ops.h 2011-03-14 21:20:32.000000000 -0400 21100--- linux-2.6.38.3/arch/x86/xen/xen-ops.h 2011-03-14 21:20:32.000000000 -0400
20347+++ linux-2.6.38.2/arch/x86/xen/xen-ops.h 2011-03-21 18:31:35.000000000 -0400 21101+++ linux-2.6.38.3/arch/x86/xen/xen-ops.h 2011-04-17 15:57:32.000000000 -0400
20348@@ -10,8 +10,6 @@ 21102@@ -10,8 +10,6 @@
20349 extern const char xen_hypervisor_callback[]; 21103 extern const char xen_hypervisor_callback[];
20350 extern const char xen_failsafe_callback[]; 21104 extern const char xen_failsafe_callback[];
@@ -20354,9 +21108,9 @@ diff -urNp linux-2.6.38.2/arch/x86/xen/xen-ops.h linux-2.6.38.2/arch/x86/xen/xen
20354 struct trap_info; 21108 struct trap_info;
20355 void xen_copy_trap_info(struct trap_info *traps); 21109 void xen_copy_trap_info(struct trap_info *traps);
20356 21110
20357diff -urNp linux-2.6.38.2/block/blk-iopoll.c linux-2.6.38.2/block/blk-iopoll.c 21111diff -urNp linux-2.6.38.3/block/blk-iopoll.c linux-2.6.38.3/block/blk-iopoll.c
20358--- linux-2.6.38.2/block/blk-iopoll.c 2011-03-14 21:20:32.000000000 -0400 21112--- linux-2.6.38.3/block/blk-iopoll.c 2011-03-14 21:20:32.000000000 -0400
20359+++ linux-2.6.38.2/block/blk-iopoll.c 2011-03-21 18:31:35.000000000 -0400 21113+++ linux-2.6.38.3/block/blk-iopoll.c 2011-04-17 15:57:32.000000000 -0400
20360@@ -77,7 +77,7 @@ void blk_iopoll_complete(struct blk_iopo 21114@@ -77,7 +77,7 @@ void blk_iopoll_complete(struct blk_iopo
20361 } 21115 }
20362 EXPORT_SYMBOL(blk_iopoll_complete); 21116 EXPORT_SYMBOL(blk_iopoll_complete);
@@ -20366,9 +21120,9 @@ diff -urNp linux-2.6.38.2/block/blk-iopoll.c linux-2.6.38.2/block/blk-iopoll.c
20366 { 21120 {
20367 struct list_head *list = &__get_cpu_var(blk_cpu_iopoll); 21121 struct list_head *list = &__get_cpu_var(blk_cpu_iopoll);
20368 int rearm = 0, budget = blk_iopoll_budget; 21122 int rearm = 0, budget = blk_iopoll_budget;
20369diff -urNp linux-2.6.38.2/block/blk-map.c linux-2.6.38.2/block/blk-map.c 21123diff -urNp linux-2.6.38.3/block/blk-map.c linux-2.6.38.3/block/blk-map.c
20370--- linux-2.6.38.2/block/blk-map.c 2011-03-14 21:20:32.000000000 -0400 21124--- linux-2.6.38.3/block/blk-map.c 2011-03-14 21:20:32.000000000 -0400
20371+++ linux-2.6.38.2/block/blk-map.c 2011-03-21 18:31:35.000000000 -0400 21125+++ linux-2.6.38.3/block/blk-map.c 2011-04-17 15:57:32.000000000 -0400
20372@@ -301,7 +301,7 @@ int blk_rq_map_kern(struct request_queue 21126@@ -301,7 +301,7 @@ int blk_rq_map_kern(struct request_queue
20373 if (!len || !kbuf) 21127 if (!len || !kbuf)
20374 return -EINVAL; 21128 return -EINVAL;
@@ -20378,9 +21132,9 @@ diff -urNp linux-2.6.38.2/block/blk-map.c linux-2.6.38.2/block/blk-map.c
20378 if (do_copy) 21132 if (do_copy)
20379 bio = bio_copy_kern(q, kbuf, len, gfp_mask, reading); 21133 bio = bio_copy_kern(q, kbuf, len, gfp_mask, reading);
20380 else 21134 else
20381diff -urNp linux-2.6.38.2/block/blk-softirq.c linux-2.6.38.2/block/blk-softirq.c 21135diff -urNp linux-2.6.38.3/block/blk-softirq.c linux-2.6.38.3/block/blk-softirq.c
20382--- linux-2.6.38.2/block/blk-softirq.c 2011-03-14 21:20:32.000000000 -0400 21136--- linux-2.6.38.3/block/blk-softirq.c 2011-03-14 21:20:32.000000000 -0400
20383+++ linux-2.6.38.2/block/blk-softirq.c 2011-03-21 18:31:35.000000000 -0400 21137+++ linux-2.6.38.3/block/blk-softirq.c 2011-04-17 15:57:32.000000000 -0400
20384@@ -17,7 +17,7 @@ static DEFINE_PER_CPU(struct list_head, 21138@@ -17,7 +17,7 @@ static DEFINE_PER_CPU(struct list_head,
20385 * Softirq action handler - move entries to local list and loop over them 21139 * Softirq action handler - move entries to local list and loop over them
20386 * while passing them to the queue registered handler. 21140 * while passing them to the queue registered handler.
@@ -20390,9 +21144,93 @@ diff -urNp linux-2.6.38.2/block/blk-softirq.c linux-2.6.38.2/block/blk-softirq.c
20390 { 21144 {
20391 struct list_head *cpu_list, local_list; 21145 struct list_head *cpu_list, local_list;
20392 21146
20393diff -urNp linux-2.6.38.2/crypto/lrw.c linux-2.6.38.2/crypto/lrw.c 21147diff -urNp linux-2.6.38.3/block/bsg.c linux-2.6.38.3/block/bsg.c
20394--- linux-2.6.38.2/crypto/lrw.c 2011-03-14 21:20:32.000000000 -0400 21148--- linux-2.6.38.3/block/bsg.c 2011-03-14 21:20:32.000000000 -0400
20395+++ linux-2.6.38.2/crypto/lrw.c 2011-03-21 18:31:35.000000000 -0400 21149+++ linux-2.6.38.3/block/bsg.c 2011-04-17 15:57:32.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
20396@@ -60,7 +60,7 @@ static int setkey(struct crypto_tfm *par 21234@@ -60,7 +60,7 @@ static int setkey(struct crypto_tfm *par
20397 struct priv *ctx = crypto_tfm_ctx(parent); 21235 struct priv *ctx = crypto_tfm_ctx(parent);
20398 struct crypto_cipher *child = ctx->child; 21236 struct crypto_cipher *child = ctx->child;
@@ -20402,9 +21240,9 @@ diff -urNp linux-2.6.38.2/crypto/lrw.c linux-2.6.38.2/crypto/lrw.c
20402 int bsize = crypto_cipher_blocksize(child); 21240 int bsize = crypto_cipher_blocksize(child);
20403 21241
20404 crypto_cipher_clear_flags(child, CRYPTO_TFM_REQ_MASK); 21242 crypto_cipher_clear_flags(child, CRYPTO_TFM_REQ_MASK);
20405diff -urNp linux-2.6.38.2/Documentation/dontdiff linux-2.6.38.2/Documentation/dontdiff 21243diff -urNp linux-2.6.38.3/Documentation/dontdiff linux-2.6.38.3/Documentation/dontdiff
20406--- linux-2.6.38.2/Documentation/dontdiff 2011-03-14 21:20:32.000000000 -0400 21244--- linux-2.6.38.3/Documentation/dontdiff 2011-03-14 21:20:32.000000000 -0400
20407+++ linux-2.6.38.2/Documentation/dontdiff 2011-03-21 18:31:35.000000000 -0400 21245+++ linux-2.6.38.3/Documentation/dontdiff 2011-04-17 15:57:32.000000000 -0400
20408@@ -3,6 +3,7 @@ 21246@@ -3,6 +3,7 @@
20409 *.bin 21247 *.bin
20410 *.cpio 21248 *.cpio
@@ -20530,9 +21368,9 @@ diff -urNp linux-2.6.38.2/Documentation/dontdiff linux-2.6.38.2/Documentation/do
20530 wakeup.bin 21368 wakeup.bin
20531 wakeup.elf 21369 wakeup.elf
20532 wakeup.lds 21370 wakeup.lds
20533diff -urNp linux-2.6.38.2/Documentation/filesystems/sysfs.txt linux-2.6.38.2/Documentation/filesystems/sysfs.txt 21371diff -urNp linux-2.6.38.3/Documentation/filesystems/sysfs.txt linux-2.6.38.3/Documentation/filesystems/sysfs.txt
20534--- linux-2.6.38.2/Documentation/filesystems/sysfs.txt 2011-03-14 21:20:32.000000000 -0400 21372--- linux-2.6.38.3/Documentation/filesystems/sysfs.txt 2011-03-14 21:20:32.000000000 -0400
20535+++ linux-2.6.38.2/Documentation/filesystems/sysfs.txt 2011-03-21 18:31:35.000000000 -0400 21373+++ linux-2.6.38.3/Documentation/filesystems/sysfs.txt 2011-04-17 15:57:32.000000000 -0400
20536@@ -123,8 +123,8 @@ set of sysfs operations for forwarding r 21374@@ -123,8 +123,8 @@ set of sysfs operations for forwarding r
20537 show and store methods of the attribute owners. 21375 show and store methods of the attribute owners.
20538 21376
@@ -20544,9 +21382,9 @@ diff -urNp linux-2.6.38.2/Documentation/filesystems/sysfs.txt linux-2.6.38.2/Doc
20544 }; 21382 };
20545 21383
20546 [ Subsystems should have already defined a struct kobj_type as a 21384 [ Subsystems should have already defined a struct kobj_type as a
20547diff -urNp linux-2.6.38.2/Documentation/kernel-parameters.txt linux-2.6.38.2/Documentation/kernel-parameters.txt 21385diff -urNp linux-2.6.38.3/Documentation/kernel-parameters.txt linux-2.6.38.3/Documentation/kernel-parameters.txt
20548--- linux-2.6.38.2/Documentation/kernel-parameters.txt 2011-03-14 21:20:32.000000000 -0400 21386--- linux-2.6.38.3/Documentation/kernel-parameters.txt 2011-03-14 21:20:32.000000000 -0400
20549+++ linux-2.6.38.2/Documentation/kernel-parameters.txt 2011-03-21 18:31:35.000000000 -0400 21387+++ linux-2.6.38.3/Documentation/kernel-parameters.txt 2011-04-17 15:57:32.000000000 -0400
20550@@ -1853,6 +1853,13 @@ bytes respectively. Such letter suffixes 21388@@ -1853,6 +1853,13 @@ bytes respectively. Such letter suffixes
20551 the specified number of seconds. This is to be used if 21389 the specified number of seconds. This is to be used if
20552 your oopses keep scrolling off the screen. 21390 your oopses keep scrolling off the screen.
@@ -20561,9 +21399,9 @@ diff -urNp linux-2.6.38.2/Documentation/kernel-parameters.txt linux-2.6.38.2/Doc
20561 pcbit= [HW,ISDN] 21399 pcbit= [HW,ISDN]
20562 21400
20563 pcd. [PARIDE] 21401 pcd. [PARIDE]
20564diff -urNp linux-2.6.38.2/drivers/acpi/battery.c linux-2.6.38.2/drivers/acpi/battery.c 21402diff -urNp linux-2.6.38.3/drivers/acpi/battery.c linux-2.6.38.3/drivers/acpi/battery.c
20565--- linux-2.6.38.2/drivers/acpi/battery.c 2011-03-14 21:20:32.000000000 -0400 21403--- linux-2.6.38.3/drivers/acpi/battery.c 2011-03-14 21:20:32.000000000 -0400
20566+++ linux-2.6.38.2/drivers/acpi/battery.c 2011-03-21 18:31:35.000000000 -0400 21404+++ linux-2.6.38.3/drivers/acpi/battery.c 2011-04-17 15:57:32.000000000 -0400
20567@@ -862,7 +862,7 @@ DECLARE_FILE_FUNCTIONS(alarm); 21405@@ -862,7 +862,7 @@ DECLARE_FILE_FUNCTIONS(alarm);
20568 } 21406 }
20569 21407
@@ -20573,9 +21411,9 @@ diff -urNp linux-2.6.38.2/drivers/acpi/battery.c linux-2.6.38.2/drivers/acpi/bat
20573 mode_t mode; 21411 mode_t mode;
20574 const char *name; 21412 const char *name;
20575 } acpi_battery_file[] = { 21413 } acpi_battery_file[] = {
20576diff -urNp linux-2.6.38.2/drivers/acpi/blacklist.c linux-2.6.38.2/drivers/acpi/blacklist.c 21414diff -urNp linux-2.6.38.3/drivers/acpi/blacklist.c linux-2.6.38.3/drivers/acpi/blacklist.c
20577--- linux-2.6.38.2/drivers/acpi/blacklist.c 2011-03-14 21:20:32.000000000 -0400 21415--- linux-2.6.38.3/drivers/acpi/blacklist.c 2011-03-14 21:20:32.000000000 -0400
20578+++ linux-2.6.38.2/drivers/acpi/blacklist.c 2011-03-21 18:31:35.000000000 -0400 21416+++ linux-2.6.38.3/drivers/acpi/blacklist.c 2011-04-17 15:57:32.000000000 -0400
20579@@ -73,7 +73,7 @@ static struct acpi_blacklist_item acpi_b 21417@@ -73,7 +73,7 @@ static struct acpi_blacklist_item acpi_b
20580 {"IBM ", "TP600E ", 0x00000105, ACPI_SIG_DSDT, less_than_or_equal, 21418 {"IBM ", "TP600E ", 0x00000105, ACPI_SIG_DSDT, less_than_or_equal,
20581 "Incorrect _ADR", 1}, 21419 "Incorrect _ADR", 1},
@@ -20585,9 +21423,9 @@ diff -urNp linux-2.6.38.2/drivers/acpi/blacklist.c linux-2.6.38.2/drivers/acpi/b
20585 }; 21423 };
20586 21424
20587 #if CONFIG_ACPI_BLACKLIST_YEAR 21425 #if CONFIG_ACPI_BLACKLIST_YEAR
20588diff -urNp linux-2.6.38.2/drivers/acpi/dock.c linux-2.6.38.2/drivers/acpi/dock.c 21426diff -urNp linux-2.6.38.3/drivers/acpi/dock.c linux-2.6.38.3/drivers/acpi/dock.c
20589--- linux-2.6.38.2/drivers/acpi/dock.c 2011-03-14 21:20:32.000000000 -0400 21427--- linux-2.6.38.3/drivers/acpi/dock.c 2011-03-14 21:20:32.000000000 -0400
20590+++ linux-2.6.38.2/drivers/acpi/dock.c 2011-03-21 18:31:35.000000000 -0400 21428+++ linux-2.6.38.3/drivers/acpi/dock.c 2011-04-17 15:57:32.000000000 -0400
20591@@ -77,7 +77,7 @@ struct dock_dependent_device { 21429@@ -77,7 +77,7 @@ struct dock_dependent_device {
20592 struct list_head list; 21430 struct list_head list;
20593 struct list_head hotplug_list; 21431 struct list_head hotplug_list;
@@ -20606,9 +21444,9 @@ diff -urNp linux-2.6.38.2/drivers/acpi/dock.c linux-2.6.38.2/drivers/acpi/dock.c
20606 void *context) 21444 void *context)
20607 { 21445 {
20608 struct dock_dependent_device *dd; 21446 struct dock_dependent_device *dd;
20609diff -urNp linux-2.6.38.2/drivers/acpi/ec_sys.c linux-2.6.38.2/drivers/acpi/ec_sys.c 21447diff -urNp linux-2.6.38.3/drivers/acpi/ec_sys.c linux-2.6.38.3/drivers/acpi/ec_sys.c
20610--- linux-2.6.38.2/drivers/acpi/ec_sys.c 2011-03-14 21:20:32.000000000 -0400 21448--- linux-2.6.38.3/drivers/acpi/ec_sys.c 2011-03-14 21:20:32.000000000 -0400
20611+++ linux-2.6.38.2/drivers/acpi/ec_sys.c 2011-03-21 18:31:35.000000000 -0400 21449+++ linux-2.6.38.3/drivers/acpi/ec_sys.c 2011-04-17 15:57:32.000000000 -0400
20612@@ -96,7 +96,7 @@ static ssize_t acpi_ec_write_io(struct f 21450@@ -96,7 +96,7 @@ static ssize_t acpi_ec_write_io(struct f
20613 return count; 21451 return count;
20614 } 21452 }
@@ -20618,9 +21456,9 @@ diff -urNp linux-2.6.38.2/drivers/acpi/ec_sys.c linux-2.6.38.2/drivers/acpi/ec_s
20618 .owner = THIS_MODULE, 21456 .owner = THIS_MODULE,
20619 .open = acpi_ec_open_io, 21457 .open = acpi_ec_open_io,
20620 .read = acpi_ec_read_io, 21458 .read = acpi_ec_read_io,
20621diff -urNp linux-2.6.38.2/drivers/acpi/power_meter.c linux-2.6.38.2/drivers/acpi/power_meter.c 21459diff -urNp linux-2.6.38.3/drivers/acpi/power_meter.c linux-2.6.38.3/drivers/acpi/power_meter.c
20622--- linux-2.6.38.2/drivers/acpi/power_meter.c 2011-03-14 21:20:32.000000000 -0400 21460--- linux-2.6.38.3/drivers/acpi/power_meter.c 2011-03-14 21:20:32.000000000 -0400
20623+++ linux-2.6.38.2/drivers/acpi/power_meter.c 2011-03-21 18:31:35.000000000 -0400 21461+++ linux-2.6.38.3/drivers/acpi/power_meter.c 2011-04-17 15:57:32.000000000 -0400
20624@@ -316,8 +316,6 @@ static ssize_t set_trip(struct device *d 21462@@ -316,8 +316,6 @@ static ssize_t set_trip(struct device *d
20625 return res; 21463 return res;
20626 21464
@@ -20630,9 +21468,9 @@ diff -urNp linux-2.6.38.2/drivers/acpi/power_meter.c linux-2.6.38.2/drivers/acpi
20630 21468
20631 mutex_lock(&resource->lock); 21469 mutex_lock(&resource->lock);
20632 resource->trip[attr->index - 7] = temp; 21470 resource->trip[attr->index - 7] = temp;
20633diff -urNp linux-2.6.38.2/drivers/acpi/proc.c linux-2.6.38.2/drivers/acpi/proc.c 21471diff -urNp linux-2.6.38.3/drivers/acpi/proc.c linux-2.6.38.3/drivers/acpi/proc.c
20634--- linux-2.6.38.2/drivers/acpi/proc.c 2011-03-14 21:20:32.000000000 -0400 21472--- linux-2.6.38.3/drivers/acpi/proc.c 2011-03-14 21:20:32.000000000 -0400
20635+++ linux-2.6.38.2/drivers/acpi/proc.c 2011-03-21 18:31:35.000000000 -0400 21473+++ linux-2.6.38.3/drivers/acpi/proc.c 2011-04-17 15:57:32.000000000 -0400
20636@@ -342,19 +342,13 @@ acpi_system_write_wakeup_device(struct f 21474@@ -342,19 +342,13 @@ acpi_system_write_wakeup_device(struct f
20637 size_t count, loff_t * ppos) 21475 size_t count, loff_t * ppos)
20638 { 21476 {
@@ -20667,9 +21505,9 @@ diff -urNp linux-2.6.38.2/drivers/acpi/proc.c linux-2.6.38.2/drivers/acpi/proc.c
20667 if (device_can_wakeup(&dev->dev)) { 21505 if (device_can_wakeup(&dev->dev)) {
20668 bool enable = !device_may_wakeup(&dev->dev); 21506 bool enable = !device_may_wakeup(&dev->dev);
20669 device_set_wakeup_enable(&dev->dev, enable); 21507 device_set_wakeup_enable(&dev->dev, enable);
20670diff -urNp linux-2.6.38.2/drivers/acpi/processor_driver.c linux-2.6.38.2/drivers/acpi/processor_driver.c 21508diff -urNp linux-2.6.38.3/drivers/acpi/processor_driver.c linux-2.6.38.3/drivers/acpi/processor_driver.c
20671--- linux-2.6.38.2/drivers/acpi/processor_driver.c 2011-03-14 21:20:32.000000000 -0400 21509--- linux-2.6.38.3/drivers/acpi/processor_driver.c 2011-03-14 21:20:32.000000000 -0400
20672+++ linux-2.6.38.2/drivers/acpi/processor_driver.c 2011-03-21 18:31:35.000000000 -0400 21510+++ linux-2.6.38.3/drivers/acpi/processor_driver.c 2011-04-17 15:57:32.000000000 -0400
20673@@ -473,7 +473,7 @@ static int __cpuinit acpi_processor_add( 21511@@ -473,7 +473,7 @@ static int __cpuinit acpi_processor_add(
20674 return 0; 21512 return 0;
20675 #endif 21513 #endif
@@ -20679,9 +21517,9 @@ diff -urNp linux-2.6.38.2/drivers/acpi/processor_driver.c linux-2.6.38.2/drivers
20679 21517
20680 /* 21518 /*
20681 * Buggy BIOS check 21519 * Buggy BIOS check
20682diff -urNp linux-2.6.38.2/drivers/acpi/processor_idle.c linux-2.6.38.2/drivers/acpi/processor_idle.c 21520diff -urNp linux-2.6.38.3/drivers/acpi/processor_idle.c linux-2.6.38.3/drivers/acpi/processor_idle.c
20683--- linux-2.6.38.2/drivers/acpi/processor_idle.c 2011-03-14 21:20:32.000000000 -0400 21521--- linux-2.6.38.3/drivers/acpi/processor_idle.c 2011-03-14 21:20:32.000000000 -0400
20684+++ linux-2.6.38.2/drivers/acpi/processor_idle.c 2011-03-21 18:31:35.000000000 -0400 21522+++ linux-2.6.38.3/drivers/acpi/processor_idle.c 2011-04-17 15:57:32.000000000 -0400
20685@@ -121,7 +121,7 @@ static struct dmi_system_id __cpuinitdat 21523@@ -121,7 +121,7 @@ static struct dmi_system_id __cpuinitdat
20686 DMI_MATCH(DMI_SYS_VENDOR, "ASUSTeK Computer Inc."), 21524 DMI_MATCH(DMI_SYS_VENDOR, "ASUSTeK Computer Inc."),
20687 DMI_MATCH(DMI_PRODUCT_NAME,"L8400B series Notebook PC")}, 21525 DMI_MATCH(DMI_PRODUCT_NAME,"L8400B series Notebook PC")},
@@ -20691,9 +21529,9 @@ diff -urNp linux-2.6.38.2/drivers/acpi/processor_idle.c linux-2.6.38.2/drivers/a
20691 }; 21529 };
20692 21530
20693 21531
20694diff -urNp linux-2.6.38.2/drivers/ata/acard-ahci.c linux-2.6.38.2/drivers/ata/acard-ahci.c 21532diff -urNp linux-2.6.38.3/drivers/ata/acard-ahci.c linux-2.6.38.3/drivers/ata/acard-ahci.c
20695--- linux-2.6.38.2/drivers/ata/acard-ahci.c 2011-03-14 21:20:32.000000000 -0400 21533--- linux-2.6.38.3/drivers/ata/acard-ahci.c 2011-03-14 21:20:32.000000000 -0400
20696+++ linux-2.6.38.2/drivers/ata/acard-ahci.c 2011-03-21 18:31:35.000000000 -0400 21534+++ linux-2.6.38.3/drivers/ata/acard-ahci.c 2011-04-17 15:57:32.000000000 -0400
20697@@ -87,7 +87,7 @@ static struct scsi_host_template acard_a 21535@@ -87,7 +87,7 @@ static struct scsi_host_template acard_a
20698 AHCI_SHT("acard-ahci"), 21536 AHCI_SHT("acard-ahci"),
20699 }; 21537 };
@@ -20703,9 +21541,9 @@ diff -urNp linux-2.6.38.2/drivers/ata/acard-ahci.c linux-2.6.38.2/drivers/ata/ac
20703 .inherits = &ahci_ops, 21541 .inherits = &ahci_ops,
20704 .qc_prep = acard_ahci_qc_prep, 21542 .qc_prep = acard_ahci_qc_prep,
20705 .qc_fill_rtf = acard_ahci_qc_fill_rtf, 21543 .qc_fill_rtf = acard_ahci_qc_fill_rtf,
20706diff -urNp linux-2.6.38.2/drivers/ata/ahci.c linux-2.6.38.2/drivers/ata/ahci.c 21544diff -urNp linux-2.6.38.3/drivers/ata/ahci.c linux-2.6.38.3/drivers/ata/ahci.c
20707--- linux-2.6.38.2/drivers/ata/ahci.c 2011-03-23 17:20:06.000000000 -0400 21545--- linux-2.6.38.3/drivers/ata/ahci.c 2011-04-18 17:27:13.000000000 -0400
20708+++ linux-2.6.38.2/drivers/ata/ahci.c 2011-03-23 17:21:49.000000000 -0400 21546+++ linux-2.6.38.3/drivers/ata/ahci.c 2011-04-17 15:57:32.000000000 -0400
20709@@ -94,17 +94,17 @@ static struct scsi_host_template ahci_sh 21547@@ -94,17 +94,17 @@ static struct scsi_host_template ahci_sh
20710 AHCI_SHT("ahci"), 21548 AHCI_SHT("ahci"),
20711 }; 21549 };
@@ -20736,9 +21574,9 @@ diff -urNp linux-2.6.38.2/drivers/ata/ahci.c linux-2.6.38.2/drivers/ata/ahci.c
20736 }; 21574 };
20737 21575
20738 21576
20739diff -urNp linux-2.6.38.2/drivers/ata/ahci.h linux-2.6.38.2/drivers/ata/ahci.h 21577diff -urNp linux-2.6.38.3/drivers/ata/ahci.h linux-2.6.38.3/drivers/ata/ahci.h
20740--- linux-2.6.38.2/drivers/ata/ahci.h 2011-03-14 21:20:32.000000000 -0400 21578--- linux-2.6.38.3/drivers/ata/ahci.h 2011-03-14 21:20:32.000000000 -0400
20741+++ linux-2.6.38.2/drivers/ata/ahci.h 2011-03-21 18:31:35.000000000 -0400 21579+++ linux-2.6.38.3/drivers/ata/ahci.h 2011-04-17 15:57:32.000000000 -0400
20742@@ -309,7 +309,7 @@ extern struct device_attribute *ahci_sde 21580@@ -309,7 +309,7 @@ extern struct device_attribute *ahci_sde
20743 .shost_attrs = ahci_shost_attrs, \ 21581 .shost_attrs = ahci_shost_attrs, \
20744 .sdev_attrs = ahci_sdev_attrs 21582 .sdev_attrs = ahci_sdev_attrs
@@ -20748,9 +21586,9 @@ diff -urNp linux-2.6.38.2/drivers/ata/ahci.h linux-2.6.38.2/drivers/ata/ahci.h
20748 21586
20749 void ahci_fill_cmd_slot(struct ahci_port_priv *pp, unsigned int tag, 21587 void ahci_fill_cmd_slot(struct ahci_port_priv *pp, unsigned int tag,
20750 u32 opts); 21588 u32 opts);
20751diff -urNp linux-2.6.38.2/drivers/ata/ata_generic.c linux-2.6.38.2/drivers/ata/ata_generic.c 21589diff -urNp linux-2.6.38.3/drivers/ata/ata_generic.c linux-2.6.38.3/drivers/ata/ata_generic.c
20752--- linux-2.6.38.2/drivers/ata/ata_generic.c 2011-03-14 21:20:32.000000000 -0400 21590--- linux-2.6.38.3/drivers/ata/ata_generic.c 2011-03-14 21:20:32.000000000 -0400
20753+++ linux-2.6.38.2/drivers/ata/ata_generic.c 2011-03-21 18:31:35.000000000 -0400 21591+++ linux-2.6.38.3/drivers/ata/ata_generic.c 2011-04-17 15:57:32.000000000 -0400
20754@@ -101,7 +101,7 @@ static struct scsi_host_template generic 21592@@ -101,7 +101,7 @@ static struct scsi_host_template generic
20755 ATA_BMDMA_SHT(DRV_NAME), 21593 ATA_BMDMA_SHT(DRV_NAME),
20756 }; 21594 };
@@ -20760,9 +21598,9 @@ diff -urNp linux-2.6.38.2/drivers/ata/ata_generic.c linux-2.6.38.2/drivers/ata/a
20760 .inherits = &ata_bmdma_port_ops, 21598 .inherits = &ata_bmdma_port_ops,
20761 .cable_detect = ata_cable_unknown, 21599 .cable_detect = ata_cable_unknown,
20762 .set_mode = generic_set_mode, 21600 .set_mode = generic_set_mode,
20763diff -urNp linux-2.6.38.2/drivers/ata/ata_piix.c linux-2.6.38.2/drivers/ata/ata_piix.c 21601diff -urNp linux-2.6.38.3/drivers/ata/ata_piix.c linux-2.6.38.3/drivers/ata/ata_piix.c
20764--- linux-2.6.38.2/drivers/ata/ata_piix.c 2011-03-14 21:20:32.000000000 -0400 21602--- linux-2.6.38.3/drivers/ata/ata_piix.c 2011-03-14 21:20:32.000000000 -0400
20765+++ linux-2.6.38.2/drivers/ata/ata_piix.c 2011-03-21 18:31:35.000000000 -0400 21603+++ linux-2.6.38.3/drivers/ata/ata_piix.c 2011-04-17 15:57:32.000000000 -0400
20766@@ -309,7 +309,7 @@ static const struct pci_device_id piix_p 21604@@ -309,7 +309,7 @@ static const struct pci_device_id piix_p
20767 { 0x8086, 0x1d00, PCI_ANY_ID, PCI_ANY_ID, 0, 0, ich8_sata }, 21605 { 0x8086, 0x1d00, PCI_ANY_ID, PCI_ANY_ID, 0, 0, ich8_sata },
20768 /* SATA Controller IDE (PBG) */ 21606 /* SATA Controller IDE (PBG) */
@@ -20829,9 +21667,9 @@ diff -urNp linux-2.6.38.2/drivers/ata/ata_piix.c linux-2.6.38.2/drivers/ata/ata_
20829 }; 21667 };
20830 static const char *oemstrs[] = { 21668 static const char *oemstrs[] = {
20831 "Tecra M3,", 21669 "Tecra M3,",
20832diff -urNp linux-2.6.38.2/drivers/ata/libahci.c linux-2.6.38.2/drivers/ata/libahci.c 21670diff -urNp linux-2.6.38.3/drivers/ata/libahci.c linux-2.6.38.3/drivers/ata/libahci.c
20833--- linux-2.6.38.2/drivers/ata/libahci.c 2011-03-14 21:20:32.000000000 -0400 21671--- linux-2.6.38.3/drivers/ata/libahci.c 2011-03-14 21:20:32.000000000 -0400
20834+++ linux-2.6.38.2/drivers/ata/libahci.c 2011-03-21 18:31:35.000000000 -0400 21672+++ linux-2.6.38.3/drivers/ata/libahci.c 2011-04-17 15:57:32.000000000 -0400
20835@@ -137,7 +137,7 @@ struct device_attribute *ahci_sdev_attrs 21673@@ -137,7 +137,7 @@ struct device_attribute *ahci_sdev_attrs
20836 }; 21674 };
20837 EXPORT_SYMBOL_GPL(ahci_sdev_attrs); 21675 EXPORT_SYMBOL_GPL(ahci_sdev_attrs);
@@ -20841,9 +21679,9 @@ diff -urNp linux-2.6.38.2/drivers/ata/libahci.c linux-2.6.38.2/drivers/ata/libah
20841 .inherits = &sata_pmp_port_ops, 21679 .inherits = &sata_pmp_port_ops,
20842 21680
20843 .qc_defer = ahci_pmp_qc_defer, 21681 .qc_defer = ahci_pmp_qc_defer,
20844diff -urNp linux-2.6.38.2/drivers/ata/libata-acpi.c linux-2.6.38.2/drivers/ata/libata-acpi.c 21682diff -urNp linux-2.6.38.3/drivers/ata/libata-acpi.c linux-2.6.38.3/drivers/ata/libata-acpi.c
20845--- linux-2.6.38.2/drivers/ata/libata-acpi.c 2011-03-14 21:20:32.000000000 -0400 21683--- linux-2.6.38.3/drivers/ata/libata-acpi.c 2011-03-14 21:20:32.000000000 -0400
20846+++ linux-2.6.38.2/drivers/ata/libata-acpi.c 2011-03-21 18:31:35.000000000 -0400 21684+++ linux-2.6.38.3/drivers/ata/libata-acpi.c 2011-04-17 15:57:32.000000000 -0400
20847@@ -218,12 +218,12 @@ static void ata_acpi_dev_uevent(acpi_han 21685@@ -218,12 +218,12 @@ static void ata_acpi_dev_uevent(acpi_han
20848 ata_acpi_uevent(dev->link->ap, dev, event); 21686 ata_acpi_uevent(dev->link->ap, dev, event);
20849 } 21687 }
@@ -20859,9 +21697,9 @@ diff -urNp linux-2.6.38.2/drivers/ata/libata-acpi.c linux-2.6.38.2/drivers/ata/l
20859 .handler = ata_acpi_ap_notify_dock, 21697 .handler = ata_acpi_ap_notify_dock,
20860 .uevent = ata_acpi_ap_uevent, 21698 .uevent = ata_acpi_ap_uevent,
20861 }; 21699 };
20862diff -urNp linux-2.6.38.2/drivers/ata/libata-core.c linux-2.6.38.2/drivers/ata/libata-core.c 21700diff -urNp linux-2.6.38.3/drivers/ata/libata-core.c linux-2.6.38.3/drivers/ata/libata-core.c
20863--- linux-2.6.38.2/drivers/ata/libata-core.c 2011-03-14 21:20:32.000000000 -0400 21701--- linux-2.6.38.3/drivers/ata/libata-core.c 2011-03-14 21:20:32.000000000 -0400
20864+++ linux-2.6.38.2/drivers/ata/libata-core.c 2011-03-21 18:31:35.000000000 -0400 21702+++ linux-2.6.38.3/drivers/ata/libata-core.c 2011-04-17 15:57:32.000000000 -0400
20865@@ -897,7 +897,7 @@ static const struct ata_xfer_ent { 21703@@ -897,7 +897,7 @@ static const struct ata_xfer_ent {
20866 { ATA_SHIFT_PIO, ATA_NR_PIO_MODES, XFER_PIO_0 }, 21704 { ATA_SHIFT_PIO, ATA_NR_PIO_MODES, XFER_PIO_0 },
20867 { ATA_SHIFT_MWDMA, ATA_NR_MWDMA_MODES, XFER_MW_DMA_0 }, 21705 { ATA_SHIFT_MWDMA, ATA_NR_MWDMA_MODES, XFER_MW_DMA_0 },
@@ -20953,9 +21791,9 @@ diff -urNp linux-2.6.38.2/drivers/ata/libata-core.c linux-2.6.38.2/drivers/ata/l
20953 .qc_prep = ata_noop_qc_prep, 21791 .qc_prep = ata_noop_qc_prep,
20954 .qc_issue = ata_dummy_qc_issue, 21792 .qc_issue = ata_dummy_qc_issue,
20955 .error_handler = ata_dummy_error_handler, 21793 .error_handler = ata_dummy_error_handler,
20956diff -urNp linux-2.6.38.2/drivers/ata/libata-eh.c linux-2.6.38.2/drivers/ata/libata-eh.c 21794diff -urNp linux-2.6.38.3/drivers/ata/libata-eh.c linux-2.6.38.3/drivers/ata/libata-eh.c
20957--- linux-2.6.38.2/drivers/ata/libata-eh.c 2011-03-23 17:20:06.000000000 -0400 21795--- linux-2.6.38.3/drivers/ata/libata-eh.c 2011-04-18 17:27:13.000000000 -0400
20958+++ linux-2.6.38.2/drivers/ata/libata-eh.c 2011-03-23 17:21:49.000000000 -0400 21796+++ linux-2.6.38.3/drivers/ata/libata-eh.c 2011-04-17 15:57:32.000000000 -0400
20959@@ -3880,7 +3880,7 @@ void ata_do_eh(struct ata_port *ap, ata_ 21797@@ -3880,7 +3880,7 @@ void ata_do_eh(struct ata_port *ap, ata_
20960 */ 21798 */
20961 void ata_std_error_handler(struct ata_port *ap) 21799 void ata_std_error_handler(struct ata_port *ap)
@@ -20965,9 +21803,9 @@ diff -urNp linux-2.6.38.2/drivers/ata/libata-eh.c linux-2.6.38.2/drivers/ata/lib
20965 ata_reset_fn_t hardreset = ops->hardreset; 21803 ata_reset_fn_t hardreset = ops->hardreset;
20966 21804
20967 /* ignore built-in hardreset if SCR access is not available */ 21805 /* ignore built-in hardreset if SCR access is not available */
20968diff -urNp linux-2.6.38.2/drivers/ata/libata-pmp.c linux-2.6.38.2/drivers/ata/libata-pmp.c 21806diff -urNp linux-2.6.38.3/drivers/ata/libata-pmp.c linux-2.6.38.3/drivers/ata/libata-pmp.c
20969--- linux-2.6.38.2/drivers/ata/libata-pmp.c 2011-03-14 21:20:32.000000000 -0400 21807--- linux-2.6.38.3/drivers/ata/libata-pmp.c 2011-03-14 21:20:32.000000000 -0400
20970+++ linux-2.6.38.2/drivers/ata/libata-pmp.c 2011-03-21 18:31:35.000000000 -0400 21808+++ linux-2.6.38.3/drivers/ata/libata-pmp.c 2011-04-17 15:57:32.000000000 -0400
20971@@ -912,7 +912,7 @@ static int sata_pmp_handle_link_fail(str 21809@@ -912,7 +912,7 @@ static int sata_pmp_handle_link_fail(str
20972 */ 21810 */
20973 static int sata_pmp_eh_recover(struct ata_port *ap) 21811 static int sata_pmp_eh_recover(struct ata_port *ap)
@@ -20977,9 +21815,9 @@ diff -urNp linux-2.6.38.2/drivers/ata/libata-pmp.c linux-2.6.38.2/drivers/ata/li
20977 int pmp_tries, link_tries[SATA_PMP_MAX_PORTS]; 21815 int pmp_tries, link_tries[SATA_PMP_MAX_PORTS];
20978 struct ata_link *pmp_link = &ap->link; 21816 struct ata_link *pmp_link = &ap->link;
20979 struct ata_device *pmp_dev = pmp_link->device; 21817 struct ata_device *pmp_dev = pmp_link->device;
20980diff -urNp linux-2.6.38.2/drivers/ata/pata_acpi.c linux-2.6.38.2/drivers/ata/pata_acpi.c 21818diff -urNp linux-2.6.38.3/drivers/ata/pata_acpi.c linux-2.6.38.3/drivers/ata/pata_acpi.c
20981--- linux-2.6.38.2/drivers/ata/pata_acpi.c 2011-03-14 21:20:32.000000000 -0400 21819--- linux-2.6.38.3/drivers/ata/pata_acpi.c 2011-03-14 21:20:32.000000000 -0400
20982+++ linux-2.6.38.2/drivers/ata/pata_acpi.c 2011-03-21 18:31:35.000000000 -0400 21820+++ linux-2.6.38.3/drivers/ata/pata_acpi.c 2011-04-17 15:57:32.000000000 -0400
20983@@ -216,7 +216,7 @@ static struct scsi_host_template pacpi_s 21821@@ -216,7 +216,7 @@ static struct scsi_host_template pacpi_s
20984 ATA_BMDMA_SHT(DRV_NAME), 21822 ATA_BMDMA_SHT(DRV_NAME),
20985 }; 21823 };
@@ -20989,9 +21827,9 @@ diff -urNp linux-2.6.38.2/drivers/ata/pata_acpi.c linux-2.6.38.2/drivers/ata/pat
20989 .inherits = &ata_bmdma_port_ops, 21827 .inherits = &ata_bmdma_port_ops,
20990 .qc_issue = pacpi_qc_issue, 21828 .qc_issue = pacpi_qc_issue,
20991 .cable_detect = pacpi_cable_detect, 21829 .cable_detect = pacpi_cable_detect,
20992diff -urNp linux-2.6.38.2/drivers/ata/pata_ali.c linux-2.6.38.2/drivers/ata/pata_ali.c 21830diff -urNp linux-2.6.38.3/drivers/ata/pata_ali.c linux-2.6.38.3/drivers/ata/pata_ali.c
20993--- linux-2.6.38.2/drivers/ata/pata_ali.c 2011-03-14 21:20:32.000000000 -0400 21831--- linux-2.6.38.3/drivers/ata/pata_ali.c 2011-03-14 21:20:32.000000000 -0400
20994+++ linux-2.6.38.2/drivers/ata/pata_ali.c 2011-03-21 18:31:35.000000000 -0400 21832+++ linux-2.6.38.3/drivers/ata/pata_ali.c 2011-04-17 15:57:32.000000000 -0400
20995@@ -363,7 +363,7 @@ static struct scsi_host_template ali_sht 21833@@ -363,7 +363,7 @@ static struct scsi_host_template ali_sht
20996 * Port operations for PIO only ALi 21834 * Port operations for PIO only ALi
20997 */ 21835 */
@@ -21037,9 +21875,9 @@ diff -urNp linux-2.6.38.2/drivers/ata/pata_ali.c linux-2.6.38.2/drivers/ata/pata
21037 .inherits = &ali_dma_base_ops, 21875 .inherits = &ali_dma_base_ops,
21038 .check_atapi_dma = ali_check_atapi_dma, 21876 .check_atapi_dma = ali_check_atapi_dma,
21039 .dev_config = ali_warn_atapi_dma, 21877 .dev_config = ali_warn_atapi_dma,
21040diff -urNp linux-2.6.38.2/drivers/ata/pata_amd.c linux-2.6.38.2/drivers/ata/pata_amd.c 21878diff -urNp linux-2.6.38.3/drivers/ata/pata_amd.c linux-2.6.38.3/drivers/ata/pata_amd.c
21041--- linux-2.6.38.2/drivers/ata/pata_amd.c 2011-03-14 21:20:32.000000000 -0400 21879--- linux-2.6.38.3/drivers/ata/pata_amd.c 2011-03-14 21:20:32.000000000 -0400
21042+++ linux-2.6.38.2/drivers/ata/pata_amd.c 2011-03-21 18:31:35.000000000 -0400 21880+++ linux-2.6.38.3/drivers/ata/pata_amd.c 2011-04-17 15:57:32.000000000 -0400
21043@@ -397,28 +397,28 @@ static const struct ata_port_operations 21881@@ -397,28 +397,28 @@ static const struct ata_port_operations
21044 .prereset = amd_pre_reset, 21882 .prereset = amd_pre_reset,
21045 }; 21883 };
@@ -21089,9 +21927,9 @@ diff -urNp linux-2.6.38.2/drivers/ata/pata_amd.c linux-2.6.38.2/drivers/ata/pata
21089 .inherits = &nv_base_port_ops, 21927 .inherits = &nv_base_port_ops,
21090 .set_piomode = nv133_set_piomode, 21928 .set_piomode = nv133_set_piomode,
21091 .set_dmamode = nv133_set_dmamode, 21929 .set_dmamode = nv133_set_dmamode,
21092diff -urNp linux-2.6.38.2/drivers/ata/pata_artop.c linux-2.6.38.2/drivers/ata/pata_artop.c 21930diff -urNp linux-2.6.38.3/drivers/ata/pata_artop.c linux-2.6.38.3/drivers/ata/pata_artop.c
21093--- linux-2.6.38.2/drivers/ata/pata_artop.c 2011-03-14 21:20:32.000000000 -0400 21931--- linux-2.6.38.3/drivers/ata/pata_artop.c 2011-03-14 21:20:32.000000000 -0400
21094+++ linux-2.6.38.2/drivers/ata/pata_artop.c 2011-03-21 18:31:35.000000000 -0400 21932+++ linux-2.6.38.3/drivers/ata/pata_artop.c 2011-04-17 15:57:32.000000000 -0400
21095@@ -312,7 +312,7 @@ static struct scsi_host_template artop_s 21933@@ -312,7 +312,7 @@ static struct scsi_host_template artop_s
21096 ATA_BMDMA_SHT(DRV_NAME), 21934 ATA_BMDMA_SHT(DRV_NAME),
21097 }; 21935 };
@@ -21110,9 +21948,9 @@ diff -urNp linux-2.6.38.2/drivers/ata/pata_artop.c linux-2.6.38.2/drivers/ata/pa
21110 .inherits = &ata_bmdma_port_ops, 21948 .inherits = &ata_bmdma_port_ops,
21111 .cable_detect = artop6260_cable_detect, 21949 .cable_detect = artop6260_cable_detect,
21112 .set_piomode = artop6260_set_piomode, 21950 .set_piomode = artop6260_set_piomode,
21113diff -urNp linux-2.6.38.2/drivers/ata/pata_at32.c linux-2.6.38.2/drivers/ata/pata_at32.c 21951diff -urNp linux-2.6.38.3/drivers/ata/pata_at32.c linux-2.6.38.3/drivers/ata/pata_at32.c
21114--- linux-2.6.38.2/drivers/ata/pata_at32.c 2011-03-14 21:20:32.000000000 -0400 21952--- linux-2.6.38.3/drivers/ata/pata_at32.c 2011-03-14 21:20:32.000000000 -0400
21115+++ linux-2.6.38.2/drivers/ata/pata_at32.c 2011-03-21 18:31:35.000000000 -0400 21953+++ linux-2.6.38.3/drivers/ata/pata_at32.c 2011-04-17 15:57:32.000000000 -0400
21116@@ -173,7 +173,7 @@ static struct scsi_host_template at32_sh 21954@@ -173,7 +173,7 @@ static struct scsi_host_template at32_sh
21117 ATA_PIO_SHT(DRV_NAME), 21955 ATA_PIO_SHT(DRV_NAME),
21118 }; 21956 };
@@ -21122,9 +21960,9 @@ diff -urNp linux-2.6.38.2/drivers/ata/pata_at32.c linux-2.6.38.2/drivers/ata/pat
21122 .inherits = &ata_sff_port_ops, 21960 .inherits = &ata_sff_port_ops,
21123 .cable_detect = ata_cable_40wire, 21961 .cable_detect = ata_cable_40wire,
21124 .set_piomode = pata_at32_set_piomode, 21962 .set_piomode = pata_at32_set_piomode,
21125diff -urNp linux-2.6.38.2/drivers/ata/pata_at91.c linux-2.6.38.2/drivers/ata/pata_at91.c 21963diff -urNp linux-2.6.38.3/drivers/ata/pata_at91.c linux-2.6.38.3/drivers/ata/pata_at91.c
21126--- linux-2.6.38.2/drivers/ata/pata_at91.c 2011-03-14 21:20:32.000000000 -0400 21964--- linux-2.6.38.3/drivers/ata/pata_at91.c 2011-03-14 21:20:32.000000000 -0400
21127+++ linux-2.6.38.2/drivers/ata/pata_at91.c 2011-03-21 18:31:35.000000000 -0400 21965+++ linux-2.6.38.3/drivers/ata/pata_at91.c 2011-04-17 15:57:32.000000000 -0400
21128@@ -196,7 +196,7 @@ static struct scsi_host_template pata_at 21966@@ -196,7 +196,7 @@ static struct scsi_host_template pata_at
21129 ATA_PIO_SHT(DRV_NAME), 21967 ATA_PIO_SHT(DRV_NAME),
21130 }; 21968 };
@@ -21134,9 +21972,9 @@ diff -urNp linux-2.6.38.2/drivers/ata/pata_at91.c linux-2.6.38.2/drivers/ata/pat
21134 .inherits = &ata_sff_port_ops, 21972 .inherits = &ata_sff_port_ops,
21135 21973
21136 .sff_data_xfer = pata_at91_data_xfer_noirq, 21974 .sff_data_xfer = pata_at91_data_xfer_noirq,
21137diff -urNp linux-2.6.38.2/drivers/ata/pata_atiixp.c linux-2.6.38.2/drivers/ata/pata_atiixp.c 21975diff -urNp linux-2.6.38.3/drivers/ata/pata_atiixp.c linux-2.6.38.3/drivers/ata/pata_atiixp.c
21138--- linux-2.6.38.2/drivers/ata/pata_atiixp.c 2011-03-14 21:20:32.000000000 -0400 21976--- linux-2.6.38.3/drivers/ata/pata_atiixp.c 2011-03-14 21:20:32.000000000 -0400
21139+++ linux-2.6.38.2/drivers/ata/pata_atiixp.c 2011-03-21 18:31:35.000000000 -0400 21977+++ linux-2.6.38.3/drivers/ata/pata_atiixp.c 2011-04-17 15:57:32.000000000 -0400
21140@@ -214,7 +214,7 @@ static struct scsi_host_template atiixp_ 21978@@ -214,7 +214,7 @@ static struct scsi_host_template atiixp_
21141 .sg_tablesize = LIBATA_DUMB_MAX_PRD, 21979 .sg_tablesize = LIBATA_DUMB_MAX_PRD,
21142 }; 21980 };
@@ -21146,9 +21984,9 @@ diff -urNp linux-2.6.38.2/drivers/ata/pata_atiixp.c linux-2.6.38.2/drivers/ata/p
21146 .inherits = &ata_bmdma_port_ops, 21984 .inherits = &ata_bmdma_port_ops,
21147 21985
21148 .qc_prep = ata_bmdma_dumb_qc_prep, 21986 .qc_prep = ata_bmdma_dumb_qc_prep,
21149diff -urNp linux-2.6.38.2/drivers/ata/pata_atp867x.c linux-2.6.38.2/drivers/ata/pata_atp867x.c 21987diff -urNp linux-2.6.38.3/drivers/ata/pata_atp867x.c linux-2.6.38.3/drivers/ata/pata_atp867x.c
21150--- linux-2.6.38.2/drivers/ata/pata_atp867x.c 2011-03-14 21:20:32.000000000 -0400 21988--- linux-2.6.38.3/drivers/ata/pata_atp867x.c 2011-03-14 21:20:32.000000000 -0400
21151+++ linux-2.6.38.2/drivers/ata/pata_atp867x.c 2011-03-21 18:31:35.000000000 -0400 21989+++ linux-2.6.38.3/drivers/ata/pata_atp867x.c 2011-04-17 15:57:32.000000000 -0400
21152@@ -275,7 +275,7 @@ static struct scsi_host_template atp867x 21990@@ -275,7 +275,7 @@ static struct scsi_host_template atp867x
21153 ATA_BMDMA_SHT(DRV_NAME), 21991 ATA_BMDMA_SHT(DRV_NAME),
21154 }; 21992 };
@@ -21158,9 +21996,9 @@ diff -urNp linux-2.6.38.2/drivers/ata/pata_atp867x.c linux-2.6.38.2/drivers/ata/
21158 .inherits = &ata_bmdma_port_ops, 21996 .inherits = &ata_bmdma_port_ops,
21159 .cable_detect = atp867x_cable_detect, 21997 .cable_detect = atp867x_cable_detect,
21160 .set_piomode = atp867x_set_piomode, 21998 .set_piomode = atp867x_set_piomode,
21161diff -urNp linux-2.6.38.2/drivers/ata/pata_bf54x.c linux-2.6.38.2/drivers/ata/pata_bf54x.c 21999diff -urNp linux-2.6.38.3/drivers/ata/pata_bf54x.c linux-2.6.38.3/drivers/ata/pata_bf54x.c
21162--- linux-2.6.38.2/drivers/ata/pata_bf54x.c 2011-03-14 21:20:32.000000000 -0400 22000--- linux-2.6.38.3/drivers/ata/pata_bf54x.c 2011-03-14 21:20:32.000000000 -0400
21163+++ linux-2.6.38.2/drivers/ata/pata_bf54x.c 2011-03-21 18:31:35.000000000 -0400 22001+++ linux-2.6.38.3/drivers/ata/pata_bf54x.c 2011-04-17 15:57:32.000000000 -0400
21164@@ -1420,7 +1420,7 @@ static struct scsi_host_template bfin_sh 22002@@ -1420,7 +1420,7 @@ static struct scsi_host_template bfin_sh
21165 .dma_boundary = ATA_DMA_BOUNDARY, 22003 .dma_boundary = ATA_DMA_BOUNDARY,
21166 }; 22004 };
@@ -21170,9 +22008,9 @@ diff -urNp linux-2.6.38.2/drivers/ata/pata_bf54x.c linux-2.6.38.2/drivers/ata/pa
21170 .inherits = &ata_bmdma_port_ops, 22008 .inherits = &ata_bmdma_port_ops,
21171 22009
21172 .set_piomode = bfin_set_piomode, 22010 .set_piomode = bfin_set_piomode,
21173diff -urNp linux-2.6.38.2/drivers/ata/pata_cmd640.c linux-2.6.38.2/drivers/ata/pata_cmd640.c 22011diff -urNp linux-2.6.38.3/drivers/ata/pata_cmd640.c linux-2.6.38.3/drivers/ata/pata_cmd640.c
21174--- linux-2.6.38.2/drivers/ata/pata_cmd640.c 2011-03-14 21:20:32.000000000 -0400 22012--- linux-2.6.38.3/drivers/ata/pata_cmd640.c 2011-03-14 21:20:32.000000000 -0400
21175+++ linux-2.6.38.2/drivers/ata/pata_cmd640.c 2011-03-21 18:31:35.000000000 -0400 22013+++ linux-2.6.38.3/drivers/ata/pata_cmd640.c 2011-04-17 15:57:32.000000000 -0400
21176@@ -176,7 +176,7 @@ static struct scsi_host_template cmd640_ 22014@@ -176,7 +176,7 @@ static struct scsi_host_template cmd640_
21177 ATA_PIO_SHT(DRV_NAME), 22015 ATA_PIO_SHT(DRV_NAME),
21178 }; 22016 };
@@ -21182,9 +22020,9 @@ diff -urNp linux-2.6.38.2/drivers/ata/pata_cmd640.c linux-2.6.38.2/drivers/ata/p
21182 .inherits = &ata_sff_port_ops, 22020 .inherits = &ata_sff_port_ops,
21183 /* In theory xfer_noirq is not needed once we kill the prefetcher */ 22021 /* In theory xfer_noirq is not needed once we kill the prefetcher */
21184 .sff_data_xfer = ata_sff_data_xfer_noirq, 22022 .sff_data_xfer = ata_sff_data_xfer_noirq,
21185diff -urNp linux-2.6.38.2/drivers/ata/pata_cmd64x.c linux-2.6.38.2/drivers/ata/pata_cmd64x.c 22023diff -urNp linux-2.6.38.3/drivers/ata/pata_cmd64x.c linux-2.6.38.3/drivers/ata/pata_cmd64x.c
21186--- linux-2.6.38.2/drivers/ata/pata_cmd64x.c 2011-03-14 21:20:32.000000000 -0400 22024--- linux-2.6.38.3/drivers/ata/pata_cmd64x.c 2011-03-14 21:20:32.000000000 -0400
21187+++ linux-2.6.38.2/drivers/ata/pata_cmd64x.c 2011-03-21 18:31:35.000000000 -0400 22025+++ linux-2.6.38.3/drivers/ata/pata_cmd64x.c 2011-04-17 15:57:32.000000000 -0400
21188@@ -268,18 +268,18 @@ static const struct ata_port_operations 22026@@ -268,18 +268,18 @@ static const struct ata_port_operations
21189 .set_dmamode = cmd64x_set_dmamode, 22027 .set_dmamode = cmd64x_set_dmamode,
21190 }; 22028 };
@@ -21207,9 +22045,9 @@ diff -urNp linux-2.6.38.2/drivers/ata/pata_cmd64x.c linux-2.6.38.2/drivers/ata/p
21207 .inherits = &cmd64x_base_ops, 22045 .inherits = &cmd64x_base_ops,
21208 .bmdma_stop = cmd648_bmdma_stop, 22046 .bmdma_stop = cmd648_bmdma_stop,
21209 .cable_detect = cmd648_cable_detect, 22047 .cable_detect = cmd648_cable_detect,
21210diff -urNp linux-2.6.38.2/drivers/ata/pata_cs5520.c linux-2.6.38.2/drivers/ata/pata_cs5520.c 22048diff -urNp linux-2.6.38.3/drivers/ata/pata_cs5520.c linux-2.6.38.3/drivers/ata/pata_cs5520.c
21211--- linux-2.6.38.2/drivers/ata/pata_cs5520.c 2011-03-14 21:20:32.000000000 -0400 22049--- linux-2.6.38.3/drivers/ata/pata_cs5520.c 2011-03-14 21:20:32.000000000 -0400
21212+++ linux-2.6.38.2/drivers/ata/pata_cs5520.c 2011-03-21 18:31:35.000000000 -0400 22050+++ linux-2.6.38.3/drivers/ata/pata_cs5520.c 2011-04-17 15:57:32.000000000 -0400
21213@@ -108,7 +108,7 @@ static struct scsi_host_template cs5520_ 22051@@ -108,7 +108,7 @@ static struct scsi_host_template cs5520_
21214 .sg_tablesize = LIBATA_DUMB_MAX_PRD, 22052 .sg_tablesize = LIBATA_DUMB_MAX_PRD,
21215 }; 22053 };
@@ -21219,9 +22057,9 @@ diff -urNp linux-2.6.38.2/drivers/ata/pata_cs5520.c linux-2.6.38.2/drivers/ata/p
21219 .inherits = &ata_bmdma_port_ops, 22057 .inherits = &ata_bmdma_port_ops,
21220 .qc_prep = ata_bmdma_dumb_qc_prep, 22058 .qc_prep = ata_bmdma_dumb_qc_prep,
21221 .cable_detect = ata_cable_40wire, 22059 .cable_detect = ata_cable_40wire,
21222diff -urNp linux-2.6.38.2/drivers/ata/pata_cs5530.c linux-2.6.38.2/drivers/ata/pata_cs5530.c 22060diff -urNp linux-2.6.38.3/drivers/ata/pata_cs5530.c linux-2.6.38.3/drivers/ata/pata_cs5530.c
21223--- linux-2.6.38.2/drivers/ata/pata_cs5530.c 2011-03-14 21:20:32.000000000 -0400 22061--- linux-2.6.38.3/drivers/ata/pata_cs5530.c 2011-03-14 21:20:32.000000000 -0400
21224+++ linux-2.6.38.2/drivers/ata/pata_cs5530.c 2011-03-21 18:31:35.000000000 -0400 22062+++ linux-2.6.38.3/drivers/ata/pata_cs5530.c 2011-04-17 15:57:32.000000000 -0400
21225@@ -164,7 +164,7 @@ static struct scsi_host_template cs5530_ 22063@@ -164,7 +164,7 @@ static struct scsi_host_template cs5530_
21226 .sg_tablesize = LIBATA_DUMB_MAX_PRD, 22064 .sg_tablesize = LIBATA_DUMB_MAX_PRD,
21227 }; 22065 };
@@ -21231,9 +22069,9 @@ diff -urNp linux-2.6.38.2/drivers/ata/pata_cs5530.c linux-2.6.38.2/drivers/ata/p
21231 .inherits = &ata_bmdma_port_ops, 22069 .inherits = &ata_bmdma_port_ops,
21232 22070
21233 .qc_prep = ata_bmdma_dumb_qc_prep, 22071 .qc_prep = ata_bmdma_dumb_qc_prep,
21234diff -urNp linux-2.6.38.2/drivers/ata/pata_cs5535.c linux-2.6.38.2/drivers/ata/pata_cs5535.c 22072diff -urNp linux-2.6.38.3/drivers/ata/pata_cs5535.c linux-2.6.38.3/drivers/ata/pata_cs5535.c
21235--- linux-2.6.38.2/drivers/ata/pata_cs5535.c 2011-03-14 21:20:32.000000000 -0400 22073--- linux-2.6.38.3/drivers/ata/pata_cs5535.c 2011-03-14 21:20:32.000000000 -0400
21236+++ linux-2.6.38.2/drivers/ata/pata_cs5535.c 2011-03-21 18:31:35.000000000 -0400 22074+++ linux-2.6.38.3/drivers/ata/pata_cs5535.c 2011-04-17 15:57:32.000000000 -0400
21237@@ -160,7 +160,7 @@ static struct scsi_host_template cs5535_ 22075@@ -160,7 +160,7 @@ static struct scsi_host_template cs5535_
21238 ATA_BMDMA_SHT(DRV_NAME), 22076 ATA_BMDMA_SHT(DRV_NAME),
21239 }; 22077 };
@@ -21243,9 +22081,9 @@ diff -urNp linux-2.6.38.2/drivers/ata/pata_cs5535.c linux-2.6.38.2/drivers/ata/p
21243 .inherits = &ata_bmdma_port_ops, 22081 .inherits = &ata_bmdma_port_ops,
21244 .cable_detect = cs5535_cable_detect, 22082 .cable_detect = cs5535_cable_detect,
21245 .set_piomode = cs5535_set_piomode, 22083 .set_piomode = cs5535_set_piomode,
21246diff -urNp linux-2.6.38.2/drivers/ata/pata_cs5536.c linux-2.6.38.2/drivers/ata/pata_cs5536.c 22084diff -urNp linux-2.6.38.3/drivers/ata/pata_cs5536.c linux-2.6.38.3/drivers/ata/pata_cs5536.c
21247--- linux-2.6.38.2/drivers/ata/pata_cs5536.c 2011-03-14 21:20:32.000000000 -0400 22085--- linux-2.6.38.3/drivers/ata/pata_cs5536.c 2011-03-14 21:20:32.000000000 -0400
21248+++ linux-2.6.38.2/drivers/ata/pata_cs5536.c 2011-03-21 18:31:35.000000000 -0400 22086+++ linux-2.6.38.3/drivers/ata/pata_cs5536.c 2011-04-17 15:57:32.000000000 -0400
21249@@ -233,7 +233,7 @@ static struct scsi_host_template cs5536_ 22087@@ -233,7 +233,7 @@ static struct scsi_host_template cs5536_
21250 ATA_BMDMA_SHT(DRV_NAME), 22088 ATA_BMDMA_SHT(DRV_NAME),
21251 }; 22089 };
@@ -21255,9 +22093,9 @@ diff -urNp linux-2.6.38.2/drivers/ata/pata_cs5536.c linux-2.6.38.2/drivers/ata/p
21255 .inherits = &ata_bmdma32_port_ops, 22093 .inherits = &ata_bmdma32_port_ops,
21256 .cable_detect = cs5536_cable_detect, 22094 .cable_detect = cs5536_cable_detect,
21257 .set_piomode = cs5536_set_piomode, 22095 .set_piomode = cs5536_set_piomode,
21258diff -urNp linux-2.6.38.2/drivers/ata/pata_cypress.c linux-2.6.38.2/drivers/ata/pata_cypress.c 22096diff -urNp linux-2.6.38.3/drivers/ata/pata_cypress.c linux-2.6.38.3/drivers/ata/pata_cypress.c
21259--- linux-2.6.38.2/drivers/ata/pata_cypress.c 2011-03-14 21:20:32.000000000 -0400 22097--- linux-2.6.38.3/drivers/ata/pata_cypress.c 2011-03-14 21:20:32.000000000 -0400
21260+++ linux-2.6.38.2/drivers/ata/pata_cypress.c 2011-03-21 18:31:35.000000000 -0400 22098+++ linux-2.6.38.3/drivers/ata/pata_cypress.c 2011-04-17 15:57:32.000000000 -0400
21261@@ -115,7 +115,7 @@ static struct scsi_host_template cy82c69 22099@@ -115,7 +115,7 @@ static struct scsi_host_template cy82c69
21262 ATA_BMDMA_SHT(DRV_NAME), 22100 ATA_BMDMA_SHT(DRV_NAME),
21263 }; 22101 };
@@ -21267,9 +22105,9 @@ diff -urNp linux-2.6.38.2/drivers/ata/pata_cypress.c linux-2.6.38.2/drivers/ata/
21267 .inherits = &ata_bmdma_port_ops, 22105 .inherits = &ata_bmdma_port_ops,
21268 .cable_detect = ata_cable_40wire, 22106 .cable_detect = ata_cable_40wire,
21269 .set_piomode = cy82c693_set_piomode, 22107 .set_piomode = cy82c693_set_piomode,
21270diff -urNp linux-2.6.38.2/drivers/ata/pata_efar.c linux-2.6.38.2/drivers/ata/pata_efar.c 22108diff -urNp linux-2.6.38.3/drivers/ata/pata_efar.c linux-2.6.38.3/drivers/ata/pata_efar.c
21271--- linux-2.6.38.2/drivers/ata/pata_efar.c 2011-03-14 21:20:32.000000000 -0400 22109--- linux-2.6.38.3/drivers/ata/pata_efar.c 2011-03-14 21:20:32.000000000 -0400
21272+++ linux-2.6.38.2/drivers/ata/pata_efar.c 2011-03-21 18:31:35.000000000 -0400 22110+++ linux-2.6.38.3/drivers/ata/pata_efar.c 2011-04-17 15:57:32.000000000 -0400
21273@@ -238,7 +238,7 @@ static struct scsi_host_template efar_sh 22111@@ -238,7 +238,7 @@ static struct scsi_host_template efar_sh
21274 ATA_BMDMA_SHT(DRV_NAME), 22112 ATA_BMDMA_SHT(DRV_NAME),
21275 }; 22113 };
@@ -21279,9 +22117,9 @@ diff -urNp linux-2.6.38.2/drivers/ata/pata_efar.c linux-2.6.38.2/drivers/ata/pat
21279 .inherits = &ata_bmdma_port_ops, 22117 .inherits = &ata_bmdma_port_ops,
21280 .cable_detect = efar_cable_detect, 22118 .cable_detect = efar_cable_detect,
21281 .set_piomode = efar_set_piomode, 22119 .set_piomode = efar_set_piomode,
21282diff -urNp linux-2.6.38.2/drivers/ata/pata_hpt366.c linux-2.6.38.2/drivers/ata/pata_hpt366.c 22120diff -urNp linux-2.6.38.3/drivers/ata/pata_hpt366.c linux-2.6.38.3/drivers/ata/pata_hpt366.c
21283--- linux-2.6.38.2/drivers/ata/pata_hpt366.c 2011-03-14 21:20:32.000000000 -0400 22121--- linux-2.6.38.3/drivers/ata/pata_hpt366.c 2011-03-14 21:20:32.000000000 -0400
21284+++ linux-2.6.38.2/drivers/ata/pata_hpt366.c 2011-03-21 18:31:35.000000000 -0400 22122+++ linux-2.6.38.3/drivers/ata/pata_hpt366.c 2011-04-17 15:57:32.000000000 -0400
21285@@ -275,7 +275,7 @@ static struct scsi_host_template hpt36x_ 22123@@ -275,7 +275,7 @@ static struct scsi_host_template hpt36x_
21286 * Configuration for HPT366/68 22124 * Configuration for HPT366/68
21287 */ 22125 */
@@ -21291,9 +22129,9 @@ diff -urNp linux-2.6.38.2/drivers/ata/pata_hpt366.c linux-2.6.38.2/drivers/ata/p
21291 .inherits = &ata_bmdma_port_ops, 22129 .inherits = &ata_bmdma_port_ops,
21292 .cable_detect = hpt36x_cable_detect, 22130 .cable_detect = hpt36x_cable_detect,
21293 .mode_filter = hpt366_filter, 22131 .mode_filter = hpt366_filter,
21294diff -urNp linux-2.6.38.2/drivers/ata/pata_hpt37x.c linux-2.6.38.2/drivers/ata/pata_hpt37x.c 22132diff -urNp linux-2.6.38.3/drivers/ata/pata_hpt37x.c linux-2.6.38.3/drivers/ata/pata_hpt37x.c
21295--- linux-2.6.38.2/drivers/ata/pata_hpt37x.c 2011-03-14 21:20:32.000000000 -0400 22133--- linux-2.6.38.3/drivers/ata/pata_hpt37x.c 2011-03-14 21:20:32.000000000 -0400
21296+++ linux-2.6.38.2/drivers/ata/pata_hpt37x.c 2011-03-21 18:31:35.000000000 -0400 22134+++ linux-2.6.38.3/drivers/ata/pata_hpt37x.c 2011-04-17 15:57:32.000000000 -0400
21297@@ -587,7 +587,7 @@ static struct scsi_host_template hpt37x_ 22135@@ -587,7 +587,7 @@ static struct scsi_host_template hpt37x_
21298 * Configuration for HPT370 22136 * Configuration for HPT370
21299 */ 22137 */
@@ -21339,9 +22177,9 @@ diff -urNp linux-2.6.38.2/drivers/ata/pata_hpt37x.c linux-2.6.38.2/drivers/ata/p
21339 .inherits = &hpt372_port_ops, 22177 .inherits = &hpt372_port_ops,
21340 .cable_detect = hpt374_fn1_cable_detect, 22178 .cable_detect = hpt374_fn1_cable_detect,
21341 }; 22179 };
21342diff -urNp linux-2.6.38.2/drivers/ata/pata_hpt3x2n.c linux-2.6.38.2/drivers/ata/pata_hpt3x2n.c 22180diff -urNp linux-2.6.38.3/drivers/ata/pata_hpt3x2n.c linux-2.6.38.3/drivers/ata/pata_hpt3x2n.c
21343--- linux-2.6.38.2/drivers/ata/pata_hpt3x2n.c 2011-03-14 21:20:32.000000000 -0400 22181--- linux-2.6.38.3/drivers/ata/pata_hpt3x2n.c 2011-03-14 21:20:32.000000000 -0400
21344+++ linux-2.6.38.2/drivers/ata/pata_hpt3x2n.c 2011-03-21 18:31:35.000000000 -0400 22182+++ linux-2.6.38.3/drivers/ata/pata_hpt3x2n.c 2011-04-17 15:57:32.000000000 -0400
21345@@ -348,7 +348,7 @@ static struct scsi_host_template hpt3x2n 22183@@ -348,7 +348,7 @@ static struct scsi_host_template hpt3x2n
21346 * Configuration for HPT302N/371N. 22184 * Configuration for HPT302N/371N.
21347 */ 22185 */
@@ -21360,9 +22198,9 @@ diff -urNp linux-2.6.38.2/drivers/ata/pata_hpt3x2n.c linux-2.6.38.2/drivers/ata/
21360 .inherits = &hpt3xxn_port_ops, 22198 .inherits = &hpt3xxn_port_ops,
21361 .mode_filter = &hpt372n_filter, 22199 .mode_filter = &hpt372n_filter,
21362 }; 22200 };
21363diff -urNp linux-2.6.38.2/drivers/ata/pata_hpt3x3.c linux-2.6.38.2/drivers/ata/pata_hpt3x3.c 22201diff -urNp linux-2.6.38.3/drivers/ata/pata_hpt3x3.c linux-2.6.38.3/drivers/ata/pata_hpt3x3.c
21364--- linux-2.6.38.2/drivers/ata/pata_hpt3x3.c 2011-03-14 21:20:32.000000000 -0400 22202--- linux-2.6.38.3/drivers/ata/pata_hpt3x3.c 2011-03-14 21:20:32.000000000 -0400
21365+++ linux-2.6.38.2/drivers/ata/pata_hpt3x3.c 2011-03-21 18:31:35.000000000 -0400 22203+++ linux-2.6.38.3/drivers/ata/pata_hpt3x3.c 2011-04-17 15:57:32.000000000 -0400
21366@@ -141,7 +141,7 @@ static struct scsi_host_template hpt3x3_ 22204@@ -141,7 +141,7 @@ static struct scsi_host_template hpt3x3_
21367 ATA_BMDMA_SHT(DRV_NAME), 22205 ATA_BMDMA_SHT(DRV_NAME),
21368 }; 22206 };
@@ -21372,9 +22210,9 @@ diff -urNp linux-2.6.38.2/drivers/ata/pata_hpt3x3.c linux-2.6.38.2/drivers/ata/p
21372 .inherits = &ata_bmdma_port_ops, 22210 .inherits = &ata_bmdma_port_ops,
21373 .cable_detect = ata_cable_40wire, 22211 .cable_detect = ata_cable_40wire,
21374 .set_piomode = hpt3x3_set_piomode, 22212 .set_piomode = hpt3x3_set_piomode,
21375diff -urNp linux-2.6.38.2/drivers/ata/pata_icside.c linux-2.6.38.2/drivers/ata/pata_icside.c 22213diff -urNp linux-2.6.38.3/drivers/ata/pata_icside.c linux-2.6.38.3/drivers/ata/pata_icside.c
21376--- linux-2.6.38.2/drivers/ata/pata_icside.c 2011-03-14 21:20:32.000000000 -0400 22214--- linux-2.6.38.3/drivers/ata/pata_icside.c 2011-03-14 21:20:32.000000000 -0400
21377+++ linux-2.6.38.2/drivers/ata/pata_icside.c 2011-03-21 18:31:35.000000000 -0400 22215+++ linux-2.6.38.3/drivers/ata/pata_icside.c 2011-04-17 15:57:32.000000000 -0400
21378@@ -320,7 +320,7 @@ static void pata_icside_postreset(struct 22216@@ -320,7 +320,7 @@ static void pata_icside_postreset(struct
21379 } 22217 }
21380 } 22218 }
@@ -21384,9 +22222,9 @@ diff -urNp linux-2.6.38.2/drivers/ata/pata_icside.c linux-2.6.38.2/drivers/ata/p
21384 .inherits = &ata_bmdma_port_ops, 22222 .inherits = &ata_bmdma_port_ops,
21385 /* no need to build any PRD tables for DMA */ 22223 /* no need to build any PRD tables for DMA */
21386 .qc_prep = ata_noop_qc_prep, 22224 .qc_prep = ata_noop_qc_prep,
21387diff -urNp linux-2.6.38.2/drivers/ata/pata_isapnp.c linux-2.6.38.2/drivers/ata/pata_isapnp.c 22225diff -urNp linux-2.6.38.3/drivers/ata/pata_isapnp.c linux-2.6.38.3/drivers/ata/pata_isapnp.c
21388--- linux-2.6.38.2/drivers/ata/pata_isapnp.c 2011-03-14 21:20:32.000000000 -0400 22226--- linux-2.6.38.3/drivers/ata/pata_isapnp.c 2011-03-14 21:20:32.000000000 -0400
21389+++ linux-2.6.38.2/drivers/ata/pata_isapnp.c 2011-03-21 18:31:35.000000000 -0400 22227+++ linux-2.6.38.3/drivers/ata/pata_isapnp.c 2011-04-17 15:57:32.000000000 -0400
21390@@ -23,12 +23,12 @@ static struct scsi_host_template isapnp_ 22228@@ -23,12 +23,12 @@ static struct scsi_host_template isapnp_
21391 ATA_PIO_SHT(DRV_NAME), 22229 ATA_PIO_SHT(DRV_NAME),
21392 }; 22230 };
@@ -21402,9 +22240,9 @@ diff -urNp linux-2.6.38.2/drivers/ata/pata_isapnp.c linux-2.6.38.2/drivers/ata/p
21402 .inherits = &ata_sff_port_ops, 22240 .inherits = &ata_sff_port_ops,
21403 .cable_detect = ata_cable_40wire, 22241 .cable_detect = ata_cable_40wire,
21404 /* No altstatus so we don't want to use the lost interrupt poll */ 22242 /* No altstatus so we don't want to use the lost interrupt poll */
21405diff -urNp linux-2.6.38.2/drivers/ata/pata_it8213.c linux-2.6.38.2/drivers/ata/pata_it8213.c 22243diff -urNp linux-2.6.38.3/drivers/ata/pata_it8213.c linux-2.6.38.3/drivers/ata/pata_it8213.c
21406--- linux-2.6.38.2/drivers/ata/pata_it8213.c 2011-03-14 21:20:32.000000000 -0400 22244--- linux-2.6.38.3/drivers/ata/pata_it8213.c 2011-03-14 21:20:32.000000000 -0400
21407+++ linux-2.6.38.2/drivers/ata/pata_it8213.c 2011-03-21 18:31:35.000000000 -0400 22245+++ linux-2.6.38.3/drivers/ata/pata_it8213.c 2011-04-17 15:57:32.000000000 -0400
21408@@ -233,7 +233,7 @@ static struct scsi_host_template it8213_ 22246@@ -233,7 +233,7 @@ static struct scsi_host_template it8213_
21409 }; 22247 };
21410 22248
@@ -21414,9 +22252,9 @@ diff -urNp linux-2.6.38.2/drivers/ata/pata_it8213.c linux-2.6.38.2/drivers/ata/p
21414 .inherits = &ata_bmdma_port_ops, 22252 .inherits = &ata_bmdma_port_ops,
21415 .cable_detect = it8213_cable_detect, 22253 .cable_detect = it8213_cable_detect,
21416 .set_piomode = it8213_set_piomode, 22254 .set_piomode = it8213_set_piomode,
21417diff -urNp linux-2.6.38.2/drivers/ata/pata_it821x.c linux-2.6.38.2/drivers/ata/pata_it821x.c 22255diff -urNp linux-2.6.38.3/drivers/ata/pata_it821x.c linux-2.6.38.3/drivers/ata/pata_it821x.c
21418--- linux-2.6.38.2/drivers/ata/pata_it821x.c 2011-03-14 21:20:32.000000000 -0400 22256--- linux-2.6.38.3/drivers/ata/pata_it821x.c 2011-03-14 21:20:32.000000000 -0400
21419+++ linux-2.6.38.2/drivers/ata/pata_it821x.c 2011-03-21 18:31:35.000000000 -0400 22257+++ linux-2.6.38.3/drivers/ata/pata_it821x.c 2011-04-17 15:57:32.000000000 -0400
21420@@ -801,7 +801,7 @@ static struct scsi_host_template it821x_ 22258@@ -801,7 +801,7 @@ static struct scsi_host_template it821x_
21421 ATA_BMDMA_SHT(DRV_NAME), 22259 ATA_BMDMA_SHT(DRV_NAME),
21422 }; 22260 };
@@ -21444,9 +22282,9 @@ diff -urNp linux-2.6.38.2/drivers/ata/pata_it821x.c linux-2.6.38.2/drivers/ata/p
21444 .inherits = &ata_bmdma_port_ops, 22282 .inherits = &ata_bmdma_port_ops,
21445 22283
21446 .check_atapi_dma= it821x_check_atapi_dma, 22284 .check_atapi_dma= it821x_check_atapi_dma,
21447diff -urNp linux-2.6.38.2/drivers/ata/pata_ixp4xx_cf.c linux-2.6.38.2/drivers/ata/pata_ixp4xx_cf.c 22285diff -urNp linux-2.6.38.3/drivers/ata/pata_ixp4xx_cf.c linux-2.6.38.3/drivers/ata/pata_ixp4xx_cf.c
21448--- linux-2.6.38.2/drivers/ata/pata_ixp4xx_cf.c 2011-03-14 21:20:32.000000000 -0400 22286--- linux-2.6.38.3/drivers/ata/pata_ixp4xx_cf.c 2011-03-14 21:20:32.000000000 -0400
21449+++ linux-2.6.38.2/drivers/ata/pata_ixp4xx_cf.c 2011-03-21 18:31:35.000000000 -0400 22287+++ linux-2.6.38.3/drivers/ata/pata_ixp4xx_cf.c 2011-04-17 15:57:32.000000000 -0400
21450@@ -89,7 +89,7 @@ static struct scsi_host_template ixp4xx_ 22288@@ -89,7 +89,7 @@ static struct scsi_host_template ixp4xx_
21451 ATA_PIO_SHT(DRV_NAME), 22289 ATA_PIO_SHT(DRV_NAME),
21452 }; 22290 };
@@ -21456,9 +22294,9 @@ diff -urNp linux-2.6.38.2/drivers/ata/pata_ixp4xx_cf.c linux-2.6.38.2/drivers/at
21456 .inherits = &ata_sff_port_ops, 22294 .inherits = &ata_sff_port_ops,
21457 .sff_data_xfer = ixp4xx_mmio_data_xfer, 22295 .sff_data_xfer = ixp4xx_mmio_data_xfer,
21458 .cable_detect = ata_cable_40wire, 22296 .cable_detect = ata_cable_40wire,
21459diff -urNp linux-2.6.38.2/drivers/ata/pata_jmicron.c linux-2.6.38.2/drivers/ata/pata_jmicron.c 22297diff -urNp linux-2.6.38.3/drivers/ata/pata_jmicron.c linux-2.6.38.3/drivers/ata/pata_jmicron.c
21460--- linux-2.6.38.2/drivers/ata/pata_jmicron.c 2011-03-14 21:20:32.000000000 -0400 22298--- linux-2.6.38.3/drivers/ata/pata_jmicron.c 2011-03-14 21:20:32.000000000 -0400
21461+++ linux-2.6.38.2/drivers/ata/pata_jmicron.c 2011-03-21 18:31:35.000000000 -0400 22299+++ linux-2.6.38.3/drivers/ata/pata_jmicron.c 2011-04-17 15:57:32.000000000 -0400
21462@@ -111,7 +111,7 @@ static struct scsi_host_template jmicron 22300@@ -111,7 +111,7 @@ static struct scsi_host_template jmicron
21463 ATA_BMDMA_SHT(DRV_NAME), 22301 ATA_BMDMA_SHT(DRV_NAME),
21464 }; 22302 };
@@ -21468,9 +22306,9 @@ diff -urNp linux-2.6.38.2/drivers/ata/pata_jmicron.c linux-2.6.38.2/drivers/ata/
21468 .inherits = &ata_bmdma_port_ops, 22306 .inherits = &ata_bmdma_port_ops,
21469 .prereset = jmicron_pre_reset, 22307 .prereset = jmicron_pre_reset,
21470 }; 22308 };
21471diff -urNp linux-2.6.38.2/drivers/ata/pata_legacy.c linux-2.6.38.2/drivers/ata/pata_legacy.c 22309diff -urNp linux-2.6.38.3/drivers/ata/pata_legacy.c linux-2.6.38.3/drivers/ata/pata_legacy.c
21472--- linux-2.6.38.2/drivers/ata/pata_legacy.c 2011-03-14 21:20:32.000000000 -0400 22310--- linux-2.6.38.3/drivers/ata/pata_legacy.c 2011-03-14 21:20:32.000000000 -0400
21473+++ linux-2.6.38.2/drivers/ata/pata_legacy.c 2011-03-21 18:31:35.000000000 -0400 22311+++ linux-2.6.38.3/drivers/ata/pata_legacy.c 2011-04-17 15:57:32.000000000 -0400
21474@@ -116,7 +116,7 @@ struct legacy_probe { 22312@@ -116,7 +116,7 @@ struct legacy_probe {
21475 22313
21476 struct legacy_controller { 22314 struct legacy_controller {
@@ -21582,9 +22420,9 @@ diff -urNp linux-2.6.38.2/drivers/ata/pata_legacy.c linux-2.6.38.2/drivers/ata/p
21582 struct legacy_data *ld = &legacy_data[probe->slot]; 22420 struct legacy_data *ld = &legacy_data[probe->slot];
21583 struct ata_host *host = NULL; 22421 struct ata_host *host = NULL;
21584 struct ata_port *ap; 22422 struct ata_port *ap;
21585diff -urNp linux-2.6.38.2/drivers/ata/pata_macio.c linux-2.6.38.2/drivers/ata/pata_macio.c 22423diff -urNp linux-2.6.38.3/drivers/ata/pata_macio.c linux-2.6.38.3/drivers/ata/pata_macio.c
21586--- linux-2.6.38.2/drivers/ata/pata_macio.c 2011-03-14 21:20:32.000000000 -0400 22424--- linux-2.6.38.3/drivers/ata/pata_macio.c 2011-03-14 21:20:32.000000000 -0400
21587+++ linux-2.6.38.2/drivers/ata/pata_macio.c 2011-03-21 18:31:35.000000000 -0400 22425+++ linux-2.6.38.3/drivers/ata/pata_macio.c 2011-04-17 15:57:32.000000000 -0400
21588@@ -918,9 +918,8 @@ static struct scsi_host_template pata_ma 22426@@ -918,9 +918,8 @@ static struct scsi_host_template pata_ma
21589 .slave_configure = pata_macio_slave_config, 22427 .slave_configure = pata_macio_slave_config,
21590 }; 22428 };
@@ -21596,9 +22434,9 @@ diff -urNp linux-2.6.38.2/drivers/ata/pata_macio.c linux-2.6.38.2/drivers/ata/pa
21596 .freeze = pata_macio_freeze, 22434 .freeze = pata_macio_freeze,
21597 .set_piomode = pata_macio_set_timings, 22435 .set_piomode = pata_macio_set_timings,
21598 .set_dmamode = pata_macio_set_timings, 22436 .set_dmamode = pata_macio_set_timings,
21599diff -urNp linux-2.6.38.2/drivers/ata/pata_marvell.c linux-2.6.38.2/drivers/ata/pata_marvell.c 22437diff -urNp linux-2.6.38.3/drivers/ata/pata_marvell.c linux-2.6.38.3/drivers/ata/pata_marvell.c
21600--- linux-2.6.38.2/drivers/ata/pata_marvell.c 2011-03-14 21:20:32.000000000 -0400 22438--- linux-2.6.38.3/drivers/ata/pata_marvell.c 2011-03-14 21:20:32.000000000 -0400
21601+++ linux-2.6.38.2/drivers/ata/pata_marvell.c 2011-03-21 18:31:35.000000000 -0400 22439+++ linux-2.6.38.3/drivers/ata/pata_marvell.c 2011-04-17 15:57:32.000000000 -0400
21602@@ -100,7 +100,7 @@ static struct scsi_host_template marvell 22440@@ -100,7 +100,7 @@ static struct scsi_host_template marvell
21603 ATA_BMDMA_SHT(DRV_NAME), 22441 ATA_BMDMA_SHT(DRV_NAME),
21604 }; 22442 };
@@ -21608,9 +22446,9 @@ diff -urNp linux-2.6.38.2/drivers/ata/pata_marvell.c linux-2.6.38.2/drivers/ata/
21608 .inherits = &ata_bmdma_port_ops, 22446 .inherits = &ata_bmdma_port_ops,
21609 .cable_detect = marvell_cable_detect, 22447 .cable_detect = marvell_cable_detect,
21610 .prereset = marvell_pre_reset, 22448 .prereset = marvell_pre_reset,
21611diff -urNp linux-2.6.38.2/drivers/ata/pata_mpc52xx.c linux-2.6.38.2/drivers/ata/pata_mpc52xx.c 22449diff -urNp linux-2.6.38.3/drivers/ata/pata_mpc52xx.c linux-2.6.38.3/drivers/ata/pata_mpc52xx.c
21612--- linux-2.6.38.2/drivers/ata/pata_mpc52xx.c 2011-03-14 21:20:32.000000000 -0400 22450--- linux-2.6.38.3/drivers/ata/pata_mpc52xx.c 2011-03-14 21:20:32.000000000 -0400
21613+++ linux-2.6.38.2/drivers/ata/pata_mpc52xx.c 2011-03-21 18:31:35.000000000 -0400 22451+++ linux-2.6.38.3/drivers/ata/pata_mpc52xx.c 2011-04-17 15:57:32.000000000 -0400
21614@@ -609,7 +609,7 @@ static struct scsi_host_template mpc52xx 22452@@ -609,7 +609,7 @@ static struct scsi_host_template mpc52xx
21615 ATA_PIO_SHT(DRV_NAME), 22453 ATA_PIO_SHT(DRV_NAME),
21616 }; 22454 };
@@ -21620,9 +22458,9 @@ diff -urNp linux-2.6.38.2/drivers/ata/pata_mpc52xx.c linux-2.6.38.2/drivers/ata/
21620 .inherits = &ata_bmdma_port_ops, 22458 .inherits = &ata_bmdma_port_ops,
21621 .sff_dev_select = mpc52xx_ata_dev_select, 22459 .sff_dev_select = mpc52xx_ata_dev_select,
21622 .set_piomode = mpc52xx_ata_set_piomode, 22460 .set_piomode = mpc52xx_ata_set_piomode,
21623diff -urNp linux-2.6.38.2/drivers/ata/pata_mpiix.c linux-2.6.38.2/drivers/ata/pata_mpiix.c 22461diff -urNp linux-2.6.38.3/drivers/ata/pata_mpiix.c linux-2.6.38.3/drivers/ata/pata_mpiix.c
21624--- linux-2.6.38.2/drivers/ata/pata_mpiix.c 2011-03-14 21:20:32.000000000 -0400 22462--- linux-2.6.38.3/drivers/ata/pata_mpiix.c 2011-03-14 21:20:32.000000000 -0400
21625+++ linux-2.6.38.2/drivers/ata/pata_mpiix.c 2011-03-21 18:31:35.000000000 -0400 22463+++ linux-2.6.38.3/drivers/ata/pata_mpiix.c 2011-04-17 15:57:32.000000000 -0400
21626@@ -140,7 +140,7 @@ static struct scsi_host_template mpiix_s 22464@@ -140,7 +140,7 @@ static struct scsi_host_template mpiix_s
21627 ATA_PIO_SHT(DRV_NAME), 22465 ATA_PIO_SHT(DRV_NAME),
21628 }; 22466 };
@@ -21632,9 +22470,9 @@ diff -urNp linux-2.6.38.2/drivers/ata/pata_mpiix.c linux-2.6.38.2/drivers/ata/pa
21632 .inherits = &ata_sff_port_ops, 22470 .inherits = &ata_sff_port_ops,
21633 .qc_issue = mpiix_qc_issue, 22471 .qc_issue = mpiix_qc_issue,
21634 .cable_detect = ata_cable_40wire, 22472 .cable_detect = ata_cable_40wire,
21635diff -urNp linux-2.6.38.2/drivers/ata/pata_netcell.c linux-2.6.38.2/drivers/ata/pata_netcell.c 22473diff -urNp linux-2.6.38.3/drivers/ata/pata_netcell.c linux-2.6.38.3/drivers/ata/pata_netcell.c
21636--- linux-2.6.38.2/drivers/ata/pata_netcell.c 2011-03-14 21:20:32.000000000 -0400 22474--- linux-2.6.38.3/drivers/ata/pata_netcell.c 2011-03-14 21:20:32.000000000 -0400
21637+++ linux-2.6.38.2/drivers/ata/pata_netcell.c 2011-03-21 18:31:35.000000000 -0400 22475+++ linux-2.6.38.3/drivers/ata/pata_netcell.c 2011-04-17 15:57:32.000000000 -0400
21638@@ -34,7 +34,7 @@ static struct scsi_host_template netcell 22476@@ -34,7 +34,7 @@ static struct scsi_host_template netcell
21639 ATA_BMDMA_SHT(DRV_NAME), 22477 ATA_BMDMA_SHT(DRV_NAME),
21640 }; 22478 };
@@ -21644,9 +22482,9 @@ diff -urNp linux-2.6.38.2/drivers/ata/pata_netcell.c linux-2.6.38.2/drivers/ata/
21644 .inherits = &ata_bmdma_port_ops, 22482 .inherits = &ata_bmdma_port_ops,
21645 .cable_detect = ata_cable_80wire, 22483 .cable_detect = ata_cable_80wire,
21646 .read_id = netcell_read_id, 22484 .read_id = netcell_read_id,
21647diff -urNp linux-2.6.38.2/drivers/ata/pata_ninja32.c linux-2.6.38.2/drivers/ata/pata_ninja32.c 22485diff -urNp linux-2.6.38.3/drivers/ata/pata_ninja32.c linux-2.6.38.3/drivers/ata/pata_ninja32.c
21648--- linux-2.6.38.2/drivers/ata/pata_ninja32.c 2011-03-14 21:20:32.000000000 -0400 22486--- linux-2.6.38.3/drivers/ata/pata_ninja32.c 2011-03-14 21:20:32.000000000 -0400
21649+++ linux-2.6.38.2/drivers/ata/pata_ninja32.c 2011-03-21 18:31:35.000000000 -0400 22487+++ linux-2.6.38.3/drivers/ata/pata_ninja32.c 2011-04-17 15:57:32.000000000 -0400
21650@@ -81,7 +81,7 @@ static struct scsi_host_template ninja32 22488@@ -81,7 +81,7 @@ static struct scsi_host_template ninja32
21651 ATA_BMDMA_SHT(DRV_NAME), 22489 ATA_BMDMA_SHT(DRV_NAME),
21652 }; 22490 };
@@ -21656,9 +22494,9 @@ diff -urNp linux-2.6.38.2/drivers/ata/pata_ninja32.c linux-2.6.38.2/drivers/ata/
21656 .inherits = &ata_bmdma_port_ops, 22494 .inherits = &ata_bmdma_port_ops,
21657 .sff_dev_select = ninja32_dev_select, 22495 .sff_dev_select = ninja32_dev_select,
21658 .cable_detect = ata_cable_40wire, 22496 .cable_detect = ata_cable_40wire,
21659diff -urNp linux-2.6.38.2/drivers/ata/pata_ns87410.c linux-2.6.38.2/drivers/ata/pata_ns87410.c 22497diff -urNp linux-2.6.38.3/drivers/ata/pata_ns87410.c linux-2.6.38.3/drivers/ata/pata_ns87410.c
21660--- linux-2.6.38.2/drivers/ata/pata_ns87410.c 2011-03-14 21:20:32.000000000 -0400 22498--- linux-2.6.38.3/drivers/ata/pata_ns87410.c 2011-03-14 21:20:32.000000000 -0400
21661+++ linux-2.6.38.2/drivers/ata/pata_ns87410.c 2011-03-21 18:31:35.000000000 -0400 22499+++ linux-2.6.38.3/drivers/ata/pata_ns87410.c 2011-04-17 15:57:32.000000000 -0400
21662@@ -132,7 +132,7 @@ static struct scsi_host_template ns87410 22500@@ -132,7 +132,7 @@ static struct scsi_host_template ns87410
21663 ATA_PIO_SHT(DRV_NAME), 22501 ATA_PIO_SHT(DRV_NAME),
21664 }; 22502 };
@@ -21668,9 +22506,9 @@ diff -urNp linux-2.6.38.2/drivers/ata/pata_ns87410.c linux-2.6.38.2/drivers/ata/
21668 .inherits = &ata_sff_port_ops, 22506 .inherits = &ata_sff_port_ops,
21669 .qc_issue = ns87410_qc_issue, 22507 .qc_issue = ns87410_qc_issue,
21670 .cable_detect = ata_cable_40wire, 22508 .cable_detect = ata_cable_40wire,
21671diff -urNp linux-2.6.38.2/drivers/ata/pata_ns87415.c linux-2.6.38.2/drivers/ata/pata_ns87415.c 22509diff -urNp linux-2.6.38.3/drivers/ata/pata_ns87415.c linux-2.6.38.3/drivers/ata/pata_ns87415.c
21672--- linux-2.6.38.2/drivers/ata/pata_ns87415.c 2011-03-14 21:20:32.000000000 -0400 22510--- linux-2.6.38.3/drivers/ata/pata_ns87415.c 2011-03-14 21:20:32.000000000 -0400
21673+++ linux-2.6.38.2/drivers/ata/pata_ns87415.c 2011-03-21 18:31:35.000000000 -0400 22511+++ linux-2.6.38.3/drivers/ata/pata_ns87415.c 2011-04-17 15:57:32.000000000 -0400
21674@@ -299,7 +299,7 @@ static u8 ns87560_bmdma_status(struct at 22512@@ -299,7 +299,7 @@ static u8 ns87560_bmdma_status(struct at
21675 } 22513 }
21676 #endif /* 87560 SuperIO Support */ 22514 #endif /* 87560 SuperIO Support */
@@ -21689,9 +22527,9 @@ diff -urNp linux-2.6.38.2/drivers/ata/pata_ns87415.c linux-2.6.38.2/drivers/ata/
21689 .inherits = &ns87415_pata_ops, 22527 .inherits = &ns87415_pata_ops,
21690 .sff_tf_read = ns87560_tf_read, 22528 .sff_tf_read = ns87560_tf_read,
21691 .sff_check_status = ns87560_check_status, 22529 .sff_check_status = ns87560_check_status,
21692diff -urNp linux-2.6.38.2/drivers/ata/pata_octeon_cf.c linux-2.6.38.2/drivers/ata/pata_octeon_cf.c 22530diff -urNp linux-2.6.38.3/drivers/ata/pata_octeon_cf.c linux-2.6.38.3/drivers/ata/pata_octeon_cf.c
21693--- linux-2.6.38.2/drivers/ata/pata_octeon_cf.c 2011-03-14 21:20:32.000000000 -0400 22531--- linux-2.6.38.3/drivers/ata/pata_octeon_cf.c 2011-03-14 21:20:32.000000000 -0400
21694+++ linux-2.6.38.2/drivers/ata/pata_octeon_cf.c 2011-03-21 18:31:35.000000000 -0400 22532+++ linux-2.6.38.3/drivers/ata/pata_octeon_cf.c 2011-04-17 15:57:32.000000000 -0400
21695@@ -780,7 +780,7 @@ static unsigned int octeon_cf_qc_issue(s 22533@@ -780,7 +780,7 @@ static unsigned int octeon_cf_qc_issue(s
21696 return 0; 22534 return 0;
21697 } 22535 }
@@ -21701,9 +22539,9 @@ diff -urNp linux-2.6.38.2/drivers/ata/pata_octeon_cf.c linux-2.6.38.2/drivers/at
21701 .inherits = &ata_sff_port_ops, 22539 .inherits = &ata_sff_port_ops,
21702 .check_atapi_dma = octeon_cf_check_atapi_dma, 22540 .check_atapi_dma = octeon_cf_check_atapi_dma,
21703 .qc_prep = ata_noop_qc_prep, 22541 .qc_prep = ata_noop_qc_prep,
21704diff -urNp linux-2.6.38.2/drivers/ata/pata_oldpiix.c linux-2.6.38.2/drivers/ata/pata_oldpiix.c 22542diff -urNp linux-2.6.38.3/drivers/ata/pata_oldpiix.c linux-2.6.38.3/drivers/ata/pata_oldpiix.c
21705--- linux-2.6.38.2/drivers/ata/pata_oldpiix.c 2011-03-14 21:20:32.000000000 -0400 22543--- linux-2.6.38.3/drivers/ata/pata_oldpiix.c 2011-03-14 21:20:32.000000000 -0400
21706+++ linux-2.6.38.2/drivers/ata/pata_oldpiix.c 2011-03-21 18:31:35.000000000 -0400 22544+++ linux-2.6.38.3/drivers/ata/pata_oldpiix.c 2011-04-17 15:57:32.000000000 -0400
21707@@ -208,7 +208,7 @@ static struct scsi_host_template oldpiix 22545@@ -208,7 +208,7 @@ static struct scsi_host_template oldpiix
21708 ATA_BMDMA_SHT(DRV_NAME), 22546 ATA_BMDMA_SHT(DRV_NAME),
21709 }; 22547 };
@@ -21713,9 +22551,9 @@ diff -urNp linux-2.6.38.2/drivers/ata/pata_oldpiix.c linux-2.6.38.2/drivers/ata/
21713 .inherits = &ata_bmdma_port_ops, 22551 .inherits = &ata_bmdma_port_ops,
21714 .qc_issue = oldpiix_qc_issue, 22552 .qc_issue = oldpiix_qc_issue,
21715 .cable_detect = ata_cable_40wire, 22553 .cable_detect = ata_cable_40wire,
21716diff -urNp linux-2.6.38.2/drivers/ata/pata_opti.c linux-2.6.38.2/drivers/ata/pata_opti.c 22554diff -urNp linux-2.6.38.3/drivers/ata/pata_opti.c linux-2.6.38.3/drivers/ata/pata_opti.c
21717--- linux-2.6.38.2/drivers/ata/pata_opti.c 2011-03-14 21:20:32.000000000 -0400 22555--- linux-2.6.38.3/drivers/ata/pata_opti.c 2011-03-14 21:20:32.000000000 -0400
21718+++ linux-2.6.38.2/drivers/ata/pata_opti.c 2011-03-21 18:31:35.000000000 -0400 22556+++ linux-2.6.38.3/drivers/ata/pata_opti.c 2011-04-17 15:57:32.000000000 -0400
21719@@ -152,7 +152,7 @@ static struct scsi_host_template opti_sh 22557@@ -152,7 +152,7 @@ static struct scsi_host_template opti_sh
21720 ATA_PIO_SHT(DRV_NAME), 22558 ATA_PIO_SHT(DRV_NAME),
21721 }; 22559 };
@@ -21725,9 +22563,9 @@ diff -urNp linux-2.6.38.2/drivers/ata/pata_opti.c linux-2.6.38.2/drivers/ata/pat
21725 .inherits = &ata_sff_port_ops, 22563 .inherits = &ata_sff_port_ops,
21726 .cable_detect = ata_cable_40wire, 22564 .cable_detect = ata_cable_40wire,
21727 .set_piomode = opti_set_piomode, 22565 .set_piomode = opti_set_piomode,
21728diff -urNp linux-2.6.38.2/drivers/ata/pata_optidma.c linux-2.6.38.2/drivers/ata/pata_optidma.c 22566diff -urNp linux-2.6.38.3/drivers/ata/pata_optidma.c linux-2.6.38.3/drivers/ata/pata_optidma.c
21729--- linux-2.6.38.2/drivers/ata/pata_optidma.c 2011-03-14 21:20:32.000000000 -0400 22567--- linux-2.6.38.3/drivers/ata/pata_optidma.c 2011-03-14 21:20:32.000000000 -0400
21730+++ linux-2.6.38.2/drivers/ata/pata_optidma.c 2011-03-21 18:31:35.000000000 -0400 22568+++ linux-2.6.38.3/drivers/ata/pata_optidma.c 2011-04-17 15:57:32.000000000 -0400
21731@@ -337,7 +337,7 @@ static struct scsi_host_template optidma 22569@@ -337,7 +337,7 @@ static struct scsi_host_template optidma
21732 ATA_BMDMA_SHT(DRV_NAME), 22570 ATA_BMDMA_SHT(DRV_NAME),
21733 }; 22571 };
@@ -21746,9 +22584,9 @@ diff -urNp linux-2.6.38.2/drivers/ata/pata_optidma.c linux-2.6.38.2/drivers/ata/
21746 .inherits = &optidma_port_ops, 22584 .inherits = &optidma_port_ops,
21747 .set_piomode = optiplus_set_pio_mode, 22585 .set_piomode = optiplus_set_pio_mode,
21748 .set_dmamode = optiplus_set_dma_mode, 22586 .set_dmamode = optiplus_set_dma_mode,
21749diff -urNp linux-2.6.38.2/drivers/ata/pata_palmld.c linux-2.6.38.2/drivers/ata/pata_palmld.c 22587diff -urNp linux-2.6.38.3/drivers/ata/pata_palmld.c linux-2.6.38.3/drivers/ata/pata_palmld.c
21750--- linux-2.6.38.2/drivers/ata/pata_palmld.c 2011-03-14 21:20:32.000000000 -0400 22588--- linux-2.6.38.3/drivers/ata/pata_palmld.c 2011-03-14 21:20:32.000000000 -0400
21751+++ linux-2.6.38.2/drivers/ata/pata_palmld.c 2011-03-21 18:31:35.000000000 -0400 22589+++ linux-2.6.38.3/drivers/ata/pata_palmld.c 2011-04-17 15:57:32.000000000 -0400
21752@@ -37,7 +37,7 @@ static struct scsi_host_template palmld_ 22590@@ -37,7 +37,7 @@ static struct scsi_host_template palmld_
21753 ATA_PIO_SHT(DRV_NAME), 22591 ATA_PIO_SHT(DRV_NAME),
21754 }; 22592 };
@@ -21758,9 +22596,9 @@ diff -urNp linux-2.6.38.2/drivers/ata/pata_palmld.c linux-2.6.38.2/drivers/ata/p
21758 .inherits = &ata_sff_port_ops, 22596 .inherits = &ata_sff_port_ops,
21759 .sff_data_xfer = ata_sff_data_xfer_noirq, 22597 .sff_data_xfer = ata_sff_data_xfer_noirq,
21760 .cable_detect = ata_cable_40wire, 22598 .cable_detect = ata_cable_40wire,
21761diff -urNp linux-2.6.38.2/drivers/ata/pata_pcmcia.c linux-2.6.38.2/drivers/ata/pata_pcmcia.c 22599diff -urNp linux-2.6.38.3/drivers/ata/pata_pcmcia.c linux-2.6.38.3/drivers/ata/pata_pcmcia.c
21762--- linux-2.6.38.2/drivers/ata/pata_pcmcia.c 2011-03-14 21:20:32.000000000 -0400 22600--- linux-2.6.38.3/drivers/ata/pata_pcmcia.c 2011-03-14 21:20:32.000000000 -0400
21763+++ linux-2.6.38.2/drivers/ata/pata_pcmcia.c 2011-03-21 18:31:35.000000000 -0400 22601+++ linux-2.6.38.3/drivers/ata/pata_pcmcia.c 2011-04-17 15:57:32.000000000 -0400
21764@@ -151,14 +151,14 @@ static struct scsi_host_template pcmcia_ 22602@@ -151,14 +151,14 @@ static struct scsi_host_template pcmcia_
21765 ATA_PIO_SHT(DRV_NAME), 22603 ATA_PIO_SHT(DRV_NAME),
21766 }; 22604 };
@@ -21787,9 +22625,9 @@ diff -urNp linux-2.6.38.2/drivers/ata/pata_pcmcia.c linux-2.6.38.2/drivers/ata/p
21787 22625
21788 /* Set up attributes in order to probe card and get resources */ 22626 /* Set up attributes in order to probe card and get resources */
21789 pdev->config_flags |= CONF_ENABLE_IRQ | CONF_AUTO_SET_IO | 22627 pdev->config_flags |= CONF_ENABLE_IRQ | CONF_AUTO_SET_IO |
21790diff -urNp linux-2.6.38.2/drivers/ata/pata_pdc2027x.c linux-2.6.38.2/drivers/ata/pata_pdc2027x.c 22628diff -urNp linux-2.6.38.3/drivers/ata/pata_pdc2027x.c linux-2.6.38.3/drivers/ata/pata_pdc2027x.c
21791--- linux-2.6.38.2/drivers/ata/pata_pdc2027x.c 2011-03-14 21:20:32.000000000 -0400 22629--- linux-2.6.38.3/drivers/ata/pata_pdc2027x.c 2011-03-14 21:20:32.000000000 -0400
21792+++ linux-2.6.38.2/drivers/ata/pata_pdc2027x.c 2011-03-21 18:31:35.000000000 -0400 22630+++ linux-2.6.38.3/drivers/ata/pata_pdc2027x.c 2011-04-17 15:57:32.000000000 -0400
21793@@ -132,14 +132,14 @@ static struct scsi_host_template pdc2027 22631@@ -132,14 +132,14 @@ static struct scsi_host_template pdc2027
21794 ATA_BMDMA_SHT(DRV_NAME), 22632 ATA_BMDMA_SHT(DRV_NAME),
21795 }; 22633 };
@@ -21807,9 +22645,9 @@ diff -urNp linux-2.6.38.2/drivers/ata/pata_pdc2027x.c linux-2.6.38.2/drivers/ata
21807 .inherits = &pdc2027x_pata100_ops, 22645 .inherits = &pdc2027x_pata100_ops,
21808 .mode_filter = pdc2027x_mode_filter, 22646 .mode_filter = pdc2027x_mode_filter,
21809 .set_piomode = pdc2027x_set_piomode, 22647 .set_piomode = pdc2027x_set_piomode,
21810diff -urNp linux-2.6.38.2/drivers/ata/pata_pdc202xx_old.c linux-2.6.38.2/drivers/ata/pata_pdc202xx_old.c 22648diff -urNp linux-2.6.38.3/drivers/ata/pata_pdc202xx_old.c linux-2.6.38.3/drivers/ata/pata_pdc202xx_old.c
21811--- linux-2.6.38.2/drivers/ata/pata_pdc202xx_old.c 2011-03-14 21:20:32.000000000 -0400 22649--- linux-2.6.38.3/drivers/ata/pata_pdc202xx_old.c 2011-03-14 21:20:32.000000000 -0400
21812+++ linux-2.6.38.2/drivers/ata/pata_pdc202xx_old.c 2011-03-21 18:31:35.000000000 -0400 22650+++ linux-2.6.38.3/drivers/ata/pata_pdc202xx_old.c 2011-04-17 15:57:32.000000000 -0400
21813@@ -295,7 +295,7 @@ static struct scsi_host_template pdc202x 22651@@ -295,7 +295,7 @@ static struct scsi_host_template pdc202x
21814 ATA_BMDMA_SHT(DRV_NAME), 22652 ATA_BMDMA_SHT(DRV_NAME),
21815 }; 22653 };
@@ -21828,9 +22666,9 @@ diff -urNp linux-2.6.38.2/drivers/ata/pata_pdc202xx_old.c linux-2.6.38.2/drivers
21828 .inherits = &pdc2024x_port_ops, 22666 .inherits = &pdc2024x_port_ops,
21829 22667
21830 .check_atapi_dma = pdc2026x_check_atapi_dma, 22668 .check_atapi_dma = pdc2026x_check_atapi_dma,
21831diff -urNp linux-2.6.38.2/drivers/ata/pata_piccolo.c linux-2.6.38.2/drivers/ata/pata_piccolo.c 22669diff -urNp linux-2.6.38.3/drivers/ata/pata_piccolo.c linux-2.6.38.3/drivers/ata/pata_piccolo.c
21832--- linux-2.6.38.2/drivers/ata/pata_piccolo.c 2011-03-14 21:20:32.000000000 -0400 22670--- linux-2.6.38.3/drivers/ata/pata_piccolo.c 2011-03-14 21:20:32.000000000 -0400
21833+++ linux-2.6.38.2/drivers/ata/pata_piccolo.c 2011-03-21 18:31:35.000000000 -0400 22671+++ linux-2.6.38.3/drivers/ata/pata_piccolo.c 2011-04-17 15:57:32.000000000 -0400
21834@@ -67,7 +67,7 @@ static struct scsi_host_template tosh_sh 22672@@ -67,7 +67,7 @@ static struct scsi_host_template tosh_sh
21835 ATA_BMDMA_SHT(DRV_NAME), 22673 ATA_BMDMA_SHT(DRV_NAME),
21836 }; 22674 };
@@ -21840,9 +22678,9 @@ diff -urNp linux-2.6.38.2/drivers/ata/pata_piccolo.c linux-2.6.38.2/drivers/ata/
21840 .inherits = &ata_bmdma_port_ops, 22678 .inherits = &ata_bmdma_port_ops,
21841 .cable_detect = ata_cable_unknown, 22679 .cable_detect = ata_cable_unknown,
21842 .set_piomode = tosh_set_piomode, 22680 .set_piomode = tosh_set_piomode,
21843diff -urNp linux-2.6.38.2/drivers/ata/pata_platform.c linux-2.6.38.2/drivers/ata/pata_platform.c 22681diff -urNp linux-2.6.38.3/drivers/ata/pata_platform.c linux-2.6.38.3/drivers/ata/pata_platform.c
21844--- linux-2.6.38.2/drivers/ata/pata_platform.c 2011-03-14 21:20:32.000000000 -0400 22682--- linux-2.6.38.3/drivers/ata/pata_platform.c 2011-03-14 21:20:32.000000000 -0400
21845+++ linux-2.6.38.2/drivers/ata/pata_platform.c 2011-03-21 18:31:35.000000000 -0400 22683+++ linux-2.6.38.3/drivers/ata/pata_platform.c 2011-04-17 15:57:32.000000000 -0400
21846@@ -48,7 +48,7 @@ static struct scsi_host_template pata_pl 22684@@ -48,7 +48,7 @@ static struct scsi_host_template pata_pl
21847 ATA_PIO_SHT(DRV_NAME), 22685 ATA_PIO_SHT(DRV_NAME),
21848 }; 22686 };
@@ -21852,9 +22690,9 @@ diff -urNp linux-2.6.38.2/drivers/ata/pata_platform.c linux-2.6.38.2/drivers/ata
21852 .inherits = &ata_sff_port_ops, 22690 .inherits = &ata_sff_port_ops,
21853 .sff_data_xfer = ata_sff_data_xfer_noirq, 22691 .sff_data_xfer = ata_sff_data_xfer_noirq,
21854 .cable_detect = ata_cable_unknown, 22692 .cable_detect = ata_cable_unknown,
21855diff -urNp linux-2.6.38.2/drivers/ata/pata_pxa.c linux-2.6.38.2/drivers/ata/pata_pxa.c 22693diff -urNp linux-2.6.38.3/drivers/ata/pata_pxa.c linux-2.6.38.3/drivers/ata/pata_pxa.c
21856--- linux-2.6.38.2/drivers/ata/pata_pxa.c 2011-03-14 21:20:32.000000000 -0400 22694--- linux-2.6.38.3/drivers/ata/pata_pxa.c 2011-03-14 21:20:32.000000000 -0400
21857+++ linux-2.6.38.2/drivers/ata/pata_pxa.c 2011-03-21 18:31:35.000000000 -0400 22695+++ linux-2.6.38.3/drivers/ata/pata_pxa.c 2011-04-17 15:57:32.000000000 -0400
21858@@ -198,7 +198,7 @@ static struct scsi_host_template pxa_ata 22696@@ -198,7 +198,7 @@ static struct scsi_host_template pxa_ata
21859 ATA_BMDMA_SHT(DRV_NAME), 22697 ATA_BMDMA_SHT(DRV_NAME),
21860 }; 22698 };
@@ -21864,9 +22702,9 @@ diff -urNp linux-2.6.38.2/drivers/ata/pata_pxa.c linux-2.6.38.2/drivers/ata/pata
21864 .inherits = &ata_bmdma_port_ops, 22702 .inherits = &ata_bmdma_port_ops,
21865 .cable_detect = ata_cable_40wire, 22703 .cable_detect = ata_cable_40wire,
21866 22704
21867diff -urNp linux-2.6.38.2/drivers/ata/pata_qdi.c linux-2.6.38.2/drivers/ata/pata_qdi.c 22705diff -urNp linux-2.6.38.3/drivers/ata/pata_qdi.c linux-2.6.38.3/drivers/ata/pata_qdi.c
21868--- linux-2.6.38.2/drivers/ata/pata_qdi.c 2011-03-14 21:20:32.000000000 -0400 22706--- linux-2.6.38.3/drivers/ata/pata_qdi.c 2011-03-14 21:20:32.000000000 -0400
21869+++ linux-2.6.38.2/drivers/ata/pata_qdi.c 2011-03-21 18:31:35.000000000 -0400 22707+++ linux-2.6.38.3/drivers/ata/pata_qdi.c 2011-04-17 15:57:32.000000000 -0400
21870@@ -157,7 +157,7 @@ static struct scsi_host_template qdi_sht 22708@@ -157,7 +157,7 @@ static struct scsi_host_template qdi_sht
21871 ATA_PIO_SHT(DRV_NAME), 22709 ATA_PIO_SHT(DRV_NAME),
21872 }; 22710 };
@@ -21885,9 +22723,9 @@ diff -urNp linux-2.6.38.2/drivers/ata/pata_qdi.c linux-2.6.38.2/drivers/ata/pata
21885 .inherits = &qdi6500_port_ops, 22723 .inherits = &qdi6500_port_ops,
21886 .set_piomode = qdi6580_set_piomode, 22724 .set_piomode = qdi6580_set_piomode,
21887 }; 22725 };
21888diff -urNp linux-2.6.38.2/drivers/ata/pata_radisys.c linux-2.6.38.2/drivers/ata/pata_radisys.c 22726diff -urNp linux-2.6.38.3/drivers/ata/pata_radisys.c linux-2.6.38.3/drivers/ata/pata_radisys.c
21889--- linux-2.6.38.2/drivers/ata/pata_radisys.c 2011-03-14 21:20:32.000000000 -0400 22727--- linux-2.6.38.3/drivers/ata/pata_radisys.c 2011-03-14 21:20:32.000000000 -0400
21890+++ linux-2.6.38.2/drivers/ata/pata_radisys.c 2011-03-21 18:31:35.000000000 -0400 22728+++ linux-2.6.38.3/drivers/ata/pata_radisys.c 2011-04-17 15:57:32.000000000 -0400
21891@@ -187,7 +187,7 @@ static struct scsi_host_template radisys 22729@@ -187,7 +187,7 @@ static struct scsi_host_template radisys
21892 ATA_BMDMA_SHT(DRV_NAME), 22730 ATA_BMDMA_SHT(DRV_NAME),
21893 }; 22731 };
@@ -21897,9 +22735,9 @@ diff -urNp linux-2.6.38.2/drivers/ata/pata_radisys.c linux-2.6.38.2/drivers/ata/
21897 .inherits = &ata_bmdma_port_ops, 22735 .inherits = &ata_bmdma_port_ops,
21898 .qc_issue = radisys_qc_issue, 22736 .qc_issue = radisys_qc_issue,
21899 .cable_detect = ata_cable_unknown, 22737 .cable_detect = ata_cable_unknown,
21900diff -urNp linux-2.6.38.2/drivers/ata/pata_rb532_cf.c linux-2.6.38.2/drivers/ata/pata_rb532_cf.c 22738diff -urNp linux-2.6.38.3/drivers/ata/pata_rb532_cf.c linux-2.6.38.3/drivers/ata/pata_rb532_cf.c
21901--- linux-2.6.38.2/drivers/ata/pata_rb532_cf.c 2011-03-14 21:20:32.000000000 -0400 22739--- linux-2.6.38.3/drivers/ata/pata_rb532_cf.c 2011-03-14 21:20:32.000000000 -0400
21902+++ linux-2.6.38.2/drivers/ata/pata_rb532_cf.c 2011-03-21 18:31:35.000000000 -0400 22740+++ linux-2.6.38.3/drivers/ata/pata_rb532_cf.c 2011-04-17 15:57:32.000000000 -0400
21903@@ -69,7 +69,7 @@ static irqreturn_t rb532_pata_irq_handle 22741@@ -69,7 +69,7 @@ static irqreturn_t rb532_pata_irq_handle
21904 return IRQ_HANDLED; 22742 return IRQ_HANDLED;
21905 } 22743 }
@@ -21909,9 +22747,9 @@ diff -urNp linux-2.6.38.2/drivers/ata/pata_rb532_cf.c linux-2.6.38.2/drivers/ata
21909 .inherits = &ata_sff_port_ops, 22747 .inherits = &ata_sff_port_ops,
21910 .sff_data_xfer = ata_sff_data_xfer32, 22748 .sff_data_xfer = ata_sff_data_xfer32,
21911 }; 22749 };
21912diff -urNp linux-2.6.38.2/drivers/ata/pata_rdc.c linux-2.6.38.2/drivers/ata/pata_rdc.c 22750diff -urNp linux-2.6.38.3/drivers/ata/pata_rdc.c linux-2.6.38.3/drivers/ata/pata_rdc.c
21913--- linux-2.6.38.2/drivers/ata/pata_rdc.c 2011-03-14 21:20:32.000000000 -0400 22751--- linux-2.6.38.3/drivers/ata/pata_rdc.c 2011-03-14 21:20:32.000000000 -0400
21914+++ linux-2.6.38.2/drivers/ata/pata_rdc.c 2011-03-21 18:31:35.000000000 -0400 22752+++ linux-2.6.38.3/drivers/ata/pata_rdc.c 2011-04-17 15:57:32.000000000 -0400
21915@@ -273,7 +273,7 @@ static void rdc_set_dmamode(struct ata_p 22753@@ -273,7 +273,7 @@ static void rdc_set_dmamode(struct ata_p
21916 pci_write_config_byte(dev, 0x48, udma_enable); 22754 pci_write_config_byte(dev, 0x48, udma_enable);
21917 } 22755 }
@@ -21921,9 +22759,9 @@ diff -urNp linux-2.6.38.2/drivers/ata/pata_rdc.c linux-2.6.38.2/drivers/ata/pata
21921 .inherits = &ata_bmdma32_port_ops, 22759 .inherits = &ata_bmdma32_port_ops,
21922 .cable_detect = rdc_pata_cable_detect, 22760 .cable_detect = rdc_pata_cable_detect,
21923 .set_piomode = rdc_set_piomode, 22761 .set_piomode = rdc_set_piomode,
21924diff -urNp linux-2.6.38.2/drivers/ata/pata_rz1000.c linux-2.6.38.2/drivers/ata/pata_rz1000.c 22762diff -urNp linux-2.6.38.3/drivers/ata/pata_rz1000.c linux-2.6.38.3/drivers/ata/pata_rz1000.c
21925--- linux-2.6.38.2/drivers/ata/pata_rz1000.c 2011-03-14 21:20:32.000000000 -0400 22763--- linux-2.6.38.3/drivers/ata/pata_rz1000.c 2011-03-14 21:20:32.000000000 -0400
21926+++ linux-2.6.38.2/drivers/ata/pata_rz1000.c 2011-03-21 18:31:35.000000000 -0400 22764+++ linux-2.6.38.3/drivers/ata/pata_rz1000.c 2011-04-17 15:57:32.000000000 -0400
21927@@ -54,7 +54,7 @@ static struct scsi_host_template rz1000_ 22765@@ -54,7 +54,7 @@ static struct scsi_host_template rz1000_
21928 ATA_PIO_SHT(DRV_NAME), 22766 ATA_PIO_SHT(DRV_NAME),
21929 }; 22767 };
@@ -21933,9 +22771,9 @@ diff -urNp linux-2.6.38.2/drivers/ata/pata_rz1000.c linux-2.6.38.2/drivers/ata/p
21933 .inherits = &ata_sff_port_ops, 22771 .inherits = &ata_sff_port_ops,
21934 .cable_detect = ata_cable_40wire, 22772 .cable_detect = ata_cable_40wire,
21935 .set_mode = rz1000_set_mode, 22773 .set_mode = rz1000_set_mode,
21936diff -urNp linux-2.6.38.2/drivers/ata/pata_samsung_cf.c linux-2.6.38.2/drivers/ata/pata_samsung_cf.c 22774diff -urNp linux-2.6.38.3/drivers/ata/pata_samsung_cf.c linux-2.6.38.3/drivers/ata/pata_samsung_cf.c
21937--- linux-2.6.38.2/drivers/ata/pata_samsung_cf.c 2011-03-14 21:20:32.000000000 -0400 22775--- linux-2.6.38.3/drivers/ata/pata_samsung_cf.c 2011-03-14 21:20:32.000000000 -0400
21938+++ linux-2.6.38.2/drivers/ata/pata_samsung_cf.c 2011-03-21 18:31:35.000000000 -0400 22776+++ linux-2.6.38.3/drivers/ata/pata_samsung_cf.c 2011-04-17 15:57:32.000000000 -0400
21939@@ -399,7 +399,7 @@ static struct scsi_host_template pata_s3 22777@@ -399,7 +399,7 @@ static struct scsi_host_template pata_s3
21940 ATA_PIO_SHT(DRV_NAME), 22778 ATA_PIO_SHT(DRV_NAME),
21941 }; 22779 };
@@ -21954,9 +22792,9 @@ diff -urNp linux-2.6.38.2/drivers/ata/pata_samsung_cf.c linux-2.6.38.2/drivers/a
21954 .inherits = &ata_sff_port_ops, 22792 .inherits = &ata_sff_port_ops,
21955 .set_piomode = pata_s3c_set_piomode, 22793 .set_piomode = pata_s3c_set_piomode,
21956 }; 22794 };
21957diff -urNp linux-2.6.38.2/drivers/ata/pata_sc1200.c linux-2.6.38.2/drivers/ata/pata_sc1200.c 22795diff -urNp linux-2.6.38.3/drivers/ata/pata_sc1200.c linux-2.6.38.3/drivers/ata/pata_sc1200.c
21958--- linux-2.6.38.2/drivers/ata/pata_sc1200.c 2011-03-14 21:20:32.000000000 -0400 22796--- linux-2.6.38.3/drivers/ata/pata_sc1200.c 2011-03-14 21:20:32.000000000 -0400
21959+++ linux-2.6.38.2/drivers/ata/pata_sc1200.c 2011-03-21 18:31:35.000000000 -0400 22797+++ linux-2.6.38.3/drivers/ata/pata_sc1200.c 2011-04-17 15:57:32.000000000 -0400
21960@@ -207,7 +207,7 @@ static struct scsi_host_template sc1200_ 22798@@ -207,7 +207,7 @@ static struct scsi_host_template sc1200_
21961 .sg_tablesize = LIBATA_DUMB_MAX_PRD, 22799 .sg_tablesize = LIBATA_DUMB_MAX_PRD,
21962 }; 22800 };
@@ -21966,9 +22804,9 @@ diff -urNp linux-2.6.38.2/drivers/ata/pata_sc1200.c linux-2.6.38.2/drivers/ata/p
21966 .inherits = &ata_bmdma_port_ops, 22804 .inherits = &ata_bmdma_port_ops,
21967 .qc_prep = ata_bmdma_dumb_qc_prep, 22805 .qc_prep = ata_bmdma_dumb_qc_prep,
21968 .qc_issue = sc1200_qc_issue, 22806 .qc_issue = sc1200_qc_issue,
21969diff -urNp linux-2.6.38.2/drivers/ata/pata_scc.c linux-2.6.38.2/drivers/ata/pata_scc.c 22807diff -urNp linux-2.6.38.3/drivers/ata/pata_scc.c linux-2.6.38.3/drivers/ata/pata_scc.c
21970--- linux-2.6.38.2/drivers/ata/pata_scc.c 2011-03-14 21:20:32.000000000 -0400 22808--- linux-2.6.38.3/drivers/ata/pata_scc.c 2011-03-14 21:20:32.000000000 -0400
21971+++ linux-2.6.38.2/drivers/ata/pata_scc.c 2011-03-21 18:31:35.000000000 -0400 22809+++ linux-2.6.38.3/drivers/ata/pata_scc.c 2011-04-17 15:57:32.000000000 -0400
21972@@ -926,7 +926,7 @@ static struct scsi_host_template scc_sht 22810@@ -926,7 +926,7 @@ static struct scsi_host_template scc_sht
21973 ATA_BMDMA_SHT(DRV_NAME), 22811 ATA_BMDMA_SHT(DRV_NAME),
21974 }; 22812 };
@@ -21978,9 +22816,9 @@ diff -urNp linux-2.6.38.2/drivers/ata/pata_scc.c linux-2.6.38.2/drivers/ata/pata
21978 .inherits = &ata_bmdma_port_ops, 22816 .inherits = &ata_bmdma_port_ops,
21979 22817
21980 .set_piomode = scc_set_piomode, 22818 .set_piomode = scc_set_piomode,
21981diff -urNp linux-2.6.38.2/drivers/ata/pata_sch.c linux-2.6.38.2/drivers/ata/pata_sch.c 22819diff -urNp linux-2.6.38.3/drivers/ata/pata_sch.c linux-2.6.38.3/drivers/ata/pata_sch.c
21982--- linux-2.6.38.2/drivers/ata/pata_sch.c 2011-03-14 21:20:32.000000000 -0400 22820--- linux-2.6.38.3/drivers/ata/pata_sch.c 2011-03-14 21:20:32.000000000 -0400
21983+++ linux-2.6.38.2/drivers/ata/pata_sch.c 2011-03-21 18:31:35.000000000 -0400 22821+++ linux-2.6.38.3/drivers/ata/pata_sch.c 2011-04-17 15:57:32.000000000 -0400
21984@@ -75,7 +75,7 @@ static struct scsi_host_template sch_sht 22822@@ -75,7 +75,7 @@ static struct scsi_host_template sch_sht
21985 ATA_BMDMA_SHT(DRV_NAME), 22823 ATA_BMDMA_SHT(DRV_NAME),
21986 }; 22824 };
@@ -21990,9 +22828,9 @@ diff -urNp linux-2.6.38.2/drivers/ata/pata_sch.c linux-2.6.38.2/drivers/ata/pata
21990 .inherits = &ata_bmdma_port_ops, 22828 .inherits = &ata_bmdma_port_ops,
21991 .cable_detect = ata_cable_unknown, 22829 .cable_detect = ata_cable_unknown,
21992 .set_piomode = sch_set_piomode, 22830 .set_piomode = sch_set_piomode,
21993diff -urNp linux-2.6.38.2/drivers/ata/pata_serverworks.c linux-2.6.38.2/drivers/ata/pata_serverworks.c 22831diff -urNp linux-2.6.38.3/drivers/ata/pata_serverworks.c linux-2.6.38.3/drivers/ata/pata_serverworks.c
21994--- linux-2.6.38.2/drivers/ata/pata_serverworks.c 2011-03-14 21:20:32.000000000 -0400 22832--- linux-2.6.38.3/drivers/ata/pata_serverworks.c 2011-03-14 21:20:32.000000000 -0400
21995+++ linux-2.6.38.2/drivers/ata/pata_serverworks.c 2011-03-21 18:31:35.000000000 -0400 22833+++ linux-2.6.38.3/drivers/ata/pata_serverworks.c 2011-04-17 15:57:32.000000000 -0400
21996@@ -300,7 +300,7 @@ static struct scsi_host_template serverw 22834@@ -300,7 +300,7 @@ static struct scsi_host_template serverw
21997 ATA_BMDMA_SHT(DRV_NAME), 22835 ATA_BMDMA_SHT(DRV_NAME),
21998 }; 22836 };
@@ -22011,9 +22849,9 @@ diff -urNp linux-2.6.38.2/drivers/ata/pata_serverworks.c linux-2.6.38.2/drivers/
22011 .inherits = &serverworks_osb4_port_ops, 22849 .inherits = &serverworks_osb4_port_ops,
22012 .mode_filter = serverworks_csb_filter, 22850 .mode_filter = serverworks_csb_filter,
22013 }; 22851 };
22014diff -urNp linux-2.6.38.2/drivers/ata/pata_sil680.c linux-2.6.38.2/drivers/ata/pata_sil680.c 22852diff -urNp linux-2.6.38.3/drivers/ata/pata_sil680.c linux-2.6.38.3/drivers/ata/pata_sil680.c
22015--- linux-2.6.38.2/drivers/ata/pata_sil680.c 2011-03-14 21:20:32.000000000 -0400 22853--- linux-2.6.38.3/drivers/ata/pata_sil680.c 2011-03-14 21:20:32.000000000 -0400
22016+++ linux-2.6.38.2/drivers/ata/pata_sil680.c 2011-03-21 18:31:35.000000000 -0400 22854+++ linux-2.6.38.3/drivers/ata/pata_sil680.c 2011-04-17 15:57:32.000000000 -0400
22017@@ -225,8 +225,7 @@ static struct scsi_host_template sil680_ 22855@@ -225,8 +225,7 @@ static struct scsi_host_template sil680_
22018 ATA_BMDMA_SHT(DRV_NAME), 22856 ATA_BMDMA_SHT(DRV_NAME),
22019 }; 22857 };
@@ -22024,9 +22862,9 @@ diff -urNp linux-2.6.38.2/drivers/ata/pata_sil680.c linux-2.6.38.2/drivers/ata/p
22024 .inherits = &ata_bmdma32_port_ops, 22862 .inherits = &ata_bmdma32_port_ops,
22025 .sff_exec_command = sil680_sff_exec_command, 22863 .sff_exec_command = sil680_sff_exec_command,
22026 .sff_irq_check = sil680_sff_irq_check, 22864 .sff_irq_check = sil680_sff_irq_check,
22027diff -urNp linux-2.6.38.2/drivers/ata/pata_sis.c linux-2.6.38.2/drivers/ata/pata_sis.c 22865diff -urNp linux-2.6.38.3/drivers/ata/pata_sis.c linux-2.6.38.3/drivers/ata/pata_sis.c
22028--- linux-2.6.38.2/drivers/ata/pata_sis.c 2011-03-14 21:20:32.000000000 -0400 22866--- linux-2.6.38.3/drivers/ata/pata_sis.c 2011-03-14 21:20:32.000000000 -0400
22029+++ linux-2.6.38.2/drivers/ata/pata_sis.c 2011-03-21 18:31:35.000000000 -0400 22867+++ linux-2.6.38.3/drivers/ata/pata_sis.c 2011-04-17 15:57:32.000000000 -0400
22030@@ -503,47 +503,47 @@ static struct scsi_host_template sis_sht 22868@@ -503,47 +503,47 @@ static struct scsi_host_template sis_sht
22031 ATA_BMDMA_SHT(DRV_NAME), 22869 ATA_BMDMA_SHT(DRV_NAME),
22032 }; 22870 };
@@ -22082,9 +22920,9 @@ diff -urNp linux-2.6.38.2/drivers/ata/pata_sis.c linux-2.6.38.2/drivers/ata/pata
22082 .inherits = &sis_base_ops, 22920 .inherits = &sis_base_ops,
22083 .set_piomode = sis_old_set_piomode, 22921 .set_piomode = sis_old_set_piomode,
22084 .set_dmamode = sis_old_set_dmamode, 22922 .set_dmamode = sis_old_set_dmamode,
22085diff -urNp linux-2.6.38.2/drivers/ata/pata_sl82c105.c linux-2.6.38.2/drivers/ata/pata_sl82c105.c 22923diff -urNp linux-2.6.38.3/drivers/ata/pata_sl82c105.c linux-2.6.38.3/drivers/ata/pata_sl82c105.c
22086--- linux-2.6.38.2/drivers/ata/pata_sl82c105.c 2011-03-14 21:20:32.000000000 -0400 22924--- linux-2.6.38.3/drivers/ata/pata_sl82c105.c 2011-03-14 21:20:32.000000000 -0400
22087+++ linux-2.6.38.2/drivers/ata/pata_sl82c105.c 2011-03-21 18:31:35.000000000 -0400 22925+++ linux-2.6.38.3/drivers/ata/pata_sl82c105.c 2011-04-17 15:57:32.000000000 -0400
22088@@ -241,7 +241,7 @@ static struct scsi_host_template sl82c10 22926@@ -241,7 +241,7 @@ static struct scsi_host_template sl82c10
22089 ATA_BMDMA_SHT(DRV_NAME), 22927 ATA_BMDMA_SHT(DRV_NAME),
22090 }; 22928 };
@@ -22094,9 +22932,9 @@ diff -urNp linux-2.6.38.2/drivers/ata/pata_sl82c105.c linux-2.6.38.2/drivers/ata
22094 .inherits = &ata_bmdma_port_ops, 22932 .inherits = &ata_bmdma_port_ops,
22095 .qc_defer = sl82c105_qc_defer, 22933 .qc_defer = sl82c105_qc_defer,
22096 .bmdma_start = sl82c105_bmdma_start, 22934 .bmdma_start = sl82c105_bmdma_start,
22097diff -urNp linux-2.6.38.2/drivers/ata/pata_triflex.c linux-2.6.38.2/drivers/ata/pata_triflex.c 22935diff -urNp linux-2.6.38.3/drivers/ata/pata_triflex.c linux-2.6.38.3/drivers/ata/pata_triflex.c
22098--- linux-2.6.38.2/drivers/ata/pata_triflex.c 2011-03-14 21:20:32.000000000 -0400 22936--- linux-2.6.38.3/drivers/ata/pata_triflex.c 2011-03-14 21:20:32.000000000 -0400
22099+++ linux-2.6.38.2/drivers/ata/pata_triflex.c 2011-03-21 18:31:35.000000000 -0400 22937+++ linux-2.6.38.3/drivers/ata/pata_triflex.c 2011-04-17 15:57:32.000000000 -0400
22100@@ -178,7 +178,7 @@ static struct scsi_host_template triflex 22938@@ -178,7 +178,7 @@ static struct scsi_host_template triflex
22101 ATA_BMDMA_SHT(DRV_NAME), 22939 ATA_BMDMA_SHT(DRV_NAME),
22102 }; 22940 };
@@ -22106,9 +22944,9 @@ diff -urNp linux-2.6.38.2/drivers/ata/pata_triflex.c linux-2.6.38.2/drivers/ata/
22106 .inherits = &ata_bmdma_port_ops, 22944 .inherits = &ata_bmdma_port_ops,
22107 .bmdma_start = triflex_bmdma_start, 22945 .bmdma_start = triflex_bmdma_start,
22108 .bmdma_stop = triflex_bmdma_stop, 22946 .bmdma_stop = triflex_bmdma_stop,
22109diff -urNp linux-2.6.38.2/drivers/ata/pata_via.c linux-2.6.38.2/drivers/ata/pata_via.c 22947diff -urNp linux-2.6.38.3/drivers/ata/pata_via.c linux-2.6.38.3/drivers/ata/pata_via.c
22110--- linux-2.6.38.2/drivers/ata/pata_via.c 2011-03-14 21:20:32.000000000 -0400 22948--- linux-2.6.38.3/drivers/ata/pata_via.c 2011-03-14 21:20:32.000000000 -0400
22111+++ linux-2.6.38.2/drivers/ata/pata_via.c 2011-03-21 18:31:35.000000000 -0400 22949+++ linux-2.6.38.3/drivers/ata/pata_via.c 2011-04-17 15:57:32.000000000 -0400
22112@@ -441,7 +441,7 @@ static struct scsi_host_template via_sht 22950@@ -441,7 +441,7 @@ static struct scsi_host_template via_sht
22113 ATA_BMDMA_SHT(DRV_NAME), 22951 ATA_BMDMA_SHT(DRV_NAME),
22114 }; 22952 };
@@ -22127,9 +22965,9 @@ diff -urNp linux-2.6.38.2/drivers/ata/pata_via.c linux-2.6.38.2/drivers/ata/pata
22127 .inherits = &via_port_ops, 22965 .inherits = &via_port_ops,
22128 .sff_data_xfer = ata_sff_data_xfer_noirq, 22966 .sff_data_xfer = ata_sff_data_xfer_noirq,
22129 }; 22967 };
22130diff -urNp linux-2.6.38.2/drivers/ata/pdc_adma.c linux-2.6.38.2/drivers/ata/pdc_adma.c 22968diff -urNp linux-2.6.38.3/drivers/ata/pdc_adma.c linux-2.6.38.3/drivers/ata/pdc_adma.c
22131--- linux-2.6.38.2/drivers/ata/pdc_adma.c 2011-03-14 21:20:32.000000000 -0400 22969--- linux-2.6.38.3/drivers/ata/pdc_adma.c 2011-03-14 21:20:32.000000000 -0400
22132+++ linux-2.6.38.2/drivers/ata/pdc_adma.c 2011-03-21 18:31:35.000000000 -0400 22970+++ linux-2.6.38.3/drivers/ata/pdc_adma.c 2011-04-17 15:57:32.000000000 -0400
22133@@ -146,7 +146,7 @@ static struct scsi_host_template adma_at 22971@@ -146,7 +146,7 @@ static struct scsi_host_template adma_at
22134 .dma_boundary = ADMA_DMA_BOUNDARY, 22972 .dma_boundary = ADMA_DMA_BOUNDARY,
22135 }; 22973 };
@@ -22139,9 +22977,9 @@ diff -urNp linux-2.6.38.2/drivers/ata/pdc_adma.c linux-2.6.38.2/drivers/ata/pdc_
22139 .inherits = &ata_sff_port_ops, 22977 .inherits = &ata_sff_port_ops,
22140 22978
22141 .lost_interrupt = ATA_OP_NULL, 22979 .lost_interrupt = ATA_OP_NULL,
22142diff -urNp linux-2.6.38.2/drivers/ata/sata_dwc_460ex.c linux-2.6.38.2/drivers/ata/sata_dwc_460ex.c 22980diff -urNp linux-2.6.38.3/drivers/ata/sata_dwc_460ex.c linux-2.6.38.3/drivers/ata/sata_dwc_460ex.c
22143--- linux-2.6.38.2/drivers/ata/sata_dwc_460ex.c 2011-03-14 21:20:32.000000000 -0400 22981--- linux-2.6.38.3/drivers/ata/sata_dwc_460ex.c 2011-03-14 21:20:32.000000000 -0400
22144+++ linux-2.6.38.2/drivers/ata/sata_dwc_460ex.c 2011-03-21 18:31:35.000000000 -0400 22982+++ linux-2.6.38.3/drivers/ata/sata_dwc_460ex.c 2011-04-17 15:57:32.000000000 -0400
22145@@ -1560,7 +1560,7 @@ static struct scsi_host_template sata_dw 22983@@ -1560,7 +1560,7 @@ static struct scsi_host_template sata_dw
22146 .dma_boundary = ATA_DMA_BOUNDARY, 22984 .dma_boundary = ATA_DMA_BOUNDARY,
22147 }; 22985 };
@@ -22151,9 +22989,9 @@ diff -urNp linux-2.6.38.2/drivers/ata/sata_dwc_460ex.c linux-2.6.38.2/drivers/at
22151 .inherits = &ata_sff_port_ops, 22989 .inherits = &ata_sff_port_ops,
22152 22990
22153 .error_handler = sata_dwc_error_handler, 22991 .error_handler = sata_dwc_error_handler,
22154diff -urNp linux-2.6.38.2/drivers/ata/sata_fsl.c linux-2.6.38.2/drivers/ata/sata_fsl.c 22992diff -urNp linux-2.6.38.3/drivers/ata/sata_fsl.c linux-2.6.38.3/drivers/ata/sata_fsl.c
22155--- linux-2.6.38.2/drivers/ata/sata_fsl.c 2011-03-14 21:20:32.000000000 -0400 22993--- linux-2.6.38.3/drivers/ata/sata_fsl.c 2011-03-14 21:20:32.000000000 -0400
22156+++ linux-2.6.38.2/drivers/ata/sata_fsl.c 2011-03-21 18:31:35.000000000 -0400 22994+++ linux-2.6.38.3/drivers/ata/sata_fsl.c 2011-04-17 15:57:32.000000000 -0400
22157@@ -1258,7 +1258,7 @@ static struct scsi_host_template sata_fs 22995@@ -1258,7 +1258,7 @@ static struct scsi_host_template sata_fs
22158 .dma_boundary = ATA_DMA_BOUNDARY, 22996 .dma_boundary = ATA_DMA_BOUNDARY,
22159 }; 22997 };
@@ -22163,9 +23001,9 @@ diff -urNp linux-2.6.38.2/drivers/ata/sata_fsl.c linux-2.6.38.2/drivers/ata/sata
22163 .inherits = &sata_pmp_port_ops, 23001 .inherits = &sata_pmp_port_ops,
22164 23002
22165 .qc_defer = ata_std_qc_defer, 23003 .qc_defer = ata_std_qc_defer,
22166diff -urNp linux-2.6.38.2/drivers/ata/sata_inic162x.c linux-2.6.38.2/drivers/ata/sata_inic162x.c 23004diff -urNp linux-2.6.38.3/drivers/ata/sata_inic162x.c linux-2.6.38.3/drivers/ata/sata_inic162x.c
22167--- linux-2.6.38.2/drivers/ata/sata_inic162x.c 2011-03-14 21:20:32.000000000 -0400 23005--- linux-2.6.38.3/drivers/ata/sata_inic162x.c 2011-03-14 21:20:32.000000000 -0400
22168+++ linux-2.6.38.2/drivers/ata/sata_inic162x.c 2011-03-21 18:31:35.000000000 -0400 23006+++ linux-2.6.38.3/drivers/ata/sata_inic162x.c 2011-04-17 15:57:32.000000000 -0400
22169@@ -705,7 +705,7 @@ static int inic_port_start(struct ata_po 23007@@ -705,7 +705,7 @@ static int inic_port_start(struct ata_po
22170 return 0; 23008 return 0;
22171 } 23009 }
@@ -22175,9 +23013,9 @@ diff -urNp linux-2.6.38.2/drivers/ata/sata_inic162x.c linux-2.6.38.2/drivers/ata
22175 .inherits = &sata_port_ops, 23013 .inherits = &sata_port_ops,
22176 23014
22177 .check_atapi_dma = inic_check_atapi_dma, 23015 .check_atapi_dma = inic_check_atapi_dma,
22178diff -urNp linux-2.6.38.2/drivers/ata/sata_mv.c linux-2.6.38.2/drivers/ata/sata_mv.c 23016diff -urNp linux-2.6.38.3/drivers/ata/sata_mv.c linux-2.6.38.3/drivers/ata/sata_mv.c
22179--- linux-2.6.38.2/drivers/ata/sata_mv.c 2011-03-14 21:20:32.000000000 -0400 23017--- linux-2.6.38.3/drivers/ata/sata_mv.c 2011-03-14 21:20:32.000000000 -0400
22180+++ linux-2.6.38.2/drivers/ata/sata_mv.c 2011-03-21 18:31:35.000000000 -0400 23018+++ linux-2.6.38.3/drivers/ata/sata_mv.c 2011-04-17 15:57:32.000000000 -0400
22181@@ -663,7 +663,7 @@ static struct scsi_host_template mv6_sht 23019@@ -663,7 +663,7 @@ static struct scsi_host_template mv6_sht
22182 .dma_boundary = MV_DMA_BOUNDARY, 23020 .dma_boundary = MV_DMA_BOUNDARY,
22183 }; 23021 };
@@ -22205,9 +23043,9 @@ diff -urNp linux-2.6.38.2/drivers/ata/sata_mv.c linux-2.6.38.2/drivers/ata/sata_
22205 .inherits = &mv6_ops, 23043 .inherits = &mv6_ops,
22206 .dev_config = ATA_OP_NULL, 23044 .dev_config = ATA_OP_NULL,
22207 .qc_prep = mv_qc_prep_iie, 23045 .qc_prep = mv_qc_prep_iie,
22208diff -urNp linux-2.6.38.2/drivers/ata/sata_nv.c linux-2.6.38.2/drivers/ata/sata_nv.c 23046diff -urNp linux-2.6.38.3/drivers/ata/sata_nv.c linux-2.6.38.3/drivers/ata/sata_nv.c
22209--- linux-2.6.38.2/drivers/ata/sata_nv.c 2011-03-14 21:20:32.000000000 -0400 23047--- linux-2.6.38.3/drivers/ata/sata_nv.c 2011-03-14 21:20:32.000000000 -0400
22210+++ linux-2.6.38.2/drivers/ata/sata_nv.c 2011-03-21 18:31:35.000000000 -0400 23048+++ linux-2.6.38.3/drivers/ata/sata_nv.c 2011-04-17 15:57:32.000000000 -0400
22211@@ -465,7 +465,7 @@ static struct scsi_host_template nv_swnc 23049@@ -465,7 +465,7 @@ static struct scsi_host_template nv_swnc
22212 * cases. Define nv_hardreset() which only kicks in for post-boot 23050 * cases. Define nv_hardreset() which only kicks in for post-boot
22213 * probing and use it for all variants. 23051 * probing and use it for all variants.
@@ -22250,9 +23088,9 @@ diff -urNp linux-2.6.38.2/drivers/ata/sata_nv.c linux-2.6.38.2/drivers/ata/sata_
22250 .inherits = &nv_generic_ops, 23088 .inherits = &nv_generic_ops,
22251 23089
22252 .qc_defer = ata_std_qc_defer, 23090 .qc_defer = ata_std_qc_defer,
22253diff -urNp linux-2.6.38.2/drivers/ata/sata_promise.c linux-2.6.38.2/drivers/ata/sata_promise.c 23091diff -urNp linux-2.6.38.3/drivers/ata/sata_promise.c linux-2.6.38.3/drivers/ata/sata_promise.c
22254--- linux-2.6.38.2/drivers/ata/sata_promise.c 2011-03-14 21:20:32.000000000 -0400 23092--- linux-2.6.38.3/drivers/ata/sata_promise.c 2011-03-14 21:20:32.000000000 -0400
22255+++ linux-2.6.38.2/drivers/ata/sata_promise.c 2011-03-21 18:31:35.000000000 -0400 23093+++ linux-2.6.38.3/drivers/ata/sata_promise.c 2011-04-17 15:57:32.000000000 -0400
22256@@ -196,7 +196,7 @@ static const struct ata_port_operations 23094@@ -196,7 +196,7 @@ static const struct ata_port_operations
22257 .error_handler = pdc_error_handler, 23095 .error_handler = pdc_error_handler,
22258 }; 23096 };
@@ -22279,9 +23117,9 @@ diff -urNp linux-2.6.38.2/drivers/ata/sata_promise.c linux-2.6.38.2/drivers/ata/
22279 .inherits = &pdc_common_ops, 23117 .inherits = &pdc_common_ops,
22280 .cable_detect = pdc_pata_cable_detect, 23118 .cable_detect = pdc_pata_cable_detect,
22281 .freeze = pdc_freeze, 23119 .freeze = pdc_freeze,
22282diff -urNp linux-2.6.38.2/drivers/ata/sata_qstor.c linux-2.6.38.2/drivers/ata/sata_qstor.c 23120diff -urNp linux-2.6.38.3/drivers/ata/sata_qstor.c linux-2.6.38.3/drivers/ata/sata_qstor.c
22283--- linux-2.6.38.2/drivers/ata/sata_qstor.c 2011-03-14 21:20:32.000000000 -0400 23121--- linux-2.6.38.3/drivers/ata/sata_qstor.c 2011-03-14 21:20:32.000000000 -0400
22284+++ linux-2.6.38.2/drivers/ata/sata_qstor.c 2011-03-21 18:31:35.000000000 -0400 23122+++ linux-2.6.38.3/drivers/ata/sata_qstor.c 2011-04-17 15:57:32.000000000 -0400
22285@@ -131,7 +131,7 @@ static struct scsi_host_template qs_ata_ 23123@@ -131,7 +131,7 @@ static struct scsi_host_template qs_ata_
22286 .dma_boundary = QS_DMA_BOUNDARY, 23124 .dma_boundary = QS_DMA_BOUNDARY,
22287 }; 23125 };
@@ -22291,9 +23129,9 @@ diff -urNp linux-2.6.38.2/drivers/ata/sata_qstor.c linux-2.6.38.2/drivers/ata/sa
22291 .inherits = &ata_sff_port_ops, 23129 .inherits = &ata_sff_port_ops,
22292 23130
22293 .check_atapi_dma = qs_check_atapi_dma, 23131 .check_atapi_dma = qs_check_atapi_dma,
22294diff -urNp linux-2.6.38.2/drivers/ata/sata_sil24.c linux-2.6.38.2/drivers/ata/sata_sil24.c 23132diff -urNp linux-2.6.38.3/drivers/ata/sata_sil24.c linux-2.6.38.3/drivers/ata/sata_sil24.c
22295--- linux-2.6.38.2/drivers/ata/sata_sil24.c 2011-03-14 21:20:32.000000000 -0400 23133--- linux-2.6.38.3/drivers/ata/sata_sil24.c 2011-03-14 21:20:32.000000000 -0400
22296+++ linux-2.6.38.2/drivers/ata/sata_sil24.c 2011-03-21 18:31:35.000000000 -0400 23134+++ linux-2.6.38.3/drivers/ata/sata_sil24.c 2011-04-17 15:57:32.000000000 -0400
22297@@ -389,7 +389,7 @@ static struct scsi_host_template sil24_s 23135@@ -389,7 +389,7 @@ static struct scsi_host_template sil24_s
22298 .dma_boundary = ATA_DMA_BOUNDARY, 23136 .dma_boundary = ATA_DMA_BOUNDARY,
22299 }; 23137 };
@@ -22303,9 +23141,9 @@ diff -urNp linux-2.6.38.2/drivers/ata/sata_sil24.c linux-2.6.38.2/drivers/ata/sa
22303 .inherits = &sata_pmp_port_ops, 23141 .inherits = &sata_pmp_port_ops,
22304 23142
22305 .qc_defer = sil24_qc_defer, 23143 .qc_defer = sil24_qc_defer,
22306diff -urNp linux-2.6.38.2/drivers/ata/sata_sil.c linux-2.6.38.2/drivers/ata/sata_sil.c 23144diff -urNp linux-2.6.38.3/drivers/ata/sata_sil.c linux-2.6.38.3/drivers/ata/sata_sil.c
22307--- linux-2.6.38.2/drivers/ata/sata_sil.c 2011-03-14 21:20:32.000000000 -0400 23145--- linux-2.6.38.3/drivers/ata/sata_sil.c 2011-03-14 21:20:32.000000000 -0400
22308+++ linux-2.6.38.2/drivers/ata/sata_sil.c 2011-03-21 18:31:35.000000000 -0400 23146+++ linux-2.6.38.3/drivers/ata/sata_sil.c 2011-04-17 15:57:32.000000000 -0400
22309@@ -182,7 +182,7 @@ static struct scsi_host_template sil_sht 23147@@ -182,7 +182,7 @@ static struct scsi_host_template sil_sht
22310 .sg_tablesize = ATA_MAX_PRD 23148 .sg_tablesize = ATA_MAX_PRD
22311 }; 23149 };
@@ -22315,9 +23153,9 @@ diff -urNp linux-2.6.38.2/drivers/ata/sata_sil.c linux-2.6.38.2/drivers/ata/sata
22315 .inherits = &ata_bmdma32_port_ops, 23153 .inherits = &ata_bmdma32_port_ops,
22316 .dev_config = sil_dev_config, 23154 .dev_config = sil_dev_config,
22317 .set_mode = sil_set_mode, 23155 .set_mode = sil_set_mode,
22318diff -urNp linux-2.6.38.2/drivers/ata/sata_sis.c linux-2.6.38.2/drivers/ata/sata_sis.c 23156diff -urNp linux-2.6.38.3/drivers/ata/sata_sis.c linux-2.6.38.3/drivers/ata/sata_sis.c
22319--- linux-2.6.38.2/drivers/ata/sata_sis.c 2011-03-14 21:20:32.000000000 -0400 23157--- linux-2.6.38.3/drivers/ata/sata_sis.c 2011-03-14 21:20:32.000000000 -0400
22320+++ linux-2.6.38.2/drivers/ata/sata_sis.c 2011-03-21 18:31:35.000000000 -0400 23158+++ linux-2.6.38.3/drivers/ata/sata_sis.c 2011-04-17 15:57:32.000000000 -0400
22321@@ -89,7 +89,7 @@ static struct scsi_host_template sis_sht 23159@@ -89,7 +89,7 @@ static struct scsi_host_template sis_sht
22322 ATA_BMDMA_SHT(DRV_NAME), 23160 ATA_BMDMA_SHT(DRV_NAME),
22323 }; 23161 };
@@ -22327,9 +23165,9 @@ diff -urNp linux-2.6.38.2/drivers/ata/sata_sis.c linux-2.6.38.2/drivers/ata/sata
22327 .inherits = &ata_bmdma_port_ops, 23165 .inherits = &ata_bmdma_port_ops,
22328 .scr_read = sis_scr_read, 23166 .scr_read = sis_scr_read,
22329 .scr_write = sis_scr_write, 23167 .scr_write = sis_scr_write,
22330diff -urNp linux-2.6.38.2/drivers/ata/sata_svw.c linux-2.6.38.2/drivers/ata/sata_svw.c 23168diff -urNp linux-2.6.38.3/drivers/ata/sata_svw.c linux-2.6.38.3/drivers/ata/sata_svw.c
22331--- linux-2.6.38.2/drivers/ata/sata_svw.c 2011-03-14 21:20:32.000000000 -0400 23169--- linux-2.6.38.3/drivers/ata/sata_svw.c 2011-03-14 21:20:32.000000000 -0400
22332+++ linux-2.6.38.2/drivers/ata/sata_svw.c 2011-03-21 18:31:35.000000000 -0400 23170+++ linux-2.6.38.3/drivers/ata/sata_svw.c 2011-04-17 15:57:32.000000000 -0400
22333@@ -344,7 +344,7 @@ static struct scsi_host_template k2_sata 23171@@ -344,7 +344,7 @@ static struct scsi_host_template k2_sata
22334 }; 23172 };
22335 23173
@@ -22339,9 +23177,9 @@ diff -urNp linux-2.6.38.2/drivers/ata/sata_svw.c linux-2.6.38.2/drivers/ata/sata
22339 .inherits = &ata_bmdma_port_ops, 23177 .inherits = &ata_bmdma_port_ops,
22340 .sff_tf_load = k2_sata_tf_load, 23178 .sff_tf_load = k2_sata_tf_load,
22341 .sff_tf_read = k2_sata_tf_read, 23179 .sff_tf_read = k2_sata_tf_read,
22342diff -urNp linux-2.6.38.2/drivers/ata/sata_sx4.c linux-2.6.38.2/drivers/ata/sata_sx4.c 23180diff -urNp linux-2.6.38.3/drivers/ata/sata_sx4.c linux-2.6.38.3/drivers/ata/sata_sx4.c
22343--- linux-2.6.38.2/drivers/ata/sata_sx4.c 2011-03-14 21:20:32.000000000 -0400 23181--- linux-2.6.38.3/drivers/ata/sata_sx4.c 2011-03-14 21:20:32.000000000 -0400
22344+++ linux-2.6.38.2/drivers/ata/sata_sx4.c 2011-03-21 18:31:35.000000000 -0400 23182+++ linux-2.6.38.3/drivers/ata/sata_sx4.c 2011-04-17 15:57:32.000000000 -0400
22345@@ -249,7 +249,7 @@ static struct scsi_host_template pdc_sat 23183@@ -249,7 +249,7 @@ static struct scsi_host_template pdc_sat
22346 }; 23184 };
22347 23185
@@ -22351,9 +23189,9 @@ diff -urNp linux-2.6.38.2/drivers/ata/sata_sx4.c linux-2.6.38.2/drivers/ata/sata
22351 .inherits = &ata_sff_port_ops, 23189 .inherits = &ata_sff_port_ops,
22352 23190
22353 .check_atapi_dma = pdc_check_atapi_dma, 23191 .check_atapi_dma = pdc_check_atapi_dma,
22354diff -urNp linux-2.6.38.2/drivers/ata/sata_uli.c linux-2.6.38.2/drivers/ata/sata_uli.c 23192diff -urNp linux-2.6.38.3/drivers/ata/sata_uli.c linux-2.6.38.3/drivers/ata/sata_uli.c
22355--- linux-2.6.38.2/drivers/ata/sata_uli.c 2011-03-14 21:20:32.000000000 -0400 23193--- linux-2.6.38.3/drivers/ata/sata_uli.c 2011-03-14 21:20:32.000000000 -0400
22356+++ linux-2.6.38.2/drivers/ata/sata_uli.c 2011-03-21 18:31:35.000000000 -0400 23194+++ linux-2.6.38.3/drivers/ata/sata_uli.c 2011-04-17 15:57:32.000000000 -0400
22357@@ -80,7 +80,7 @@ static struct scsi_host_template uli_sht 23195@@ -80,7 +80,7 @@ static struct scsi_host_template uli_sht
22358 ATA_BMDMA_SHT(DRV_NAME), 23196 ATA_BMDMA_SHT(DRV_NAME),
22359 }; 23197 };
@@ -22363,9 +23201,9 @@ diff -urNp linux-2.6.38.2/drivers/ata/sata_uli.c linux-2.6.38.2/drivers/ata/sata
22363 .inherits = &ata_bmdma_port_ops, 23201 .inherits = &ata_bmdma_port_ops,
22364 .scr_read = uli_scr_read, 23202 .scr_read = uli_scr_read,
22365 .scr_write = uli_scr_write, 23203 .scr_write = uli_scr_write,
22366diff -urNp linux-2.6.38.2/drivers/ata/sata_via.c linux-2.6.38.2/drivers/ata/sata_via.c 23204diff -urNp linux-2.6.38.3/drivers/ata/sata_via.c linux-2.6.38.3/drivers/ata/sata_via.c
22367--- linux-2.6.38.2/drivers/ata/sata_via.c 2011-03-14 21:20:32.000000000 -0400 23205--- linux-2.6.38.3/drivers/ata/sata_via.c 2011-03-14 21:20:32.000000000 -0400
22368+++ linux-2.6.38.2/drivers/ata/sata_via.c 2011-03-21 18:31:35.000000000 -0400 23206+++ linux-2.6.38.3/drivers/ata/sata_via.c 2011-04-17 15:57:32.000000000 -0400
22369@@ -115,32 +115,32 @@ static struct scsi_host_template svia_sh 23207@@ -115,32 +115,32 @@ static struct scsi_host_template svia_sh
22370 ATA_BMDMA_SHT(DRV_NAME), 23208 ATA_BMDMA_SHT(DRV_NAME),
22371 }; 23209 };
@@ -22404,9 +23242,9 @@ diff -urNp linux-2.6.38.2/drivers/ata/sata_via.c linux-2.6.38.2/drivers/ata/sata
22404 .inherits = &svia_base_ops, 23242 .inherits = &svia_base_ops,
22405 .hardreset = sata_std_hardreset, 23243 .hardreset = sata_std_hardreset,
22406 .scr_read = vt8251_scr_read, 23244 .scr_read = vt8251_scr_read,
22407diff -urNp linux-2.6.38.2/drivers/ata/sata_vsc.c linux-2.6.38.2/drivers/ata/sata_vsc.c 23245diff -urNp linux-2.6.38.3/drivers/ata/sata_vsc.c linux-2.6.38.3/drivers/ata/sata_vsc.c
22408--- linux-2.6.38.2/drivers/ata/sata_vsc.c 2011-03-14 21:20:32.000000000 -0400 23246--- linux-2.6.38.3/drivers/ata/sata_vsc.c 2011-03-14 21:20:32.000000000 -0400
22409+++ linux-2.6.38.2/drivers/ata/sata_vsc.c 2011-03-21 18:31:35.000000000 -0400 23247+++ linux-2.6.38.3/drivers/ata/sata_vsc.c 2011-04-17 15:57:32.000000000 -0400
22410@@ -300,7 +300,7 @@ static struct scsi_host_template vsc_sat 23248@@ -300,7 +300,7 @@ static struct scsi_host_template vsc_sat
22411 }; 23249 };
22412 23250
@@ -22416,9 +23254,9 @@ diff -urNp linux-2.6.38.2/drivers/ata/sata_vsc.c linux-2.6.38.2/drivers/ata/sata
22416 .inherits = &ata_bmdma_port_ops, 23254 .inherits = &ata_bmdma_port_ops,
22417 /* The IRQ handling is not quite standard SFF behaviour so we 23255 /* The IRQ handling is not quite standard SFF behaviour so we
22418 cannot use the default lost interrupt handler */ 23256 cannot use the default lost interrupt handler */
22419diff -urNp linux-2.6.38.2/drivers/atm/adummy.c linux-2.6.38.2/drivers/atm/adummy.c 23257diff -urNp linux-2.6.38.3/drivers/atm/adummy.c linux-2.6.38.3/drivers/atm/adummy.c
22420--- linux-2.6.38.2/drivers/atm/adummy.c 2011-03-14 21:20:32.000000000 -0400 23258--- linux-2.6.38.3/drivers/atm/adummy.c 2011-03-14 21:20:32.000000000 -0400
22421+++ linux-2.6.38.2/drivers/atm/adummy.c 2011-03-21 18:31:35.000000000 -0400 23259+++ linux-2.6.38.3/drivers/atm/adummy.c 2011-04-17 15:57:32.000000000 -0400
22422@@ -114,7 +114,7 @@ adummy_send(struct atm_vcc *vcc, struct 23260@@ -114,7 +114,7 @@ adummy_send(struct atm_vcc *vcc, struct
22423 vcc->pop(vcc, skb); 23261 vcc->pop(vcc, skb);
22424 else 23262 else
@@ -22428,9 +23266,9 @@ diff -urNp linux-2.6.38.2/drivers/atm/adummy.c linux-2.6.38.2/drivers/atm/adummy
22428 23266
22429 return 0; 23267 return 0;
22430 } 23268 }
22431diff -urNp linux-2.6.38.2/drivers/atm/ambassador.c linux-2.6.38.2/drivers/atm/ambassador.c 23269diff -urNp linux-2.6.38.3/drivers/atm/ambassador.c linux-2.6.38.3/drivers/atm/ambassador.c
22432--- linux-2.6.38.2/drivers/atm/ambassador.c 2011-03-14 21:20:32.000000000 -0400 23270--- linux-2.6.38.3/drivers/atm/ambassador.c 2011-03-14 21:20:32.000000000 -0400
22433+++ linux-2.6.38.2/drivers/atm/ambassador.c 2011-03-21 18:31:35.000000000 -0400 23271+++ linux-2.6.38.3/drivers/atm/ambassador.c 2011-04-17 15:57:32.000000000 -0400
22434@@ -454,7 +454,7 @@ static void tx_complete (amb_dev * dev, 23272@@ -454,7 +454,7 @@ static void tx_complete (amb_dev * dev,
22435 PRINTD (DBG_FLOW|DBG_TX, "tx_complete %p %p", dev, tx); 23273 PRINTD (DBG_FLOW|DBG_TX, "tx_complete %p %p", dev, tx);
22436 23274
@@ -22467,9 +23305,9 @@ diff -urNp linux-2.6.38.2/drivers/atm/ambassador.c linux-2.6.38.2/drivers/atm/am
22467 return -ENOMEM; // ? 23305 return -ENOMEM; // ?
22468 } 23306 }
22469 23307
22470diff -urNp linux-2.6.38.2/drivers/atm/atmtcp.c linux-2.6.38.2/drivers/atm/atmtcp.c 23308diff -urNp linux-2.6.38.3/drivers/atm/atmtcp.c linux-2.6.38.3/drivers/atm/atmtcp.c
22471--- linux-2.6.38.2/drivers/atm/atmtcp.c 2011-03-14 21:20:32.000000000 -0400 23309--- linux-2.6.38.3/drivers/atm/atmtcp.c 2011-03-14 21:20:32.000000000 -0400
22472+++ linux-2.6.38.2/drivers/atm/atmtcp.c 2011-03-21 18:31:35.000000000 -0400 23310+++ linux-2.6.38.3/drivers/atm/atmtcp.c 2011-04-17 15:57:32.000000000 -0400
22473@@ -207,7 +207,7 @@ static int atmtcp_v_send(struct atm_vcc 23311@@ -207,7 +207,7 @@ static int atmtcp_v_send(struct atm_vcc
22474 if (vcc->pop) vcc->pop(vcc,skb); 23312 if (vcc->pop) vcc->pop(vcc,skb);
22475 else dev_kfree_skb(skb); 23313 else dev_kfree_skb(skb);
@@ -22519,9 +23357,9 @@ diff -urNp linux-2.6.38.2/drivers/atm/atmtcp.c linux-2.6.38.2/drivers/atm/atmtcp
22519 done: 23357 done:
22520 if (vcc->pop) vcc->pop(vcc,skb); 23358 if (vcc->pop) vcc->pop(vcc,skb);
22521 else dev_kfree_skb(skb); 23359 else dev_kfree_skb(skb);
22522diff -urNp linux-2.6.38.2/drivers/atm/eni.c linux-2.6.38.2/drivers/atm/eni.c 23360diff -urNp linux-2.6.38.3/drivers/atm/eni.c linux-2.6.38.3/drivers/atm/eni.c
22523--- linux-2.6.38.2/drivers/atm/eni.c 2011-03-14 21:20:32.000000000 -0400 23361--- linux-2.6.38.3/drivers/atm/eni.c 2011-03-14 21:20:32.000000000 -0400
22524+++ linux-2.6.38.2/drivers/atm/eni.c 2011-03-21 18:31:35.000000000 -0400 23362+++ linux-2.6.38.3/drivers/atm/eni.c 2011-04-17 15:57:32.000000000 -0400
22525@@ -526,7 +526,7 @@ static int rx_aal0(struct atm_vcc *vcc) 23363@@ -526,7 +526,7 @@ static int rx_aal0(struct atm_vcc *vcc)
22526 DPRINTK(DEV_LABEL "(itf %d): trashing empty cell\n", 23364 DPRINTK(DEV_LABEL "(itf %d): trashing empty cell\n",
22527 vcc->dev->number); 23365 vcc->dev->number);
@@ -22567,9 +23405,9 @@ diff -urNp linux-2.6.38.2/drivers/atm/eni.c linux-2.6.38.2/drivers/atm/eni.c
22567 wake_up(&eni_dev->tx_wait); 23405 wake_up(&eni_dev->tx_wait);
22568 dma_complete++; 23406 dma_complete++;
22569 } 23407 }
22570diff -urNp linux-2.6.38.2/drivers/atm/firestream.c linux-2.6.38.2/drivers/atm/firestream.c 23408diff -urNp linux-2.6.38.3/drivers/atm/firestream.c linux-2.6.38.3/drivers/atm/firestream.c
22571--- linux-2.6.38.2/drivers/atm/firestream.c 2011-03-14 21:20:32.000000000 -0400 23409--- linux-2.6.38.3/drivers/atm/firestream.c 2011-03-14 21:20:32.000000000 -0400
22572+++ linux-2.6.38.2/drivers/atm/firestream.c 2011-03-21 18:31:35.000000000 -0400 23410+++ linux-2.6.38.3/drivers/atm/firestream.c 2011-04-17 15:57:32.000000000 -0400
22573@@ -749,7 +749,7 @@ static void process_txdone_queue (struct 23411@@ -749,7 +749,7 @@ static void process_txdone_queue (struct
22574 } 23412 }
22575 } 23413 }
@@ -22603,9 +23441,9 @@ diff -urNp linux-2.6.38.2/drivers/atm/firestream.c linux-2.6.38.2/drivers/atm/fi
22603 break; 23441 break;
22604 default: /* Hmm. Haven't written the code to handle the others yet... -- REW */ 23442 default: /* Hmm. Haven't written the code to handle the others yet... -- REW */
22605 printk (KERN_WARNING "Don't know what to do with RX status %x: %s.\n", 23443 printk (KERN_WARNING "Don't know what to do with RX status %x: %s.\n",
22606diff -urNp linux-2.6.38.2/drivers/atm/fore200e.c linux-2.6.38.2/drivers/atm/fore200e.c 23444diff -urNp linux-2.6.38.3/drivers/atm/fore200e.c linux-2.6.38.3/drivers/atm/fore200e.c
22607--- linux-2.6.38.2/drivers/atm/fore200e.c 2011-03-14 21:20:32.000000000 -0400 23445--- linux-2.6.38.3/drivers/atm/fore200e.c 2011-03-14 21:20:32.000000000 -0400
22608+++ linux-2.6.38.2/drivers/atm/fore200e.c 2011-03-21 18:31:35.000000000 -0400 23446+++ linux-2.6.38.3/drivers/atm/fore200e.c 2011-04-17 15:57:32.000000000 -0400
22609@@ -933,9 +933,9 @@ fore200e_tx_irq(struct fore200e* fore200 23447@@ -933,9 +933,9 @@ fore200e_tx_irq(struct fore200e* fore200
22610 #endif 23448 #endif
22611 /* check error condition */ 23449 /* check error condition */
@@ -22662,9 +23500,9 @@ diff -urNp linux-2.6.38.2/drivers/atm/fore200e.c linux-2.6.38.2/drivers/atm/fore
22662 23500
22663 fore200e->tx_sat++; 23501 fore200e->tx_sat++;
22664 DPRINTK(2, "tx queue of device %s is saturated, PDU dropped - heartbeat is %08x\n", 23502 DPRINTK(2, "tx queue of device %s is saturated, PDU dropped - heartbeat is %08x\n",
22665diff -urNp linux-2.6.38.2/drivers/atm/he.c linux-2.6.38.2/drivers/atm/he.c 23503diff -urNp linux-2.6.38.3/drivers/atm/he.c linux-2.6.38.3/drivers/atm/he.c
22666--- linux-2.6.38.2/drivers/atm/he.c 2011-03-14 21:20:32.000000000 -0400 23504--- linux-2.6.38.3/drivers/atm/he.c 2011-03-14 21:20:32.000000000 -0400
22667+++ linux-2.6.38.2/drivers/atm/he.c 2011-03-21 18:31:35.000000000 -0400 23505+++ linux-2.6.38.3/drivers/atm/he.c 2011-04-17 15:57:32.000000000 -0400
22668@@ -1709,7 +1709,7 @@ he_service_rbrq(struct he_dev *he_dev, i 23506@@ -1709,7 +1709,7 @@ he_service_rbrq(struct he_dev *he_dev, i
22669 23507
22670 if (RBRQ_HBUF_ERR(he_dev->rbrq_head)) { 23508 if (RBRQ_HBUF_ERR(he_dev->rbrq_head)) {
@@ -22746,9 +23584,9 @@ diff -urNp linux-2.6.38.2/drivers/atm/he.c linux-2.6.38.2/drivers/atm/he.c
22746 23584
22747 return 0; 23585 return 0;
22748 } 23586 }
22749diff -urNp linux-2.6.38.2/drivers/atm/horizon.c linux-2.6.38.2/drivers/atm/horizon.c 23587diff -urNp linux-2.6.38.3/drivers/atm/horizon.c linux-2.6.38.3/drivers/atm/horizon.c
22750--- linux-2.6.38.2/drivers/atm/horizon.c 2011-03-14 21:20:32.000000000 -0400 23588--- linux-2.6.38.3/drivers/atm/horizon.c 2011-03-14 21:20:32.000000000 -0400
22751+++ linux-2.6.38.2/drivers/atm/horizon.c 2011-03-21 18:31:35.000000000 -0400 23589+++ linux-2.6.38.3/drivers/atm/horizon.c 2011-04-17 15:57:32.000000000 -0400
22752@@ -1034,7 +1034,7 @@ static void rx_schedule (hrz_dev * dev, 23590@@ -1034,7 +1034,7 @@ static void rx_schedule (hrz_dev * dev,
22753 { 23591 {
22754 struct atm_vcc * vcc = ATM_SKB(skb)->vcc; 23592 struct atm_vcc * vcc = ATM_SKB(skb)->vcc;
@@ -22767,9 +23605,9 @@ diff -urNp linux-2.6.38.2/drivers/atm/horizon.c linux-2.6.38.2/drivers/atm/horiz
22767 23605
22768 // free the skb 23606 // free the skb
22769 hrz_kfree_skb (skb); 23607 hrz_kfree_skb (skb);
22770diff -urNp linux-2.6.38.2/drivers/atm/idt77252.c linux-2.6.38.2/drivers/atm/idt77252.c 23608diff -urNp linux-2.6.38.3/drivers/atm/idt77252.c linux-2.6.38.3/drivers/atm/idt77252.c
22771--- linux-2.6.38.2/drivers/atm/idt77252.c 2011-03-14 21:20:32.000000000 -0400 23609--- linux-2.6.38.3/drivers/atm/idt77252.c 2011-03-14 21:20:32.000000000 -0400
22772+++ linux-2.6.38.2/drivers/atm/idt77252.c 2011-03-21 18:31:35.000000000 -0400 23610+++ linux-2.6.38.3/drivers/atm/idt77252.c 2011-04-17 15:57:32.000000000 -0400
22773@@ -811,7 +811,7 @@ drain_scq(struct idt77252_dev *card, str 23611@@ -811,7 +811,7 @@ drain_scq(struct idt77252_dev *card, str
22774 else 23612 else
22775 dev_kfree_skb(skb); 23613 dev_kfree_skb(skb);
@@ -22924,9 +23762,9 @@ diff -urNp linux-2.6.38.2/drivers/atm/idt77252.c linux-2.6.38.2/drivers/atm/idt7
22924 return -ENOMEM; 23762 return -ENOMEM;
22925 } 23763 }
22926 atomic_add(skb->truesize, &sk_atm(vcc)->sk_wmem_alloc); 23764 atomic_add(skb->truesize, &sk_atm(vcc)->sk_wmem_alloc);
22927diff -urNp linux-2.6.38.2/drivers/atm/iphase.c linux-2.6.38.2/drivers/atm/iphase.c 23765diff -urNp linux-2.6.38.3/drivers/atm/iphase.c linux-2.6.38.3/drivers/atm/iphase.c
22928--- linux-2.6.38.2/drivers/atm/iphase.c 2011-03-14 21:20:32.000000000 -0400 23766--- linux-2.6.38.3/drivers/atm/iphase.c 2011-03-14 21:20:32.000000000 -0400
22929+++ linux-2.6.38.2/drivers/atm/iphase.c 2011-03-21 18:31:35.000000000 -0400 23767+++ linux-2.6.38.3/drivers/atm/iphase.c 2011-04-17 15:57:32.000000000 -0400
22930@@ -1124,7 +1124,7 @@ static int rx_pkt(struct atm_dev *dev) 23768@@ -1124,7 +1124,7 @@ static int rx_pkt(struct atm_dev *dev)
22931 status = (u_short) (buf_desc_ptr->desc_mode); 23769 status = (u_short) (buf_desc_ptr->desc_mode);
22932 if (status & (RX_CER | RX_PTE | RX_OFL)) 23770 if (status & (RX_CER | RX_PTE | RX_OFL))
@@ -23023,9 +23861,9 @@ diff -urNp linux-2.6.38.2/drivers/atm/iphase.c linux-2.6.38.2/drivers/atm/iphase
23023 if (iavcc->vc_desc_cnt > 10) { 23861 if (iavcc->vc_desc_cnt > 10) {
23024 vcc->tx_quota = vcc->tx_quota * 3 / 4; 23862 vcc->tx_quota = vcc->tx_quota * 3 / 4;
23025 printk("Tx1: vcc->tx_quota = %d \n", (u32)vcc->tx_quota ); 23863 printk("Tx1: vcc->tx_quota = %d \n", (u32)vcc->tx_quota );
23026diff -urNp linux-2.6.38.2/drivers/atm/lanai.c linux-2.6.38.2/drivers/atm/lanai.c 23864diff -urNp linux-2.6.38.3/drivers/atm/lanai.c linux-2.6.38.3/drivers/atm/lanai.c
23027--- linux-2.6.38.2/drivers/atm/lanai.c 2011-03-14 21:20:32.000000000 -0400 23865--- linux-2.6.38.3/drivers/atm/lanai.c 2011-03-14 21:20:32.000000000 -0400
23028+++ linux-2.6.38.2/drivers/atm/lanai.c 2011-03-21 18:31:35.000000000 -0400 23866+++ linux-2.6.38.3/drivers/atm/lanai.c 2011-04-17 15:57:32.000000000 -0400
23029@@ -1303,7 +1303,7 @@ static void lanai_send_one_aal5(struct l 23867@@ -1303,7 +1303,7 @@ static void lanai_send_one_aal5(struct l
23030 vcc_tx_add_aal5_trailer(lvcc, skb->len, 0, 0); 23868 vcc_tx_add_aal5_trailer(lvcc, skb->len, 0, 0);
23031 lanai_endtx(lanai, lvcc); 23869 lanai_endtx(lanai, lvcc);
@@ -23080,9 +23918,9 @@ diff -urNp linux-2.6.38.2/drivers/atm/lanai.c linux-2.6.38.2/drivers/atm/lanai.c
23080 lvcc->stats.x.aal5.service_rxcrc++; 23918 lvcc->stats.x.aal5.service_rxcrc++;
23081 lvcc->rx.buf.ptr = &lvcc->rx.buf.start[SERVICE_GET_END(s) * 4]; 23919 lvcc->rx.buf.ptr = &lvcc->rx.buf.start[SERVICE_GET_END(s) * 4];
23082 cardvcc_write(lvcc, SERVICE_GET_END(s), vcc_rxreadptr); 23920 cardvcc_write(lvcc, SERVICE_GET_END(s), vcc_rxreadptr);
23083diff -urNp linux-2.6.38.2/drivers/atm/nicstar.c linux-2.6.38.2/drivers/atm/nicstar.c 23921diff -urNp linux-2.6.38.3/drivers/atm/nicstar.c linux-2.6.38.3/drivers/atm/nicstar.c
23084--- linux-2.6.38.2/drivers/atm/nicstar.c 2011-03-14 21:20:32.000000000 -0400 23922--- linux-2.6.38.3/drivers/atm/nicstar.c 2011-03-14 21:20:32.000000000 -0400
23085+++ linux-2.6.38.2/drivers/atm/nicstar.c 2011-03-21 18:31:35.000000000 -0400 23923+++ linux-2.6.38.3/drivers/atm/nicstar.c 2011-04-17 15:57:32.000000000 -0400
23086@@ -1654,7 +1654,7 @@ static int ns_send(struct atm_vcc *vcc, 23924@@ -1654,7 +1654,7 @@ static int ns_send(struct atm_vcc *vcc,
23087 if ((vc = (vc_map *) vcc->dev_data) == NULL) { 23925 if ((vc = (vc_map *) vcc->dev_data) == NULL) {
23088 printk("nicstar%d: vcc->dev_data == NULL on ns_send().\n", 23926 printk("nicstar%d: vcc->dev_data == NULL on ns_send().\n",
@@ -23284,10 +24122,10 @@ diff -urNp linux-2.6.38.2/drivers/atm/nicstar.c linux-2.6.38.2/drivers/atm/nicst
23284 } 24122 }
23285 } 24123 }
23286 24124
23287diff -urNp linux-2.6.38.2/drivers/atm/solos-pci.c linux-2.6.38.2/drivers/atm/solos-pci.c 24125diff -urNp linux-2.6.38.3/drivers/atm/solos-pci.c linux-2.6.38.3/drivers/atm/solos-pci.c
23288--- linux-2.6.38.2/drivers/atm/solos-pci.c 2011-03-14 21:20:32.000000000 -0400 24126--- linux-2.6.38.3/drivers/atm/solos-pci.c 2011-04-18 17:27:18.000000000 -0400
23289+++ linux-2.6.38.2/drivers/atm/solos-pci.c 2011-03-21 18:31:35.000000000 -0400 24127+++ linux-2.6.38.3/drivers/atm/solos-pci.c 2011-04-17 16:53:16.000000000 -0400
23290@@ -717,7 +717,7 @@ void solos_bh(unsigned long card_arg) 24128@@ -715,7 +715,7 @@ void solos_bh(unsigned long card_arg)
23291 } 24129 }
23292 atm_charge(vcc, skb->truesize); 24130 atm_charge(vcc, skb->truesize);
23293 vcc->push(vcc, skb); 24131 vcc->push(vcc, skb);
@@ -23296,7 +24134,7 @@ diff -urNp linux-2.6.38.2/drivers/atm/solos-pci.c linux-2.6.38.2/drivers/atm/sol
23296 break; 24134 break;
23297 24135
23298 case PKT_STATUS: 24136 case PKT_STATUS:
23299@@ -1026,7 +1026,7 @@ static uint32_t fpga_tx(struct solos_car 24137@@ -1009,7 +1009,7 @@ static uint32_t fpga_tx(struct solos_car
23300 vcc = SKB_CB(oldskb)->vcc; 24138 vcc = SKB_CB(oldskb)->vcc;
23301 24139
23302 if (vcc) { 24140 if (vcc) {
@@ -23305,9 +24143,9 @@ diff -urNp linux-2.6.38.2/drivers/atm/solos-pci.c linux-2.6.38.2/drivers/atm/sol
23305 solos_pop(vcc, oldskb); 24143 solos_pop(vcc, oldskb);
23306 } else 24144 } else
23307 dev_kfree_skb_irq(oldskb); 24145 dev_kfree_skb_irq(oldskb);
23308diff -urNp linux-2.6.38.2/drivers/atm/suni.c linux-2.6.38.2/drivers/atm/suni.c 24146diff -urNp linux-2.6.38.3/drivers/atm/suni.c linux-2.6.38.3/drivers/atm/suni.c
23309--- linux-2.6.38.2/drivers/atm/suni.c 2011-03-14 21:20:32.000000000 -0400 24147--- linux-2.6.38.3/drivers/atm/suni.c 2011-03-14 21:20:32.000000000 -0400
23310+++ linux-2.6.38.2/drivers/atm/suni.c 2011-03-21 18:31:35.000000000 -0400 24148+++ linux-2.6.38.3/drivers/atm/suni.c 2011-04-17 15:57:32.000000000 -0400
23311@@ -50,8 +50,8 @@ static DEFINE_SPINLOCK(sunis_lock); 24149@@ -50,8 +50,8 @@ static DEFINE_SPINLOCK(sunis_lock);
23312 24150
23313 24151
@@ -23319,9 +24157,9 @@ diff -urNp linux-2.6.38.2/drivers/atm/suni.c linux-2.6.38.2/drivers/atm/suni.c
23319 24157
23320 24158
23321 static void suni_hz(unsigned long from_timer) 24159 static void suni_hz(unsigned long from_timer)
23322diff -urNp linux-2.6.38.2/drivers/atm/uPD98402.c linux-2.6.38.2/drivers/atm/uPD98402.c 24160diff -urNp linux-2.6.38.3/drivers/atm/uPD98402.c linux-2.6.38.3/drivers/atm/uPD98402.c
23323--- linux-2.6.38.2/drivers/atm/uPD98402.c 2011-03-14 21:20:32.000000000 -0400 24161--- linux-2.6.38.3/drivers/atm/uPD98402.c 2011-03-14 21:20:32.000000000 -0400
23324+++ linux-2.6.38.2/drivers/atm/uPD98402.c 2011-03-21 18:31:35.000000000 -0400 24162+++ linux-2.6.38.3/drivers/atm/uPD98402.c 2011-04-17 15:57:32.000000000 -0400
23325@@ -42,7 +42,7 @@ static int fetch_stats(struct atm_dev *d 24163@@ -42,7 +42,7 @@ static int fetch_stats(struct atm_dev *d
23326 struct sonet_stats tmp; 24164 struct sonet_stats tmp;
23327 int error = 0; 24165 int error = 0;
@@ -23366,9 +24204,9 @@ diff -urNp linux-2.6.38.2/drivers/atm/uPD98402.c linux-2.6.38.2/drivers/atm/uPD9
23366 return 0; 24204 return 0;
23367 } 24205 }
23368 24206
23369diff -urNp linux-2.6.38.2/drivers/atm/zatm.c linux-2.6.38.2/drivers/atm/zatm.c 24207diff -urNp linux-2.6.38.3/drivers/atm/zatm.c linux-2.6.38.3/drivers/atm/zatm.c
23370--- linux-2.6.38.2/drivers/atm/zatm.c 2011-03-14 21:20:32.000000000 -0400 24208--- linux-2.6.38.3/drivers/atm/zatm.c 2011-03-14 21:20:32.000000000 -0400
23371+++ linux-2.6.38.2/drivers/atm/zatm.c 2011-03-21 18:31:35.000000000 -0400 24209+++ linux-2.6.38.3/drivers/atm/zatm.c 2011-04-17 15:57:32.000000000 -0400
23372@@ -459,7 +459,7 @@ printk("dummy: 0x%08lx, 0x%08lx\n",dummy 24210@@ -459,7 +459,7 @@ printk("dummy: 0x%08lx, 0x%08lx\n",dummy
23373 } 24211 }
23374 if (!size) { 24212 if (!size) {
@@ -23396,9 +24234,9 @@ diff -urNp linux-2.6.38.2/drivers/atm/zatm.c linux-2.6.38.2/drivers/atm/zatm.c
23396 wake_up(&zatm_vcc->tx_wait); 24234 wake_up(&zatm_vcc->tx_wait);
23397 } 24235 }
23398 24236
23399diff -urNp linux-2.6.38.2/drivers/block/cciss.c linux-2.6.38.2/drivers/block/cciss.c 24237diff -urNp linux-2.6.38.3/drivers/block/cciss.c linux-2.6.38.3/drivers/block/cciss.c
23400--- linux-2.6.38.2/drivers/block/cciss.c 2011-03-14 21:20:32.000000000 -0400 24238--- linux-2.6.38.3/drivers/block/cciss.c 2011-03-14 21:20:32.000000000 -0400
23401+++ linux-2.6.38.2/drivers/block/cciss.c 2011-03-21 18:31:35.000000000 -0400 24239+++ linux-2.6.38.3/drivers/block/cciss.c 2011-04-17 15:57:32.000000000 -0400
23402@@ -1112,6 +1112,8 @@ static int cciss_ioctl32_passthru(struct 24240@@ -1112,6 +1112,8 @@ static int cciss_ioctl32_passthru(struct
23403 int err; 24241 int err;
23404 u32 cp; 24242 u32 cp;
@@ -23408,9 +24246,9 @@ diff -urNp linux-2.6.38.2/drivers/block/cciss.c linux-2.6.38.2/drivers/block/cci
23408 err = 0; 24246 err = 0;
23409 err |= 24247 err |=
23410 copy_from_user(&arg64.LUN_info, &arg32->LUN_info, 24248 copy_from_user(&arg64.LUN_info, &arg32->LUN_info,
23411diff -urNp linux-2.6.38.2/drivers/char/agp/frontend.c linux-2.6.38.2/drivers/char/agp/frontend.c 24249diff -urNp linux-2.6.38.3/drivers/char/agp/frontend.c linux-2.6.38.3/drivers/char/agp/frontend.c
23412--- linux-2.6.38.2/drivers/char/agp/frontend.c 2011-03-14 21:20:32.000000000 -0400 24250--- linux-2.6.38.3/drivers/char/agp/frontend.c 2011-03-14 21:20:32.000000000 -0400
23413+++ linux-2.6.38.2/drivers/char/agp/frontend.c 2011-03-21 18:31:35.000000000 -0400 24251+++ linux-2.6.38.3/drivers/char/agp/frontend.c 2011-04-17 15:57:32.000000000 -0400
23414@@ -817,7 +817,7 @@ static int agpioc_reserve_wrap(struct ag 24252@@ -817,7 +817,7 @@ static int agpioc_reserve_wrap(struct ag
23415 if (copy_from_user(&reserve, arg, sizeof(struct agp_region))) 24253 if (copy_from_user(&reserve, arg, sizeof(struct agp_region)))
23416 return -EFAULT; 24254 return -EFAULT;
@@ -23420,9 +24258,9 @@ diff -urNp linux-2.6.38.2/drivers/char/agp/frontend.c linux-2.6.38.2/drivers/cha
23420 return -EFAULT; 24258 return -EFAULT;
23421 24259
23422 client = agp_find_client_by_pid(reserve.pid); 24260 client = agp_find_client_by_pid(reserve.pid);
23423diff -urNp linux-2.6.38.2/drivers/char/agp/intel-agp.c linux-2.6.38.2/drivers/char/agp/intel-agp.c 24261diff -urNp linux-2.6.38.3/drivers/char/agp/intel-agp.c linux-2.6.38.3/drivers/char/agp/intel-agp.c
23424--- linux-2.6.38.2/drivers/char/agp/intel-agp.c 2011-03-14 21:20:32.000000000 -0400 24262--- linux-2.6.38.3/drivers/char/agp/intel-agp.c 2011-03-14 21:20:32.000000000 -0400
23425+++ linux-2.6.38.2/drivers/char/agp/intel-agp.c 2011-03-21 18:31:35.000000000 -0400 24263+++ linux-2.6.38.3/drivers/char/agp/intel-agp.c 2011-04-17 15:57:32.000000000 -0400
23426@@ -903,7 +903,7 @@ static struct pci_device_id agp_intel_pc 24264@@ -903,7 +903,7 @@ static struct pci_device_id agp_intel_pc
23427 ID(PCI_DEVICE_ID_INTEL_SANDYBRIDGE_HB), 24265 ID(PCI_DEVICE_ID_INTEL_SANDYBRIDGE_HB),
23428 ID(PCI_DEVICE_ID_INTEL_SANDYBRIDGE_M_HB), 24266 ID(PCI_DEVICE_ID_INTEL_SANDYBRIDGE_M_HB),
@@ -23432,9 +24270,64 @@ diff -urNp linux-2.6.38.2/drivers/char/agp/intel-agp.c linux-2.6.38.2/drivers/ch
23432 }; 24270 };
23433 24271
23434 MODULE_DEVICE_TABLE(pci, agp_intel_pci_table); 24272 MODULE_DEVICE_TABLE(pci, agp_intel_pci_table);
23435diff -urNp linux-2.6.38.2/drivers/char/hpet.c linux-2.6.38.2/drivers/char/hpet.c 24273diff -urNp linux-2.6.38.3/drivers/char/briq_panel.c linux-2.6.38.3/drivers/char/briq_panel.c
23436--- linux-2.6.38.2/drivers/char/hpet.c 2011-03-14 21:20:32.000000000 -0400 24274--- linux-2.6.38.3/drivers/char/briq_panel.c 2011-03-14 21:20:32.000000000 -0400
23437+++ linux-2.6.38.2/drivers/char/hpet.c 2011-03-21 18:31:35.000000000 -0400 24275+++ linux-2.6.38.3/drivers/char/briq_panel.c 2011-04-18 19:47:43.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
23438@@ -553,7 +553,7 @@ static inline unsigned long hpet_time_di 24331@@ -553,7 +553,7 @@ static inline unsigned long hpet_time_di
23439 } 24332 }
23440 24333
@@ -23453,9 +24346,9 @@ diff -urNp linux-2.6.38.2/drivers/char/hpet.c linux-2.6.38.2/drivers/char/hpet.c
23453 24346
23454 static int __init hpet_init(void) 24347 static int __init hpet_init(void)
23455 { 24348 {
23456diff -urNp linux-2.6.38.2/drivers/char/ipmi/ipmi_msghandler.c linux-2.6.38.2/drivers/char/ipmi/ipmi_msghandler.c 24349diff -urNp linux-2.6.38.3/drivers/char/ipmi/ipmi_msghandler.c linux-2.6.38.3/drivers/char/ipmi/ipmi_msghandler.c
23457--- linux-2.6.38.2/drivers/char/ipmi/ipmi_msghandler.c 2011-03-14 21:20:32.000000000 -0400 24350--- linux-2.6.38.3/drivers/char/ipmi/ipmi_msghandler.c 2011-03-14 21:20:32.000000000 -0400
23458+++ linux-2.6.38.2/drivers/char/ipmi/ipmi_msghandler.c 2011-03-21 18:31:35.000000000 -0400 24351+++ linux-2.6.38.3/drivers/char/ipmi/ipmi_msghandler.c 2011-04-17 15:57:32.000000000 -0400
23459@@ -414,7 +414,7 @@ struct ipmi_smi { 24352@@ -414,7 +414,7 @@ struct ipmi_smi {
23460 struct proc_dir_entry *proc_dir; 24353 struct proc_dir_entry *proc_dir;
23461 char proc_dir_name[10]; 24354 char proc_dir_name[10];
@@ -23486,9 +24379,9 @@ diff -urNp linux-2.6.38.2/drivers/char/ipmi/ipmi_msghandler.c linux-2.6.38.2/dri
23486 24379
23487 intf->proc_dir = NULL; 24380 intf->proc_dir = NULL;
23488 24381
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 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
23490--- linux-2.6.38.2/drivers/char/ipmi/ipmi_si_intf.c 2011-03-14 21:20:32.000000000 -0400 24383--- linux-2.6.38.3/drivers/char/ipmi/ipmi_si_intf.c 2011-03-14 21:20:32.000000000 -0400
23491+++ linux-2.6.38.2/drivers/char/ipmi/ipmi_si_intf.c 2011-03-21 18:31:35.000000000 -0400 24384+++ linux-2.6.38.3/drivers/char/ipmi/ipmi_si_intf.c 2011-04-17 15:57:32.000000000 -0400
23492@@ -285,7 +285,7 @@ struct smi_info { 24385@@ -285,7 +285,7 @@ struct smi_info {
23493 unsigned char slave_addr; 24386 unsigned char slave_addr;
23494 24387
@@ -23519,9 +24412,49 @@ diff -urNp linux-2.6.38.2/drivers/char/ipmi/ipmi_si_intf.c linux-2.6.38.2/driver
23519 24412
23520 new_smi->interrupt_disabled = 1; 24413 new_smi->interrupt_disabled = 1;
23521 atomic_set(&new_smi->stop_operation, 0); 24414 atomic_set(&new_smi->stop_operation, 0);
23522diff -urNp linux-2.6.38.2/drivers/char/mem.c linux-2.6.38.2/drivers/char/mem.c 24415diff -urNp linux-2.6.38.3/drivers/char/istallion.c linux-2.6.38.3/drivers/char/istallion.c
23523--- linux-2.6.38.2/drivers/char/mem.c 2011-03-14 21:20:32.000000000 -0400 24416--- linux-2.6.38.3/drivers/char/istallion.c 2011-03-14 21:20:32.000000000 -0400
23524+++ linux-2.6.38.2/drivers/char/mem.c 2011-03-21 18:31:35.000000000 -0400 24417+++ linux-2.6.38.3/drivers/char/istallion.c 2011-04-18 19:42:25.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
23525@@ -18,6 +18,7 @@ 24458@@ -18,6 +18,7 @@
23526 #include <linux/raw.h> 24459 #include <linux/raw.h>
23527 #include <linux/tty.h> 24460 #include <linux/tty.h>
@@ -23541,7 +24474,33 @@ diff -urNp linux-2.6.38.2/drivers/char/mem.c linux-2.6.38.2/drivers/char/mem.c
23541 static inline unsigned long size_inside_page(unsigned long start, 24474 static inline unsigned long size_inside_page(unsigned long start,
23542 unsigned long size) 24475 unsigned long size)
23543 { 24476 {
23544@@ -120,6 +125,7 @@ static ssize_t read_mem(struct file *fil 24477@@ -68,9 +73,13 @@ static inline int range_is_allowed(unsig
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
23545 24504
23546 while (count > 0) { 24505 while (count > 0) {
23547 unsigned long remaining; 24506 unsigned long remaining;
@@ -23549,7 +24508,7 @@ diff -urNp linux-2.6.38.2/drivers/char/mem.c linux-2.6.38.2/drivers/char/mem.c
23549 24508
23550 sz = size_inside_page(p, count); 24509 sz = size_inside_page(p, count);
23551 24510
23552@@ -135,7 +141,23 @@ static ssize_t read_mem(struct file *fil 24511@@ -135,7 +150,23 @@ static ssize_t read_mem(struct file *fil
23553 if (!ptr) 24512 if (!ptr)
23554 return -EFAULT; 24513 return -EFAULT;
23555 24514
@@ -23574,31 +24533,7 @@ diff -urNp linux-2.6.38.2/drivers/char/mem.c linux-2.6.38.2/drivers/char/mem.c
23574 unxlate_dev_mem_ptr(p, ptr); 24533 unxlate_dev_mem_ptr(p, ptr);
23575 if (remaining) 24534 if (remaining)
23576 return -EFAULT; 24535 return -EFAULT;
23577@@ -161,6 +183,11 @@ static ssize_t write_mem(struct file *fi 24536@@ -398,9 +429,8 @@ static ssize_t read_kmem(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
23602 size_t count, loff_t *ppos) 24537 size_t count, loff_t *ppos)
23603 { 24538 {
23604 unsigned long p = *ppos; 24539 unsigned long p = *ppos;
@@ -23609,7 +24544,7 @@ diff -urNp linux-2.6.38.2/drivers/char/mem.c linux-2.6.38.2/drivers/char/mem.c
23609 24544
23610 read = 0; 24545 read = 0;
23611 if (p < (unsigned long) high_memory) { 24546 if (p < (unsigned long) high_memory) {
23612@@ -422,6 +453,8 @@ static ssize_t read_kmem(struct file *fi 24547@@ -422,6 +452,8 @@ static ssize_t read_kmem(struct file *fi
23613 } 24548 }
23614 #endif 24549 #endif
23615 while (low_count > 0) { 24550 while (low_count > 0) {
@@ -23618,7 +24553,7 @@ diff -urNp linux-2.6.38.2/drivers/char/mem.c linux-2.6.38.2/drivers/char/mem.c
23618 sz = size_inside_page(p, low_count); 24553 sz = size_inside_page(p, low_count);
23619 24554
23620 /* 24555 /*
23621@@ -431,7 +464,22 @@ static ssize_t read_kmem(struct file *fi 24556@@ -431,7 +463,22 @@ static ssize_t read_kmem(struct file *fi
23622 */ 24557 */
23623 kbuf = xlate_dev_kmem_ptr((char *)p); 24558 kbuf = xlate_dev_kmem_ptr((char *)p);
23624 24559
@@ -23642,44 +24577,7 @@ diff -urNp linux-2.6.38.2/drivers/char/mem.c linux-2.6.38.2/drivers/char/mem.c
23642 return -EFAULT; 24577 return -EFAULT;
23643 buf += sz; 24578 buf += sz;
23644 p += sz; 24579 p += sz;
23645@@ -530,6 +578,11 @@ static ssize_t write_kmem(struct file *f 24580@@ -857,6 +904,9 @@ static const struct memdev {
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 {
23683 #ifdef CONFIG_CRASH_DUMP 24581 #ifdef CONFIG_CRASH_DUMP
23684 [12] = { "oldmem", 0, &oldmem_fops, NULL }, 24582 [12] = { "oldmem", 0, &oldmem_fops, NULL },
23685 #endif 24583 #endif
@@ -23689,9 +24587,9 @@ diff -urNp linux-2.6.38.2/drivers/char/mem.c linux-2.6.38.2/drivers/char/mem.c
23689 }; 24587 };
23690 24588
23691 static int memory_open(struct inode *inode, struct file *filp) 24589 static int memory_open(struct inode *inode, struct file *filp)
23692diff -urNp linux-2.6.38.2/drivers/char/nvram.c linux-2.6.38.2/drivers/char/nvram.c 24590diff -urNp linux-2.6.38.3/drivers/char/nvram.c linux-2.6.38.3/drivers/char/nvram.c
23693--- linux-2.6.38.2/drivers/char/nvram.c 2011-03-14 21:20:32.000000000 -0400 24591--- linux-2.6.38.3/drivers/char/nvram.c 2011-03-14 21:20:32.000000000 -0400
23694+++ linux-2.6.38.2/drivers/char/nvram.c 2011-03-21 18:31:35.000000000 -0400 24592+++ linux-2.6.38.3/drivers/char/nvram.c 2011-04-17 15:57:32.000000000 -0400
23695@@ -246,7 +246,7 @@ static ssize_t nvram_read(struct file *f 24593@@ -246,7 +246,7 @@ static ssize_t nvram_read(struct file *f
23696 24594
23697 spin_unlock_irq(&rtc_lock); 24595 spin_unlock_irq(&rtc_lock);
@@ -23713,9 +24611,9 @@ diff -urNp linux-2.6.38.2/drivers/char/nvram.c linux-2.6.38.2/drivers/char/nvram
23713 }; 24611 };
23714 24612
23715 static int __init nvram_init(void) 24613 static int __init nvram_init(void)
23716diff -urNp linux-2.6.38.2/drivers/char/pcmcia/ipwireless/tty.c linux-2.6.38.2/drivers/char/pcmcia/ipwireless/tty.c 24614diff -urNp linux-2.6.38.3/drivers/char/pcmcia/ipwireless/tty.c linux-2.6.38.3/drivers/char/pcmcia/ipwireless/tty.c
23717--- linux-2.6.38.2/drivers/char/pcmcia/ipwireless/tty.c 2011-03-14 21:20:32.000000000 -0400 24615--- linux-2.6.38.3/drivers/char/pcmcia/ipwireless/tty.c 2011-03-14 21:20:32.000000000 -0400
23718+++ linux-2.6.38.2/drivers/char/pcmcia/ipwireless/tty.c 2011-03-21 18:31:35.000000000 -0400 24616+++ linux-2.6.38.3/drivers/char/pcmcia/ipwireless/tty.c 2011-04-17 15:57:32.000000000 -0400
23719@@ -29,6 +29,7 @@ 24617@@ -29,6 +29,7 @@
23720 #include <linux/tty_driver.h> 24618 #include <linux/tty_driver.h>
23721 #include <linux/tty_flip.h> 24619 #include <linux/tty_flip.h>
@@ -23838,9 +24736,9 @@ diff -urNp linux-2.6.38.2/drivers/char/pcmcia/ipwireless/tty.c linux-2.6.38.2/dr
23838 do_ipw_close(ttyj); 24736 do_ipw_close(ttyj);
23839 ipwireless_disassociate_network_ttys(network, 24737 ipwireless_disassociate_network_ttys(network,
23840 ttyj->channel_idx); 24738 ttyj->channel_idx);
23841diff -urNp linux-2.6.38.2/drivers/char/random.c linux-2.6.38.2/drivers/char/random.c 24739diff -urNp linux-2.6.38.3/drivers/char/random.c linux-2.6.38.3/drivers/char/random.c
23842--- linux-2.6.38.2/drivers/char/random.c 2011-03-14 21:20:32.000000000 -0400 24740--- linux-2.6.38.3/drivers/char/random.c 2011-03-14 21:20:32.000000000 -0400
23843+++ linux-2.6.38.2/drivers/char/random.c 2011-03-21 18:31:35.000000000 -0400 24741+++ linux-2.6.38.3/drivers/char/random.c 2011-04-17 15:57:32.000000000 -0400
23844@@ -254,8 +254,13 @@ 24742@@ -254,8 +254,13 @@
23845 /* 24743 /*
23846 * Configuration information 24744 * Configuration information
@@ -23891,9 +24789,9 @@ diff -urNp linux-2.6.38.2/drivers/char/random.c linux-2.6.38.2/drivers/char/rand
23891 static int max_write_thresh = INPUT_POOL_WORDS * 32; 24789 static int max_write_thresh = INPUT_POOL_WORDS * 32;
23892 static char sysctl_bootid[16]; 24790 static char sysctl_bootid[16];
23893 24791
23894diff -urNp linux-2.6.38.2/drivers/char/sonypi.c linux-2.6.38.2/drivers/char/sonypi.c 24792diff -urNp linux-2.6.38.3/drivers/char/sonypi.c linux-2.6.38.3/drivers/char/sonypi.c
23895--- linux-2.6.38.2/drivers/char/sonypi.c 2011-03-14 21:20:32.000000000 -0400 24793--- linux-2.6.38.3/drivers/char/sonypi.c 2011-03-14 21:20:32.000000000 -0400
23896+++ linux-2.6.38.2/drivers/char/sonypi.c 2011-03-21 18:31:35.000000000 -0400 24794+++ linux-2.6.38.3/drivers/char/sonypi.c 2011-04-17 15:57:32.000000000 -0400
23897@@ -55,6 +55,7 @@ 24795@@ -55,6 +55,7 @@
23898 #include <asm/uaccess.h> 24796 #include <asm/uaccess.h>
23899 #include <asm/io.h> 24797 #include <asm/io.h>
@@ -23932,9 +24830,9 @@ diff -urNp linux-2.6.38.2/drivers/char/sonypi.c linux-2.6.38.2/drivers/char/sony
23932 mutex_unlock(&sonypi_device.lock); 24830 mutex_unlock(&sonypi_device.lock);
23933 24831
23934 return 0; 24832 return 0;
23935diff -urNp linux-2.6.38.2/drivers/char/tpm/tpm_bios.c linux-2.6.38.2/drivers/char/tpm/tpm_bios.c 24833diff -urNp linux-2.6.38.3/drivers/char/tpm/tpm_bios.c linux-2.6.38.3/drivers/char/tpm/tpm_bios.c
23936--- linux-2.6.38.2/drivers/char/tpm/tpm_bios.c 2011-03-14 21:20:32.000000000 -0400 24834--- linux-2.6.38.3/drivers/char/tpm/tpm_bios.c 2011-03-14 21:20:32.000000000 -0400
23937+++ linux-2.6.38.2/drivers/char/tpm/tpm_bios.c 2011-03-21 18:31:35.000000000 -0400 24835+++ linux-2.6.38.3/drivers/char/tpm/tpm_bios.c 2011-04-17 15:57:32.000000000 -0400
23938@@ -173,7 +173,7 @@ static void *tpm_bios_measurements_start 24836@@ -173,7 +173,7 @@ static void *tpm_bios_measurements_start
23939 event = addr; 24837 event = addr;
23940 24838
@@ -23975,9 +24873,9 @@ diff -urNp linux-2.6.38.2/drivers/char/tpm/tpm_bios.c linux-2.6.38.2/drivers/cha
23975 24873
23976 memcpy(log->bios_event_log, virt, len); 24874 memcpy(log->bios_event_log, virt, len);
23977 24875
23978diff -urNp linux-2.6.38.2/drivers/char/tpm/tpm.c linux-2.6.38.2/drivers/char/tpm/tpm.c 24876diff -urNp linux-2.6.38.3/drivers/char/tpm/tpm.c linux-2.6.38.3/drivers/char/tpm/tpm.c
23979--- linux-2.6.38.2/drivers/char/tpm/tpm.c 2011-03-14 21:20:32.000000000 -0400 24877--- linux-2.6.38.3/drivers/char/tpm/tpm.c 2011-04-18 17:27:18.000000000 -0400
23980+++ linux-2.6.38.2/drivers/char/tpm/tpm.c 2011-03-21 18:31:35.000000000 -0400 24878+++ linux-2.6.38.3/drivers/char/tpm/tpm.c 2011-04-17 16:53:16.000000000 -0400
23981@@ -411,7 +411,7 @@ static ssize_t tpm_transmit(struct tpm_c 24879@@ -411,7 +411,7 @@ static ssize_t tpm_transmit(struct tpm_c
23982 chip->vendor.req_complete_val) 24880 chip->vendor.req_complete_val)
23983 goto out_recv; 24881 goto out_recv;
@@ -23987,9 +24885,9 @@ diff -urNp linux-2.6.38.2/drivers/char/tpm/tpm.c linux-2.6.38.2/drivers/char/tpm
23987 dev_err(chip->dev, "Operation Canceled\n"); 24885 dev_err(chip->dev, "Operation Canceled\n");
23988 rc = -ECANCELED; 24886 rc = -ECANCELED;
23989 goto out; 24887 goto out;
23990diff -urNp linux-2.6.38.2/drivers/cpuidle/sysfs.c linux-2.6.38.2/drivers/cpuidle/sysfs.c 24888diff -urNp linux-2.6.38.3/drivers/cpuidle/sysfs.c linux-2.6.38.3/drivers/cpuidle/sysfs.c
23991--- linux-2.6.38.2/drivers/cpuidle/sysfs.c 2011-03-14 21:20:32.000000000 -0400 24889--- linux-2.6.38.3/drivers/cpuidle/sysfs.c 2011-03-14 21:20:32.000000000 -0400
23992+++ linux-2.6.38.2/drivers/cpuidle/sysfs.c 2011-03-21 18:31:35.000000000 -0400 24890+++ linux-2.6.38.3/drivers/cpuidle/sysfs.c 2011-04-17 15:57:32.000000000 -0400
23993@@ -300,7 +300,7 @@ static struct kobj_type ktype_state_cpui 24891@@ -300,7 +300,7 @@ static struct kobj_type ktype_state_cpui
23994 .release = cpuidle_state_sysfs_release, 24892 .release = cpuidle_state_sysfs_release,
23995 }; 24893 };
@@ -23999,9 +24897,9 @@ diff -urNp linux-2.6.38.2/drivers/cpuidle/sysfs.c linux-2.6.38.2/drivers/cpuidle
23999 { 24897 {
24000 kobject_put(&device->kobjs[i]->kobj); 24898 kobject_put(&device->kobjs[i]->kobj);
24001 wait_for_completion(&device->kobjs[i]->kobj_unregister); 24899 wait_for_completion(&device->kobjs[i]->kobj_unregister);
24002diff -urNp linux-2.6.38.2/drivers/edac/edac_core.h linux-2.6.38.2/drivers/edac/edac_core.h 24900diff -urNp linux-2.6.38.3/drivers/edac/edac_core.h linux-2.6.38.3/drivers/edac/edac_core.h
24003--- linux-2.6.38.2/drivers/edac/edac_core.h 2011-03-14 21:20:32.000000000 -0400 24901--- linux-2.6.38.3/drivers/edac/edac_core.h 2011-03-14 21:20:32.000000000 -0400
24004+++ linux-2.6.38.2/drivers/edac/edac_core.h 2011-03-21 18:31:35.000000000 -0400 24902+++ linux-2.6.38.3/drivers/edac/edac_core.h 2011-04-17 15:57:32.000000000 -0400
24005@@ -88,11 +88,11 @@ extern int edac_debug_level; 24903@@ -88,11 +88,11 @@ extern int edac_debug_level;
24006 24904
24007 #else /* !CONFIG_EDAC_DEBUG */ 24905 #else /* !CONFIG_EDAC_DEBUG */
@@ -24019,9 +24917,9 @@ diff -urNp linux-2.6.38.2/drivers/edac/edac_core.h linux-2.6.38.2/drivers/edac/e
24019 24917
24020 #endif /* !CONFIG_EDAC_DEBUG */ 24918 #endif /* !CONFIG_EDAC_DEBUG */
24021 24919
24022diff -urNp linux-2.6.38.2/drivers/edac/edac_mc_sysfs.c linux-2.6.38.2/drivers/edac/edac_mc_sysfs.c 24920diff -urNp linux-2.6.38.3/drivers/edac/edac_mc_sysfs.c linux-2.6.38.3/drivers/edac/edac_mc_sysfs.c
24023--- linux-2.6.38.2/drivers/edac/edac_mc_sysfs.c 2011-03-14 21:20:32.000000000 -0400 24921--- linux-2.6.38.3/drivers/edac/edac_mc_sysfs.c 2011-03-14 21:20:32.000000000 -0400
24024+++ linux-2.6.38.2/drivers/edac/edac_mc_sysfs.c 2011-03-21 18:31:35.000000000 -0400 24922+++ linux-2.6.38.3/drivers/edac/edac_mc_sysfs.c 2011-04-17 15:57:32.000000000 -0400
24025@@ -761,7 +761,7 @@ static void edac_inst_grp_release(struct 24923@@ -761,7 +761,7 @@ static void edac_inst_grp_release(struct
24026 } 24924 }
24027 24925
@@ -24031,9 +24929,9 @@ diff -urNp linux-2.6.38.2/drivers/edac/edac_mc_sysfs.c linux-2.6.38.2/drivers/ed
24031 .show = inst_grp_show, 24929 .show = inst_grp_show,
24032 .store = inst_grp_store 24930 .store = inst_grp_store
24033 }; 24931 };
24034diff -urNp linux-2.6.38.2/drivers/firewire/core-cdev.c linux-2.6.38.2/drivers/firewire/core-cdev.c 24932diff -urNp linux-2.6.38.3/drivers/firewire/core-cdev.c linux-2.6.38.3/drivers/firewire/core-cdev.c
24035--- linux-2.6.38.2/drivers/firewire/core-cdev.c 2011-03-14 21:20:32.000000000 -0400 24933--- linux-2.6.38.3/drivers/firewire/core-cdev.c 2011-03-14 21:20:32.000000000 -0400
24036+++ linux-2.6.38.2/drivers/firewire/core-cdev.c 2011-03-21 18:31:35.000000000 -0400 24934+++ linux-2.6.38.3/drivers/firewire/core-cdev.c 2011-04-17 15:57:32.000000000 -0400
24037@@ -1329,8 +1329,7 @@ static int init_iso_resource(struct clie 24935@@ -1329,8 +1329,7 @@ static int init_iso_resource(struct clie
24038 int ret; 24936 int ret;
24039 24937
@@ -24044,9 +24942,9 @@ diff -urNp linux-2.6.38.2/drivers/firewire/core-cdev.c linux-2.6.38.2/drivers/fi
24044 return -EINVAL; 24942 return -EINVAL;
24045 24943
24046 r = kmalloc(sizeof(*r), GFP_KERNEL); 24944 r = kmalloc(sizeof(*r), GFP_KERNEL);
24047diff -urNp linux-2.6.38.2/drivers/firmware/dmi_scan.c linux-2.6.38.2/drivers/firmware/dmi_scan.c 24945diff -urNp linux-2.6.38.3/drivers/firmware/dmi_scan.c linux-2.6.38.3/drivers/firmware/dmi_scan.c
24048--- linux-2.6.38.2/drivers/firmware/dmi_scan.c 2011-03-14 21:20:32.000000000 -0400 24946--- linux-2.6.38.3/drivers/firmware/dmi_scan.c 2011-03-14 21:20:32.000000000 -0400
24049+++ linux-2.6.38.2/drivers/firmware/dmi_scan.c 2011-03-21 18:31:35.000000000 -0400 24947+++ linux-2.6.38.3/drivers/firmware/dmi_scan.c 2011-04-17 15:57:32.000000000 -0400
24050@@ -449,11 +449,6 @@ void __init dmi_scan_machine(void) 24948@@ -449,11 +449,6 @@ void __init dmi_scan_machine(void)
24051 } 24949 }
24052 } 24950 }
@@ -24059,9 +24957,9 @@ diff -urNp linux-2.6.38.2/drivers/firmware/dmi_scan.c linux-2.6.38.2/drivers/fir
24059 p = dmi_ioremap(0xF0000, 0x10000); 24957 p = dmi_ioremap(0xF0000, 0x10000);
24060 if (p == NULL) 24958 if (p == NULL)
24061 goto error; 24959 goto error;
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 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
24063--- linux-2.6.38.2/drivers/gpu/drm/drm_crtc_helper.c 2011-03-14 21:20:32.000000000 -0400 24961--- linux-2.6.38.3/drivers/gpu/drm/drm_crtc_helper.c 2011-03-14 21:20:32.000000000 -0400
24064+++ linux-2.6.38.2/drivers/gpu/drm/drm_crtc_helper.c 2011-03-21 18:31:35.000000000 -0400 24962+++ linux-2.6.38.3/drivers/gpu/drm/drm_crtc_helper.c 2011-04-17 15:57:32.000000000 -0400
24065@@ -276,7 +276,7 @@ static bool drm_encoder_crtc_ok(struct d 24963@@ -276,7 +276,7 @@ static bool drm_encoder_crtc_ok(struct d
24066 struct drm_crtc *tmp; 24964 struct drm_crtc *tmp;
24067 int crtc_mask = 1; 24965 int crtc_mask = 1;
@@ -24071,9 +24969,9 @@ diff -urNp linux-2.6.38.2/drivers/gpu/drm/drm_crtc_helper.c linux-2.6.38.2/drive
24071 24969
24072 dev = crtc->dev; 24970 dev = crtc->dev;
24073 24971
24074diff -urNp linux-2.6.38.2/drivers/gpu/drm/drm_drv.c linux-2.6.38.2/drivers/gpu/drm/drm_drv.c 24972diff -urNp linux-2.6.38.3/drivers/gpu/drm/drm_drv.c linux-2.6.38.3/drivers/gpu/drm/drm_drv.c
24075--- linux-2.6.38.2/drivers/gpu/drm/drm_drv.c 2011-03-14 21:20:32.000000000 -0400 24973--- linux-2.6.38.3/drivers/gpu/drm/drm_drv.c 2011-03-14 21:20:32.000000000 -0400
24076+++ linux-2.6.38.2/drivers/gpu/drm/drm_drv.c 2011-03-21 18:31:35.000000000 -0400 24974+++ linux-2.6.38.3/drivers/gpu/drm/drm_drv.c 2011-04-17 15:57:32.000000000 -0400
24077@@ -425,7 +425,7 @@ long drm_ioctl(struct file *filp, 24975@@ -425,7 +425,7 @@ long drm_ioctl(struct file *filp,
24078 24976
24079 dev = file_priv->minor->dev; 24977 dev = file_priv->minor->dev;
@@ -24083,9 +24981,9 @@ diff -urNp linux-2.6.38.2/drivers/gpu/drm/drm_drv.c linux-2.6.38.2/drivers/gpu/d
24083 ++file_priv->ioctl_count; 24981 ++file_priv->ioctl_count;
24084 24982
24085 DRM_DEBUG("pid=%d, cmd=0x%02x, nr=0x%02x, dev 0x%lx, auth=%d\n", 24983 DRM_DEBUG("pid=%d, cmd=0x%02x, nr=0x%02x, dev 0x%lx, auth=%d\n",
24086diff -urNp linux-2.6.38.2/drivers/gpu/drm/drm_fops.c linux-2.6.38.2/drivers/gpu/drm/drm_fops.c 24984diff -urNp linux-2.6.38.3/drivers/gpu/drm/drm_fops.c linux-2.6.38.3/drivers/gpu/drm/drm_fops.c
24087--- linux-2.6.38.2/drivers/gpu/drm/drm_fops.c 2011-03-14 21:20:32.000000000 -0400 24985--- linux-2.6.38.3/drivers/gpu/drm/drm_fops.c 2011-03-14 21:20:32.000000000 -0400
24088+++ linux-2.6.38.2/drivers/gpu/drm/drm_fops.c 2011-03-21 18:31:35.000000000 -0400 24986+++ linux-2.6.38.3/drivers/gpu/drm/drm_fops.c 2011-04-17 15:57:32.000000000 -0400
24089@@ -70,7 +70,7 @@ static int drm_setup(struct drm_device * 24987@@ -70,7 +70,7 @@ static int drm_setup(struct drm_device *
24090 } 24988 }
24091 24989
@@ -24135,9 +25033,9 @@ diff -urNp linux-2.6.38.2/drivers/gpu/drm/drm_fops.c linux-2.6.38.2/drivers/gpu/
24135 if (atomic_read(&dev->ioctl_count)) { 25033 if (atomic_read(&dev->ioctl_count)) {
24136 DRM_ERROR("Device busy: %d\n", 25034 DRM_ERROR("Device busy: %d\n",
24137 atomic_read(&dev->ioctl_count)); 25035 atomic_read(&dev->ioctl_count));
24138diff -urNp linux-2.6.38.2/drivers/gpu/drm/drm_global.c linux-2.6.38.2/drivers/gpu/drm/drm_global.c 25036diff -urNp linux-2.6.38.3/drivers/gpu/drm/drm_global.c linux-2.6.38.3/drivers/gpu/drm/drm_global.c
24139--- linux-2.6.38.2/drivers/gpu/drm/drm_global.c 2011-03-14 21:20:32.000000000 -0400 25037--- linux-2.6.38.3/drivers/gpu/drm/drm_global.c 2011-03-14 21:20:32.000000000 -0400
24140+++ linux-2.6.38.2/drivers/gpu/drm/drm_global.c 2011-03-21 18:31:35.000000000 -0400 25038+++ linux-2.6.38.3/drivers/gpu/drm/drm_global.c 2011-04-17 15:57:32.000000000 -0400
24141@@ -36,7 +36,7 @@ 25039@@ -36,7 +36,7 @@
24142 struct drm_global_item { 25040 struct drm_global_item {
24143 struct mutex mutex; 25041 struct mutex mutex;
@@ -24195,9 +25093,9 @@ diff -urNp linux-2.6.38.2/drivers/gpu/drm/drm_global.c linux-2.6.38.2/drivers/gp
24195 ref->release(ref); 25093 ref->release(ref);
24196 item->object = NULL; 25094 item->object = NULL;
24197 } 25095 }
24198diff -urNp linux-2.6.38.2/drivers/gpu/drm/drm_info.c linux-2.6.38.2/drivers/gpu/drm/drm_info.c 25096diff -urNp linux-2.6.38.3/drivers/gpu/drm/drm_info.c linux-2.6.38.3/drivers/gpu/drm/drm_info.c
24199--- linux-2.6.38.2/drivers/gpu/drm/drm_info.c 2011-03-14 21:20:32.000000000 -0400 25097--- linux-2.6.38.3/drivers/gpu/drm/drm_info.c 2011-03-14 21:20:32.000000000 -0400
24200+++ linux-2.6.38.2/drivers/gpu/drm/drm_info.c 2011-03-21 18:31:35.000000000 -0400 25098+++ linux-2.6.38.3/drivers/gpu/drm/drm_info.c 2011-04-17 15:57:32.000000000 -0400
24201@@ -86,10 +86,14 @@ int drm_vm_info(struct seq_file *m, void 25099@@ -86,10 +86,14 @@ int drm_vm_info(struct seq_file *m, void
24202 struct drm_local_map *map; 25100 struct drm_local_map *map;
24203 struct drm_map_list *r_list; 25101 struct drm_map_list *r_list;
@@ -24238,9 +25136,9 @@ diff -urNp linux-2.6.38.2/drivers/gpu/drm/drm_info.c linux-2.6.38.2/drivers/gpu/
24238 25136
24239 #if defined(__i386__) 25137 #if defined(__i386__)
24240 pgprot = pgprot_val(vma->vm_page_prot); 25138 pgprot = pgprot_val(vma->vm_page_prot);
24241diff -urNp linux-2.6.38.2/drivers/gpu/drm/drm_ioctl.c linux-2.6.38.2/drivers/gpu/drm/drm_ioctl.c 25139diff -urNp linux-2.6.38.3/drivers/gpu/drm/drm_ioctl.c linux-2.6.38.3/drivers/gpu/drm/drm_ioctl.c
24242--- linux-2.6.38.2/drivers/gpu/drm/drm_ioctl.c 2011-03-14 21:20:32.000000000 -0400 25140--- linux-2.6.38.3/drivers/gpu/drm/drm_ioctl.c 2011-03-14 21:20:32.000000000 -0400
24243+++ linux-2.6.38.2/drivers/gpu/drm/drm_ioctl.c 2011-03-21 18:31:35.000000000 -0400 25141+++ linux-2.6.38.3/drivers/gpu/drm/drm_ioctl.c 2011-04-17 15:57:32.000000000 -0400
24244@@ -353,7 +353,7 @@ int drm_getstats(struct drm_device *dev, 25142@@ -353,7 +353,7 @@ int drm_getstats(struct drm_device *dev,
24245 stats->data[i].value = 25143 stats->data[i].value =
24246 (file_priv->master->lock.hw_lock ? file_priv->master->lock.hw_lock->lock : 0); 25144 (file_priv->master->lock.hw_lock ? file_priv->master->lock.hw_lock->lock : 0);
@@ -24250,9 +25148,9 @@ diff -urNp linux-2.6.38.2/drivers/gpu/drm/drm_ioctl.c linux-2.6.38.2/drivers/gpu
24250 stats->data[i].type = dev->types[i]; 25148 stats->data[i].type = dev->types[i];
24251 } 25149 }
24252 25150
24253diff -urNp linux-2.6.38.2/drivers/gpu/drm/drm_lock.c linux-2.6.38.2/drivers/gpu/drm/drm_lock.c 25151diff -urNp linux-2.6.38.3/drivers/gpu/drm/drm_lock.c linux-2.6.38.3/drivers/gpu/drm/drm_lock.c
24254--- linux-2.6.38.2/drivers/gpu/drm/drm_lock.c 2011-03-14 21:20:32.000000000 -0400 25152--- linux-2.6.38.3/drivers/gpu/drm/drm_lock.c 2011-03-14 21:20:32.000000000 -0400
24255+++ linux-2.6.38.2/drivers/gpu/drm/drm_lock.c 2011-03-21 18:31:35.000000000 -0400 25153+++ linux-2.6.38.3/drivers/gpu/drm/drm_lock.c 2011-04-17 15:57:32.000000000 -0400
24256@@ -89,7 +89,7 @@ int drm_lock(struct drm_device *dev, voi 25154@@ -89,7 +89,7 @@ int drm_lock(struct drm_device *dev, voi
24257 if (drm_lock_take(&master->lock, lock->context)) { 25155 if (drm_lock_take(&master->lock, lock->context)) {
24258 master->lock.file_priv = file_priv; 25156 master->lock.file_priv = file_priv;
@@ -24271,9 +25169,9 @@ diff -urNp linux-2.6.38.2/drivers/gpu/drm/drm_lock.c linux-2.6.38.2/drivers/gpu/
24271 25169
24272 if (drm_lock_free(&master->lock, lock->context)) { 25170 if (drm_lock_free(&master->lock, lock->context)) {
24273 /* FIXME: Should really bail out here. */ 25171 /* FIXME: Should really bail out here. */
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 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
24275--- linux-2.6.38.2/drivers/gpu/drm/i810/i810_dma.c 2011-03-14 21:20:32.000000000 -0400 25173--- linux-2.6.38.3/drivers/gpu/drm/i810/i810_dma.c 2011-03-14 21:20:32.000000000 -0400
24276+++ linux-2.6.38.2/drivers/gpu/drm/i810/i810_dma.c 2011-03-21 18:31:35.000000000 -0400 25174+++ linux-2.6.38.3/drivers/gpu/drm/i810/i810_dma.c 2011-04-17 15:57:32.000000000 -0400
24277@@ -953,8 +953,8 @@ static int i810_dma_vertex(struct drm_de 25175@@ -953,8 +953,8 @@ static int i810_dma_vertex(struct drm_de
24278 dma->buflist[vertex->idx], 25176 dma->buflist[vertex->idx],
24279 vertex->discard, vertex->used); 25177 vertex->discard, vertex->used);
@@ -24296,9 +25194,9 @@ diff -urNp linux-2.6.38.2/drivers/gpu/drm/i810/i810_dma.c linux-2.6.38.2/drivers
24296 sarea_priv->last_enqueue = dev_priv->counter - 1; 25194 sarea_priv->last_enqueue = dev_priv->counter - 1;
24297 sarea_priv->last_dispatch = (int)hw_status[5]; 25195 sarea_priv->last_dispatch = (int)hw_status[5];
24298 25196
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 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
24300--- linux-2.6.38.2/drivers/gpu/drm/i915/dvo_ch7017.c 2011-03-14 21:20:32.000000000 -0400 25198--- linux-2.6.38.3/drivers/gpu/drm/i915/dvo_ch7017.c 2011-03-14 21:20:32.000000000 -0400
24301+++ linux-2.6.38.2/drivers/gpu/drm/i915/dvo_ch7017.c 2011-03-21 18:31:35.000000000 -0400 25199+++ linux-2.6.38.3/drivers/gpu/drm/i915/dvo_ch7017.c 2011-04-17 15:57:32.000000000 -0400
24302@@ -390,7 +390,7 @@ static void ch7017_destroy(struct intel_ 25200@@ -390,7 +390,7 @@ static void ch7017_destroy(struct intel_
24303 } 25201 }
24304 } 25202 }
@@ -24308,9 +25206,9 @@ diff -urNp linux-2.6.38.2/drivers/gpu/drm/i915/dvo_ch7017.c linux-2.6.38.2/drive
24308 .init = ch7017_init, 25206 .init = ch7017_init,
24309 .detect = ch7017_detect, 25207 .detect = ch7017_detect,
24310 .mode_valid = ch7017_mode_valid, 25208 .mode_valid = ch7017_mode_valid,
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 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
24312--- linux-2.6.38.2/drivers/gpu/drm/i915/dvo_ch7xxx.c 2011-03-14 21:20:32.000000000 -0400 25210--- linux-2.6.38.3/drivers/gpu/drm/i915/dvo_ch7xxx.c 2011-03-14 21:20:32.000000000 -0400
24313+++ linux-2.6.38.2/drivers/gpu/drm/i915/dvo_ch7xxx.c 2011-03-21 18:31:35.000000000 -0400 25211+++ linux-2.6.38.3/drivers/gpu/drm/i915/dvo_ch7xxx.c 2011-04-17 15:57:32.000000000 -0400
24314@@ -320,7 +320,7 @@ static void ch7xxx_destroy(struct intel_ 25212@@ -320,7 +320,7 @@ static void ch7xxx_destroy(struct intel_
24315 } 25213 }
24316 } 25214 }
@@ -24320,9 +25218,9 @@ diff -urNp linux-2.6.38.2/drivers/gpu/drm/i915/dvo_ch7xxx.c linux-2.6.38.2/drive
24320 .init = ch7xxx_init, 25218 .init = ch7xxx_init,
24321 .detect = ch7xxx_detect, 25219 .detect = ch7xxx_detect,
24322 .mode_valid = ch7xxx_mode_valid, 25220 .mode_valid = ch7xxx_mode_valid,
24323diff -urNp linux-2.6.38.2/drivers/gpu/drm/i915/dvo.h linux-2.6.38.2/drivers/gpu/drm/i915/dvo.h 25221diff -urNp linux-2.6.38.3/drivers/gpu/drm/i915/dvo.h linux-2.6.38.3/drivers/gpu/drm/i915/dvo.h
24324--- linux-2.6.38.2/drivers/gpu/drm/i915/dvo.h 2011-03-14 21:20:32.000000000 -0400 25222--- linux-2.6.38.3/drivers/gpu/drm/i915/dvo.h 2011-03-14 21:20:32.000000000 -0400
24325+++ linux-2.6.38.2/drivers/gpu/drm/i915/dvo.h 2011-03-21 18:31:35.000000000 -0400 25223+++ linux-2.6.38.3/drivers/gpu/drm/i915/dvo.h 2011-04-17 15:57:32.000000000 -0400
24326@@ -122,23 +122,23 @@ struct intel_dvo_dev_ops { 25224@@ -122,23 +122,23 @@ struct intel_dvo_dev_ops {
24327 * 25225 *
24328 * \return singly-linked list of modes or NULL if no modes found. 25226 * \return singly-linked list of modes or NULL if no modes found.
@@ -24355,9 +25253,9 @@ diff -urNp linux-2.6.38.2/drivers/gpu/drm/i915/dvo.h linux-2.6.38.2/drivers/gpu/
24355+extern const struct intel_dvo_dev_ops ch7017_ops; 25253+extern const struct intel_dvo_dev_ops ch7017_ops;
24356 25254
24357 #endif /* _INTEL_DVO_H */ 25255 #endif /* _INTEL_DVO_H */
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 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
24359--- linux-2.6.38.2/drivers/gpu/drm/i915/dvo_ivch.c 2011-03-14 21:20:32.000000000 -0400 25257--- linux-2.6.38.3/drivers/gpu/drm/i915/dvo_ivch.c 2011-03-14 21:20:32.000000000 -0400
24360+++ linux-2.6.38.2/drivers/gpu/drm/i915/dvo_ivch.c 2011-03-21 18:31:35.000000000 -0400 25258+++ linux-2.6.38.3/drivers/gpu/drm/i915/dvo_ivch.c 2011-04-17 15:57:32.000000000 -0400
24361@@ -410,7 +410,7 @@ static void ivch_destroy(struct intel_dv 25259@@ -410,7 +410,7 @@ static void ivch_destroy(struct intel_dv
24362 } 25260 }
24363 } 25261 }
@@ -24367,9 +25265,9 @@ diff -urNp linux-2.6.38.2/drivers/gpu/drm/i915/dvo_ivch.c linux-2.6.38.2/drivers
24367 .init = ivch_init, 25265 .init = ivch_init,
24368 .dpms = ivch_dpms, 25266 .dpms = ivch_dpms,
24369 .mode_valid = ivch_mode_valid, 25267 .mode_valid = ivch_mode_valid,
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 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
24371--- linux-2.6.38.2/drivers/gpu/drm/i915/dvo_sil164.c 2011-03-14 21:20:32.000000000 -0400 25269--- linux-2.6.38.3/drivers/gpu/drm/i915/dvo_sil164.c 2011-03-14 21:20:32.000000000 -0400
24372+++ linux-2.6.38.2/drivers/gpu/drm/i915/dvo_sil164.c 2011-03-21 18:31:35.000000000 -0400 25270+++ linux-2.6.38.3/drivers/gpu/drm/i915/dvo_sil164.c 2011-04-17 15:57:32.000000000 -0400
24373@@ -252,7 +252,7 @@ static void sil164_destroy(struct intel_ 25271@@ -252,7 +252,7 @@ static void sil164_destroy(struct intel_
24374 } 25272 }
24375 } 25273 }
@@ -24379,9 +25277,9 @@ diff -urNp linux-2.6.38.2/drivers/gpu/drm/i915/dvo_sil164.c linux-2.6.38.2/drive
24379 .init = sil164_init, 25277 .init = sil164_init,
24380 .detect = sil164_detect, 25278 .detect = sil164_detect,
24381 .mode_valid = sil164_mode_valid, 25279 .mode_valid = sil164_mode_valid,
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 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
24383--- linux-2.6.38.2/drivers/gpu/drm/i915/dvo_tfp410.c 2011-03-14 21:20:32.000000000 -0400 25281--- linux-2.6.38.3/drivers/gpu/drm/i915/dvo_tfp410.c 2011-03-14 21:20:32.000000000 -0400
24384+++ linux-2.6.38.2/drivers/gpu/drm/i915/dvo_tfp410.c 2011-03-21 18:31:35.000000000 -0400 25282+++ linux-2.6.38.3/drivers/gpu/drm/i915/dvo_tfp410.c 2011-04-17 15:57:32.000000000 -0400
24385@@ -293,7 +293,7 @@ static void tfp410_destroy(struct intel_ 25283@@ -293,7 +293,7 @@ static void tfp410_destroy(struct intel_
24386 } 25284 }
24387 } 25285 }
@@ -24391,9 +25289,9 @@ diff -urNp linux-2.6.38.2/drivers/gpu/drm/i915/dvo_tfp410.c linux-2.6.38.2/drive
24391 .init = tfp410_init, 25289 .init = tfp410_init,
24392 .detect = tfp410_detect, 25290 .detect = tfp410_detect,
24393 .mode_valid = tfp410_mode_valid, 25291 .mode_valid = tfp410_mode_valid,
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 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
24395--- linux-2.6.38.2/drivers/gpu/drm/i915/i915_dma.c 2011-03-14 21:20:32.000000000 -0400 25293--- linux-2.6.38.3/drivers/gpu/drm/i915/i915_dma.c 2011-03-14 21:20:32.000000000 -0400
24396+++ linux-2.6.38.2/drivers/gpu/drm/i915/i915_dma.c 2011-03-21 18:31:35.000000000 -0400 25294+++ linux-2.6.38.3/drivers/gpu/drm/i915/i915_dma.c 2011-04-17 15:57:32.000000000 -0400
24397@@ -1159,7 +1159,7 @@ static bool i915_switcheroo_can_switch(s 25295@@ -1159,7 +1159,7 @@ static bool i915_switcheroo_can_switch(s
24398 bool can_switch; 25296 bool can_switch;
24399 25297
@@ -24403,9 +25301,9 @@ diff -urNp linux-2.6.38.2/drivers/gpu/drm/i915/i915_dma.c linux-2.6.38.2/drivers
24403 spin_unlock(&dev->count_lock); 25301 spin_unlock(&dev->count_lock);
24404 return can_switch; 25302 return can_switch;
24405 } 25303 }
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 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
24407--- linux-2.6.38.2/drivers/gpu/drm/i915/i915_drv.c 2011-03-14 21:20:32.000000000 -0400 25305--- linux-2.6.38.3/drivers/gpu/drm/i915/i915_drv.c 2011-03-14 21:20:32.000000000 -0400
24408+++ linux-2.6.38.2/drivers/gpu/drm/i915/i915_drv.c 2011-03-21 18:31:35.000000000 -0400 25306+++ linux-2.6.38.3/drivers/gpu/drm/i915/i915_drv.c 2011-04-17 15:57:32.000000000 -0400
24409@@ -673,7 +673,7 @@ static const struct dev_pm_ops i915_pm_o 25307@@ -673,7 +673,7 @@ static const struct dev_pm_ops i915_pm_o
24410 .restore = i915_pm_resume, 25308 .restore = i915_pm_resume,
24411 }; 25309 };
@@ -24415,9 +25313,21 @@ diff -urNp linux-2.6.38.2/drivers/gpu/drm/i915/i915_drv.c linux-2.6.38.2/drivers
24415 .fault = i915_gem_fault, 25313 .fault = i915_gem_fault,
24416 .open = drm_gem_vm_open, 25314 .open = drm_gem_vm_open,
24417 .close = drm_gem_vm_close, 25315 .close = drm_gem_vm_close,
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 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
24419--- linux-2.6.38.2/drivers/gpu/drm/nouveau/nouveau_state.c 2011-03-14 21:20:32.000000000 -0400 25317--- linux-2.6.38.3/drivers/gpu/drm/i915/i915_drv.h 2011-03-14 21:20:32.000000000 -0400
24420+++ linux-2.6.38.2/drivers/gpu/drm/nouveau/nouveau_state.c 2011-03-21 18:31:35.000000000 -0400 25318+++ linux-2.6.38.3/drivers/gpu/drm/i915/i915_drv.h 2011-04-17 15:57:32.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
24421@@ -621,7 +621,7 @@ static bool nouveau_switcheroo_can_switc 25331@@ -621,7 +621,7 @@ static bool nouveau_switcheroo_can_switc
24422 bool can_switch; 25332 bool can_switch;
24423 25333
@@ -24427,9 +25337,9 @@ diff -urNp linux-2.6.38.2/drivers/gpu/drm/nouveau/nouveau_state.c linux-2.6.38.2
24427 spin_unlock(&dev->count_lock); 25337 spin_unlock(&dev->count_lock);
24428 return can_switch; 25338 return can_switch;
24429 } 25339 }
24430diff -urNp linux-2.6.38.2/drivers/gpu/drm/radeon/mkregtable.c linux-2.6.38.2/drivers/gpu/drm/radeon/mkregtable.c 25340diff -urNp linux-2.6.38.3/drivers/gpu/drm/radeon/mkregtable.c linux-2.6.38.3/drivers/gpu/drm/radeon/mkregtable.c
24431--- linux-2.6.38.2/drivers/gpu/drm/radeon/mkregtable.c 2011-03-14 21:20:32.000000000 -0400 25341--- linux-2.6.38.3/drivers/gpu/drm/radeon/mkregtable.c 2011-03-14 21:20:32.000000000 -0400
24432+++ linux-2.6.38.2/drivers/gpu/drm/radeon/mkregtable.c 2011-03-21 18:31:35.000000000 -0400 25342+++ linux-2.6.38.3/drivers/gpu/drm/radeon/mkregtable.c 2011-04-17 15:57:32.000000000 -0400
24433@@ -637,14 +637,14 @@ static int parser_auth(struct table *t, 25343@@ -637,14 +637,14 @@ static int parser_auth(struct table *t,
24434 regex_t mask_rex; 25344 regex_t mask_rex;
24435 regmatch_t match[4]; 25345 regmatch_t match[4];
@@ -24447,9 +25357,9 @@ diff -urNp linux-2.6.38.2/drivers/gpu/drm/radeon/mkregtable.c linux-2.6.38.2/dri
24447 25357
24448 if (regcomp 25358 if (regcomp
24449 (&mask_rex, "(0x[0-9a-fA-F]*) *([_a-zA-Z0-9]*)", REG_EXTENDED)) { 25359 (&mask_rex, "(0x[0-9a-fA-F]*) *([_a-zA-Z0-9]*)", REG_EXTENDED)) {
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 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
24451--- linux-2.6.38.2/drivers/gpu/drm/radeon/radeon_device.c 2011-03-14 21:20:32.000000000 -0400 25361--- linux-2.6.38.3/drivers/gpu/drm/radeon/radeon_device.c 2011-03-14 21:20:32.000000000 -0400
24452+++ linux-2.6.38.2/drivers/gpu/drm/radeon/radeon_device.c 2011-03-21 18:31:35.000000000 -0400 25362+++ linux-2.6.38.3/drivers/gpu/drm/radeon/radeon_device.c 2011-04-17 15:57:32.000000000 -0400
24453@@ -673,7 +673,7 @@ static bool radeon_switcheroo_can_switch 25363@@ -673,7 +673,7 @@ static bool radeon_switcheroo_can_switch
24454 bool can_switch; 25364 bool can_switch;
24455 25365
@@ -24459,9 +25369,21 @@ diff -urNp linux-2.6.38.2/drivers/gpu/drm/radeon/radeon_device.c linux-2.6.38.2/
24459 spin_unlock(&dev->count_lock); 25369 spin_unlock(&dev->count_lock);
24460 return can_switch; 25370 return can_switch;
24461 } 25371 }
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 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
24463--- linux-2.6.38.2/drivers/gpu/drm/radeon/radeon_state.c 2011-03-14 21:20:32.000000000 -0400 25373--- linux-2.6.38.3/drivers/gpu/drm/radeon/radeon_ioc32.c 2011-03-14 21:20:32.000000000 -0400
24464+++ linux-2.6.38.2/drivers/gpu/drm/radeon/radeon_state.c 2011-03-21 18:31:35.000000000 -0400 25374+++ linux-2.6.38.3/drivers/gpu/drm/radeon/radeon_ioc32.c 2011-04-17 15:57:32.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
24465@@ -2168,7 +2168,7 @@ static int radeon_cp_clear(struct drm_de 25387@@ -2168,7 +2168,7 @@ static int radeon_cp_clear(struct drm_de
24466 if (sarea_priv->nbox > RADEON_NR_SAREA_CLIPRECTS) 25388 if (sarea_priv->nbox > RADEON_NR_SAREA_CLIPRECTS)
24467 sarea_priv->nbox = RADEON_NR_SAREA_CLIPRECTS; 25389 sarea_priv->nbox = RADEON_NR_SAREA_CLIPRECTS;
@@ -24480,9 +25402,9 @@ diff -urNp linux-2.6.38.2/drivers/gpu/drm/radeon/radeon_state.c linux-2.6.38.2/d
24480 25402
24481 DRM_DEBUG("pid=%d\n", DRM_CURRENTPID); 25403 DRM_DEBUG("pid=%d\n", DRM_CURRENTPID);
24482 25404
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 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
24484--- linux-2.6.38.2/drivers/gpu/drm/radeon/radeon_ttm.c 2011-03-14 21:20:32.000000000 -0400 25406--- linux-2.6.38.3/drivers/gpu/drm/radeon/radeon_ttm.c 2011-03-14 21:20:32.000000000 -0400
24485+++ linux-2.6.38.2/drivers/gpu/drm/radeon/radeon_ttm.c 2011-03-21 18:31:35.000000000 -0400 25407+++ linux-2.6.38.3/drivers/gpu/drm/radeon/radeon_ttm.c 2011-04-17 15:57:32.000000000 -0400
24486@@ -603,8 +603,9 @@ void radeon_ttm_set_active_vram_size(str 25408@@ -603,8 +603,9 @@ void radeon_ttm_set_active_vram_size(str
24487 man->size = size >> PAGE_SHIFT; 25409 man->size = size >> PAGE_SHIFT;
24488 } 25410 }
@@ -24543,9 +25465,25 @@ diff -urNp linux-2.6.38.2/drivers/gpu/drm/radeon/radeon_ttm.c linux-2.6.38.2/dri
24543 vma->vm_ops = &radeon_ttm_vm_ops; 25465 vma->vm_ops = &radeon_ttm_vm_ops;
24544 return 0; 25466 return 0;
24545 } 25467 }
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 25468diff -urNp linux-2.6.38.3/drivers/gpu/drm/radeon/rs690.c linux-2.6.38.3/drivers/gpu/drm/radeon/rs690.c
24547--- linux-2.6.38.2/drivers/gpu/drm/ttm/ttm_bo.c 2011-03-14 21:20:32.000000000 -0400 25469--- linux-2.6.38.3/drivers/gpu/drm/radeon/rs690.c 2011-03-14 21:20:32.000000000 -0400
24548+++ linux-2.6.38.2/drivers/gpu/drm/ttm/ttm_bo.c 2011-03-21 18:31:35.000000000 -0400 25470+++ linux-2.6.38.3/drivers/gpu/drm/radeon/rs690.c 2011-04-17 15:57:32.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
24549@@ -40,7 +40,7 @@ 25487@@ -40,7 +40,7 @@
24550 #include <asm/atomic.h> 25488 #include <asm/atomic.h>
24551 25489
@@ -24555,9 +25493,9 @@ diff -urNp linux-2.6.38.2/drivers/gpu/drm/ttm/ttm_bo.c linux-2.6.38.2/drivers/gp
24555 #define TTM_BO_HASH_ORDER 13 25493 #define TTM_BO_HASH_ORDER 13
24556 25494
24557 static int ttm_bo_setup_vm(struct ttm_buffer_object *bo); 25495 static int ttm_bo_setup_vm(struct ttm_buffer_object *bo);
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 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
24559--- linux-2.6.38.2/drivers/gpu/drm/ttm/ttm_bo_vm.c 2011-03-14 21:20:32.000000000 -0400 25497--- linux-2.6.38.3/drivers/gpu/drm/ttm/ttm_bo_vm.c 2011-03-14 21:20: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 25498+++ linux-2.6.38.3/drivers/gpu/drm/ttm/ttm_bo_vm.c 2011-04-17 15:57:32.000000000 -0400
24561@@ -69,11 +69,11 @@ static struct ttm_buffer_object *ttm_bo_ 25499@@ -69,11 +69,11 @@ static struct ttm_buffer_object *ttm_bo_
24562 return best_bo; 25500 return best_bo;
24563 } 25501 }
@@ -24615,9 +25553,21 @@ diff -urNp linux-2.6.38.2/drivers/gpu/drm/ttm/ttm_bo_vm.c linux-2.6.38.2/drivers
24615 25553
24616 static const struct vm_operations_struct ttm_bo_vm_ops = { 25554 static const struct vm_operations_struct ttm_bo_vm_ops = {
24617 .fault = ttm_bo_vm_fault, 25555 .fault = ttm_bo_vm_fault,
24618diff -urNp linux-2.6.38.2/drivers/hid/usbhid/hiddev.c linux-2.6.38.2/drivers/hid/usbhid/hiddev.c 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
24619--- linux-2.6.38.2/drivers/hid/usbhid/hiddev.c 2011-03-14 21:20:32.000000000 -0400 25557--- linux-2.6.38.3/drivers/gpu/drm/vmwgfx/vmwgfx_fifo.c 2011-03-14 21:20:32.000000000 -0400
24620+++ linux-2.6.38.2/drivers/hid/usbhid/hiddev.c 2011-03-21 18:31:35.000000000 -0400 25558+++ linux-2.6.38.3/drivers/gpu/drm/vmwgfx/vmwgfx_fifo.c 2011-04-17 15:57:32.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
24621@@ -613,7 +613,7 @@ static long hiddev_ioctl(struct file *fi 25571@@ -613,7 +613,7 @@ static long hiddev_ioctl(struct file *fi
24622 break; 25572 break;
24623 25573
@@ -24627,9 +25577,9 @@ diff -urNp linux-2.6.38.2/drivers/hid/usbhid/hiddev.c linux-2.6.38.2/drivers/hid
24627 break; 25577 break;
24628 25578
24629 for (i = 0; i < hid->maxcollection; i++) 25579 for (i = 0; i < hid->maxcollection; i++)
24630diff -urNp linux-2.6.38.2/drivers/hwmon/k8temp.c linux-2.6.38.2/drivers/hwmon/k8temp.c 25580diff -urNp linux-2.6.38.3/drivers/hwmon/k8temp.c linux-2.6.38.3/drivers/hwmon/k8temp.c
24631--- linux-2.6.38.2/drivers/hwmon/k8temp.c 2011-03-14 21:20:32.000000000 -0400 25581--- linux-2.6.38.3/drivers/hwmon/k8temp.c 2011-03-14 21:20:32.000000000 -0400
24632+++ linux-2.6.38.2/drivers/hwmon/k8temp.c 2011-03-21 18:31:35.000000000 -0400 25582+++ linux-2.6.38.3/drivers/hwmon/k8temp.c 2011-04-17 15:57:32.000000000 -0400
24633@@ -138,7 +138,7 @@ static DEVICE_ATTR(name, S_IRUGO, show_n 25583@@ -138,7 +138,7 @@ static DEVICE_ATTR(name, S_IRUGO, show_n
24634 25584
24635 static const struct pci_device_id k8temp_ids[] = { 25585 static const struct pci_device_id k8temp_ids[] = {
@@ -24639,9 +25589,9 @@ diff -urNp linux-2.6.38.2/drivers/hwmon/k8temp.c linux-2.6.38.2/drivers/hwmon/k8
24639 }; 25589 };
24640 25590
24641 MODULE_DEVICE_TABLE(pci, k8temp_ids); 25591 MODULE_DEVICE_TABLE(pci, k8temp_ids);
24642diff -urNp linux-2.6.38.2/drivers/hwmon/sis5595.c linux-2.6.38.2/drivers/hwmon/sis5595.c 25592diff -urNp linux-2.6.38.3/drivers/hwmon/sis5595.c linux-2.6.38.3/drivers/hwmon/sis5595.c
24643--- linux-2.6.38.2/drivers/hwmon/sis5595.c 2011-03-14 21:20:32.000000000 -0400 25593--- linux-2.6.38.3/drivers/hwmon/sis5595.c 2011-03-14 21:20:32.000000000 -0400
24644+++ linux-2.6.38.2/drivers/hwmon/sis5595.c 2011-03-21 18:31:35.000000000 -0400 25594+++ linux-2.6.38.3/drivers/hwmon/sis5595.c 2011-04-17 15:57:32.000000000 -0400
24645@@ -701,7 +701,7 @@ static struct sis5595_data *sis5595_upda 25595@@ -701,7 +701,7 @@ static struct sis5595_data *sis5595_upda
24646 25596
24647 static const struct pci_device_id sis5595_pci_ids[] = { 25597 static const struct pci_device_id sis5595_pci_ids[] = {
@@ -24651,9 +25601,9 @@ diff -urNp linux-2.6.38.2/drivers/hwmon/sis5595.c linux-2.6.38.2/drivers/hwmon/s
24651 }; 25601 };
24652 25602
24653 MODULE_DEVICE_TABLE(pci, sis5595_pci_ids); 25603 MODULE_DEVICE_TABLE(pci, sis5595_pci_ids);
24654diff -urNp linux-2.6.38.2/drivers/hwmon/via686a.c linux-2.6.38.2/drivers/hwmon/via686a.c 25604diff -urNp linux-2.6.38.3/drivers/hwmon/via686a.c linux-2.6.38.3/drivers/hwmon/via686a.c
24655--- linux-2.6.38.2/drivers/hwmon/via686a.c 2011-03-14 21:20:32.000000000 -0400 25605--- linux-2.6.38.3/drivers/hwmon/via686a.c 2011-03-14 21:20:32.000000000 -0400
24656+++ linux-2.6.38.2/drivers/hwmon/via686a.c 2011-03-21 18:31:35.000000000 -0400 25606+++ linux-2.6.38.3/drivers/hwmon/via686a.c 2011-04-17 15:57:32.000000000 -0400
24657@@ -779,7 +779,7 @@ static struct via686a_data *via686a_upda 25607@@ -779,7 +779,7 @@ static struct via686a_data *via686a_upda
24658 25608
24659 static const struct pci_device_id via686a_pci_ids[] = { 25609 static const struct pci_device_id via686a_pci_ids[] = {
@@ -24663,9 +25613,9 @@ diff -urNp linux-2.6.38.2/drivers/hwmon/via686a.c linux-2.6.38.2/drivers/hwmon/v
24663 }; 25613 };
24664 25614
24665 MODULE_DEVICE_TABLE(pci, via686a_pci_ids); 25615 MODULE_DEVICE_TABLE(pci, via686a_pci_ids);
24666diff -urNp linux-2.6.38.2/drivers/hwmon/vt8231.c linux-2.6.38.2/drivers/hwmon/vt8231.c 25616diff -urNp linux-2.6.38.3/drivers/hwmon/vt8231.c linux-2.6.38.3/drivers/hwmon/vt8231.c
24667--- linux-2.6.38.2/drivers/hwmon/vt8231.c 2011-03-14 21:20:32.000000000 -0400 25617--- linux-2.6.38.3/drivers/hwmon/vt8231.c 2011-03-14 21:20:32.000000000 -0400
24668+++ linux-2.6.38.2/drivers/hwmon/vt8231.c 2011-03-21 18:31:35.000000000 -0400 25618+++ linux-2.6.38.3/drivers/hwmon/vt8231.c 2011-04-17 15:57:32.000000000 -0400
24669@@ -701,7 +701,7 @@ static struct platform_driver vt8231_dri 25619@@ -701,7 +701,7 @@ static struct platform_driver vt8231_dri
24670 25620
24671 static const struct pci_device_id vt8231_pci_ids[] = { 25621 static const struct pci_device_id vt8231_pci_ids[] = {
@@ -24675,9 +25625,9 @@ diff -urNp linux-2.6.38.2/drivers/hwmon/vt8231.c linux-2.6.38.2/drivers/hwmon/vt
24675 }; 25625 };
24676 25626
24677 MODULE_DEVICE_TABLE(pci, vt8231_pci_ids); 25627 MODULE_DEVICE_TABLE(pci, vt8231_pci_ids);
24678diff -urNp linux-2.6.38.2/drivers/hwmon/w83791d.c linux-2.6.38.2/drivers/hwmon/w83791d.c 25628diff -urNp linux-2.6.38.3/drivers/hwmon/w83791d.c linux-2.6.38.3/drivers/hwmon/w83791d.c
24679--- linux-2.6.38.2/drivers/hwmon/w83791d.c 2011-03-14 21:20:32.000000000 -0400 25629--- linux-2.6.38.3/drivers/hwmon/w83791d.c 2011-03-14 21:20:32.000000000 -0400
24680+++ linux-2.6.38.2/drivers/hwmon/w83791d.c 2011-03-21 18:31:35.000000000 -0400 25630+++ linux-2.6.38.3/drivers/hwmon/w83791d.c 2011-04-17 15:57:32.000000000 -0400
24681@@ -329,8 +329,8 @@ static int w83791d_detect(struct i2c_cli 25631@@ -329,8 +329,8 @@ static int w83791d_detect(struct i2c_cli
24682 struct i2c_board_info *info); 25632 struct i2c_board_info *info);
24683 static int w83791d_remove(struct i2c_client *client); 25633 static int w83791d_remove(struct i2c_client *client);
@@ -24689,9 +25639,9 @@ diff -urNp linux-2.6.38.2/drivers/hwmon/w83791d.c linux-2.6.38.2/drivers/hwmon/w
24689 static struct w83791d_data *w83791d_update_device(struct device *dev); 25639 static struct w83791d_data *w83791d_update_device(struct device *dev);
24690 25640
24691 #ifdef DEBUG 25641 #ifdef DEBUG
24692diff -urNp linux-2.6.38.2/drivers/i2c/busses/i2c-i801.c linux-2.6.38.2/drivers/i2c/busses/i2c-i801.c 25642diff -urNp linux-2.6.38.3/drivers/i2c/busses/i2c-i801.c linux-2.6.38.3/drivers/i2c/busses/i2c-i801.c
24693--- linux-2.6.38.2/drivers/i2c/busses/i2c-i801.c 2011-03-14 21:20:32.000000000 -0400 25643--- linux-2.6.38.3/drivers/i2c/busses/i2c-i801.c 2011-03-14 21:20:32.000000000 -0400
24694+++ linux-2.6.38.2/drivers/i2c/busses/i2c-i801.c 2011-03-21 18:31:35.000000000 -0400 25644+++ linux-2.6.38.3/drivers/i2c/busses/i2c-i801.c 2011-04-17 15:57:32.000000000 -0400
24695@@ -621,7 +621,7 @@ static const struct pci_device_id i801_i 25645@@ -621,7 +621,7 @@ static const struct pci_device_id i801_i
24696 { PCI_DEVICE(PCI_VENDOR_ID_INTEL, PCI_DEVICE_ID_INTEL_PATSBURG_SMBUS_IDF0) }, 25646 { PCI_DEVICE(PCI_VENDOR_ID_INTEL, PCI_DEVICE_ID_INTEL_PATSBURG_SMBUS_IDF0) },
24697 { PCI_DEVICE(PCI_VENDOR_ID_INTEL, PCI_DEVICE_ID_INTEL_PATSBURG_SMBUS_IDF1) }, 25647 { PCI_DEVICE(PCI_VENDOR_ID_INTEL, PCI_DEVICE_ID_INTEL_PATSBURG_SMBUS_IDF1) },
@@ -24701,9 +25651,9 @@ diff -urNp linux-2.6.38.2/drivers/i2c/busses/i2c-i801.c linux-2.6.38.2/drivers/i
24701 }; 25651 };
24702 25652
24703 MODULE_DEVICE_TABLE(pci, i801_ids); 25653 MODULE_DEVICE_TABLE(pci, i801_ids);
24704diff -urNp linux-2.6.38.2/drivers/i2c/busses/i2c-piix4.c linux-2.6.38.2/drivers/i2c/busses/i2c-piix4.c 25654diff -urNp linux-2.6.38.3/drivers/i2c/busses/i2c-piix4.c linux-2.6.38.3/drivers/i2c/busses/i2c-piix4.c
24705--- linux-2.6.38.2/drivers/i2c/busses/i2c-piix4.c 2011-03-14 21:20:32.000000000 -0400 25655--- linux-2.6.38.3/drivers/i2c/busses/i2c-piix4.c 2011-03-14 21:20:32.000000000 -0400
24706+++ linux-2.6.38.2/drivers/i2c/busses/i2c-piix4.c 2011-03-21 18:31:35.000000000 -0400 25656+++ linux-2.6.38.3/drivers/i2c/busses/i2c-piix4.c 2011-04-17 15:57:32.000000000 -0400
24707@@ -124,7 +124,7 @@ static struct dmi_system_id __devinitdat 25657@@ -124,7 +124,7 @@ static struct dmi_system_id __devinitdat
24708 .ident = "IBM", 25658 .ident = "IBM",
24709 .matches = { DMI_MATCH(DMI_SYS_VENDOR, "IBM"), }, 25659 .matches = { DMI_MATCH(DMI_SYS_VENDOR, "IBM"), },
@@ -24722,9 +25672,9 @@ diff -urNp linux-2.6.38.2/drivers/i2c/busses/i2c-piix4.c linux-2.6.38.2/drivers/
24722 }; 25672 };
24723 25673
24724 MODULE_DEVICE_TABLE (pci, piix4_ids); 25674 MODULE_DEVICE_TABLE (pci, piix4_ids);
24725diff -urNp linux-2.6.38.2/drivers/i2c/busses/i2c-sis630.c linux-2.6.38.2/drivers/i2c/busses/i2c-sis630.c 25675diff -urNp linux-2.6.38.3/drivers/i2c/busses/i2c-sis630.c linux-2.6.38.3/drivers/i2c/busses/i2c-sis630.c
24726--- linux-2.6.38.2/drivers/i2c/busses/i2c-sis630.c 2011-03-14 21:20:32.000000000 -0400 25676--- linux-2.6.38.3/drivers/i2c/busses/i2c-sis630.c 2011-03-14 21:20:32.000000000 -0400
24727+++ linux-2.6.38.2/drivers/i2c/busses/i2c-sis630.c 2011-03-21 18:31:35.000000000 -0400 25677+++ linux-2.6.38.3/drivers/i2c/busses/i2c-sis630.c 2011-04-17 15:57:32.000000000 -0400
24728@@ -471,7 +471,7 @@ static struct i2c_adapter sis630_adapter 25678@@ -471,7 +471,7 @@ static struct i2c_adapter sis630_adapter
24729 static const struct pci_device_id sis630_ids[] __devinitconst = { 25679 static const struct pci_device_id sis630_ids[] __devinitconst = {
24730 { PCI_DEVICE(PCI_VENDOR_ID_SI, PCI_DEVICE_ID_SI_503) }, 25680 { PCI_DEVICE(PCI_VENDOR_ID_SI, PCI_DEVICE_ID_SI_503) },
@@ -24734,9 +25684,9 @@ diff -urNp linux-2.6.38.2/drivers/i2c/busses/i2c-sis630.c linux-2.6.38.2/drivers
24734 }; 25684 };
24735 25685
24736 MODULE_DEVICE_TABLE (pci, sis630_ids); 25686 MODULE_DEVICE_TABLE (pci, sis630_ids);
24737diff -urNp linux-2.6.38.2/drivers/i2c/busses/i2c-sis96x.c linux-2.6.38.2/drivers/i2c/busses/i2c-sis96x.c 25687diff -urNp linux-2.6.38.3/drivers/i2c/busses/i2c-sis96x.c linux-2.6.38.3/drivers/i2c/busses/i2c-sis96x.c
24738--- linux-2.6.38.2/drivers/i2c/busses/i2c-sis96x.c 2011-03-14 21:20:32.000000000 -0400 25688--- linux-2.6.38.3/drivers/i2c/busses/i2c-sis96x.c 2011-03-14 21:20:32.000000000 -0400
24739+++ linux-2.6.38.2/drivers/i2c/busses/i2c-sis96x.c 2011-03-21 18:31:35.000000000 -0400 25689+++ linux-2.6.38.3/drivers/i2c/busses/i2c-sis96x.c 2011-04-17 15:57:32.000000000 -0400
24740@@ -247,7 +247,7 @@ static struct i2c_adapter sis96x_adapter 25690@@ -247,7 +247,7 @@ static struct i2c_adapter sis96x_adapter
24741 25691
24742 static const struct pci_device_id sis96x_ids[] = { 25692 static const struct pci_device_id sis96x_ids[] = {
@@ -24746,9 +25696,9 @@ diff -urNp linux-2.6.38.2/drivers/i2c/busses/i2c-sis96x.c linux-2.6.38.2/drivers
24746 }; 25696 };
24747 25697
24748 MODULE_DEVICE_TABLE (pci, sis96x_ids); 25698 MODULE_DEVICE_TABLE (pci, sis96x_ids);
24749diff -urNp linux-2.6.38.2/drivers/ide/ide-cd.c linux-2.6.38.2/drivers/ide/ide-cd.c 25699diff -urNp linux-2.6.38.3/drivers/ide/ide-cd.c linux-2.6.38.3/drivers/ide/ide-cd.c
24750--- linux-2.6.38.2/drivers/ide/ide-cd.c 2011-03-14 21:20:32.000000000 -0400 25700--- linux-2.6.38.3/drivers/ide/ide-cd.c 2011-03-14 21:20:32.000000000 -0400
24751+++ linux-2.6.38.2/drivers/ide/ide-cd.c 2011-03-21 18:31:35.000000000 -0400 25701+++ linux-2.6.38.3/drivers/ide/ide-cd.c 2011-04-17 15:57:32.000000000 -0400
24752@@ -776,7 +776,7 @@ static void cdrom_do_block_pc(ide_drive_ 25702@@ -776,7 +776,7 @@ static void cdrom_do_block_pc(ide_drive_
24753 alignment = queue_dma_alignment(q) | q->dma_pad_mask; 25703 alignment = queue_dma_alignment(q) | q->dma_pad_mask;
24754 if ((unsigned long)buf & alignment 25704 if ((unsigned long)buf & alignment
@@ -24758,9 +25708,9 @@ diff -urNp linux-2.6.38.2/drivers/ide/ide-cd.c linux-2.6.38.2/drivers/ide/ide-cd
24758 drive->dma = 0; 25708 drive->dma = 0;
24759 } 25709 }
24760 } 25710 }
24761diff -urNp linux-2.6.38.2/drivers/infiniband/core/cm.c linux-2.6.38.2/drivers/infiniband/core/cm.c 25711diff -urNp linux-2.6.38.3/drivers/infiniband/core/cm.c linux-2.6.38.3/drivers/infiniband/core/cm.c
24762--- linux-2.6.38.2/drivers/infiniband/core/cm.c 2011-03-23 17:20:07.000000000 -0400 25712--- linux-2.6.38.3/drivers/infiniband/core/cm.c 2011-04-18 17:27:14.000000000 -0400
24763+++ linux-2.6.38.2/drivers/infiniband/core/cm.c 2011-03-23 17:21:50.000000000 -0400 25713+++ linux-2.6.38.3/drivers/infiniband/core/cm.c 2011-04-17 15:57:32.000000000 -0400
24764@@ -113,7 +113,7 @@ static char const counter_group_names[CM 25714@@ -113,7 +113,7 @@ static char const counter_group_names[CM
24765 25715
24766 struct cm_counter_group { 25716 struct cm_counter_group {
@@ -24900,9 +25850,9 @@ diff -urNp linux-2.6.38.2/drivers/infiniband/core/cm.c linux-2.6.38.2/drivers/in
24900 } 25850 }
24901 25851
24902 static const struct sysfs_ops cm_counter_ops = { 25852 static const struct sysfs_ops cm_counter_ops = {
24903diff -urNp linux-2.6.38.2/drivers/infiniband/hw/qib/qib.h linux-2.6.38.2/drivers/infiniband/hw/qib/qib.h 25853diff -urNp linux-2.6.38.3/drivers/infiniband/hw/qib/qib.h linux-2.6.38.3/drivers/infiniband/hw/qib/qib.h
24904--- linux-2.6.38.2/drivers/infiniband/hw/qib/qib.h 2011-03-14 21:20:32.000000000 -0400 25854--- linux-2.6.38.3/drivers/infiniband/hw/qib/qib.h 2011-03-14 21:20:32.000000000 -0400
24905+++ linux-2.6.38.2/drivers/infiniband/hw/qib/qib.h 2011-03-21 18:31:35.000000000 -0400 25855+++ linux-2.6.38.3/drivers/infiniband/hw/qib/qib.h 2011-04-17 15:57:32.000000000 -0400
24906@@ -51,6 +51,7 @@ 25856@@ -51,6 +51,7 @@
24907 #include <linux/completion.h> 25857 #include <linux/completion.h>
24908 #include <linux/kref.h> 25858 #include <linux/kref.h>
@@ -24911,9 +25861,9 @@ diff -urNp linux-2.6.38.2/drivers/infiniband/hw/qib/qib.h linux-2.6.38.2/drivers
24911 25861
24912 #include "qib_common.h" 25862 #include "qib_common.h"
24913 #include "qib_verbs.h" 25863 #include "qib_verbs.h"
24914diff -urNp linux-2.6.38.2/drivers/input/keyboard/atkbd.c linux-2.6.38.2/drivers/input/keyboard/atkbd.c 25864diff -urNp linux-2.6.38.3/drivers/input/keyboard/atkbd.c linux-2.6.38.3/drivers/input/keyboard/atkbd.c
24915--- linux-2.6.38.2/drivers/input/keyboard/atkbd.c 2011-03-14 21:20:32.000000000 -0400 25865--- linux-2.6.38.3/drivers/input/keyboard/atkbd.c 2011-03-14 21:20:32.000000000 -0400
24916+++ linux-2.6.38.2/drivers/input/keyboard/atkbd.c 2011-03-21 18:31:35.000000000 -0400 25866+++ linux-2.6.38.3/drivers/input/keyboard/atkbd.c 2011-04-17 15:57:32.000000000 -0400
24917@@ -1250,7 +1250,7 @@ static struct serio_device_id atkbd_seri 25867@@ -1250,7 +1250,7 @@ static struct serio_device_id atkbd_seri
24918 .id = SERIO_ANY, 25868 .id = SERIO_ANY,
24919 .extra = SERIO_ANY, 25869 .extra = SERIO_ANY,
@@ -24923,9 +25873,9 @@ diff -urNp linux-2.6.38.2/drivers/input/keyboard/atkbd.c linux-2.6.38.2/drivers/
24923 }; 25873 };
24924 25874
24925 MODULE_DEVICE_TABLE(serio, atkbd_serio_ids); 25875 MODULE_DEVICE_TABLE(serio, atkbd_serio_ids);
24926diff -urNp linux-2.6.38.2/drivers/input/mouse/lifebook.c linux-2.6.38.2/drivers/input/mouse/lifebook.c 25876diff -urNp linux-2.6.38.3/drivers/input/mouse/lifebook.c linux-2.6.38.3/drivers/input/mouse/lifebook.c
24927--- linux-2.6.38.2/drivers/input/mouse/lifebook.c 2011-03-14 21:20:32.000000000 -0400 25877--- linux-2.6.38.3/drivers/input/mouse/lifebook.c 2011-03-14 21:20:32.000000000 -0400
24928+++ linux-2.6.38.2/drivers/input/mouse/lifebook.c 2011-03-21 18:31:35.000000000 -0400 25878+++ linux-2.6.38.3/drivers/input/mouse/lifebook.c 2011-04-17 15:57:32.000000000 -0400
24929@@ -123,7 +123,7 @@ static const struct dmi_system_id __init 25879@@ -123,7 +123,7 @@ static const struct dmi_system_id __init
24930 DMI_MATCH(DMI_PRODUCT_NAME, "LifeBook B142"), 25880 DMI_MATCH(DMI_PRODUCT_NAME, "LifeBook B142"),
24931 }, 25881 },
@@ -24935,9 +25885,9 @@ diff -urNp linux-2.6.38.2/drivers/input/mouse/lifebook.c linux-2.6.38.2/drivers/
24935 }; 25885 };
24936 25886
24937 void __init lifebook_module_init(void) 25887 void __init lifebook_module_init(void)
24938diff -urNp linux-2.6.38.2/drivers/input/mouse/psmouse-base.c linux-2.6.38.2/drivers/input/mouse/psmouse-base.c 25888diff -urNp linux-2.6.38.3/drivers/input/mouse/psmouse-base.c linux-2.6.38.3/drivers/input/mouse/psmouse-base.c
24939--- linux-2.6.38.2/drivers/input/mouse/psmouse-base.c 2011-03-14 21:20:32.000000000 -0400 25889--- linux-2.6.38.3/drivers/input/mouse/psmouse-base.c 2011-03-14 21:20:32.000000000 -0400
24940+++ linux-2.6.38.2/drivers/input/mouse/psmouse-base.c 2011-03-21 18:31:35.000000000 -0400 25890+++ linux-2.6.38.3/drivers/input/mouse/psmouse-base.c 2011-04-17 15:57:32.000000000 -0400
24941@@ -1462,7 +1462,7 @@ static struct serio_device_id psmouse_se 25891@@ -1462,7 +1462,7 @@ static struct serio_device_id psmouse_se
24942 .id = SERIO_ANY, 25892 .id = SERIO_ANY,
24943 .extra = SERIO_ANY, 25893 .extra = SERIO_ANY,
@@ -24947,9 +25897,9 @@ diff -urNp linux-2.6.38.2/drivers/input/mouse/psmouse-base.c linux-2.6.38.2/driv
24947 }; 25897 };
24948 25898
24949 MODULE_DEVICE_TABLE(serio, psmouse_serio_ids); 25899 MODULE_DEVICE_TABLE(serio, psmouse_serio_ids);
24950diff -urNp linux-2.6.38.2/drivers/input/mouse/synaptics.c linux-2.6.38.2/drivers/input/mouse/synaptics.c 25900diff -urNp linux-2.6.38.3/drivers/input/mouse/synaptics.c linux-2.6.38.3/drivers/input/mouse/synaptics.c
24951--- linux-2.6.38.2/drivers/input/mouse/synaptics.c 2011-03-14 21:20:32.000000000 -0400 25901--- linux-2.6.38.3/drivers/input/mouse/synaptics.c 2011-04-18 17:27:18.000000000 -0400
24952+++ linux-2.6.38.2/drivers/input/mouse/synaptics.c 2011-03-21 18:31:35.000000000 -0400 25902+++ linux-2.6.38.3/drivers/input/mouse/synaptics.c 2011-04-17 16:53:16.000000000 -0400
24953@@ -559,7 +559,7 @@ static void synaptics_process_packet(str 25903@@ -559,7 +559,7 @@ static void synaptics_process_packet(str
24954 break; 25904 break;
24955 case 2: 25905 case 2:
@@ -24967,20 +25917,21 @@ diff -urNp linux-2.6.38.2/drivers/input/mouse/synaptics.c linux-2.6.38.2/drivers
24967 }, 25917 },
24968 { 25918 {
24969 /* Toshiba Portege M300 */ 25919 /* Toshiba Portege M300 */
24970@@ -834,9 +833,8 @@ static const struct dmi_system_id __init 25920@@ -834,10 +833,9 @@ static const struct dmi_system_id __init
24971 DMI_MATCH(DMI_PRODUCT_NAME, "Portable PC"), 25921 DMI_MATCH(DMI_PRODUCT_NAME, "Portable PC"),
24972 DMI_MATCH(DMI_PRODUCT_VERSION, "Version 1.0"), 25922 DMI_MATCH(DMI_PRODUCT_VERSION, "Version 1.0"),
24973 }, 25923 },
24974- 25924-
24975 }, 25925 },
24976- { }
24977+ { NULL, NULL, {DMI_MATCH(DMI_NONE, {0})}, NULL } 25926+ { NULL, NULL, {DMI_MATCH(DMI_NONE, {0})}, NULL }
24978 #endif 25927 #endif
25928- { }
24979 }; 25929 };
24980 25930
24981diff -urNp linux-2.6.38.2/drivers/input/mousedev.c linux-2.6.38.2/drivers/input/mousedev.c 25931 static bool broken_olpc_ec;
24982--- linux-2.6.38.2/drivers/input/mousedev.c 2011-03-14 21:20:32.000000000 -0400 25932diff -urNp linux-2.6.38.3/drivers/input/mousedev.c linux-2.6.38.3/drivers/input/mousedev.c
24983+++ linux-2.6.38.2/drivers/input/mousedev.c 2011-03-21 18:31:35.000000000 -0400 25933--- linux-2.6.38.3/drivers/input/mousedev.c 2011-03-14 21:20:32.000000000 -0400
25934+++ linux-2.6.38.3/drivers/input/mousedev.c 2011-04-17 15:57:32.000000000 -0400
24984@@ -764,7 +764,7 @@ static ssize_t mousedev_read(struct file 25935@@ -764,7 +764,7 @@ static ssize_t mousedev_read(struct file
24985 25936
24986 spin_unlock_irq(&client->packet_lock); 25937 spin_unlock_irq(&client->packet_lock);
@@ -24999,9 +25950,9 @@ diff -urNp linux-2.6.38.2/drivers/input/mousedev.c linux-2.6.38.2/drivers/input/
24999 }; 25950 };
25000 static int psaux_registered; 25951 static int psaux_registered;
25001 #endif 25952 #endif
25002diff -urNp linux-2.6.38.2/drivers/input/serio/i8042-x86ia64io.h linux-2.6.38.2/drivers/input/serio/i8042-x86ia64io.h 25953diff -urNp linux-2.6.38.3/drivers/input/serio/i8042-x86ia64io.h linux-2.6.38.3/drivers/input/serio/i8042-x86ia64io.h
25003--- linux-2.6.38.2/drivers/input/serio/i8042-x86ia64io.h 2011-03-14 21:20:32.000000000 -0400 25954--- linux-2.6.38.3/drivers/input/serio/i8042-x86ia64io.h 2011-03-14 21:20:32.000000000 -0400
25004+++ linux-2.6.38.2/drivers/input/serio/i8042-x86ia64io.h 2011-03-21 18:31:35.000000000 -0400 25955+++ linux-2.6.38.3/drivers/input/serio/i8042-x86ia64io.h 2011-04-17 15:57:32.000000000 -0400
25005@@ -183,7 +183,7 @@ static const struct dmi_system_id __init 25956@@ -183,7 +183,7 @@ static const struct dmi_system_id __init
25006 DMI_MATCH(DMI_PRODUCT_VERSION, "Rev 1"), 25957 DMI_MATCH(DMI_PRODUCT_VERSION, "Rev 1"),
25007 }, 25958 },
@@ -25056,9 +26007,9 @@ diff -urNp linux-2.6.38.2/drivers/input/serio/i8042-x86ia64io.h linux-2.6.38.2/d
25056 }; 26007 };
25057 26008
25058 #endif /* CONFIG_X86 */ 26009 #endif /* CONFIG_X86 */
25059diff -urNp linux-2.6.38.2/drivers/input/serio/serio_raw.c linux-2.6.38.2/drivers/input/serio/serio_raw.c 26010diff -urNp linux-2.6.38.3/drivers/input/serio/serio_raw.c linux-2.6.38.3/drivers/input/serio/serio_raw.c
25060--- linux-2.6.38.2/drivers/input/serio/serio_raw.c 2011-03-14 21:20:32.000000000 -0400 26011--- linux-2.6.38.3/drivers/input/serio/serio_raw.c 2011-03-14 21:20:32.000000000 -0400
25061+++ linux-2.6.38.2/drivers/input/serio/serio_raw.c 2011-03-21 18:31:35.000000000 -0400 26012+++ linux-2.6.38.3/drivers/input/serio/serio_raw.c 2011-04-17 15:57:32.000000000 -0400
25062@@ -376,7 +376,7 @@ static struct serio_device_id serio_raw_ 26013@@ -376,7 +376,7 @@ static struct serio_device_id serio_raw_
25063 .id = SERIO_ANY, 26014 .id = SERIO_ANY,
25064 .extra = SERIO_ANY, 26015 .extra = SERIO_ANY,
@@ -25068,9 +26019,9 @@ diff -urNp linux-2.6.38.2/drivers/input/serio/serio_raw.c linux-2.6.38.2/drivers
25068 }; 26019 };
25069 26020
25070 MODULE_DEVICE_TABLE(serio, serio_raw_serio_ids); 26021 MODULE_DEVICE_TABLE(serio, serio_raw_serio_ids);
25071diff -urNp linux-2.6.38.2/drivers/isdn/gigaset/common.c linux-2.6.38.2/drivers/isdn/gigaset/common.c 26022diff -urNp linux-2.6.38.3/drivers/isdn/gigaset/common.c linux-2.6.38.3/drivers/isdn/gigaset/common.c
25072--- linux-2.6.38.2/drivers/isdn/gigaset/common.c 2011-03-14 21:20:32.000000000 -0400 26023--- linux-2.6.38.3/drivers/isdn/gigaset/common.c 2011-03-14 21:20:32.000000000 -0400
25073+++ linux-2.6.38.2/drivers/isdn/gigaset/common.c 2011-03-21 18:31:35.000000000 -0400 26024+++ linux-2.6.38.3/drivers/isdn/gigaset/common.c 2011-04-17 15:57:32.000000000 -0400
25074@@ -723,7 +723,7 @@ struct cardstate *gigaset_initcs(struct 26025@@ -723,7 +723,7 @@ struct cardstate *gigaset_initcs(struct
25075 cs->commands_pending = 0; 26026 cs->commands_pending = 0;
25076 cs->cur_at_seq = 0; 26027 cs->cur_at_seq = 0;
@@ -25080,9 +26031,9 @@ diff -urNp linux-2.6.38.2/drivers/isdn/gigaset/common.c linux-2.6.38.2/drivers/i
25080 cs->dev = NULL; 26031 cs->dev = NULL;
25081 cs->tty = NULL; 26032 cs->tty = NULL;
25082 cs->tty_dev = NULL; 26033 cs->tty_dev = NULL;
25083diff -urNp linux-2.6.38.2/drivers/isdn/gigaset/gigaset.h linux-2.6.38.2/drivers/isdn/gigaset/gigaset.h 26034diff -urNp linux-2.6.38.3/drivers/isdn/gigaset/gigaset.h linux-2.6.38.3/drivers/isdn/gigaset/gigaset.h
25084--- linux-2.6.38.2/drivers/isdn/gigaset/gigaset.h 2011-03-14 21:20:32.000000000 -0400 26035--- linux-2.6.38.3/drivers/isdn/gigaset/gigaset.h 2011-03-14 21:20:32.000000000 -0400
25085+++ linux-2.6.38.2/drivers/isdn/gigaset/gigaset.h 2011-03-21 18:31:35.000000000 -0400 26036+++ linux-2.6.38.3/drivers/isdn/gigaset/gigaset.h 2011-04-17 15:57:32.000000000 -0400
25086@@ -35,6 +35,7 @@ 26037@@ -35,6 +35,7 @@
25087 #include <linux/tty_driver.h> 26038 #include <linux/tty_driver.h>
25088 #include <linux/list.h> 26039 #include <linux/list.h>
@@ -25100,9 +26051,9 @@ diff -urNp linux-2.6.38.2/drivers/isdn/gigaset/gigaset.h linux-2.6.38.2/drivers/
25100 struct tty_struct *tty; 26051 struct tty_struct *tty;
25101 struct tasklet_struct if_wake_tasklet; 26052 struct tasklet_struct if_wake_tasklet;
25102 unsigned control_state; 26053 unsigned control_state;
25103diff -urNp linux-2.6.38.2/drivers/isdn/gigaset/interface.c linux-2.6.38.2/drivers/isdn/gigaset/interface.c 26054diff -urNp linux-2.6.38.3/drivers/isdn/gigaset/interface.c linux-2.6.38.3/drivers/isdn/gigaset/interface.c
25104--- linux-2.6.38.2/drivers/isdn/gigaset/interface.c 2011-03-14 21:20:32.000000000 -0400 26055--- linux-2.6.38.3/drivers/isdn/gigaset/interface.c 2011-03-14 21:20:32.000000000 -0400
25105+++ linux-2.6.38.2/drivers/isdn/gigaset/interface.c 2011-03-21 18:31:35.000000000 -0400 26056+++ linux-2.6.38.3/drivers/isdn/gigaset/interface.c 2011-04-17 15:57:32.000000000 -0400
25106@@ -160,9 +160,7 @@ static int if_open(struct tty_struct *tt 26057@@ -160,9 +160,7 @@ static int if_open(struct tty_struct *tt
25107 return -ERESTARTSYS; 26058 return -ERESTARTSYS;
25108 tty->driver_data = cs; 26059 tty->driver_data = cs;
@@ -25190,9 +26141,9 @@ diff -urNp linux-2.6.38.2/drivers/isdn/gigaset/interface.c linux-2.6.38.2/driver
25190 dev_warn(cs->dev, "%s: device not opened\n", __func__); 26141 dev_warn(cs->dev, "%s: device not opened\n", __func__);
25191 goto out; 26142 goto out;
25192 } 26143 }
25193diff -urNp linux-2.6.38.2/drivers/isdn/hardware/avm/b1.c linux-2.6.38.2/drivers/isdn/hardware/avm/b1.c 26144diff -urNp linux-2.6.38.3/drivers/isdn/hardware/avm/b1.c linux-2.6.38.3/drivers/isdn/hardware/avm/b1.c
25194--- linux-2.6.38.2/drivers/isdn/hardware/avm/b1.c 2011-03-14 21:20:32.000000000 -0400 26145--- linux-2.6.38.3/drivers/isdn/hardware/avm/b1.c 2011-03-14 21:20:32.000000000 -0400
25195+++ linux-2.6.38.2/drivers/isdn/hardware/avm/b1.c 2011-03-21 18:31:35.000000000 -0400 26146+++ linux-2.6.38.3/drivers/isdn/hardware/avm/b1.c 2011-04-17 15:57:32.000000000 -0400
25196@@ -176,7 +176,7 @@ int b1_load_t4file(avmcard *card, capilo 26147@@ -176,7 +176,7 @@ int b1_load_t4file(avmcard *card, capilo
25197 } 26148 }
25198 if (left) { 26149 if (left) {
@@ -25211,9 +26162,9 @@ diff -urNp linux-2.6.38.2/drivers/isdn/hardware/avm/b1.c linux-2.6.38.2/drivers/
25211 return -EFAULT; 26162 return -EFAULT;
25212 } else { 26163 } else {
25213 memcpy(buf, dp, left); 26164 memcpy(buf, dp, left);
25214diff -urNp linux-2.6.38.2/drivers/isdn/icn/icn.c linux-2.6.38.2/drivers/isdn/icn/icn.c 26165diff -urNp linux-2.6.38.3/drivers/isdn/icn/icn.c linux-2.6.38.3/drivers/isdn/icn/icn.c
25215--- linux-2.6.38.2/drivers/isdn/icn/icn.c 2011-03-14 21:20:32.000000000 -0400 26166--- linux-2.6.38.3/drivers/isdn/icn/icn.c 2011-03-14 21:20:32.000000000 -0400
25216+++ linux-2.6.38.2/drivers/isdn/icn/icn.c 2011-03-21 18:31:35.000000000 -0400 26167+++ linux-2.6.38.3/drivers/isdn/icn/icn.c 2011-04-17 15:57:32.000000000 -0400
25217@@ -1045,7 +1045,7 @@ icn_writecmd(const u_char * buf, int len 26168@@ -1045,7 +1045,7 @@ icn_writecmd(const u_char * buf, int len
25218 if (count > len) 26169 if (count > len)
25219 count = len; 26170 count = len;
@@ -25223,86 +26174,9 @@ diff -urNp linux-2.6.38.2/drivers/isdn/icn/icn.c linux-2.6.38.2/drivers/isdn/icn
25223 return -EFAULT; 26174 return -EFAULT;
25224 } else 26175 } else
25225 memcpy(msg, buf, count); 26176 memcpy(msg, buf, count);
25226diff -urNp linux-2.6.38.2/drivers/leds/leds-lp5521.c linux-2.6.38.2/drivers/leds/leds-lp5521.c 26177diff -urNp linux-2.6.38.3/drivers/lguest/core.c linux-2.6.38.3/drivers/lguest/core.c
25227--- linux-2.6.38.2/drivers/leds/leds-lp5521.c 2011-03-14 21:20:32.000000000 -0400 26178--- linux-2.6.38.3/drivers/lguest/core.c 2011-03-14 21:20:32.000000000 -0400
25228+++ linux-2.6.38.2/drivers/leds/leds-lp5521.c 2011-03-21 18:31:35.000000000 -0400 26179+++ linux-2.6.38.3/drivers/lguest/core.c 2011-04-17 15:57:32.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
25306@@ -92,9 +92,17 @@ static __init int map_switcher(void) 26180@@ -92,9 +92,17 @@ static __init int map_switcher(void)
25307 * it's worked so far. The end address needs +1 because __get_vm_area 26181 * it's worked so far. The end address needs +1 because __get_vm_area
25308 * allocates an extra guard page, so we need space for that. 26182 * allocates an extra guard page, so we need space for that.
@@ -25330,9 +26204,9 @@ diff -urNp linux-2.6.38.2/drivers/lguest/core.c linux-2.6.38.2/drivers/lguest/co
25330 end_switcher_text - start_switcher_text); 26204 end_switcher_text - start_switcher_text);
25331 26205
25332 printk(KERN_INFO "lguest: mapped switcher at %p\n", 26206 printk(KERN_INFO "lguest: mapped switcher at %p\n",
25333diff -urNp linux-2.6.38.2/drivers/lguest/x86/core.c linux-2.6.38.2/drivers/lguest/x86/core.c 26207diff -urNp linux-2.6.38.3/drivers/lguest/x86/core.c linux-2.6.38.3/drivers/lguest/x86/core.c
25334--- linux-2.6.38.2/drivers/lguest/x86/core.c 2011-03-14 21:20:32.000000000 -0400 26208--- linux-2.6.38.3/drivers/lguest/x86/core.c 2011-03-14 21:20:32.000000000 -0400
25335+++ linux-2.6.38.2/drivers/lguest/x86/core.c 2011-03-21 18:31:35.000000000 -0400 26209+++ linux-2.6.38.3/drivers/lguest/x86/core.c 2011-04-17 15:57:32.000000000 -0400
25336@@ -59,7 +59,7 @@ static struct { 26210@@ -59,7 +59,7 @@ static struct {
25337 /* Offset from where switcher.S was compiled to where we've copied it */ 26211 /* Offset from where switcher.S was compiled to where we've copied it */
25338 static unsigned long switcher_offset(void) 26212 static unsigned long switcher_offset(void)
@@ -25374,9 +26248,9 @@ diff -urNp linux-2.6.38.2/drivers/lguest/x86/core.c linux-2.6.38.2/drivers/lgues
25374 lguest_entry.segment = LGUEST_CS; 26248 lguest_entry.segment = LGUEST_CS;
25375 26249
25376 /* 26250 /*
25377diff -urNp linux-2.6.38.2/drivers/lguest/x86/switcher_32.S linux-2.6.38.2/drivers/lguest/x86/switcher_32.S 26251diff -urNp linux-2.6.38.3/drivers/lguest/x86/switcher_32.S linux-2.6.38.3/drivers/lguest/x86/switcher_32.S
25378--- linux-2.6.38.2/drivers/lguest/x86/switcher_32.S 2011-03-14 21:20:32.000000000 -0400 26252--- linux-2.6.38.3/drivers/lguest/x86/switcher_32.S 2011-03-14 21:20:32.000000000 -0400
25379+++ linux-2.6.38.2/drivers/lguest/x86/switcher_32.S 2011-03-21 18:31:35.000000000 -0400 26253+++ linux-2.6.38.3/drivers/lguest/x86/switcher_32.S 2011-04-17 15:57:32.000000000 -0400
25380@@ -87,6 +87,7 @@ 26254@@ -87,6 +87,7 @@
25381 #include <asm/page.h> 26255 #include <asm/page.h>
25382 #include <asm/segment.h> 26256 #include <asm/segment.h>
@@ -25435,9 +26309,9 @@ diff -urNp linux-2.6.38.2/drivers/lguest/x86/switcher_32.S linux-2.6.38.2/driver
25435 26309
25436 // Every interrupt can come to us here 26310 // Every interrupt can come to us here
25437 // But we must truly tell each apart. 26311 // But we must truly tell each apart.
25438diff -urNp linux-2.6.38.2/drivers/md/bitmap.c linux-2.6.38.2/drivers/md/bitmap.c 26312diff -urNp linux-2.6.38.3/drivers/md/bitmap.c linux-2.6.38.3/drivers/md/bitmap.c
25439--- linux-2.6.38.2/drivers/md/bitmap.c 2011-03-14 21:20:32.000000000 -0400 26313--- linux-2.6.38.3/drivers/md/bitmap.c 2011-03-14 21:20:32.000000000 -0400
25440+++ linux-2.6.38.2/drivers/md/bitmap.c 2011-03-21 18:31:35.000000000 -0400 26314+++ linux-2.6.38.3/drivers/md/bitmap.c 2011-04-17 15:57:32.000000000 -0400
25441@@ -55,7 +55,7 @@ 26315@@ -55,7 +55,7 @@
25442 # if DEBUG > 0 26316 # if DEBUG > 0
25443 # define PRINTK(x...) printk(KERN_DEBUG x) 26317 # define PRINTK(x...) printk(KERN_DEBUG x)
@@ -25447,9 +26321,9 @@ diff -urNp linux-2.6.38.2/drivers/md/bitmap.c linux-2.6.38.2/drivers/md/bitmap.c
25447 # endif 26321 # endif
25448 #endif 26322 #endif
25449 26323
25450diff -urNp linux-2.6.38.2/drivers/md/dm-ioctl.c linux-2.6.38.2/drivers/md/dm-ioctl.c 26324diff -urNp linux-2.6.38.3/drivers/md/dm-ioctl.c linux-2.6.38.3/drivers/md/dm-ioctl.c
25451--- linux-2.6.38.2/drivers/md/dm-ioctl.c 2011-03-14 21:20:32.000000000 -0400 26325--- linux-2.6.38.3/drivers/md/dm-ioctl.c 2011-03-14 21:20:32.000000000 -0400
25452+++ linux-2.6.38.2/drivers/md/dm-ioctl.c 2011-03-21 18:31:35.000000000 -0400 26326+++ linux-2.6.38.3/drivers/md/dm-ioctl.c 2011-04-17 15:57:32.000000000 -0400
25453@@ -1541,7 +1541,7 @@ static int validate_params(uint cmd, str 26327@@ -1541,7 +1541,7 @@ static int validate_params(uint cmd, str
25454 cmd == DM_LIST_VERSIONS_CMD) 26328 cmd == DM_LIST_VERSIONS_CMD)
25455 return 0; 26329 return 0;
@@ -25459,9 +26333,9 @@ diff -urNp linux-2.6.38.2/drivers/md/dm-ioctl.c linux-2.6.38.2/drivers/md/dm-ioc
25459 if (!*param->name) { 26333 if (!*param->name) {
25460 DMWARN("name not supplied when creating device"); 26334 DMWARN("name not supplied when creating device");
25461 return -EINVAL; 26335 return -EINVAL;
25462diff -urNp linux-2.6.38.2/drivers/md/dm-table.c linux-2.6.38.2/drivers/md/dm-table.c 26336diff -urNp linux-2.6.38.3/drivers/md/dm-table.c linux-2.6.38.3/drivers/md/dm-table.c
25463--- linux-2.6.38.2/drivers/md/dm-table.c 2011-03-14 21:20:32.000000000 -0400 26337--- linux-2.6.38.3/drivers/md/dm-table.c 2011-03-14 21:20:32.000000000 -0400
25464+++ linux-2.6.38.2/drivers/md/dm-table.c 2011-03-21 18:31:35.000000000 -0400 26338+++ linux-2.6.38.3/drivers/md/dm-table.c 2011-04-17 15:57:32.000000000 -0400
25465@@ -372,7 +372,7 @@ static int device_area_is_invalid(struct 26339@@ -372,7 +372,7 @@ static int device_area_is_invalid(struct
25466 if (!dev_size) 26340 if (!dev_size)
25467 return 0; 26341 return 0;
@@ -25471,9 +26345,9 @@ diff -urNp linux-2.6.38.2/drivers/md/dm-table.c linux-2.6.38.2/drivers/md/dm-tab
25471 DMWARN("%s: %s too small for target: " 26345 DMWARN("%s: %s too small for target: "
25472 "start=%llu, len=%llu, dev_size=%llu", 26346 "start=%llu, len=%llu, dev_size=%llu",
25473 dm_device_name(ti->table->md), bdevname(bdev, b), 26347 dm_device_name(ti->table->md), bdevname(bdev, b),
25474diff -urNp linux-2.6.38.2/drivers/md/md.c linux-2.6.38.2/drivers/md/md.c 26348diff -urNp linux-2.6.38.3/drivers/md/md.c linux-2.6.38.3/drivers/md/md.c
25475--- linux-2.6.38.2/drivers/md/md.c 2011-03-14 21:20:32.000000000 -0400 26349--- linux-2.6.38.3/drivers/md/md.c 2011-03-14 21:20:32.000000000 -0400
25476+++ linux-2.6.38.2/drivers/md/md.c 2011-03-21 18:31:35.000000000 -0400 26350+++ linux-2.6.38.3/drivers/md/md.c 2011-04-17 15:57:32.000000000 -0400
25477@@ -1889,7 +1889,7 @@ static int bind_rdev_to_array(mdk_rdev_t 26351@@ -1889,7 +1889,7 @@ static int bind_rdev_to_array(mdk_rdev_t
25478 26352
25479 ko = &part_to_dev(rdev->bdev->bd_part)->kobj; 26353 ko = &part_to_dev(rdev->bdev->bd_part)->kobj;
@@ -25528,9 +26402,9 @@ diff -urNp linux-2.6.38.2/drivers/md/md.c linux-2.6.38.2/drivers/md/md.c
25528 spares++; 26402 spares++;
25529 md_new_event(mddev); 26403 md_new_event(mddev);
25530 set_bit(MD_CHANGE_DEVS, &mddev->flags); 26404 set_bit(MD_CHANGE_DEVS, &mddev->flags);
25531diff -urNp linux-2.6.38.2/drivers/md/md.h linux-2.6.38.2/drivers/md/md.h 26405diff -urNp linux-2.6.38.3/drivers/md/md.h linux-2.6.38.3/drivers/md/md.h
25532--- linux-2.6.38.2/drivers/md/md.h 2011-03-14 21:20:32.000000000 -0400 26406--- linux-2.6.38.3/drivers/md/md.h 2011-03-14 21:20:32.000000000 -0400
25533+++ linux-2.6.38.2/drivers/md/md.h 2011-03-21 18:31:35.000000000 -0400 26407+++ linux-2.6.38.3/drivers/md/md.h 2011-04-17 15:57:32.000000000 -0400
25534@@ -360,7 +360,7 @@ static inline void rdev_dec_pending(mdk_ 26408@@ -360,7 +360,7 @@ static inline void rdev_dec_pending(mdk_
25535 26409
25536 static inline void md_sync_acct(struct block_device *bdev, unsigned long nr_sectors) 26410 static inline void md_sync_acct(struct block_device *bdev, unsigned long nr_sectors)
@@ -25540,9 +26414,9 @@ diff -urNp linux-2.6.38.2/drivers/md/md.h linux-2.6.38.2/drivers/md/md.h
25540 } 26414 }
25541 26415
25542 struct mdk_personality 26416 struct mdk_personality
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 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
25544--- linux-2.6.38.2/drivers/media/dvb/dvb-core/dvbdev.c 2011-03-14 21:20:32.000000000 -0400 26418--- linux-2.6.38.3/drivers/media/dvb/dvb-core/dvbdev.c 2011-03-14 21:20:32.000000000 -0400
25545+++ linux-2.6.38.2/drivers/media/dvb/dvb-core/dvbdev.c 2011-03-21 18:31:35.000000000 -0400 26419+++ linux-2.6.38.3/drivers/media/dvb/dvb-core/dvbdev.c 2011-04-17 15:57:32.000000000 -0400
25546@@ -192,7 +192,7 @@ int dvb_register_device(struct dvb_adapt 26420@@ -192,7 +192,7 @@ int dvb_register_device(struct dvb_adapt
25547 const struct dvb_device *template, void *priv, int type) 26421 const struct dvb_device *template, void *priv, int type)
25548 { 26422 {
@@ -25552,9 +26426,9 @@ diff -urNp linux-2.6.38.2/drivers/media/dvb/dvb-core/dvbdev.c linux-2.6.38.2/dri
25552 struct device *clsdev; 26426 struct device *clsdev;
25553 int minor; 26427 int minor;
25554 int id; 26428 int id;
25555diff -urNp linux-2.6.38.2/drivers/media/radio/radio-cadet.c linux-2.6.38.2/drivers/media/radio/radio-cadet.c 26429diff -urNp linux-2.6.38.3/drivers/media/radio/radio-cadet.c linux-2.6.38.3/drivers/media/radio/radio-cadet.c
25556--- linux-2.6.38.2/drivers/media/radio/radio-cadet.c 2011-03-14 21:20:32.000000000 -0400 26430--- linux-2.6.38.3/drivers/media/radio/radio-cadet.c 2011-03-14 21:20:32.000000000 -0400
25557+++ linux-2.6.38.2/drivers/media/radio/radio-cadet.c 2011-03-21 18:31:35.000000000 -0400 26431+++ linux-2.6.38.3/drivers/media/radio/radio-cadet.c 2011-04-17 15:57:32.000000000 -0400
25558@@ -349,7 +349,7 @@ static ssize_t cadet_read(struct file *f 26432@@ -349,7 +349,7 @@ static ssize_t cadet_read(struct file *f
25559 readbuf[i++] = dev->rdsbuf[dev->rdsout++]; 26433 readbuf[i++] = dev->rdsbuf[dev->rdsout++];
25560 mutex_unlock(&dev->lock); 26434 mutex_unlock(&dev->lock);
@@ -25564,9 +26438,9 @@ diff -urNp linux-2.6.38.2/drivers/media/radio/radio-cadet.c linux-2.6.38.2/drive
25564 return -EFAULT; 26438 return -EFAULT;
25565 return i; 26439 return i;
25566 } 26440 }
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 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
25568--- linux-2.6.38.2/drivers/media/rc/ir-lirc-codec.c 2011-03-14 21:20:32.000000000 -0400 26442--- linux-2.6.38.3/drivers/media/rc/ir-lirc-codec.c 2011-03-14 21:20:32.000000000 -0400
25569+++ linux-2.6.38.2/drivers/media/rc/ir-lirc-codec.c 2011-03-21 18:31:35.000000000 -0400 26443+++ linux-2.6.38.3/drivers/media/rc/ir-lirc-codec.c 2011-04-17 15:57:32.000000000 -0400
25570@@ -277,7 +277,7 @@ static void ir_lirc_close(void *data) 26444@@ -277,7 +277,7 @@ static void ir_lirc_close(void *data)
25571 return; 26445 return;
25572 } 26446 }
@@ -25576,9 +26450,9 @@ diff -urNp linux-2.6.38.2/drivers/media/rc/ir-lirc-codec.c linux-2.6.38.2/driver
25576 .owner = THIS_MODULE, 26450 .owner = THIS_MODULE,
25577 .write = ir_lirc_transmit_ir, 26451 .write = ir_lirc_transmit_ir,
25578 .unlocked_ioctl = ir_lirc_ioctl, 26452 .unlocked_ioctl = ir_lirc_ioctl,
25579diff -urNp linux-2.6.38.2/drivers/media/rc/lirc_dev.c linux-2.6.38.2/drivers/media/rc/lirc_dev.c 26453diff -urNp linux-2.6.38.3/drivers/media/rc/lirc_dev.c linux-2.6.38.3/drivers/media/rc/lirc_dev.c
25580--- linux-2.6.38.2/drivers/media/rc/lirc_dev.c 2011-03-14 21:20:32.000000000 -0400 26454--- linux-2.6.38.3/drivers/media/rc/lirc_dev.c 2011-03-14 21:20:32.000000000 -0400
25581+++ linux-2.6.38.2/drivers/media/rc/lirc_dev.c 2011-03-21 18:31:35.000000000 -0400 26455+++ linux-2.6.38.3/drivers/media/rc/lirc_dev.c 2011-04-17 15:57:32.000000000 -0400
25582@@ -151,7 +151,7 @@ static int lirc_thread(void *irctl) 26456@@ -151,7 +151,7 @@ static int lirc_thread(void *irctl)
25583 } 26457 }
25584 26458
@@ -25588,9 +26462,9 @@ diff -urNp linux-2.6.38.2/drivers/media/rc/lirc_dev.c linux-2.6.38.2/drivers/med
25588 .owner = THIS_MODULE, 26462 .owner = THIS_MODULE,
25589 .read = lirc_dev_fop_read, 26463 .read = lirc_dev_fop_read,
25590 .write = lirc_dev_fop_write, 26464 .write = lirc_dev_fop_write,
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 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
25592--- linux-2.6.38.2/drivers/media/video/sn9c102/sn9c102_core.c 2011-03-14 21:20:32.000000000 -0400 26466--- linux-2.6.38.3/drivers/media/video/sn9c102/sn9c102_core.c 2011-03-14 21:20:32.000000000 -0400
25593+++ linux-2.6.38.2/drivers/media/video/sn9c102/sn9c102_core.c 2011-03-21 18:31:35.000000000 -0400 26467+++ linux-2.6.38.3/drivers/media/video/sn9c102/sn9c102_core.c 2011-04-17 15:57:32.000000000 -0400
25594@@ -1430,9 +1430,9 @@ static DEVICE_ATTR(i2c_reg, S_IRUGO | S_ 26468@@ -1430,9 +1430,9 @@ static DEVICE_ATTR(i2c_reg, S_IRUGO | S_
25595 sn9c102_show_i2c_reg, sn9c102_store_i2c_reg); 26469 sn9c102_show_i2c_reg, sn9c102_store_i2c_reg);
25596 static DEVICE_ATTR(i2c_val, S_IRUGO | S_IWUSR, 26470 static DEVICE_ATTR(i2c_val, S_IRUGO | S_IWUSR,
@@ -25604,9 +26478,9 @@ diff -urNp linux-2.6.38.2/drivers/media/video/sn9c102/sn9c102_core.c linux-2.6.3
25604 static DEVICE_ATTR(frame_header, S_IRUGO, sn9c102_show_frame_header, NULL); 26478 static DEVICE_ATTR(frame_header, S_IRUGO, sn9c102_show_frame_header, NULL);
25605 26479
25606 26480
25607diff -urNp linux-2.6.38.2/drivers/message/fusion/mptbase.c linux-2.6.38.2/drivers/message/fusion/mptbase.c 26481diff -urNp linux-2.6.38.3/drivers/message/fusion/mptbase.c linux-2.6.38.3/drivers/message/fusion/mptbase.c
25608--- linux-2.6.38.2/drivers/message/fusion/mptbase.c 2011-03-14 21:20:32.000000000 -0400 26482--- linux-2.6.38.3/drivers/message/fusion/mptbase.c 2011-03-14 21:20:32.000000000 -0400
25609+++ linux-2.6.38.2/drivers/message/fusion/mptbase.c 2011-03-21 18:31:35.000000000 -0400 26483+++ linux-2.6.38.3/drivers/message/fusion/mptbase.c 2011-04-17 15:57:32.000000000 -0400
25610@@ -6683,8 +6683,13 @@ static int mpt_iocinfo_proc_show(struct 26484@@ -6683,8 +6683,13 @@ static int mpt_iocinfo_proc_show(struct
25611 seq_printf(m, " MaxChainDepth = 0x%02x frames\n", ioc->facts.MaxChainDepth); 26485 seq_printf(m, " MaxChainDepth = 0x%02x frames\n", ioc->facts.MaxChainDepth);
25612 seq_printf(m, " MinBlockSize = 0x%02x bytes\n", 4*ioc->facts.BlockSize); 26486 seq_printf(m, " MinBlockSize = 0x%02x bytes\n", 4*ioc->facts.BlockSize);
@@ -25621,9 +26495,9 @@ diff -urNp linux-2.6.38.2/drivers/message/fusion/mptbase.c linux-2.6.38.2/driver
25621 /* 26495 /*
25622 * Rounding UP to nearest 4-kB boundary here... 26496 * Rounding UP to nearest 4-kB boundary here...
25623 */ 26497 */
25624diff -urNp linux-2.6.38.2/drivers/message/fusion/mptdebug.h linux-2.6.38.2/drivers/message/fusion/mptdebug.h 26498diff -urNp linux-2.6.38.3/drivers/message/fusion/mptdebug.h linux-2.6.38.3/drivers/message/fusion/mptdebug.h
25625--- linux-2.6.38.2/drivers/message/fusion/mptdebug.h 2011-03-14 21:20:32.000000000 -0400 26499--- linux-2.6.38.3/drivers/message/fusion/mptdebug.h 2011-03-14 21:20:32.000000000 -0400
25626+++ linux-2.6.38.2/drivers/message/fusion/mptdebug.h 2011-03-21 18:31:35.000000000 -0400 26500+++ linux-2.6.38.3/drivers/message/fusion/mptdebug.h 2011-04-17 15:57:32.000000000 -0400
25627@@ -71,7 +71,7 @@ 26501@@ -71,7 +71,7 @@
25628 CMD; \ 26502 CMD; \
25629 } 26503 }
@@ -25633,9 +26507,9 @@ diff -urNp linux-2.6.38.2/drivers/message/fusion/mptdebug.h linux-2.6.38.2/drive
25633 #endif 26507 #endif
25634 26508
25635 26509
25636diff -urNp linux-2.6.38.2/drivers/message/fusion/mptsas.c linux-2.6.38.2/drivers/message/fusion/mptsas.c 26510diff -urNp linux-2.6.38.3/drivers/message/fusion/mptsas.c linux-2.6.38.3/drivers/message/fusion/mptsas.c
25637--- linux-2.6.38.2/drivers/message/fusion/mptsas.c 2011-03-14 21:20:32.000000000 -0400 26511--- linux-2.6.38.3/drivers/message/fusion/mptsas.c 2011-03-14 21:20:32.000000000 -0400
25638+++ linux-2.6.38.2/drivers/message/fusion/mptsas.c 2011-03-21 18:31:35.000000000 -0400 26512+++ linux-2.6.38.3/drivers/message/fusion/mptsas.c 2011-04-17 15:57:32.000000000 -0400
25639@@ -439,6 +439,23 @@ mptsas_is_end_device(struct mptsas_devin 26513@@ -439,6 +439,23 @@ mptsas_is_end_device(struct mptsas_devin
25640 return 0; 26514 return 0;
25641 } 26515 }
@@ -25684,9 +26558,9 @@ diff -urNp linux-2.6.38.2/drivers/message/fusion/mptsas.c linux-2.6.38.2/drivers
25684 static inline struct sas_port * 26558 static inline struct sas_port *
25685 mptsas_get_port(struct mptsas_phyinfo *phy_info) 26559 mptsas_get_port(struct mptsas_phyinfo *phy_info)
25686 { 26560 {
25687diff -urNp linux-2.6.38.2/drivers/message/fusion/mptscsih.c linux-2.6.38.2/drivers/message/fusion/mptscsih.c 26561diff -urNp linux-2.6.38.3/drivers/message/fusion/mptscsih.c linux-2.6.38.3/drivers/message/fusion/mptscsih.c
25688--- linux-2.6.38.2/drivers/message/fusion/mptscsih.c 2011-03-14 21:20:32.000000000 -0400 26562--- linux-2.6.38.3/drivers/message/fusion/mptscsih.c 2011-03-14 21:20:32.000000000 -0400
25689+++ linux-2.6.38.2/drivers/message/fusion/mptscsih.c 2011-03-21 18:31:35.000000000 -0400 26563+++ linux-2.6.38.3/drivers/message/fusion/mptscsih.c 2011-04-17 15:57:32.000000000 -0400
25690@@ -1268,15 +1268,16 @@ mptscsih_info(struct Scsi_Host *SChost) 26564@@ -1268,15 +1268,16 @@ mptscsih_info(struct Scsi_Host *SChost)
25691 26565
25692 h = shost_priv(SChost); 26566 h = shost_priv(SChost);
@@ -25712,9 +26586,9 @@ diff -urNp linux-2.6.38.2/drivers/message/fusion/mptscsih.c linux-2.6.38.2/drive
25712 26586
25713 return h->info_kbuf; 26587 return h->info_kbuf;
25714 } 26588 }
25715diff -urNp linux-2.6.38.2/drivers/message/i2o/i2o_proc.c linux-2.6.38.2/drivers/message/i2o/i2o_proc.c 26589diff -urNp linux-2.6.38.3/drivers/message/i2o/i2o_proc.c linux-2.6.38.3/drivers/message/i2o/i2o_proc.c
25716--- linux-2.6.38.2/drivers/message/i2o/i2o_proc.c 2011-03-14 21:20:32.000000000 -0400 26590--- linux-2.6.38.3/drivers/message/i2o/i2o_proc.c 2011-03-14 21:20:32.000000000 -0400
25717+++ linux-2.6.38.2/drivers/message/i2o/i2o_proc.c 2011-03-21 18:31:35.000000000 -0400 26591+++ linux-2.6.38.3/drivers/message/i2o/i2o_proc.c 2011-04-17 15:57:32.000000000 -0400
25718@@ -255,13 +255,6 @@ static char *scsi_devices[] = { 26592@@ -255,13 +255,6 @@ static char *scsi_devices[] = {
25719 "Array Controller Device" 26593 "Array Controller Device"
25720 }; 26594 };
@@ -25801,79 +26675,9 @@ diff -urNp linux-2.6.38.2/drivers/message/i2o/i2o_proc.c linux-2.6.38.2/drivers/
25801 26675
25802 return 0; 26676 return 0;
25803 } 26677 }
25804diff -urNp linux-2.6.38.2/drivers/mfd/ab3100-core.c linux-2.6.38.2/drivers/mfd/ab3100-core.c 26678diff -urNp linux-2.6.38.3/drivers/mfd/janz-cmodio.c linux-2.6.38.3/drivers/mfd/janz-cmodio.c
25805--- linux-2.6.38.2/drivers/mfd/ab3100-core.c 2011-03-14 21:20:32.000000000 -0400 26679--- linux-2.6.38.3/drivers/mfd/janz-cmodio.c 2011-03-14 21:20:32.000000000 -0400
25806+++ linux-2.6.38.2/drivers/mfd/ab3100-core.c 2011-03-21 18:31:35.000000000 -0400 26680+++ linux-2.6.38.3/drivers/mfd/janz-cmodio.c 2011-04-17 15:57:32.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
25877@@ -13,6 +13,7 @@ 26681@@ -13,6 +13,7 @@
25878 26682
25879 #include <linux/kernel.h> 26683 #include <linux/kernel.h>
@@ -25882,27 +26686,9 @@ diff -urNp linux-2.6.38.2/drivers/mfd/janz-cmodio.c linux-2.6.38.2/drivers/mfd/j
25882 #include <linux/init.h> 26686 #include <linux/init.h>
25883 #include <linux/pci.h> 26687 #include <linux/pci.h>
25884 #include <linux/interrupt.h> 26688 #include <linux/interrupt.h>
25885diff -urNp linux-2.6.38.2/drivers/misc/ep93xx_pwm.c linux-2.6.38.2/drivers/misc/ep93xx_pwm.c 26689diff -urNp linux-2.6.38.3/drivers/misc/kgdbts.c linux-2.6.38.3/drivers/misc/kgdbts.c
25886--- linux-2.6.38.2/drivers/misc/ep93xx_pwm.c 2011-03-14 21:20:32.000000000 -0400 26690--- linux-2.6.38.3/drivers/misc/kgdbts.c 2011-03-14 21:20:32.000000000 -0400
25887+++ linux-2.6.38.2/drivers/misc/ep93xx_pwm.c 2011-03-21 18:31:35.000000000 -0400 26691+++ linux-2.6.38.3/drivers/misc/kgdbts.c 2011-04-17 15:57:32.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
25906@@ -118,7 +118,7 @@ 26692@@ -118,7 +118,7 @@
25907 } while (0) 26693 } while (0)
25908 #define MAX_CONFIG_LEN 40 26694 #define MAX_CONFIG_LEN 40
@@ -25921,9 +26707,9 @@ diff -urNp linux-2.6.38.2/drivers/misc/kgdbts.c linux-2.6.38.2/drivers/misc/kgdb
25921 .name = "kgdbts", 26707 .name = "kgdbts",
25922 .read_char = kgdbts_get_char, 26708 .read_char = kgdbts_get_char,
25923 .write_char = kgdbts_put_char, 26709 .write_char = kgdbts_put_char,
25924diff -urNp linux-2.6.38.2/drivers/misc/sgi-gru/gruhandles.c linux-2.6.38.2/drivers/misc/sgi-gru/gruhandles.c 26710diff -urNp linux-2.6.38.3/drivers/misc/sgi-gru/gruhandles.c linux-2.6.38.3/drivers/misc/sgi-gru/gruhandles.c
25925--- linux-2.6.38.2/drivers/misc/sgi-gru/gruhandles.c 2011-03-14 21:20:32.000000000 -0400 26711--- linux-2.6.38.3/drivers/misc/sgi-gru/gruhandles.c 2011-03-14 21:20:32.000000000 -0400
25926+++ linux-2.6.38.2/drivers/misc/sgi-gru/gruhandles.c 2011-03-21 18:31:35.000000000 -0400 26712+++ linux-2.6.38.3/drivers/misc/sgi-gru/gruhandles.c 2011-04-17 15:57:32.000000000 -0400
25927@@ -44,8 +44,8 @@ static void update_mcs_stats(enum mcs_op 26713@@ -44,8 +44,8 @@ static void update_mcs_stats(enum mcs_op
25928 unsigned long nsec; 26714 unsigned long nsec;
25929 26715
@@ -25935,9 +26721,9 @@ diff -urNp linux-2.6.38.2/drivers/misc/sgi-gru/gruhandles.c linux-2.6.38.2/drive
25935 if (mcs_op_statistics[op].max < nsec) 26721 if (mcs_op_statistics[op].max < nsec)
25936 mcs_op_statistics[op].max = nsec; 26722 mcs_op_statistics[op].max = nsec;
25937 } 26723 }
25938diff -urNp linux-2.6.38.2/drivers/misc/sgi-gru/gruprocfs.c linux-2.6.38.2/drivers/misc/sgi-gru/gruprocfs.c 26724diff -urNp linux-2.6.38.3/drivers/misc/sgi-gru/gruprocfs.c linux-2.6.38.3/drivers/misc/sgi-gru/gruprocfs.c
25939--- linux-2.6.38.2/drivers/misc/sgi-gru/gruprocfs.c 2011-03-14 21:20:32.000000000 -0400 26725--- linux-2.6.38.3/drivers/misc/sgi-gru/gruprocfs.c 2011-03-14 21:20:32.000000000 -0400
25940+++ linux-2.6.38.2/drivers/misc/sgi-gru/gruprocfs.c 2011-03-21 18:31:35.000000000 -0400 26726+++ linux-2.6.38.3/drivers/misc/sgi-gru/gruprocfs.c 2011-04-17 15:57:32.000000000 -0400
25941@@ -32,9 +32,9 @@ 26727@@ -32,9 +32,9 @@
25942 26728
25943 #define printstat(s, f) printstat_val(s, &gru_stats.f, #f) 26729 #define printstat(s, f) printstat_val(s, &gru_stats.f, #f)
@@ -25961,9 +26747,9 @@ diff -urNp linux-2.6.38.2/drivers/misc/sgi-gru/gruprocfs.c linux-2.6.38.2/driver
25961 max = mcs_op_statistics[op].max; 26747 max = mcs_op_statistics[op].max;
25962 seq_printf(s, "%-20s%12ld%12ld%12ld\n", id[op], count, 26748 seq_printf(s, "%-20s%12ld%12ld%12ld\n", id[op], count,
25963 count ? total / count : 0, max); 26749 count ? total / count : 0, max);
25964diff -urNp linux-2.6.38.2/drivers/misc/sgi-gru/grutables.h linux-2.6.38.2/drivers/misc/sgi-gru/grutables.h 26750diff -urNp linux-2.6.38.3/drivers/misc/sgi-gru/grutables.h linux-2.6.38.3/drivers/misc/sgi-gru/grutables.h
25965--- linux-2.6.38.2/drivers/misc/sgi-gru/grutables.h 2011-03-14 21:20:32.000000000 -0400 26751--- linux-2.6.38.3/drivers/misc/sgi-gru/grutables.h 2011-03-14 21:20:32.000000000 -0400
25966+++ linux-2.6.38.2/drivers/misc/sgi-gru/grutables.h 2011-03-21 18:31:35.000000000 -0400 26752+++ linux-2.6.38.3/drivers/misc/sgi-gru/grutables.h 2011-04-17 15:57:32.000000000 -0400
25967@@ -167,82 +167,82 @@ extern unsigned int gru_max_gids; 26753@@ -167,82 +167,82 @@ extern unsigned int gru_max_gids;
25968 * GRU statistics. 26754 * GRU statistics.
25969 */ 26755 */
@@ -26143,9 +26929,9 @@ diff -urNp linux-2.6.38.2/drivers/misc/sgi-gru/grutables.h linux-2.6.38.2/driver
26143 } while (0) 26929 } while (0)
26144 26930
26145 #ifdef CONFIG_SGI_GRU_DEBUG 26931 #ifdef CONFIG_SGI_GRU_DEBUG
26146diff -urNp linux-2.6.38.2/drivers/mtd/devices/doc2000.c linux-2.6.38.2/drivers/mtd/devices/doc2000.c 26932diff -urNp linux-2.6.38.3/drivers/mtd/devices/doc2000.c linux-2.6.38.3/drivers/mtd/devices/doc2000.c
26147--- linux-2.6.38.2/drivers/mtd/devices/doc2000.c 2011-03-14 21:20:32.000000000 -0400 26933--- linux-2.6.38.3/drivers/mtd/devices/doc2000.c 2011-03-14 21:20:32.000000000 -0400
26148+++ linux-2.6.38.2/drivers/mtd/devices/doc2000.c 2011-03-21 18:31:35.000000000 -0400 26934+++ linux-2.6.38.3/drivers/mtd/devices/doc2000.c 2011-04-17 15:57:32.000000000 -0400
26149@@ -776,7 +776,7 @@ static int doc_write(struct mtd_info *mt 26935@@ -776,7 +776,7 @@ static int doc_write(struct mtd_info *mt
26150 26936
26151 /* The ECC will not be calculated correctly if less than 512 is written */ 26937 /* The ECC will not be calculated correctly if less than 512 is written */
@@ -26155,9 +26941,9 @@ diff -urNp linux-2.6.38.2/drivers/mtd/devices/doc2000.c linux-2.6.38.2/drivers/m
26155 printk(KERN_WARNING 26941 printk(KERN_WARNING
26156 "ECC needs a full sector write (adr: %lx size %lx)\n", 26942 "ECC needs a full sector write (adr: %lx size %lx)\n",
26157 (long) to, (long) len); 26943 (long) to, (long) len);
26158diff -urNp linux-2.6.38.2/drivers/mtd/devices/doc2001.c linux-2.6.38.2/drivers/mtd/devices/doc2001.c 26944diff -urNp linux-2.6.38.3/drivers/mtd/devices/doc2001.c linux-2.6.38.3/drivers/mtd/devices/doc2001.c
26159--- linux-2.6.38.2/drivers/mtd/devices/doc2001.c 2011-03-14 21:20:32.000000000 -0400 26945--- linux-2.6.38.3/drivers/mtd/devices/doc2001.c 2011-03-14 21:20:32.000000000 -0400
26160+++ linux-2.6.38.2/drivers/mtd/devices/doc2001.c 2011-03-21 18:31:35.000000000 -0400 26946+++ linux-2.6.38.3/drivers/mtd/devices/doc2001.c 2011-04-17 15:57:32.000000000 -0400
26161@@ -393,7 +393,7 @@ static int doc_read (struct mtd_info *mt 26947@@ -393,7 +393,7 @@ static int doc_read (struct mtd_info *mt
26162 struct Nand *mychip = &this->chips[from >> (this->chipshift)]; 26948 struct Nand *mychip = &this->chips[from >> (this->chipshift)];
26163 26949
@@ -26167,9 +26953,9 @@ diff -urNp linux-2.6.38.2/drivers/mtd/devices/doc2001.c linux-2.6.38.2/drivers/m
26167 return -EINVAL; 26953 return -EINVAL;
26168 26954
26169 /* Don't allow a single read to cross a 512-byte block boundary */ 26955 /* Don't allow a single read to cross a 512-byte block boundary */
26170diff -urNp linux-2.6.38.2/drivers/mtd/nand/denali.c linux-2.6.38.2/drivers/mtd/nand/denali.c 26956diff -urNp linux-2.6.38.3/drivers/mtd/nand/denali.c linux-2.6.38.3/drivers/mtd/nand/denali.c
26171--- linux-2.6.38.2/drivers/mtd/nand/denali.c 2011-03-14 21:20:32.000000000 -0400 26957--- linux-2.6.38.3/drivers/mtd/nand/denali.c 2011-03-14 21:20:32.000000000 -0400
26172+++ linux-2.6.38.2/drivers/mtd/nand/denali.c 2011-03-21 18:31:35.000000000 -0400 26958+++ linux-2.6.38.3/drivers/mtd/nand/denali.c 2011-04-17 15:57:32.000000000 -0400
26173@@ -25,6 +25,7 @@ 26959@@ -25,6 +25,7 @@
26174 #include <linux/pci.h> 26960 #include <linux/pci.h>
26175 #include <linux/mtd/mtd.h> 26961 #include <linux/mtd/mtd.h>
@@ -26178,9 +26964,9 @@ diff -urNp linux-2.6.38.2/drivers/mtd/nand/denali.c linux-2.6.38.2/drivers/mtd/n
26178 26964
26179 #include "denali.h" 26965 #include "denali.h"
26180 26966
26181diff -urNp linux-2.6.38.2/drivers/mtd/ubi/build.c linux-2.6.38.2/drivers/mtd/ubi/build.c 26967diff -urNp linux-2.6.38.3/drivers/mtd/ubi/build.c linux-2.6.38.3/drivers/mtd/ubi/build.c
26182--- linux-2.6.38.2/drivers/mtd/ubi/build.c 2011-03-14 21:20:32.000000000 -0400 26968--- linux-2.6.38.3/drivers/mtd/ubi/build.c 2011-03-14 21:20:32.000000000 -0400
26183+++ linux-2.6.38.2/drivers/mtd/ubi/build.c 2011-03-21 18:31:35.000000000 -0400 26969+++ linux-2.6.38.3/drivers/mtd/ubi/build.c 2011-04-17 15:57:32.000000000 -0400
26184@@ -1285,7 +1285,7 @@ module_exit(ubi_exit); 26970@@ -1285,7 +1285,7 @@ module_exit(ubi_exit);
26185 static int __init bytes_str_to_int(const char *str) 26971 static int __init bytes_str_to_int(const char *str)
26186 { 26972 {
@@ -26220,9 +27006,9 @@ diff -urNp linux-2.6.38.2/drivers/mtd/ubi/build.c linux-2.6.38.2/drivers/mtd/ubi
26220 } 27006 }
26221 27007
26222 /** 27008 /**
26223diff -urNp linux-2.6.38.2/drivers/net/e1000e/82571.c linux-2.6.38.2/drivers/net/e1000e/82571.c 27009diff -urNp linux-2.6.38.3/drivers/net/e1000e/82571.c linux-2.6.38.3/drivers/net/e1000e/82571.c
26224--- linux-2.6.38.2/drivers/net/e1000e/82571.c 2011-03-14 21:20:32.000000000 -0400 27010--- linux-2.6.38.3/drivers/net/e1000e/82571.c 2011-03-14 21:20:32.000000000 -0400
26225+++ linux-2.6.38.2/drivers/net/e1000e/82571.c 2011-03-21 18:31:35.000000000 -0400 27011+++ linux-2.6.38.3/drivers/net/e1000e/82571.c 2011-04-17 15:57:32.000000000 -0400
26226@@ -239,7 +239,7 @@ static s32 e1000_init_mac_params_82571(s 27012@@ -239,7 +239,7 @@ static s32 e1000_init_mac_params_82571(s
26227 { 27013 {
26228 struct e1000_hw *hw = &adapter->hw; 27014 struct e1000_hw *hw = &adapter->hw;
@@ -26277,9 +27063,9 @@ diff -urNp linux-2.6.38.2/drivers/net/e1000e/82571.c linux-2.6.38.2/drivers/net/
26277 .acquire = e1000_acquire_nvm_82571, 27063 .acquire = e1000_acquire_nvm_82571,
26278 .read = e1000e_read_nvm_eerd, 27064 .read = e1000e_read_nvm_eerd,
26279 .release = e1000_release_nvm_82571, 27065 .release = e1000_release_nvm_82571,
26280diff -urNp linux-2.6.38.2/drivers/net/e1000e/e1000.h linux-2.6.38.2/drivers/net/e1000e/e1000.h 27066diff -urNp linux-2.6.38.3/drivers/net/e1000e/e1000.h linux-2.6.38.3/drivers/net/e1000e/e1000.h
26281--- linux-2.6.38.2/drivers/net/e1000e/e1000.h 2011-03-14 21:20:32.000000000 -0400 27067--- linux-2.6.38.3/drivers/net/e1000e/e1000.h 2011-03-14 21:20:32.000000000 -0400
26282+++ linux-2.6.38.2/drivers/net/e1000e/e1000.h 2011-03-21 18:31:35.000000000 -0400 27068+++ linux-2.6.38.3/drivers/net/e1000e/e1000.h 2011-04-17 15:57:32.000000000 -0400
26283@@ -408,9 +408,9 @@ struct e1000_info { 27069@@ -408,9 +408,9 @@ struct e1000_info {
26284 u32 pba; 27070 u32 pba;
26285 u32 max_hw_frame_size; 27071 u32 max_hw_frame_size;
@@ -26293,9 +27079,9 @@ diff -urNp linux-2.6.38.2/drivers/net/e1000e/e1000.h linux-2.6.38.2/drivers/net/
26293 }; 27079 };
26294 27080
26295 /* hardware capability, feature, and workaround flags */ 27081 /* hardware capability, feature, and workaround flags */
26296diff -urNp linux-2.6.38.2/drivers/net/e1000e/es2lan.c linux-2.6.38.2/drivers/net/e1000e/es2lan.c 27082diff -urNp linux-2.6.38.3/drivers/net/e1000e/es2lan.c linux-2.6.38.3/drivers/net/e1000e/es2lan.c
26297--- linux-2.6.38.2/drivers/net/e1000e/es2lan.c 2011-03-14 21:20:32.000000000 -0400 27083--- linux-2.6.38.3/drivers/net/e1000e/es2lan.c 2011-03-14 21:20:32.000000000 -0400
26298+++ linux-2.6.38.2/drivers/net/e1000e/es2lan.c 2011-03-21 18:31:35.000000000 -0400 27084+++ linux-2.6.38.3/drivers/net/e1000e/es2lan.c 2011-04-17 15:57:32.000000000 -0400
26299@@ -205,7 +205,7 @@ static s32 e1000_init_mac_params_80003es 27085@@ -205,7 +205,7 @@ static s32 e1000_init_mac_params_80003es
26300 { 27086 {
26301 struct e1000_hw *hw = &adapter->hw; 27087 struct e1000_hw *hw = &adapter->hw;
@@ -26332,9 +27118,9 @@ diff -urNp linux-2.6.38.2/drivers/net/e1000e/es2lan.c linux-2.6.38.2/drivers/net
26332 .acquire = e1000_acquire_nvm_80003es2lan, 27118 .acquire = e1000_acquire_nvm_80003es2lan,
26333 .read = e1000e_read_nvm_eerd, 27119 .read = e1000e_read_nvm_eerd,
26334 .release = e1000_release_nvm_80003es2lan, 27120 .release = e1000_release_nvm_80003es2lan,
26335diff -urNp linux-2.6.38.2/drivers/net/e1000e/hw.h linux-2.6.38.2/drivers/net/e1000e/hw.h 27121diff -urNp linux-2.6.38.3/drivers/net/e1000e/hw.h linux-2.6.38.3/drivers/net/e1000e/hw.h
26336--- linux-2.6.38.2/drivers/net/e1000e/hw.h 2011-03-14 21:20:32.000000000 -0400 27122--- linux-2.6.38.3/drivers/net/e1000e/hw.h 2011-03-14 21:20:32.000000000 -0400
26337+++ linux-2.6.38.2/drivers/net/e1000e/hw.h 2011-03-21 18:31:35.000000000 -0400 27123+++ linux-2.6.38.3/drivers/net/e1000e/hw.h 2011-04-17 15:57:32.000000000 -0400
26338@@ -801,16 +801,17 @@ struct e1000_phy_operations { 27124@@ -801,16 +801,17 @@ struct e1000_phy_operations {
26339 27125
26340 /* Function pointers for the NVM. */ 27126 /* Function pointers for the NVM. */
@@ -26376,9 +27162,9 @@ diff -urNp linux-2.6.38.2/drivers/net/e1000e/hw.h linux-2.6.38.2/drivers/net/e10
26376 struct e1000_nvm_operations ops; 27162 struct e1000_nvm_operations ops;
26377 27163
26378 enum e1000_nvm_type type; 27164 enum e1000_nvm_type type;
26379diff -urNp linux-2.6.38.2/drivers/net/e1000e/ich8lan.c linux-2.6.38.2/drivers/net/e1000e/ich8lan.c 27165diff -urNp linux-2.6.38.3/drivers/net/e1000e/ich8lan.c linux-2.6.38.3/drivers/net/e1000e/ich8lan.c
26380--- linux-2.6.38.2/drivers/net/e1000e/ich8lan.c 2011-03-14 21:20:32.000000000 -0400 27166--- linux-2.6.38.3/drivers/net/e1000e/ich8lan.c 2011-03-14 21:20:32.000000000 -0400
26381+++ linux-2.6.38.2/drivers/net/e1000e/ich8lan.c 2011-03-21 18:31:35.000000000 -0400 27167+++ linux-2.6.38.3/drivers/net/e1000e/ich8lan.c 2011-04-17 15:57:32.000000000 -0400
26382@@ -3840,7 +3840,7 @@ static void e1000_clear_hw_cntrs_ich8lan 27168@@ -3840,7 +3840,7 @@ static void e1000_clear_hw_cntrs_ich8lan
26383 } 27169 }
26384 } 27170 }
@@ -26406,9 +27192,9 @@ diff -urNp linux-2.6.38.2/drivers/net/e1000e/ich8lan.c linux-2.6.38.2/drivers/ne
26406 .acquire = e1000_acquire_nvm_ich8lan, 27192 .acquire = e1000_acquire_nvm_ich8lan,
26407 .read = e1000_read_nvm_ich8lan, 27193 .read = e1000_read_nvm_ich8lan,
26408 .release = e1000_release_nvm_ich8lan, 27194 .release = e1000_release_nvm_ich8lan,
26409diff -urNp linux-2.6.38.2/drivers/net/igb/e1000_82575.c linux-2.6.38.2/drivers/net/igb/e1000_82575.c 27195diff -urNp linux-2.6.38.3/drivers/net/igb/e1000_82575.c linux-2.6.38.3/drivers/net/igb/e1000_82575.c
26410--- linux-2.6.38.2/drivers/net/igb/e1000_82575.c 2011-03-14 21:20:32.000000000 -0400 27196--- linux-2.6.38.3/drivers/net/igb/e1000_82575.c 2011-03-14 21:20:32.000000000 -0400
26411+++ linux-2.6.38.2/drivers/net/igb/e1000_82575.c 2011-03-21 18:31:35.000000000 -0400 27197+++ linux-2.6.38.3/drivers/net/igb/e1000_82575.c 2011-04-17 15:57:32.000000000 -0400
26412@@ -1747,7 +1747,7 @@ u16 igb_rxpbs_adjust_82580(u32 data) 27198@@ -1747,7 +1747,7 @@ u16 igb_rxpbs_adjust_82580(u32 data)
26413 return ret_val; 27199 return ret_val;
26414 } 27200 }
@@ -26434,9 +27220,9 @@ diff -urNp linux-2.6.38.2/drivers/net/igb/e1000_82575.c linux-2.6.38.2/drivers/n
26434 .acquire = igb_acquire_nvm_82575, 27220 .acquire = igb_acquire_nvm_82575,
26435 .read = igb_read_nvm_eerd, 27221 .read = igb_read_nvm_eerd,
26436 .release = igb_release_nvm_82575, 27222 .release = igb_release_nvm_82575,
26437diff -urNp linux-2.6.38.2/drivers/net/igb/e1000_hw.h linux-2.6.38.2/drivers/net/igb/e1000_hw.h 27223diff -urNp linux-2.6.38.3/drivers/net/igb/e1000_hw.h linux-2.6.38.3/drivers/net/igb/e1000_hw.h
26438--- linux-2.6.38.2/drivers/net/igb/e1000_hw.h 2011-03-14 21:20:32.000000000 -0400 27224--- linux-2.6.38.3/drivers/net/igb/e1000_hw.h 2011-03-14 21:20:32.000000000 -0400
26439+++ linux-2.6.38.2/drivers/net/igb/e1000_hw.h 2011-03-21 18:31:35.000000000 -0400 27225+++ linux-2.6.38.3/drivers/net/igb/e1000_hw.h 2011-04-17 15:57:32.000000000 -0400
26440@@ -327,22 +327,23 @@ struct e1000_phy_operations { 27226@@ -327,22 +327,23 @@ struct e1000_phy_operations {
26441 }; 27227 };
26442 27228
@@ -26484,9 +27270,9 @@ diff -urNp linux-2.6.38.2/drivers/net/igb/e1000_hw.h linux-2.6.38.2/drivers/net/
26484 struct e1000_nvm_operations ops; 27270 struct e1000_nvm_operations ops;
26485 27271
26486 enum e1000_nvm_type type; 27272 enum e1000_nvm_type type;
26487diff -urNp linux-2.6.38.2/drivers/net/igbvf/vf.h linux-2.6.38.2/drivers/net/igbvf/vf.h 27273diff -urNp linux-2.6.38.3/drivers/net/igbvf/vf.h linux-2.6.38.3/drivers/net/igbvf/vf.h
26488--- linux-2.6.38.2/drivers/net/igbvf/vf.h 2011-03-14 21:20:32.000000000 -0400 27274--- linux-2.6.38.3/drivers/net/igbvf/vf.h 2011-03-14 21:20:32.000000000 -0400
26489+++ linux-2.6.38.2/drivers/net/igbvf/vf.h 2011-03-21 18:31:35.000000000 -0400 27275+++ linux-2.6.38.3/drivers/net/igbvf/vf.h 2011-04-17 15:57:32.000000000 -0400
26490@@ -191,6 +191,7 @@ struct e1000_mac_operations { 27276@@ -191,6 +191,7 @@ struct e1000_mac_operations {
26491 }; 27277 };
26492 27278
@@ -26495,9 +27281,9 @@ diff -urNp linux-2.6.38.2/drivers/net/igbvf/vf.h linux-2.6.38.2/drivers/net/igbv
26495 struct e1000_mac_operations ops; 27281 struct e1000_mac_operations ops;
26496 u8 addr[6]; 27282 u8 addr[6];
26497 u8 perm_addr[6]; 27283 u8 perm_addr[6];
26498diff -urNp linux-2.6.38.2/drivers/net/irda/vlsi_ir.c linux-2.6.38.2/drivers/net/irda/vlsi_ir.c 27284diff -urNp linux-2.6.38.3/drivers/net/irda/vlsi_ir.c linux-2.6.38.3/drivers/net/irda/vlsi_ir.c
26499--- linux-2.6.38.2/drivers/net/irda/vlsi_ir.c 2011-03-14 21:20:32.000000000 -0400 27285--- linux-2.6.38.3/drivers/net/irda/vlsi_ir.c 2011-03-14 21:20:32.000000000 -0400
26500+++ linux-2.6.38.2/drivers/net/irda/vlsi_ir.c 2011-03-21 18:31:35.000000000 -0400 27286+++ linux-2.6.38.3/drivers/net/irda/vlsi_ir.c 2011-04-17 15:57:32.000000000 -0400
26501@@ -907,13 +907,12 @@ static netdev_tx_t vlsi_hard_start_xmit( 27287@@ -907,13 +907,12 @@ static netdev_tx_t vlsi_hard_start_xmit(
26502 /* no race - tx-ring already empty */ 27288 /* no race - tx-ring already empty */
26503 vlsi_set_baud(idev, iobase); 27289 vlsi_set_baud(idev, iobase);
@@ -26514,9 +27300,9 @@ diff -urNp linux-2.6.38.2/drivers/net/irda/vlsi_ir.c linux-2.6.38.2/drivers/net/
26514 spin_unlock_irqrestore(&idev->lock, flags); 27300 spin_unlock_irqrestore(&idev->lock, flags);
26515 dev_kfree_skb_any(skb); 27301 dev_kfree_skb_any(skb);
26516 return NETDEV_TX_OK; 27302 return NETDEV_TX_OK;
26517diff -urNp linux-2.6.38.2/drivers/net/pcnet32.c linux-2.6.38.2/drivers/net/pcnet32.c 27303diff -urNp linux-2.6.38.3/drivers/net/pcnet32.c linux-2.6.38.3/drivers/net/pcnet32.c
26518--- linux-2.6.38.2/drivers/net/pcnet32.c 2011-03-14 21:20:32.000000000 -0400 27304--- linux-2.6.38.3/drivers/net/pcnet32.c 2011-03-14 21:20:32.000000000 -0400
26519+++ linux-2.6.38.2/drivers/net/pcnet32.c 2011-03-21 18:31:35.000000000 -0400 27305+++ linux-2.6.38.3/drivers/net/pcnet32.c 2011-04-17 15:57:32.000000000 -0400
26520@@ -82,7 +82,7 @@ static int cards_found; 27306@@ -82,7 +82,7 @@ static int cards_found;
26521 /* 27307 /*
26522 * VLB I/O addresses 27308 * VLB I/O addresses
@@ -26526,9 +27312,9 @@ diff -urNp linux-2.6.38.2/drivers/net/pcnet32.c linux-2.6.38.2/drivers/net/pcnet
26526 { 0x300, 0x320, 0x340, 0x360, 0 }; 27312 { 0x300, 0x320, 0x340, 0x360, 0 };
26527 27313
26528 static int pcnet32_debug; 27314 static int pcnet32_debug;
26529diff -urNp linux-2.6.38.2/drivers/net/ppp_generic.c linux-2.6.38.2/drivers/net/ppp_generic.c 27315diff -urNp linux-2.6.38.3/drivers/net/ppp_generic.c linux-2.6.38.3/drivers/net/ppp_generic.c
26530--- linux-2.6.38.2/drivers/net/ppp_generic.c 2011-03-14 21:20:32.000000000 -0400 27316--- linux-2.6.38.3/drivers/net/ppp_generic.c 2011-03-14 21:20:32.000000000 -0400
26531+++ linux-2.6.38.2/drivers/net/ppp_generic.c 2011-03-21 18:31:35.000000000 -0400 27317+++ linux-2.6.38.3/drivers/net/ppp_generic.c 2011-04-17 15:57:32.000000000 -0400
26532@@ -986,7 +986,6 @@ ppp_net_ioctl(struct net_device *dev, st 27318@@ -986,7 +986,6 @@ ppp_net_ioctl(struct net_device *dev, st
26533 void __user *addr = (void __user *) ifr->ifr_ifru.ifru_data; 27319 void __user *addr = (void __user *) ifr->ifr_ifru.ifru_data;
26534 struct ppp_stats stats; 27320 struct ppp_stats stats;
@@ -26547,9 +27333,9 @@ diff -urNp linux-2.6.38.2/drivers/net/ppp_generic.c linux-2.6.38.2/drivers/net/p
26547 break; 27333 break;
26548 err = 0; 27334 err = 0;
26549 break; 27335 break;
26550diff -urNp linux-2.6.38.2/drivers/net/tg3.h linux-2.6.38.2/drivers/net/tg3.h 27336diff -urNp linux-2.6.38.3/drivers/net/tg3.h linux-2.6.38.3/drivers/net/tg3.h
26551--- linux-2.6.38.2/drivers/net/tg3.h 2011-03-14 21:20:32.000000000 -0400 27337--- linux-2.6.38.3/drivers/net/tg3.h 2011-03-14 21:20:32.000000000 -0400
26552+++ linux-2.6.38.2/drivers/net/tg3.h 2011-03-21 18:31:35.000000000 -0400 27338+++ linux-2.6.38.3/drivers/net/tg3.h 2011-04-17 15:57:32.000000000 -0400
26553@@ -131,6 +131,7 @@ 27339@@ -131,6 +131,7 @@
26554 #define CHIPREV_ID_5750_A0 0x4000 27340 #define CHIPREV_ID_5750_A0 0x4000
26555 #define CHIPREV_ID_5750_A1 0x4001 27341 #define CHIPREV_ID_5750_A1 0x4001
@@ -26558,9 +27344,9 @@ diff -urNp linux-2.6.38.2/drivers/net/tg3.h linux-2.6.38.2/drivers/net/tg3.h
26558 #define CHIPREV_ID_5750_C2 0x4202 27344 #define CHIPREV_ID_5750_C2 0x4202
26559 #define CHIPREV_ID_5752_A0_HW 0x5000 27345 #define CHIPREV_ID_5752_A0_HW 0x5000
26560 #define CHIPREV_ID_5752_A0 0x6000 27346 #define CHIPREV_ID_5752_A0 0x6000
26561diff -urNp linux-2.6.38.2/drivers/net/tulip/de4x5.c linux-2.6.38.2/drivers/net/tulip/de4x5.c 27347diff -urNp linux-2.6.38.3/drivers/net/tulip/de4x5.c linux-2.6.38.3/drivers/net/tulip/de4x5.c
26562--- linux-2.6.38.2/drivers/net/tulip/de4x5.c 2011-03-14 21:20:32.000000000 -0400 27348--- linux-2.6.38.3/drivers/net/tulip/de4x5.c 2011-03-14 21:20:32.000000000 -0400
26563+++ linux-2.6.38.2/drivers/net/tulip/de4x5.c 2011-03-21 18:31:35.000000000 -0400 27349+++ linux-2.6.38.3/drivers/net/tulip/de4x5.c 2011-04-17 15:57:32.000000000 -0400
26564@@ -5401,7 +5401,7 @@ de4x5_ioctl(struct net_device *dev, stru 27350@@ -5401,7 +5401,7 @@ de4x5_ioctl(struct net_device *dev, stru
26565 for (i=0; i<ETH_ALEN; i++) { 27351 for (i=0; i<ETH_ALEN; i++) {
26566 tmp.addr[i] = dev->dev_addr[i]; 27352 tmp.addr[i] = dev->dev_addr[i];
@@ -26579,9 +27365,9 @@ diff -urNp linux-2.6.38.2/drivers/net/tulip/de4x5.c linux-2.6.38.2/drivers/net/t
26579 return -EFAULT; 27365 return -EFAULT;
26580 break; 27366 break;
26581 } 27367 }
26582diff -urNp linux-2.6.38.2/drivers/net/usb/hso.c linux-2.6.38.2/drivers/net/usb/hso.c 27368diff -urNp linux-2.6.38.3/drivers/net/usb/hso.c linux-2.6.38.3/drivers/net/usb/hso.c
26583--- linux-2.6.38.2/drivers/net/usb/hso.c 2011-03-14 21:20:32.000000000 -0400 27369--- linux-2.6.38.3/drivers/net/usb/hso.c 2011-03-14 21:20:32.000000000 -0400
26584+++ linux-2.6.38.2/drivers/net/usb/hso.c 2011-03-21 18:31:35.000000000 -0400 27370+++ linux-2.6.38.3/drivers/net/usb/hso.c 2011-04-17 15:57:32.000000000 -0400
26585@@ -71,7 +71,7 @@ 27371@@ -71,7 +71,7 @@
26586 #include <asm/byteorder.h> 27372 #include <asm/byteorder.h>
26587 #include <linux/serial_core.h> 27373 #include <linux/serial_core.h>
@@ -26678,9 +27464,22 @@ diff -urNp linux-2.6.38.2/drivers/net/usb/hso.c linux-2.6.38.2/drivers/net/usb/h
26678 result = 27464 result =
26679 hso_start_serial_device(serial_table[i], GFP_NOIO); 27465 hso_start_serial_device(serial_table[i], GFP_NOIO);
26680 hso_kick_transmit(dev2ser(serial_table[i])); 27466 hso_kick_transmit(dev2ser(serial_table[i]));
26681diff -urNp linux-2.6.38.2/drivers/net/wireless/b43/debugfs.c linux-2.6.38.2/drivers/net/wireless/b43/debugfs.c 27467diff -urNp linux-2.6.38.3/drivers/net/vmxnet3/vmxnet3_ethtool.c linux-2.6.38.3/drivers/net/vmxnet3/vmxnet3_ethtool.c
26682--- linux-2.6.38.2/drivers/net/wireless/b43/debugfs.c 2011-03-14 21:20:32.000000000 -0400 27468--- linux-2.6.38.3/drivers/net/vmxnet3/vmxnet3_ethtool.c 2011-04-18 17:27:18.000000000 -0400
26683+++ linux-2.6.38.2/drivers/net/wireless/b43/debugfs.c 2011-03-21 18:31:35.000000000 -0400 27469+++ linux-2.6.38.3/drivers/net/vmxnet3/vmxnet3_ethtool.c 2011-04-17 16:53:41.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
26684@@ -43,7 +43,7 @@ static struct dentry *rootdir; 27483@@ -43,7 +43,7 @@ static struct dentry *rootdir;
26685 struct b43_debugfs_fops { 27484 struct b43_debugfs_fops {
26686 ssize_t (*read)(struct b43_wldev *dev, char *buf, size_t bufsize); 27485 ssize_t (*read)(struct b43_wldev *dev, char *buf, size_t bufsize);
@@ -26690,9 +27489,9 @@ diff -urNp linux-2.6.38.2/drivers/net/wireless/b43/debugfs.c linux-2.6.38.2/driv
26690 /* Offset of struct b43_dfs_file in struct b43_dfsentry */ 27489 /* Offset of struct b43_dfs_file in struct b43_dfsentry */
26691 size_t file_struct_offset; 27490 size_t file_struct_offset;
26692 }; 27491 };
26693diff -urNp linux-2.6.38.2/drivers/net/wireless/b43legacy/debugfs.c linux-2.6.38.2/drivers/net/wireless/b43legacy/debugfs.c 27492diff -urNp linux-2.6.38.3/drivers/net/wireless/b43legacy/debugfs.c linux-2.6.38.3/drivers/net/wireless/b43legacy/debugfs.c
26694--- linux-2.6.38.2/drivers/net/wireless/b43legacy/debugfs.c 2011-03-14 21:20:32.000000000 -0400 27493--- linux-2.6.38.3/drivers/net/wireless/b43legacy/debugfs.c 2011-03-14 21:20:32.000000000 -0400
26695+++ linux-2.6.38.2/drivers/net/wireless/b43legacy/debugfs.c 2011-03-21 18:31:35.000000000 -0400 27494+++ linux-2.6.38.3/drivers/net/wireless/b43legacy/debugfs.c 2011-04-17 15:57:32.000000000 -0400
26696@@ -44,7 +44,7 @@ static struct dentry *rootdir; 27495@@ -44,7 +44,7 @@ static struct dentry *rootdir;
26697 struct b43legacy_debugfs_fops { 27496 struct b43legacy_debugfs_fops {
26698 ssize_t (*read)(struct b43legacy_wldev *dev, char *buf, size_t bufsize); 27497 ssize_t (*read)(struct b43legacy_wldev *dev, char *buf, size_t bufsize);
@@ -26702,9 +27501,9 @@ diff -urNp linux-2.6.38.2/drivers/net/wireless/b43legacy/debugfs.c linux-2.6.38.
26702 /* Offset of struct b43legacy_dfs_file in struct b43legacy_dfsentry */ 27501 /* Offset of struct b43legacy_dfs_file in struct b43legacy_dfsentry */
26703 size_t file_struct_offset; 27502 size_t file_struct_offset;
26704 /* Take wl->irq_lock before calling read/write? */ 27503 /* Take wl->irq_lock before calling read/write? */
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 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
26706--- linux-2.6.38.2/drivers/net/wireless/iwlwifi/iwl-debug.h 2011-03-14 21:20:32.000000000 -0400 27505--- linux-2.6.38.3/drivers/net/wireless/iwlwifi/iwl-debug.h 2011-03-14 21:20:32.000000000 -0400
26707+++ linux-2.6.38.2/drivers/net/wireless/iwlwifi/iwl-debug.h 2011-03-21 18:31:35.000000000 -0400 27506+++ linux-2.6.38.3/drivers/net/wireless/iwlwifi/iwl-debug.h 2011-04-17 15:57:32.000000000 -0400
26708@@ -68,8 +68,8 @@ do { 27507@@ -68,8 +68,8 @@ do {
26709 } while (0) 27508 } while (0)
26710 27509
@@ -26716,9 +27515,9 @@ diff -urNp linux-2.6.38.2/drivers/net/wireless/iwlwifi/iwl-debug.h linux-2.6.38.
26716 static inline void iwl_print_hex_dump(struct iwl_priv *priv, int level, 27515 static inline void iwl_print_hex_dump(struct iwl_priv *priv, int level,
26717 const void *p, u32 len) 27516 const void *p, u32 len)
26718 {} 27517 {}
26719diff -urNp linux-2.6.38.2/drivers/net/wireless/libertas/debugfs.c linux-2.6.38.2/drivers/net/wireless/libertas/debugfs.c 27518diff -urNp linux-2.6.38.3/drivers/net/wireless/libertas/debugfs.c linux-2.6.38.3/drivers/net/wireless/libertas/debugfs.c
26720--- linux-2.6.38.2/drivers/net/wireless/libertas/debugfs.c 2011-03-14 21:20:32.000000000 -0400 27519--- linux-2.6.38.3/drivers/net/wireless/libertas/debugfs.c 2011-03-14 21:20:32.000000000 -0400
26721+++ linux-2.6.38.2/drivers/net/wireless/libertas/debugfs.c 2011-03-21 18:31:35.000000000 -0400 27520+++ linux-2.6.38.3/drivers/net/wireless/libertas/debugfs.c 2011-04-17 15:57:32.000000000 -0400
26722@@ -702,7 +702,7 @@ out_unlock: 27521@@ -702,7 +702,7 @@ out_unlock:
26723 struct lbs_debugfs_files { 27522 struct lbs_debugfs_files {
26724 const char *name; 27523 const char *name;
@@ -26728,9 +27527,9 @@ diff -urNp linux-2.6.38.2/drivers/net/wireless/libertas/debugfs.c linux-2.6.38.2
26728 }; 27527 };
26729 27528
26730 static const struct lbs_debugfs_files debugfs_files[] = { 27529 static const struct lbs_debugfs_files debugfs_files[] = {
26731diff -urNp linux-2.6.38.2/drivers/net/wireless/rndis_wlan.c linux-2.6.38.2/drivers/net/wireless/rndis_wlan.c 27530diff -urNp linux-2.6.38.3/drivers/net/wireless/rndis_wlan.c linux-2.6.38.3/drivers/net/wireless/rndis_wlan.c
26732--- linux-2.6.38.2/drivers/net/wireless/rndis_wlan.c 2011-03-14 21:20:32.000000000 -0400 27531--- linux-2.6.38.3/drivers/net/wireless/rndis_wlan.c 2011-03-14 21:20:32.000000000 -0400
26733+++ linux-2.6.38.2/drivers/net/wireless/rndis_wlan.c 2011-03-21 18:31:35.000000000 -0400 27532+++ linux-2.6.38.3/drivers/net/wireless/rndis_wlan.c 2011-04-17 15:57:32.000000000 -0400
26734@@ -1277,7 +1277,7 @@ static int set_rts_threshold(struct usbn 27533@@ -1277,7 +1277,7 @@ static int set_rts_threshold(struct usbn
26735 27534
26736 netdev_dbg(usbdev->net, "%s(): %i\n", __func__, rts_threshold); 27535 netdev_dbg(usbdev->net, "%s(): %i\n", __func__, rts_threshold);
@@ -26740,9 +27539,9 @@ diff -urNp linux-2.6.38.2/drivers/net/wireless/rndis_wlan.c linux-2.6.38.2/drive
26740 rts_threshold = 2347; 27539 rts_threshold = 2347;
26741 27540
26742 tmp = cpu_to_le32(rts_threshold); 27541 tmp = cpu_to_le32(rts_threshold);
26743diff -urNp linux-2.6.38.2/drivers/oprofile/buffer_sync.c linux-2.6.38.2/drivers/oprofile/buffer_sync.c 27542diff -urNp linux-2.6.38.3/drivers/oprofile/buffer_sync.c linux-2.6.38.3/drivers/oprofile/buffer_sync.c
26744--- linux-2.6.38.2/drivers/oprofile/buffer_sync.c 2011-03-14 21:20:32.000000000 -0400 27543--- linux-2.6.38.3/drivers/oprofile/buffer_sync.c 2011-03-14 21:20:32.000000000 -0400
26745+++ linux-2.6.38.2/drivers/oprofile/buffer_sync.c 2011-03-21 18:31:35.000000000 -0400 27544+++ linux-2.6.38.3/drivers/oprofile/buffer_sync.c 2011-04-17 15:57:32.000000000 -0400
26746@@ -342,7 +342,7 @@ static void add_data(struct op_entry *en 27545@@ -342,7 +342,7 @@ static void add_data(struct op_entry *en
26747 if (cookie == NO_COOKIE) 27546 if (cookie == NO_COOKIE)
26748 offset = pc; 27547 offset = pc;
@@ -26778,9 +27577,9 @@ diff -urNp linux-2.6.38.2/drivers/oprofile/buffer_sync.c linux-2.6.38.2/drivers/
26778 } 27577 }
26779 } 27578 }
26780 release_mm(mm); 27579 release_mm(mm);
26781diff -urNp linux-2.6.38.2/drivers/oprofile/event_buffer.c linux-2.6.38.2/drivers/oprofile/event_buffer.c 27580diff -urNp linux-2.6.38.3/drivers/oprofile/event_buffer.c linux-2.6.38.3/drivers/oprofile/event_buffer.c
26782--- linux-2.6.38.2/drivers/oprofile/event_buffer.c 2011-03-14 21:20:32.000000000 -0400 27581--- linux-2.6.38.3/drivers/oprofile/event_buffer.c 2011-03-14 21:20:32.000000000 -0400
26783+++ linux-2.6.38.2/drivers/oprofile/event_buffer.c 2011-03-21 18:31:35.000000000 -0400 27582+++ linux-2.6.38.3/drivers/oprofile/event_buffer.c 2011-04-17 15:57:32.000000000 -0400
26784@@ -53,7 +53,7 @@ void add_event_entry(unsigned long value 27583@@ -53,7 +53,7 @@ void add_event_entry(unsigned long value
26785 } 27584 }
26786 27585
@@ -26790,9 +27589,9 @@ diff -urNp linux-2.6.38.2/drivers/oprofile/event_buffer.c linux-2.6.38.2/drivers
26790 return; 27589 return;
26791 } 27590 }
26792 27591
26793diff -urNp linux-2.6.38.2/drivers/oprofile/oprof.c linux-2.6.38.2/drivers/oprofile/oprof.c 27592diff -urNp linux-2.6.38.3/drivers/oprofile/oprof.c linux-2.6.38.3/drivers/oprofile/oprof.c
26794--- linux-2.6.38.2/drivers/oprofile/oprof.c 2011-03-14 21:20:32.000000000 -0400 27593--- linux-2.6.38.3/drivers/oprofile/oprof.c 2011-03-14 21:20:32.000000000 -0400
26795+++ linux-2.6.38.2/drivers/oprofile/oprof.c 2011-03-21 18:31:35.000000000 -0400 27594+++ linux-2.6.38.3/drivers/oprofile/oprof.c 2011-04-17 15:57:32.000000000 -0400
26796@@ -110,7 +110,7 @@ static void switch_worker(struct work_st 27595@@ -110,7 +110,7 @@ static void switch_worker(struct work_st
26797 if (oprofile_ops.switch_events()) 27596 if (oprofile_ops.switch_events())
26798 return; 27597 return;
@@ -26802,9 +27601,9 @@ diff -urNp linux-2.6.38.2/drivers/oprofile/oprof.c linux-2.6.38.2/drivers/oprofi
26802 start_switch_worker(); 27601 start_switch_worker();
26803 } 27602 }
26804 27603
26805diff -urNp linux-2.6.38.2/drivers/oprofile/oprofilefs.c linux-2.6.38.2/drivers/oprofile/oprofilefs.c 27604diff -urNp linux-2.6.38.3/drivers/oprofile/oprofilefs.c linux-2.6.38.3/drivers/oprofile/oprofilefs.c
26806--- linux-2.6.38.2/drivers/oprofile/oprofilefs.c 2011-03-14 21:20:32.000000000 -0400 27605--- linux-2.6.38.3/drivers/oprofile/oprofilefs.c 2011-03-14 21:20:32.000000000 -0400
26807+++ linux-2.6.38.2/drivers/oprofile/oprofilefs.c 2011-03-21 18:31:35.000000000 -0400 27606+++ linux-2.6.38.3/drivers/oprofile/oprofilefs.c 2011-04-17 15:57:32.000000000 -0400
26808@@ -186,7 +186,7 @@ static const struct file_operations atom 27607@@ -186,7 +186,7 @@ static const struct file_operations atom
26809 27608
26810 27609
@@ -26814,9 +27613,9 @@ diff -urNp linux-2.6.38.2/drivers/oprofile/oprofilefs.c linux-2.6.38.2/drivers/o
26814 { 27613 {
26815 return __oprofilefs_create_file(sb, root, name, 27614 return __oprofilefs_create_file(sb, root, name,
26816 &atomic_ro_fops, 0444, val); 27615 &atomic_ro_fops, 0444, val);
26817diff -urNp linux-2.6.38.2/drivers/oprofile/oprofile_stats.c linux-2.6.38.2/drivers/oprofile/oprofile_stats.c 27616diff -urNp linux-2.6.38.3/drivers/oprofile/oprofile_stats.c linux-2.6.38.3/drivers/oprofile/oprofile_stats.c
26818--- linux-2.6.38.2/drivers/oprofile/oprofile_stats.c 2011-03-14 21:20:32.000000000 -0400 27617--- linux-2.6.38.3/drivers/oprofile/oprofile_stats.c 2011-03-14 21:20:32.000000000 -0400
26819+++ linux-2.6.38.2/drivers/oprofile/oprofile_stats.c 2011-03-21 18:31:35.000000000 -0400 27618+++ linux-2.6.38.3/drivers/oprofile/oprofile_stats.c 2011-04-17 15:57:32.000000000 -0400
26820@@ -30,11 +30,11 @@ void oprofile_reset_stats(void) 27619@@ -30,11 +30,11 @@ void oprofile_reset_stats(void)
26821 cpu_buf->sample_invalid_eip = 0; 27620 cpu_buf->sample_invalid_eip = 0;
26822 } 27621 }
@@ -26834,9 +27633,9 @@ diff -urNp linux-2.6.38.2/drivers/oprofile/oprofile_stats.c linux-2.6.38.2/drive
26834 } 27633 }
26835 27634
26836 27635
26837diff -urNp linux-2.6.38.2/drivers/oprofile/oprofile_stats.h linux-2.6.38.2/drivers/oprofile/oprofile_stats.h 27636diff -urNp linux-2.6.38.3/drivers/oprofile/oprofile_stats.h linux-2.6.38.3/drivers/oprofile/oprofile_stats.h
26838--- linux-2.6.38.2/drivers/oprofile/oprofile_stats.h 2011-03-14 21:20:32.000000000 -0400 27637--- linux-2.6.38.3/drivers/oprofile/oprofile_stats.h 2011-03-14 21:20:32.000000000 -0400
26839+++ linux-2.6.38.2/drivers/oprofile/oprofile_stats.h 2011-03-21 18:31:35.000000000 -0400 27638+++ linux-2.6.38.3/drivers/oprofile/oprofile_stats.h 2011-04-17 15:57:32.000000000 -0400
26840@@ -13,11 +13,11 @@ 27639@@ -13,11 +13,11 @@
26841 #include <asm/atomic.h> 27640 #include <asm/atomic.h>
26842 27641
@@ -26854,9 +27653,9 @@ diff -urNp linux-2.6.38.2/drivers/oprofile/oprofile_stats.h linux-2.6.38.2/drive
26854 }; 27653 };
26855 27654
26856 extern struct oprofile_stat_struct oprofile_stats; 27655 extern struct oprofile_stat_struct oprofile_stats;
26857diff -urNp linux-2.6.38.2/drivers/parport/procfs.c linux-2.6.38.2/drivers/parport/procfs.c 27656diff -urNp linux-2.6.38.3/drivers/parport/procfs.c linux-2.6.38.3/drivers/parport/procfs.c
26858--- linux-2.6.38.2/drivers/parport/procfs.c 2011-03-14 21:20:32.000000000 -0400 27657--- linux-2.6.38.3/drivers/parport/procfs.c 2011-03-14 21:20:32.000000000 -0400
26859+++ linux-2.6.38.2/drivers/parport/procfs.c 2011-03-21 18:31:35.000000000 -0400 27658+++ linux-2.6.38.3/drivers/parport/procfs.c 2011-04-17 15:57:32.000000000 -0400
26860@@ -64,7 +64,7 @@ static int do_active_device(ctl_table *t 27659@@ -64,7 +64,7 @@ static int do_active_device(ctl_table *t
26861 27660
26862 *ppos += len; 27661 *ppos += len;
@@ -26875,9 +27674,9 @@ diff -urNp linux-2.6.38.2/drivers/parport/procfs.c linux-2.6.38.2/drivers/parpor
26875 } 27674 }
26876 #endif /* IEEE1284.3 support. */ 27675 #endif /* IEEE1284.3 support. */
26877 27676
26878diff -urNp linux-2.6.38.2/drivers/pci/hotplug/acpiphp_glue.c linux-2.6.38.2/drivers/pci/hotplug/acpiphp_glue.c 27677diff -urNp linux-2.6.38.3/drivers/pci/hotplug/acpiphp_glue.c linux-2.6.38.3/drivers/pci/hotplug/acpiphp_glue.c
26879--- linux-2.6.38.2/drivers/pci/hotplug/acpiphp_glue.c 2011-03-28 17:42:40.000000000 -0400 27678--- linux-2.6.38.3/drivers/pci/hotplug/acpiphp_glue.c 2011-04-18 17:27:16.000000000 -0400
26880+++ linux-2.6.38.2/drivers/pci/hotplug/acpiphp_glue.c 2011-03-28 17:42:53.000000000 -0400 27679+++ linux-2.6.38.3/drivers/pci/hotplug/acpiphp_glue.c 2011-04-17 15:57:32.000000000 -0400
26881@@ -110,7 +110,7 @@ static int post_dock_fixups(struct notif 27680@@ -110,7 +110,7 @@ static int post_dock_fixups(struct notif
26882 } 27681 }
26883 27682
@@ -26887,9 +27686,9 @@ diff -urNp linux-2.6.38.2/drivers/pci/hotplug/acpiphp_glue.c linux-2.6.38.2/driv
26887 .handler = handle_hotplug_event_func, 27686 .handler = handle_hotplug_event_func,
26888 }; 27687 };
26889 27688
26890diff -urNp linux-2.6.38.2/drivers/pci/hotplug/cpqphp_nvram.c linux-2.6.38.2/drivers/pci/hotplug/cpqphp_nvram.c 27689diff -urNp linux-2.6.38.3/drivers/pci/hotplug/cpqphp_nvram.c linux-2.6.38.3/drivers/pci/hotplug/cpqphp_nvram.c
26891--- linux-2.6.38.2/drivers/pci/hotplug/cpqphp_nvram.c 2011-03-14 21:20:32.000000000 -0400 27690--- linux-2.6.38.3/drivers/pci/hotplug/cpqphp_nvram.c 2011-03-14 21:20:32.000000000 -0400
26892+++ linux-2.6.38.2/drivers/pci/hotplug/cpqphp_nvram.c 2011-03-21 18:31:35.000000000 -0400 27691+++ linux-2.6.38.3/drivers/pci/hotplug/cpqphp_nvram.c 2011-04-17 15:57:32.000000000 -0400
26893@@ -428,9 +428,13 @@ static u32 store_HRT (void __iomem *rom_ 27692@@ -428,9 +428,13 @@ static u32 store_HRT (void __iomem *rom_
26894 27693
26895 void compaq_nvram_init (void __iomem *rom_start) 27694 void compaq_nvram_init (void __iomem *rom_start)
@@ -26904,9 +27703,9 @@ diff -urNp linux-2.6.38.2/drivers/pci/hotplug/cpqphp_nvram.c linux-2.6.38.2/driv
26904 dbg("int15 entry = %p\n", compaq_int15_entry_point); 27703 dbg("int15 entry = %p\n", compaq_int15_entry_point);
26905 27704
26906 /* initialize our int15 lock */ 27705 /* initialize our int15 lock */
26907diff -urNp linux-2.6.38.2/drivers/pci/intel-iommu.c linux-2.6.38.2/drivers/pci/intel-iommu.c 27706diff -urNp linux-2.6.38.3/drivers/pci/intel-iommu.c linux-2.6.38.3/drivers/pci/intel-iommu.c
26908--- linux-2.6.38.2/drivers/pci/intel-iommu.c 2011-03-14 21:20:32.000000000 -0400 27707--- linux-2.6.38.3/drivers/pci/intel-iommu.c 2011-03-14 21:20:32.000000000 -0400
26909+++ linux-2.6.38.2/drivers/pci/intel-iommu.c 2011-03-21 18:31:35.000000000 -0400 27708+++ linux-2.6.38.3/drivers/pci/intel-iommu.c 2011-04-17 15:57:32.000000000 -0400
26910@@ -2934,7 +2934,7 @@ static int intel_mapping_error(struct de 27709@@ -2934,7 +2934,7 @@ static int intel_mapping_error(struct de
26911 return !dma_addr; 27710 return !dma_addr;
26912 } 27711 }
@@ -26916,9 +27715,9 @@ diff -urNp linux-2.6.38.2/drivers/pci/intel-iommu.c linux-2.6.38.2/drivers/pci/i
26916 .alloc_coherent = intel_alloc_coherent, 27715 .alloc_coherent = intel_alloc_coherent,
26917 .free_coherent = intel_free_coherent, 27716 .free_coherent = intel_free_coherent,
26918 .map_sg = intel_map_sg, 27717 .map_sg = intel_map_sg,
26919diff -urNp linux-2.6.38.2/drivers/pci/pcie/aspm.c linux-2.6.38.2/drivers/pci/pcie/aspm.c 27718diff -urNp linux-2.6.38.3/drivers/pci/pcie/aspm.c linux-2.6.38.3/drivers/pci/pcie/aspm.c
26920--- linux-2.6.38.2/drivers/pci/pcie/aspm.c 2011-03-14 21:20:32.000000000 -0400 27719--- linux-2.6.38.3/drivers/pci/pcie/aspm.c 2011-04-18 17:27:18.000000000 -0400
26921+++ linux-2.6.38.2/drivers/pci/pcie/aspm.c 2011-03-21 18:31:35.000000000 -0400 27720+++ linux-2.6.38.3/drivers/pci/pcie/aspm.c 2011-04-17 16:53:41.000000000 -0400
26922@@ -27,9 +27,9 @@ 27721@@ -27,9 +27,9 @@
26923 #define MODULE_PARAM_PREFIX "pcie_aspm." 27722 #define MODULE_PARAM_PREFIX "pcie_aspm."
26924 27723
@@ -26932,9 +27731,9 @@ diff -urNp linux-2.6.38.2/drivers/pci/pcie/aspm.c linux-2.6.38.2/drivers/pci/pci
26932 #define ASPM_STATE_L0S (ASPM_STATE_L0S_UP | ASPM_STATE_L0S_DW) 27731 #define ASPM_STATE_L0S (ASPM_STATE_L0S_UP | ASPM_STATE_L0S_DW)
26933 #define ASPM_STATE_ALL (ASPM_STATE_L0S | ASPM_STATE_L1) 27732 #define ASPM_STATE_ALL (ASPM_STATE_L0S | ASPM_STATE_L1)
26934 27733
26935diff -urNp linux-2.6.38.2/drivers/pci/pcie/portdrv_pci.c linux-2.6.38.2/drivers/pci/pcie/portdrv_pci.c 27734diff -urNp linux-2.6.38.3/drivers/pci/pcie/portdrv_pci.c linux-2.6.38.3/drivers/pci/pcie/portdrv_pci.c
26936--- linux-2.6.38.2/drivers/pci/pcie/portdrv_pci.c 2011-03-14 21:20:32.000000000 -0400 27735--- linux-2.6.38.3/drivers/pci/pcie/portdrv_pci.c 2011-03-14 21:20:32.000000000 -0400
26937+++ linux-2.6.38.2/drivers/pci/pcie/portdrv_pci.c 2011-03-21 18:31:35.000000000 -0400 27736+++ linux-2.6.38.3/drivers/pci/pcie/portdrv_pci.c 2011-04-17 15:57:32.000000000 -0400
26938@@ -307,7 +307,7 @@ static void pcie_portdrv_err_resume(stru 27737@@ -307,7 +307,7 @@ static void pcie_portdrv_err_resume(stru
26939 static const struct pci_device_id port_pci_ids[] = { { 27738 static const struct pci_device_id port_pci_ids[] = { {
26940 /* handle any PCI-Express port */ 27739 /* handle any PCI-Express port */
@@ -26944,9 +27743,9 @@ diff -urNp linux-2.6.38.2/drivers/pci/pcie/portdrv_pci.c linux-2.6.38.2/drivers/
26944 }; 27743 };
26945 MODULE_DEVICE_TABLE(pci, port_pci_ids); 27744 MODULE_DEVICE_TABLE(pci, port_pci_ids);
26946 27745
26947diff -urNp linux-2.6.38.2/drivers/pci/probe.c linux-2.6.38.2/drivers/pci/probe.c 27746diff -urNp linux-2.6.38.3/drivers/pci/probe.c linux-2.6.38.3/drivers/pci/probe.c
26948--- linux-2.6.38.2/drivers/pci/probe.c 2011-03-14 21:20:32.000000000 -0400 27747--- linux-2.6.38.3/drivers/pci/probe.c 2011-03-14 21:20:32.000000000 -0400
26949+++ linux-2.6.38.2/drivers/pci/probe.c 2011-03-21 18:31:35.000000000 -0400 27748+++ linux-2.6.38.3/drivers/pci/probe.c 2011-04-17 15:57:32.000000000 -0400
26950@@ -62,14 +62,14 @@ static ssize_t pci_bus_show_cpuaffinity( 27749@@ -62,14 +62,14 @@ static ssize_t pci_bus_show_cpuaffinity(
26951 return ret; 27750 return ret;
26952 } 27751 }
@@ -26973,9 +27772,9 @@ diff -urNp linux-2.6.38.2/drivers/pci/probe.c linux-2.6.38.2/drivers/pci/probe.c
26973 27772
26974 if (!dev->mmio_always_on) { 27773 if (!dev->mmio_always_on) {
26975 pci_read_config_word(dev, PCI_COMMAND, &orig_cmd); 27774 pci_read_config_word(dev, PCI_COMMAND, &orig_cmd);
26976diff -urNp linux-2.6.38.2/drivers/pci/proc.c linux-2.6.38.2/drivers/pci/proc.c 27775diff -urNp linux-2.6.38.3/drivers/pci/proc.c linux-2.6.38.3/drivers/pci/proc.c
26977--- linux-2.6.38.2/drivers/pci/proc.c 2011-03-14 21:20:32.000000000 -0400 27776--- linux-2.6.38.3/drivers/pci/proc.c 2011-03-14 21:20:32.000000000 -0400
26978+++ linux-2.6.38.2/drivers/pci/proc.c 2011-03-21 18:31:35.000000000 -0400 27777+++ linux-2.6.38.3/drivers/pci/proc.c 2011-04-17 15:57:32.000000000 -0400
26979@@ -476,7 +476,16 @@ static const struct file_operations proc 27778@@ -476,7 +476,16 @@ static const struct file_operations proc
26980 static int __init pci_proc_init(void) 27779 static int __init pci_proc_init(void)
26981 { 27780 {
@@ -26993,9 +27792,9 @@ diff -urNp linux-2.6.38.2/drivers/pci/proc.c linux-2.6.38.2/drivers/pci/proc.c
26993 proc_create("devices", 0, proc_bus_pci_dir, 27792 proc_create("devices", 0, proc_bus_pci_dir,
26994 &proc_bus_pci_dev_operations); 27793 &proc_bus_pci_dev_operations);
26995 proc_initialized = 1; 27794 proc_initialized = 1;
26996diff -urNp linux-2.6.38.2/drivers/pcmcia/ti113x.h linux-2.6.38.2/drivers/pcmcia/ti113x.h 27795diff -urNp linux-2.6.38.3/drivers/pcmcia/ti113x.h linux-2.6.38.3/drivers/pcmcia/ti113x.h
26997--- linux-2.6.38.2/drivers/pcmcia/ti113x.h 2011-03-14 21:20:32.000000000 -0400 27796--- linux-2.6.38.3/drivers/pcmcia/ti113x.h 2011-03-14 21:20:32.000000000 -0400
26998+++ linux-2.6.38.2/drivers/pcmcia/ti113x.h 2011-03-21 18:31:35.000000000 -0400 27797+++ linux-2.6.38.3/drivers/pcmcia/ti113x.h 2011-04-17 15:57:32.000000000 -0400
26999@@ -936,7 +936,7 @@ static struct pci_device_id ene_tune_tbl 27798@@ -936,7 +936,7 @@ static struct pci_device_id ene_tune_tbl
27000 DEVID(PCI_VENDOR_ID_MOTOROLA, 0x3410, 0xECC0, PCI_ANY_ID, 27799 DEVID(PCI_VENDOR_ID_MOTOROLA, 0x3410, 0xECC0, PCI_ANY_ID,
27001 ENE_TEST_C9_TLTENABLE | ENE_TEST_C9_PFENABLE, ENE_TEST_C9_TLTENABLE), 27800 ENE_TEST_C9_TLTENABLE | ENE_TEST_C9_PFENABLE, ENE_TEST_C9_TLTENABLE),
@@ -27005,9 +27804,9 @@ diff -urNp linux-2.6.38.2/drivers/pcmcia/ti113x.h linux-2.6.38.2/drivers/pcmcia/
27005 }; 27804 };
27006 27805
27007 static void ene_tune_bridge(struct pcmcia_socket *sock, struct pci_bus *bus) 27806 static void ene_tune_bridge(struct pcmcia_socket *sock, struct pci_bus *bus)
27008diff -urNp linux-2.6.38.2/drivers/pcmcia/yenta_socket.c linux-2.6.38.2/drivers/pcmcia/yenta_socket.c 27807diff -urNp linux-2.6.38.3/drivers/pcmcia/yenta_socket.c linux-2.6.38.3/drivers/pcmcia/yenta_socket.c
27009--- linux-2.6.38.2/drivers/pcmcia/yenta_socket.c 2011-03-14 21:20:32.000000000 -0400 27808--- linux-2.6.38.3/drivers/pcmcia/yenta_socket.c 2011-03-14 21:20:32.000000000 -0400
27010+++ linux-2.6.38.2/drivers/pcmcia/yenta_socket.c 2011-03-21 18:31:35.000000000 -0400 27809+++ linux-2.6.38.3/drivers/pcmcia/yenta_socket.c 2011-04-17 15:57:32.000000000 -0400
27011@@ -1426,7 +1426,7 @@ static struct pci_device_id yenta_table[ 27810@@ -1426,7 +1426,7 @@ static struct pci_device_id yenta_table[
27012 27811
27013 /* match any cardbus bridge */ 27812 /* match any cardbus bridge */
@@ -27017,9 +27816,9 @@ diff -urNp linux-2.6.38.2/drivers/pcmcia/yenta_socket.c linux-2.6.38.2/drivers/p
27017 }; 27816 };
27018 MODULE_DEVICE_TABLE(pci, yenta_table); 27817 MODULE_DEVICE_TABLE(pci, yenta_table);
27019 27818
27020diff -urNp linux-2.6.38.2/drivers/platform/x86/asus-laptop.c linux-2.6.38.2/drivers/platform/x86/asus-laptop.c 27819diff -urNp linux-2.6.38.3/drivers/platform/x86/asus-laptop.c linux-2.6.38.3/drivers/platform/x86/asus-laptop.c
27021--- linux-2.6.38.2/drivers/platform/x86/asus-laptop.c 2011-03-14 21:20:32.000000000 -0400 27820--- linux-2.6.38.3/drivers/platform/x86/asus-laptop.c 2011-03-14 21:20:32.000000000 -0400
27022+++ linux-2.6.38.2/drivers/platform/x86/asus-laptop.c 2011-03-21 18:31:35.000000000 -0400 27821+++ linux-2.6.38.3/drivers/platform/x86/asus-laptop.c 2011-04-17 15:57:32.000000000 -0400
27023@@ -243,7 +243,6 @@ struct asus_laptop { 27822@@ -243,7 +243,6 @@ struct asus_laptop {
27024 struct asus_led gled; 27823 struct asus_led gled;
27025 struct asus_led kled; 27824 struct asus_led kled;
@@ -27028,9 +27827,9 @@ diff -urNp linux-2.6.38.2/drivers/platform/x86/asus-laptop.c linux-2.6.38.2/driv
27028 int wireless_status; 27827 int wireless_status;
27029 bool have_rsts; 27828 bool have_rsts;
27030 int lcd_state; 27829 int lcd_state;
27031diff -urNp linux-2.6.38.2/drivers/pnp/pnpbios/bioscalls.c linux-2.6.38.2/drivers/pnp/pnpbios/bioscalls.c 27830diff -urNp linux-2.6.38.3/drivers/pnp/pnpbios/bioscalls.c linux-2.6.38.3/drivers/pnp/pnpbios/bioscalls.c
27032--- linux-2.6.38.2/drivers/pnp/pnpbios/bioscalls.c 2011-03-14 21:20:32.000000000 -0400 27831--- linux-2.6.38.3/drivers/pnp/pnpbios/bioscalls.c 2011-03-14 21:20:32.000000000 -0400
27033+++ linux-2.6.38.2/drivers/pnp/pnpbios/bioscalls.c 2011-03-21 18:31:35.000000000 -0400 27832+++ linux-2.6.38.3/drivers/pnp/pnpbios/bioscalls.c 2011-04-17 15:57:32.000000000 -0400
27034@@ -59,7 +59,7 @@ do { \ 27833@@ -59,7 +59,7 @@ do { \
27035 set_desc_limit(&gdt[(selname) >> 3], (size) - 1); \ 27834 set_desc_limit(&gdt[(selname) >> 3], (size) - 1); \
27036 } while(0) 27835 } while(0)
@@ -27087,9 +27886,9 @@ diff -urNp linux-2.6.38.2/drivers/pnp/pnpbios/bioscalls.c linux-2.6.38.2/drivers
27087+ 27886+
27088+ pax_close_kernel(); 27887+ pax_close_kernel();
27089 } 27888 }
27090diff -urNp linux-2.6.38.2/drivers/pnp/quirks.c linux-2.6.38.2/drivers/pnp/quirks.c 27889diff -urNp linux-2.6.38.3/drivers/pnp/quirks.c linux-2.6.38.3/drivers/pnp/quirks.c
27091--- linux-2.6.38.2/drivers/pnp/quirks.c 2011-03-14 21:20:32.000000000 -0400 27890--- linux-2.6.38.3/drivers/pnp/quirks.c 2011-03-14 21:20:32.000000000 -0400
27092+++ linux-2.6.38.2/drivers/pnp/quirks.c 2011-03-21 18:31:35.000000000 -0400 27891+++ linux-2.6.38.3/drivers/pnp/quirks.c 2011-04-17 15:57:32.000000000 -0400
27093@@ -322,7 +322,7 @@ static struct pnp_fixup pnp_fixups[] = { 27892@@ -322,7 +322,7 @@ static struct pnp_fixup pnp_fixups[] = {
27094 /* PnP resources that might overlap PCI BARs */ 27893 /* PnP resources that might overlap PCI BARs */
27095 {"PNP0c01", quirk_system_pci_resources}, 27894 {"PNP0c01", quirk_system_pci_resources},
@@ -27099,9 +27898,9 @@ diff -urNp linux-2.6.38.2/drivers/pnp/quirks.c linux-2.6.38.2/drivers/pnp/quirks
27099 }; 27898 };
27100 27899
27101 void pnp_fixup_device(struct pnp_dev *dev) 27900 void pnp_fixup_device(struct pnp_dev *dev)
27102diff -urNp linux-2.6.38.2/drivers/pnp/resource.c linux-2.6.38.2/drivers/pnp/resource.c 27901diff -urNp linux-2.6.38.3/drivers/pnp/resource.c linux-2.6.38.3/drivers/pnp/resource.c
27103--- linux-2.6.38.2/drivers/pnp/resource.c 2011-03-14 21:20:32.000000000 -0400 27902--- linux-2.6.38.3/drivers/pnp/resource.c 2011-03-14 21:20:32.000000000 -0400
27104+++ linux-2.6.38.2/drivers/pnp/resource.c 2011-03-21 18:31:35.000000000 -0400 27903+++ linux-2.6.38.3/drivers/pnp/resource.c 2011-04-17 15:57:32.000000000 -0400
27105@@ -360,7 +360,7 @@ int pnp_check_irq(struct pnp_dev *dev, s 27904@@ -360,7 +360,7 @@ int pnp_check_irq(struct pnp_dev *dev, s
27106 return 1; 27905 return 1;
27107 27906
@@ -27120,9 +27919,9 @@ diff -urNp linux-2.6.38.2/drivers/pnp/resource.c linux-2.6.38.2/drivers/pnp/reso
27120 return 0; 27919 return 0;
27121 27920
27122 /* check if the resource is reserved */ 27921 /* check if the resource is reserved */
27123diff -urNp linux-2.6.38.2/drivers/rtc/rtc-dev.c linux-2.6.38.2/drivers/rtc/rtc-dev.c 27922diff -urNp linux-2.6.38.3/drivers/rtc/rtc-dev.c linux-2.6.38.3/drivers/rtc/rtc-dev.c
27124--- linux-2.6.38.2/drivers/rtc/rtc-dev.c 2011-03-14 21:20:32.000000000 -0400 27923--- linux-2.6.38.3/drivers/rtc/rtc-dev.c 2011-03-14 21:20:32.000000000 -0400
27125+++ linux-2.6.38.2/drivers/rtc/rtc-dev.c 2011-03-21 18:31:35.000000000 -0400 27924+++ linux-2.6.38.3/drivers/rtc/rtc-dev.c 2011-04-17 15:57:32.000000000 -0400
27126@@ -14,6 +14,7 @@ 27925@@ -14,6 +14,7 @@
27127 #include <linux/module.h> 27926 #include <linux/module.h>
27128 #include <linux/rtc.h> 27927 #include <linux/rtc.h>
@@ -27140,21 +27939,9 @@ diff -urNp linux-2.6.38.2/drivers/rtc/rtc-dev.c linux-2.6.38.2/drivers/rtc/rtc-d
27140 return rtc_set_time(rtc, &tm); 27939 return rtc_set_time(rtc, &tm);
27141 27940
27142 case RTC_PIE_ON: 27941 case RTC_PIE_ON:
27143diff -urNp linux-2.6.38.2/drivers/rtc/rtc-ds1511.c linux-2.6.38.2/drivers/rtc/rtc-ds1511.c 27942diff -urNp linux-2.6.38.3/drivers/s390/cio/qdio_debug.c linux-2.6.38.3/drivers/s390/cio/qdio_debug.c
27144--- linux-2.6.38.2/drivers/rtc/rtc-ds1511.c 2011-03-14 21:20:32.000000000 -0400 27943--- linux-2.6.38.3/drivers/s390/cio/qdio_debug.c 2011-03-14 21:20:32.000000000 -0400
27145+++ linux-2.6.38.2/drivers/rtc/rtc-ds1511.c 2011-03-21 18:31:35.000000000 -0400 27944+++ linux-2.6.38.3/drivers/s390/cio/qdio_debug.c 2011-04-17 15:57:32.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
27158@@ -225,7 +225,7 @@ static int qperf_seq_open(struct inode * 27945@@ -225,7 +225,7 @@ static int qperf_seq_open(struct inode *
27159 filp->f_path.dentry->d_inode->i_private); 27946 filp->f_path.dentry->d_inode->i_private);
27160 } 27947 }
@@ -27164,9 +27951,9 @@ diff -urNp linux-2.6.38.2/drivers/s390/cio/qdio_debug.c linux-2.6.38.2/drivers/s
27164 .owner = THIS_MODULE, 27951 .owner = THIS_MODULE,
27165 .open = qperf_seq_open, 27952 .open = qperf_seq_open,
27166 .read = seq_read, 27953 .read = seq_read,
27167diff -urNp linux-2.6.38.2/drivers/scsi/aic94xx/aic94xx_init.c linux-2.6.38.2/drivers/scsi/aic94xx/aic94xx_init.c 27954diff -urNp linux-2.6.38.3/drivers/scsi/aic94xx/aic94xx_init.c linux-2.6.38.3/drivers/scsi/aic94xx/aic94xx_init.c
27168--- linux-2.6.38.2/drivers/scsi/aic94xx/aic94xx_init.c 2011-03-14 21:20:32.000000000 -0400 27955--- linux-2.6.38.3/drivers/scsi/aic94xx/aic94xx_init.c 2011-03-14 21:20:32.000000000 -0400
27169+++ linux-2.6.38.2/drivers/scsi/aic94xx/aic94xx_init.c 2011-03-21 18:31:35.000000000 -0400 27956+++ linux-2.6.38.3/drivers/scsi/aic94xx/aic94xx_init.c 2011-04-17 15:57:32.000000000 -0400
27170@@ -486,7 +486,7 @@ static ssize_t asd_show_update_bios(stru 27957@@ -486,7 +486,7 @@ static ssize_t asd_show_update_bios(stru
27171 flash_error_table[i].reason); 27958 flash_error_table[i].reason);
27172 } 27959 }
@@ -27176,9 +27963,9 @@ diff -urNp linux-2.6.38.2/drivers/scsi/aic94xx/aic94xx_init.c linux-2.6.38.2/dri
27176 asd_show_update_bios, asd_store_update_bios); 27963 asd_show_update_bios, asd_store_update_bios);
27177 27964
27178 static int asd_create_dev_attrs(struct asd_ha_struct *asd_ha) 27965 static int asd_create_dev_attrs(struct asd_ha_struct *asd_ha)
27179diff -urNp linux-2.6.38.2/drivers/scsi/hpsa.c linux-2.6.38.2/drivers/scsi/hpsa.c 27966diff -urNp linux-2.6.38.3/drivers/scsi/hpsa.c linux-2.6.38.3/drivers/scsi/hpsa.c
27180--- linux-2.6.38.2/drivers/scsi/hpsa.c 2011-03-14 21:20:32.000000000 -0400 27967--- linux-2.6.38.3/drivers/scsi/hpsa.c 2011-03-14 21:20:32.000000000 -0400
27181+++ linux-2.6.38.2/drivers/scsi/hpsa.c 2011-03-21 18:31:35.000000000 -0400 27968+++ linux-2.6.38.3/drivers/scsi/hpsa.c 2011-04-17 15:57:32.000000000 -0400
27182@@ -2281,6 +2281,8 @@ static int hpsa_ioctl32_passthru(struct 27969@@ -2281,6 +2281,8 @@ static int hpsa_ioctl32_passthru(struct
27183 int err; 27970 int err;
27184 u32 cp; 27971 u32 cp;
@@ -27188,9 +27975,9 @@ diff -urNp linux-2.6.38.2/drivers/scsi/hpsa.c linux-2.6.38.2/drivers/scsi/hpsa.c
27188 err = 0; 27975 err = 0;
27189 err |= copy_from_user(&arg64.LUN_info, &arg32->LUN_info, 27976 err |= copy_from_user(&arg64.LUN_info, &arg32->LUN_info,
27190 sizeof(arg64.LUN_info)); 27977 sizeof(arg64.LUN_info));
27191diff -urNp linux-2.6.38.2/drivers/scsi/ipr.c linux-2.6.38.2/drivers/scsi/ipr.c 27978diff -urNp linux-2.6.38.3/drivers/scsi/ipr.c linux-2.6.38.3/drivers/scsi/ipr.c
27192--- linux-2.6.38.2/drivers/scsi/ipr.c 2011-03-14 21:20:32.000000000 -0400 27979--- linux-2.6.38.3/drivers/scsi/ipr.c 2011-03-14 21:20:32.000000000 -0400
27193+++ linux-2.6.38.2/drivers/scsi/ipr.c 2011-03-21 18:31:35.000000000 -0400 27980+++ linux-2.6.38.3/drivers/scsi/ipr.c 2011-04-17 15:57:32.000000000 -0400
27194@@ -6207,7 +6207,7 @@ static bool ipr_qc_fill_rtf(struct ata_q 27981@@ -6207,7 +6207,7 @@ static bool ipr_qc_fill_rtf(struct ata_q
27195 return true; 27982 return true;
27196 } 27983 }
@@ -27200,9 +27987,9 @@ diff -urNp linux-2.6.38.2/drivers/scsi/ipr.c linux-2.6.38.2/drivers/scsi/ipr.c
27200 .phy_reset = ipr_ata_phy_reset, 27987 .phy_reset = ipr_ata_phy_reset,
27201 .hardreset = ipr_sata_reset, 27988 .hardreset = ipr_sata_reset,
27202 .post_internal_cmd = ipr_ata_post_internal, 27989 .post_internal_cmd = ipr_ata_post_internal,
27203diff -urNp linux-2.6.38.2/drivers/scsi/libfc/fc_exch.c linux-2.6.38.2/drivers/scsi/libfc/fc_exch.c 27990diff -urNp linux-2.6.38.3/drivers/scsi/libfc/fc_exch.c linux-2.6.38.3/drivers/scsi/libfc/fc_exch.c
27204--- linux-2.6.38.2/drivers/scsi/libfc/fc_exch.c 2011-03-14 21:20:32.000000000 -0400 27991--- linux-2.6.38.3/drivers/scsi/libfc/fc_exch.c 2011-03-14 21:20:32.000000000 -0400
27205+++ linux-2.6.38.2/drivers/scsi/libfc/fc_exch.c 2011-03-21 18:31:35.000000000 -0400 27992+++ linux-2.6.38.3/drivers/scsi/libfc/fc_exch.c 2011-04-17 15:57:32.000000000 -0400
27206@@ -105,12 +105,12 @@ struct fc_exch_mgr { 27993@@ -105,12 +105,12 @@ struct fc_exch_mgr {
27207 * all together if not used XXX 27994 * all together if not used XXX
27208 */ 27995 */
@@ -27324,9 +28111,9 @@ diff -urNp linux-2.6.38.2/drivers/scsi/libfc/fc_exch.c linux-2.6.38.2/drivers/sc
27324 28111
27325 fc_frame_free(fp); 28112 fc_frame_free(fp);
27326 } 28113 }
27327diff -urNp linux-2.6.38.2/drivers/scsi/libsas/sas_ata.c linux-2.6.38.2/drivers/scsi/libsas/sas_ata.c 28114diff -urNp linux-2.6.38.3/drivers/scsi/libsas/sas_ata.c linux-2.6.38.3/drivers/scsi/libsas/sas_ata.c
27328--- linux-2.6.38.2/drivers/scsi/libsas/sas_ata.c 2011-03-14 21:20:32.000000000 -0400 28115--- linux-2.6.38.3/drivers/scsi/libsas/sas_ata.c 2011-03-14 21:20:32.000000000 -0400
27329+++ linux-2.6.38.2/drivers/scsi/libsas/sas_ata.c 2011-03-21 18:31:35.000000000 -0400 28116+++ linux-2.6.38.3/drivers/scsi/libsas/sas_ata.c 2011-04-17 15:57:32.000000000 -0400
27330@@ -348,10 +348,10 @@ static int sas_ata_scr_read(struct ata_l 28117@@ -348,10 +348,10 @@ static int sas_ata_scr_read(struct ata_l
27331 } 28118 }
27332 } 28119 }
@@ -27340,9 +28127,9 @@ diff -urNp linux-2.6.38.2/drivers/scsi/libsas/sas_ata.c linux-2.6.38.2/drivers/s
27340 .qc_prep = ata_noop_qc_prep, 28127 .qc_prep = ata_noop_qc_prep,
27341 .qc_issue = sas_ata_qc_issue, 28128 .qc_issue = sas_ata_qc_issue,
27342 .qc_fill_rtf = sas_ata_qc_fill_rtf, 28129 .qc_fill_rtf = sas_ata_qc_fill_rtf,
27343diff -urNp linux-2.6.38.2/drivers/scsi/mpt2sas/mpt2sas_debug.h linux-2.6.38.2/drivers/scsi/mpt2sas/mpt2sas_debug.h 28130diff -urNp linux-2.6.38.3/drivers/scsi/mpt2sas/mpt2sas_debug.h linux-2.6.38.3/drivers/scsi/mpt2sas/mpt2sas_debug.h
27344--- linux-2.6.38.2/drivers/scsi/mpt2sas/mpt2sas_debug.h 2011-03-14 21:20:32.000000000 -0400 28131--- linux-2.6.38.3/drivers/scsi/mpt2sas/mpt2sas_debug.h 2011-03-14 21:20:32.000000000 -0400
27345+++ linux-2.6.38.2/drivers/scsi/mpt2sas/mpt2sas_debug.h 2011-03-21 18:31:35.000000000 -0400 28132+++ linux-2.6.38.3/drivers/scsi/mpt2sas/mpt2sas_debug.h 2011-04-17 15:57:32.000000000 -0400
27346@@ -79,7 +79,7 @@ 28133@@ -79,7 +79,7 @@
27347 CMD; \ 28134 CMD; \
27348 } 28135 }
@@ -27352,9 +28139,9 @@ diff -urNp linux-2.6.38.2/drivers/scsi/mpt2sas/mpt2sas_debug.h linux-2.6.38.2/dr
27352 #endif /* CONFIG_SCSI_MPT2SAS_LOGGING */ 28139 #endif /* CONFIG_SCSI_MPT2SAS_LOGGING */
27353 28140
27354 28141
27355diff -urNp linux-2.6.38.2/drivers/scsi/qla2xxx/qla_os.c linux-2.6.38.2/drivers/scsi/qla2xxx/qla_os.c 28142diff -urNp linux-2.6.38.3/drivers/scsi/qla2xxx/qla_os.c linux-2.6.38.3/drivers/scsi/qla2xxx/qla_os.c
27356--- linux-2.6.38.2/drivers/scsi/qla2xxx/qla_os.c 2011-03-14 21:20:32.000000000 -0400 28143--- linux-2.6.38.3/drivers/scsi/qla2xxx/qla_os.c 2011-03-14 21:20:32.000000000 -0400
27357+++ linux-2.6.38.2/drivers/scsi/qla2xxx/qla_os.c 2011-03-21 18:31:35.000000000 -0400 28144+++ linux-2.6.38.3/drivers/scsi/qla2xxx/qla_os.c 2011-04-17 15:57:32.000000000 -0400
27358@@ -4096,7 +4096,7 @@ static struct pci_driver qla2xxx_pci_dri 28145@@ -4096,7 +4096,7 @@ static struct pci_driver qla2xxx_pci_dri
27359 .err_handler = &qla2xxx_err_handler, 28146 .err_handler = &qla2xxx_err_handler,
27360 }; 28147 };
@@ -27364,9 +28151,9 @@ diff -urNp linux-2.6.38.2/drivers/scsi/qla2xxx/qla_os.c linux-2.6.38.2/drivers/s
27364 .owner = THIS_MODULE, 28151 .owner = THIS_MODULE,
27365 .llseek = noop_llseek, 28152 .llseek = noop_llseek,
27366 }; 28153 };
27367diff -urNp linux-2.6.38.2/drivers/scsi/scsi_logging.h linux-2.6.38.2/drivers/scsi/scsi_logging.h 28154diff -urNp linux-2.6.38.3/drivers/scsi/scsi_logging.h linux-2.6.38.3/drivers/scsi/scsi_logging.h
27368--- linux-2.6.38.2/drivers/scsi/scsi_logging.h 2011-03-14 21:20:32.000000000 -0400 28155--- linux-2.6.38.3/drivers/scsi/scsi_logging.h 2011-03-14 21:20:32.000000000 -0400
27369+++ linux-2.6.38.2/drivers/scsi/scsi_logging.h 2011-03-21 18:31:35.000000000 -0400 28156+++ linux-2.6.38.3/drivers/scsi/scsi_logging.h 2011-04-17 15:57:32.000000000 -0400
27370@@ -51,7 +51,7 @@ do { \ 28157@@ -51,7 +51,7 @@ do { \
27371 } while (0); \ 28158 } while (0); \
27372 } while (0) 28159 } while (0)
@@ -27376,21 +28163,21 @@ diff -urNp linux-2.6.38.2/drivers/scsi/scsi_logging.h linux-2.6.38.2/drivers/scs
27376 #endif /* CONFIG_SCSI_LOGGING */ 28163 #endif /* CONFIG_SCSI_LOGGING */
27377 28164
27378 /* 28165 /*
27379diff -urNp linux-2.6.38.2/drivers/scsi/scsi_transport_iscsi.c linux-2.6.38.2/drivers/scsi/scsi_transport_iscsi.c 28166diff -urNp linux-2.6.38.3/drivers/scsi/scsi_transport_fc.c linux-2.6.38.3/drivers/scsi/scsi_transport_fc.c
27380--- linux-2.6.38.2/drivers/scsi/scsi_transport_iscsi.c 2011-03-14 21:20:32.000000000 -0400 28167--- linux-2.6.38.3/drivers/scsi/scsi_transport_fc.c 2011-03-14 21:20:32.000000000 -0400
27381+++ linux-2.6.38.2/drivers/scsi/scsi_transport_iscsi.c 2011-03-21 18:31:35.000000000 -0400 28168+++ linux-2.6.38.3/drivers/scsi/scsi_transport_fc.c 2011-04-17 15:57:32.000000000 -0400
27382@@ -1847,7 +1847,7 @@ store_priv_session_##field(struct device 28169@@ -836,7 +836,7 @@ static int fc_str_to_dev_loss(const char
27383 #define iscsi_priv_session_rw_attr(field, format) \ 28170 char *cp;
27384 iscsi_priv_session_attr_show(field, format) \ 28171
27385 iscsi_priv_session_attr_store(field) \ 28172 *val = simple_strtoul(buf, &cp, 0);
27386-static ISCSI_CLASS_ATTR(priv_sess, field, S_IRUGO | S_IWUGO, \ 28173- if ((*cp && (*cp != '\n')) || (*val < 0))
27387+static ISCSI_CLASS_ATTR(priv_sess, field, S_IRUGO | S_IWUSR, \ 28174+ if (*cp && (*cp != '\n'))
27388 show_priv_session_##field, \ 28175 return -EINVAL;
27389 store_priv_session_##field) 28176 /*
27390 iscsi_priv_session_rw_attr(recovery_tmo, "%d"); 28177 * Check for overflow; dev_loss_tmo is u32
27391diff -urNp linux-2.6.38.2/drivers/scsi/sg.c linux-2.6.38.2/drivers/scsi/sg.c 28178diff -urNp linux-2.6.38.3/drivers/scsi/sg.c linux-2.6.38.3/drivers/scsi/sg.c
27392--- linux-2.6.38.2/drivers/scsi/sg.c 2011-03-14 21:20:32.000000000 -0400 28179--- linux-2.6.38.3/drivers/scsi/sg.c 2011-03-14 21:20:32.000000000 -0400
27393+++ linux-2.6.38.2/drivers/scsi/sg.c 2011-03-21 18:31:35.000000000 -0400 28180+++ linux-2.6.38.3/drivers/scsi/sg.c 2011-04-17 15:57:32.000000000 -0400
27394@@ -2310,7 +2310,7 @@ struct sg_proc_leaf { 28181@@ -2310,7 +2310,7 @@ struct sg_proc_leaf {
27395 const struct file_operations * fops; 28182 const struct file_operations * fops;
27396 }; 28183 };
@@ -27409,9 +28196,9 @@ diff -urNp linux-2.6.38.2/drivers/scsi/sg.c linux-2.6.38.2/drivers/scsi/sg.c
27409 28196
27410 sg_proc_sgp = proc_mkdir(sg_proc_sg_dirname, NULL); 28197 sg_proc_sgp = proc_mkdir(sg_proc_sg_dirname, NULL);
27411 if (!sg_proc_sgp) 28198 if (!sg_proc_sgp)
27412diff -urNp linux-2.6.38.2/drivers/staging/autofs/root.c linux-2.6.38.2/drivers/staging/autofs/root.c 28199diff -urNp linux-2.6.38.3/drivers/staging/autofs/root.c linux-2.6.38.3/drivers/staging/autofs/root.c
27413--- linux-2.6.38.2/drivers/staging/autofs/root.c 2011-03-14 21:20:32.000000000 -0400 28200--- linux-2.6.38.3/drivers/staging/autofs/root.c 2011-03-14 21:20:32.000000000 -0400
27414+++ linux-2.6.38.2/drivers/staging/autofs/root.c 2011-03-28 16:57:18.000000000 -0400 28201+++ linux-2.6.38.3/drivers/staging/autofs/root.c 2011-04-17 15:57:32.000000000 -0400
27415@@ -311,7 +311,8 @@ static int autofs_root_symlink(struct in 28202@@ -311,7 +311,8 @@ static int autofs_root_symlink(struct in
27416 set_bit(n,sbi->symlink_bitmap); 28203 set_bit(n,sbi->symlink_bitmap);
27417 sl = &sbi->symlink[n]; 28204 sl = &sbi->symlink[n];
@@ -27422,9 +28209,9 @@ diff -urNp linux-2.6.38.2/drivers/staging/autofs/root.c linux-2.6.38.2/drivers/s
27422 if (!sl->data) { 28209 if (!sl->data) {
27423 clear_bit(n,sbi->symlink_bitmap); 28210 clear_bit(n,sbi->symlink_bitmap);
27424 unlock_kernel(); 28211 unlock_kernel();
27425diff -urNp linux-2.6.38.2/drivers/staging/bcm/Bcmchar.c linux-2.6.38.2/drivers/staging/bcm/Bcmchar.c 28212diff -urNp linux-2.6.38.3/drivers/staging/bcm/Bcmchar.c linux-2.6.38.3/drivers/staging/bcm/Bcmchar.c
27426--- linux-2.6.38.2/drivers/staging/bcm/Bcmchar.c 2011-03-14 21:20:32.000000000 -0400 28213--- linux-2.6.38.3/drivers/staging/bcm/Bcmchar.c 2011-03-14 21:20:32.000000000 -0400
27427+++ linux-2.6.38.2/drivers/staging/bcm/Bcmchar.c 2011-03-21 18:31:35.000000000 -0400 28214+++ linux-2.6.38.3/drivers/staging/bcm/Bcmchar.c 2011-04-17 15:57:32.000000000 -0400
27428@@ -2093,7 +2093,7 @@ static long bcm_char_ioctl(struct file * 28215@@ -2093,7 +2093,7 @@ static long bcm_char_ioctl(struct file *
27429 } 28216 }
27430 28217
@@ -27434,9 +28221,9 @@ diff -urNp linux-2.6.38.2/drivers/staging/bcm/Bcmchar.c linux-2.6.38.2/drivers/s
27434 .owner = THIS_MODULE, 28221 .owner = THIS_MODULE,
27435 .open = bcm_char_open, 28222 .open = bcm_char_open,
27436 .release = bcm_char_release, 28223 .release = bcm_char_release,
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 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
27438--- linux-2.6.38.2/drivers/staging/brcm80211/brcmfmac/dhd_linux.c 2011-03-14 21:20:32.000000000 -0400 28225--- linux-2.6.38.3/drivers/staging/brcm80211/brcmfmac/dhd_linux.c 2011-03-14 21:20:32.000000000 -0400
27439+++ linux-2.6.38.2/drivers/staging/brcm80211/brcmfmac/dhd_linux.c 2011-03-21 18:31:35.000000000 -0400 28226+++ linux-2.6.38.3/drivers/staging/brcm80211/brcmfmac/dhd_linux.c 2011-04-17 15:57:32.000000000 -0400
27440@@ -863,14 +863,14 @@ static void dhd_op_if(dhd_if_t *ifp) 28227@@ -863,14 +863,14 @@ static void dhd_op_if(dhd_if_t *ifp)
27441 free_netdev(ifp->net); 28228 free_netdev(ifp->net);
27442 } 28229 }
@@ -27492,9 +28279,9 @@ diff -urNp linux-2.6.38.2/drivers/staging/brcm80211/brcmfmac/dhd_linux.c linux-2
27492 28279
27493 #if defined(CUSTOMER_HW2) && defined(CONFIG_WIFI_CONTROL_FUNC) 28280 #if defined(CUSTOMER_HW2) && defined(CONFIG_WIFI_CONTROL_FUNC)
27494 g_bus = bus; 28281 g_bus = bus;
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 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
27496--- linux-2.6.38.2/drivers/staging/brcm80211/brcmfmac/wl_iw.c 2011-03-14 21:20:32.000000000 -0400 28283--- linux-2.6.38.3/drivers/staging/brcm80211/brcmfmac/wl_iw.c 2011-03-14 21:20:32.000000000 -0400
27497+++ linux-2.6.38.2/drivers/staging/brcm80211/brcmfmac/wl_iw.c 2011-03-21 18:31:35.000000000 -0400 28284+++ linux-2.6.38.3/drivers/staging/brcm80211/brcmfmac/wl_iw.c 2011-04-17 15:57:32.000000000 -0400
27498@@ -513,7 +513,7 @@ wl_iw_get_range(struct net_device *dev, 28285@@ -513,7 +513,7 @@ wl_iw_get_range(struct net_device *dev,
27499 list = (wl_u32_list_t *) channels; 28286 list = (wl_u32_list_t *) channels;
27500 28287
@@ -27504,9 +28291,9 @@ diff -urNp linux-2.6.38.2/drivers/staging/brcm80211/brcmfmac/wl_iw.c linux-2.6.3
27504 28291
27505 range->min_nwid = range->max_nwid = 0; 28292 range->min_nwid = range->max_nwid = 0;
27506 28293
27507diff -urNp linux-2.6.38.2/drivers/staging/comedi/comedi_fops.c linux-2.6.38.2/drivers/staging/comedi/comedi_fops.c 28294diff -urNp linux-2.6.38.3/drivers/staging/comedi/comedi_fops.c linux-2.6.38.3/drivers/staging/comedi/comedi_fops.c
27508--- linux-2.6.38.2/drivers/staging/comedi/comedi_fops.c 2011-03-14 21:20:32.000000000 -0400 28295--- linux-2.6.38.3/drivers/staging/comedi/comedi_fops.c 2011-03-14 21:20:32.000000000 -0400
27509+++ linux-2.6.38.2/drivers/staging/comedi/comedi_fops.c 2011-03-21 18:31:35.000000000 -0400 28296+++ linux-2.6.38.3/drivers/staging/comedi/comedi_fops.c 2011-04-17 15:57:32.000000000 -0400
27510@@ -1426,7 +1426,7 @@ static void comedi_unmap(struct vm_area_ 28297@@ -1426,7 +1426,7 @@ static void comedi_unmap(struct vm_area_
27511 mutex_unlock(&dev->mutex); 28298 mutex_unlock(&dev->mutex);
27512 } 28299 }
@@ -27516,9 +28303,9 @@ diff -urNp linux-2.6.38.2/drivers/staging/comedi/comedi_fops.c linux-2.6.38.2/dr
27516 .close = comedi_unmap, 28303 .close = comedi_unmap,
27517 }; 28304 };
27518 28305
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 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
27520--- linux-2.6.38.2/drivers/staging/ft1000/ft1000-usb/ft1000_debug.c 2011-03-14 21:20:32.000000000 -0400 28307--- linux-2.6.38.3/drivers/staging/ft1000/ft1000-usb/ft1000_debug.c 2011-03-14 21:20: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 28308+++ linux-2.6.38.3/drivers/staging/ft1000/ft1000-usb/ft1000_debug.c 2011-04-17 15:57:32.000000000 -0400
27522@@ -55,7 +55,7 @@ int numofmsgbuf = 0; 28309@@ -55,7 +55,7 @@ int numofmsgbuf = 0;
27523 // 28310 //
27524 // Table of entry-point routines for char device 28311 // Table of entry-point routines for char device
@@ -27528,9 +28315,9 @@ diff -urNp linux-2.6.38.2/drivers/staging/ft1000/ft1000-usb/ft1000_debug.c linux
27528 { 28315 {
27529 .unlocked_ioctl = ft1000_ioctl, 28316 .unlocked_ioctl = ft1000_ioctl,
27530 .poll = ft1000_poll_dev, 28317 .poll = ft1000_poll_dev,
27531diff -urNp linux-2.6.38.2/drivers/staging/go7007/go7007-v4l2.c linux-2.6.38.2/drivers/staging/go7007/go7007-v4l2.c 28318diff -urNp linux-2.6.38.3/drivers/staging/go7007/go7007-v4l2.c linux-2.6.38.3/drivers/staging/go7007/go7007-v4l2.c
27532--- linux-2.6.38.2/drivers/staging/go7007/go7007-v4l2.c 2011-03-14 21:20:32.000000000 -0400 28319--- linux-2.6.38.3/drivers/staging/go7007/go7007-v4l2.c 2011-03-14 21:20:32.000000000 -0400
27533+++ linux-2.6.38.2/drivers/staging/go7007/go7007-v4l2.c 2011-03-21 18:31:35.000000000 -0400 28320+++ linux-2.6.38.3/drivers/staging/go7007/go7007-v4l2.c 2011-04-17 15:57:32.000000000 -0400
27534@@ -1672,7 +1672,7 @@ static int go7007_vm_fault(struct vm_are 28321@@ -1672,7 +1672,7 @@ static int go7007_vm_fault(struct vm_are
27535 return 0; 28322 return 0;
27536 } 28323 }
@@ -27540,9 +28327,9 @@ diff -urNp linux-2.6.38.2/drivers/staging/go7007/go7007-v4l2.c linux-2.6.38.2/dr
27540 .open = go7007_vm_open, 28327 .open = go7007_vm_open,
27541 .close = go7007_vm_close, 28328 .close = go7007_vm_close,
27542 .fault = go7007_vm_fault, 28329 .fault = go7007_vm_fault,
27543diff -urNp linux-2.6.38.2/drivers/staging/hv/hv.c linux-2.6.38.2/drivers/staging/hv/hv.c 28330diff -urNp linux-2.6.38.3/drivers/staging/hv/hv.c linux-2.6.38.3/drivers/staging/hv/hv.c
27544--- linux-2.6.38.2/drivers/staging/hv/hv.c 2011-03-14 21:20:32.000000000 -0400 28331--- linux-2.6.38.3/drivers/staging/hv/hv.c 2011-03-14 21:20:32.000000000 -0400
27545+++ linux-2.6.38.2/drivers/staging/hv/hv.c 2011-03-21 18:31:35.000000000 -0400 28332+++ linux-2.6.38.3/drivers/staging/hv/hv.c 2011-04-17 15:57:32.000000000 -0400
27546@@ -163,7 +163,7 @@ static u64 do_hypercall(u64 control, voi 28333@@ -163,7 +163,7 @@ static u64 do_hypercall(u64 control, voi
27547 u64 output_address = (output) ? virt_to_phys(output) : 0; 28334 u64 output_address = (output) ? virt_to_phys(output) : 0;
27548 u32 output_address_hi = output_address >> 32; 28335 u32 output_address_hi = output_address >> 32;
@@ -27552,9 +28339,9 @@ diff -urNp linux-2.6.38.2/drivers/staging/hv/hv.c linux-2.6.38.2/drivers/staging
27552 28339
27553 DPRINT_DBG(VMBUS, "Hypercall <control %llx input %p output %p>", 28340 DPRINT_DBG(VMBUS, "Hypercall <control %llx input %p output %p>",
27554 control, input, output); 28341 control, input, output);
27555diff -urNp linux-2.6.38.2/drivers/staging/phison/phison.c linux-2.6.38.2/drivers/staging/phison/phison.c 28342diff -urNp linux-2.6.38.3/drivers/staging/phison/phison.c linux-2.6.38.3/drivers/staging/phison/phison.c
27556--- linux-2.6.38.2/drivers/staging/phison/phison.c 2011-03-14 21:20:32.000000000 -0400 28343--- linux-2.6.38.3/drivers/staging/phison/phison.c 2011-03-14 21:20:32.000000000 -0400
27557+++ linux-2.6.38.2/drivers/staging/phison/phison.c 2011-03-21 18:31:35.000000000 -0400 28344+++ linux-2.6.38.3/drivers/staging/phison/phison.c 2011-04-17 15:57:32.000000000 -0400
27558@@ -43,7 +43,7 @@ static struct scsi_host_template phison_ 28345@@ -43,7 +43,7 @@ static struct scsi_host_template phison_
27559 ATA_BMDMA_SHT(DRV_NAME), 28346 ATA_BMDMA_SHT(DRV_NAME),
27560 }; 28347 };
@@ -27564,9 +28351,9 @@ diff -urNp linux-2.6.38.2/drivers/staging/phison/phison.c linux-2.6.38.2/drivers
27564 .inherits = &ata_bmdma_port_ops, 28351 .inherits = &ata_bmdma_port_ops,
27565 .prereset = phison_pre_reset, 28352 .prereset = phison_pre_reset,
27566 }; 28353 };
27567diff -urNp linux-2.6.38.2/drivers/staging/pohmelfs/inode.c linux-2.6.38.2/drivers/staging/pohmelfs/inode.c 28354diff -urNp linux-2.6.38.3/drivers/staging/pohmelfs/inode.c linux-2.6.38.3/drivers/staging/pohmelfs/inode.c
27568--- linux-2.6.38.2/drivers/staging/pohmelfs/inode.c 2011-03-14 21:20:32.000000000 -0400 28355--- linux-2.6.38.3/drivers/staging/pohmelfs/inode.c 2011-03-14 21:20:32.000000000 -0400
27569+++ linux-2.6.38.2/drivers/staging/pohmelfs/inode.c 2011-03-21 18:31:35.000000000 -0400 28356+++ linux-2.6.38.3/drivers/staging/pohmelfs/inode.c 2011-04-17 15:57:32.000000000 -0400
27570@@ -1855,7 +1855,7 @@ static int pohmelfs_fill_super(struct su 28357@@ -1855,7 +1855,7 @@ static int pohmelfs_fill_super(struct su
27571 mutex_init(&psb->mcache_lock); 28358 mutex_init(&psb->mcache_lock);
27572 psb->mcache_root = RB_ROOT; 28359 psb->mcache_root = RB_ROOT;
@@ -27576,9 +28363,9 @@ diff -urNp linux-2.6.38.2/drivers/staging/pohmelfs/inode.c linux-2.6.38.2/driver
27576 28363
27577 psb->trans_max_pages = 100; 28364 psb->trans_max_pages = 100;
27578 28365
27579diff -urNp linux-2.6.38.2/drivers/staging/pohmelfs/mcache.c linux-2.6.38.2/drivers/staging/pohmelfs/mcache.c 28366diff -urNp linux-2.6.38.3/drivers/staging/pohmelfs/mcache.c linux-2.6.38.3/drivers/staging/pohmelfs/mcache.c
27580--- linux-2.6.38.2/drivers/staging/pohmelfs/mcache.c 2011-03-14 21:20:32.000000000 -0400 28367--- linux-2.6.38.3/drivers/staging/pohmelfs/mcache.c 2011-03-14 21:20:32.000000000 -0400
27581+++ linux-2.6.38.2/drivers/staging/pohmelfs/mcache.c 2011-03-21 18:31:35.000000000 -0400 28368+++ linux-2.6.38.3/drivers/staging/pohmelfs/mcache.c 2011-04-17 15:57:32.000000000 -0400
27582@@ -121,7 +121,7 @@ struct pohmelfs_mcache *pohmelfs_mcache_ 28369@@ -121,7 +121,7 @@ struct pohmelfs_mcache *pohmelfs_mcache_
27583 m->data = data; 28370 m->data = data;
27584 m->start = start; 28371 m->start = start;
@@ -27588,9 +28375,9 @@ diff -urNp linux-2.6.38.2/drivers/staging/pohmelfs/mcache.c linux-2.6.38.2/drive
27588 28375
27589 mutex_lock(&psb->mcache_lock); 28376 mutex_lock(&psb->mcache_lock);
27590 err = pohmelfs_mcache_insert(psb, m); 28377 err = pohmelfs_mcache_insert(psb, m);
27591diff -urNp linux-2.6.38.2/drivers/staging/pohmelfs/netfs.h linux-2.6.38.2/drivers/staging/pohmelfs/netfs.h 28378diff -urNp linux-2.6.38.3/drivers/staging/pohmelfs/netfs.h linux-2.6.38.3/drivers/staging/pohmelfs/netfs.h
27592--- linux-2.6.38.2/drivers/staging/pohmelfs/netfs.h 2011-03-14 21:20:32.000000000 -0400 28379--- linux-2.6.38.3/drivers/staging/pohmelfs/netfs.h 2011-03-14 21:20:32.000000000 -0400
27593+++ linux-2.6.38.2/drivers/staging/pohmelfs/netfs.h 2011-03-21 18:31:35.000000000 -0400 28380+++ linux-2.6.38.3/drivers/staging/pohmelfs/netfs.h 2011-04-17 15:57:32.000000000 -0400
27594@@ -571,7 +571,7 @@ struct pohmelfs_config; 28381@@ -571,7 +571,7 @@ struct pohmelfs_config;
27595 struct pohmelfs_sb { 28382 struct pohmelfs_sb {
27596 struct rb_root mcache_root; 28383 struct rb_root mcache_root;
@@ -27600,9 +28387,9 @@ diff -urNp linux-2.6.38.2/drivers/staging/pohmelfs/netfs.h linux-2.6.38.2/driver
27600 unsigned long mcache_timeout; 28387 unsigned long mcache_timeout;
27601 28388
27602 unsigned int idx; 28389 unsigned int idx;
27603diff -urNp linux-2.6.38.2/drivers/staging/rtl8192u/ieee80211/proc.c linux-2.6.38.2/drivers/staging/rtl8192u/ieee80211/proc.c 28390diff -urNp linux-2.6.38.3/drivers/staging/rtl8192u/ieee80211/proc.c linux-2.6.38.3/drivers/staging/rtl8192u/ieee80211/proc.c
27604--- linux-2.6.38.2/drivers/staging/rtl8192u/ieee80211/proc.c 2011-03-14 21:20:32.000000000 -0400 28391--- linux-2.6.38.3/drivers/staging/rtl8192u/ieee80211/proc.c 2011-03-14 21:20:32.000000000 -0400
27605+++ linux-2.6.38.2/drivers/staging/rtl8192u/ieee80211/proc.c 2011-03-21 18:31:35.000000000 -0400 28392+++ linux-2.6.38.3/drivers/staging/rtl8192u/ieee80211/proc.c 2011-04-17 15:57:32.000000000 -0400
27606@@ -99,7 +99,7 @@ static int crypto_info_open(struct inode 28393@@ -99,7 +99,7 @@ static int crypto_info_open(struct inode
27607 return seq_open(file, &crypto_seq_ops); 28394 return seq_open(file, &crypto_seq_ops);
27608 } 28395 }
@@ -27612,9 +28399,9 @@ diff -urNp linux-2.6.38.2/drivers/staging/rtl8192u/ieee80211/proc.c linux-2.6.38
27612 .open = crypto_info_open, 28399 .open = crypto_info_open,
27613 .read = seq_read, 28400 .read = seq_read,
27614 .llseek = seq_lseek, 28401 .llseek = seq_lseek,
27615diff -urNp linux-2.6.38.2/drivers/staging/spectra/ffsport.c linux-2.6.38.2/drivers/staging/spectra/ffsport.c 28402diff -urNp linux-2.6.38.3/drivers/staging/spectra/ffsport.c linux-2.6.38.3/drivers/staging/spectra/ffsport.c
27616--- linux-2.6.38.2/drivers/staging/spectra/ffsport.c 2011-03-14 21:20:32.000000000 -0400 28403--- linux-2.6.38.3/drivers/staging/spectra/ffsport.c 2011-03-14 21:20:32.000000000 -0400
27617+++ linux-2.6.38.2/drivers/staging/spectra/ffsport.c 2011-03-21 18:31:35.000000000 -0400 28404+++ linux-2.6.38.3/drivers/staging/spectra/ffsport.c 2011-04-17 15:57:32.000000000 -0400
27618@@ -604,7 +604,7 @@ int GLOB_SBD_unlocked_ioctl(struct block 28405@@ -604,7 +604,7 @@ int GLOB_SBD_unlocked_ioctl(struct block
27619 return ret; 28406 return ret;
27620 } 28407 }
@@ -27624,9 +28411,9 @@ diff -urNp linux-2.6.38.2/drivers/staging/spectra/ffsport.c linux-2.6.38.2/drive
27624 .owner = THIS_MODULE, 28411 .owner = THIS_MODULE,
27625 .open = GLOB_SBD_open, 28412 .open = GLOB_SBD_open,
27626 .release = GLOB_SBD_release, 28413 .release = GLOB_SBD_release,
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 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
27628--- linux-2.6.38.2/drivers/staging/vme/devices/vme_user.c 2011-03-14 21:20:32.000000000 -0400 28415--- linux-2.6.38.3/drivers/staging/vme/devices/vme_user.c 2011-03-14 21:20:32.000000000 -0400
27629+++ linux-2.6.38.2/drivers/staging/vme/devices/vme_user.c 2011-03-21 18:31:35.000000000 -0400 28416+++ linux-2.6.38.3/drivers/staging/vme/devices/vme_user.c 2011-04-17 15:57:32.000000000 -0400
27630@@ -138,7 +138,7 @@ static long vme_user_unlocked_ioctl(stru 28417@@ -138,7 +138,7 @@ static long vme_user_unlocked_ioctl(stru
27631 static int __devinit vme_user_probe(struct device *, int, int); 28418 static int __devinit vme_user_probe(struct device *, int, int);
27632 static int __devexit vme_user_remove(struct device *, int, int); 28419 static int __devexit vme_user_remove(struct device *, int, int);
@@ -27636,9 +28423,9 @@ diff -urNp linux-2.6.38.2/drivers/staging/vme/devices/vme_user.c linux-2.6.38.2/
27636 .open = vme_user_open, 28423 .open = vme_user_open,
27637 .release = vme_user_release, 28424 .release = vme_user_release,
27638 .read = vme_user_read, 28425 .read = vme_user_read,
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 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
27640--- linux-2.6.38.2/drivers/staging/westbridge/astoria/block/cyasblkdev_block.c 2011-03-14 21:20:32.000000000 -0400 28427--- linux-2.6.38.3/drivers/staging/westbridge/astoria/block/cyasblkdev_block.c 2011-03-14 21:20: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 28428+++ linux-2.6.38.3/drivers/staging/westbridge/astoria/block/cyasblkdev_block.c 2011-04-17 15:57:32.000000000 -0400
27642@@ -426,7 +426,7 @@ int cyasblkdev_revalidate_disk(struct ge 28429@@ -426,7 +426,7 @@ int cyasblkdev_revalidate_disk(struct ge
27643 28430
27644 28431
@@ -27648,9 +28435,9 @@ diff -urNp linux-2.6.38.2/drivers/staging/westbridge/astoria/block/cyasblkdev_bl
27648 .open = cyasblkdev_blk_open, 28435 .open = cyasblkdev_blk_open,
27649 .release = cyasblkdev_blk_release, 28436 .release = cyasblkdev_blk_release,
27650 .ioctl = cyasblkdev_blk_ioctl, 28437 .ioctl = cyasblkdev_blk_ioctl,
27651diff -urNp linux-2.6.38.2/drivers/tty/hvc/hvc_console.h linux-2.6.38.2/drivers/tty/hvc/hvc_console.h 28438diff -urNp linux-2.6.38.3/drivers/tty/hvc/hvc_console.h linux-2.6.38.3/drivers/tty/hvc/hvc_console.h
27652--- linux-2.6.38.2/drivers/tty/hvc/hvc_console.h 2011-03-14 21:20:32.000000000 -0400 28439--- linux-2.6.38.3/drivers/tty/hvc/hvc_console.h 2011-03-14 21:20:32.000000000 -0400
27653+++ linux-2.6.38.2/drivers/tty/hvc/hvc_console.h 2011-03-21 18:31:35.000000000 -0400 28440+++ linux-2.6.38.3/drivers/tty/hvc/hvc_console.h 2011-04-17 15:57:32.000000000 -0400
27654@@ -82,6 +82,7 @@ extern int hvc_instantiate(uint32_t vter 28441@@ -82,6 +82,7 @@ extern int hvc_instantiate(uint32_t vter
27655 /* register a vterm for hvc tty operation (module_init or hotplug add) */ 28442 /* register a vterm for hvc tty operation (module_init or hotplug add) */
27656 extern struct hvc_struct * hvc_alloc(uint32_t vtermno, int data, 28443 extern struct hvc_struct * hvc_alloc(uint32_t vtermno, int data,
@@ -27659,9 +28446,9 @@ diff -urNp linux-2.6.38.2/drivers/tty/hvc/hvc_console.h linux-2.6.38.2/drivers/t
27659 /* remove a vterm from hvc tty operation (module_exit or hotplug remove) */ 28446 /* remove a vterm from hvc tty operation (module_exit or hotplug remove) */
27660 extern int hvc_remove(struct hvc_struct *hp); 28447 extern int hvc_remove(struct hvc_struct *hp);
27661 28448
27662diff -urNp linux-2.6.38.2/drivers/tty/hvc/hvcs.c linux-2.6.38.2/drivers/tty/hvc/hvcs.c 28449diff -urNp linux-2.6.38.3/drivers/tty/hvc/hvcs.c linux-2.6.38.3/drivers/tty/hvc/hvcs.c
27663--- linux-2.6.38.2/drivers/tty/hvc/hvcs.c 2011-03-14 21:20:32.000000000 -0400 28450--- linux-2.6.38.3/drivers/tty/hvc/hvcs.c 2011-03-14 21:20:32.000000000 -0400
27664+++ linux-2.6.38.2/drivers/tty/hvc/hvcs.c 2011-03-21 18:31:35.000000000 -0400 28451+++ linux-2.6.38.3/drivers/tty/hvc/hvcs.c 2011-04-17 15:57:32.000000000 -0400
27665@@ -83,6 +83,7 @@ 28452@@ -83,6 +83,7 @@
27666 #include <asm/hvcserver.h> 28453 #include <asm/hvcserver.h>
27667 #include <asm/uaccess.h> 28454 #include <asm/uaccess.h>
@@ -27764,9 +28551,9 @@ diff -urNp linux-2.6.38.2/drivers/tty/hvc/hvcs.c linux-2.6.38.2/drivers/tty/hvc/
27764 return 0; 28551 return 0;
27765 28552
27766 return HVCS_BUFF_LEN - hvcsd->chars_in_buffer; 28553 return HVCS_BUFF_LEN - hvcsd->chars_in_buffer;
27767diff -urNp linux-2.6.38.2/drivers/tty/hvc/hvc_xen.c linux-2.6.38.2/drivers/tty/hvc/hvc_xen.c 28554diff -urNp linux-2.6.38.3/drivers/tty/hvc/hvc_xen.c linux-2.6.38.3/drivers/tty/hvc/hvc_xen.c
27768--- linux-2.6.38.2/drivers/tty/hvc/hvc_xen.c 2011-03-14 21:20:32.000000000 -0400 28555--- linux-2.6.38.3/drivers/tty/hvc/hvc_xen.c 2011-03-14 21:20:32.000000000 -0400
27769+++ linux-2.6.38.2/drivers/tty/hvc/hvc_xen.c 2011-03-21 18:31:35.000000000 -0400 28556+++ linux-2.6.38.3/drivers/tty/hvc/hvc_xen.c 2011-04-17 15:57:32.000000000 -0400
27770@@ -123,7 +123,7 @@ static int domU_read_console(uint32_t vt 28557@@ -123,7 +123,7 @@ static int domU_read_console(uint32_t vt
27771 return recv; 28558 return recv;
27772 } 28559 }
@@ -27803,9 +28590,9 @@ diff -urNp linux-2.6.38.2/drivers/tty/hvc/hvc_xen.c linux-2.6.38.2/drivers/tty/h
27803 28590
27804 if (!xen_pv_domain()) 28591 if (!xen_pv_domain())
27805 return 0; 28592 return 0;
27806diff -urNp linux-2.6.38.2/drivers/tty/n_gsm.c linux-2.6.38.2/drivers/tty/n_gsm.c 28593diff -urNp linux-2.6.38.3/drivers/tty/n_gsm.c linux-2.6.38.3/drivers/tty/n_gsm.c
27807--- linux-2.6.38.2/drivers/tty/n_gsm.c 2011-03-14 21:20:32.000000000 -0400 28594--- linux-2.6.38.3/drivers/tty/n_gsm.c 2011-03-14 21:20:32.000000000 -0400
27808+++ linux-2.6.38.2/drivers/tty/n_gsm.c 2011-03-21 18:31:35.000000000 -0400 28595+++ linux-2.6.38.3/drivers/tty/n_gsm.c 2011-04-17 15:57:32.000000000 -0400
27809@@ -1589,7 +1589,7 @@ static struct gsm_dlci *gsm_dlci_alloc(s 28596@@ -1589,7 +1589,7 @@ static struct gsm_dlci *gsm_dlci_alloc(s
27810 return NULL; 28597 return NULL;
27811 spin_lock_init(&dlci->lock); 28598 spin_lock_init(&dlci->lock);
@@ -27815,9 +28602,9 @@ diff -urNp linux-2.6.38.2/drivers/tty/n_gsm.c linux-2.6.38.2/drivers/tty/n_gsm.c
27815 kfree(dlci); 28602 kfree(dlci);
27816 return NULL; 28603 return NULL;
27817 } 28604 }
27818diff -urNp linux-2.6.38.2/drivers/tty/n_tty.c linux-2.6.38.2/drivers/tty/n_tty.c 28605diff -urNp linux-2.6.38.3/drivers/tty/n_tty.c linux-2.6.38.3/drivers/tty/n_tty.c
27819--- linux-2.6.38.2/drivers/tty/n_tty.c 2011-03-14 21:20:32.000000000 -0400 28606--- linux-2.6.38.3/drivers/tty/n_tty.c 2011-03-14 21:20:32.000000000 -0400
27820+++ linux-2.6.38.2/drivers/tty/n_tty.c 2011-03-21 18:31:35.000000000 -0400 28607+++ linux-2.6.38.3/drivers/tty/n_tty.c 2011-04-17 15:57:32.000000000 -0400
27821@@ -2116,6 +2116,7 @@ void n_tty_inherit_ops(struct tty_ldisc_ 28608@@ -2116,6 +2116,7 @@ void n_tty_inherit_ops(struct tty_ldisc_
27822 { 28609 {
27823 *ops = tty_ldisc_N_TTY; 28610 *ops = tty_ldisc_N_TTY;
@@ -27827,9 +28614,9 @@ diff -urNp linux-2.6.38.2/drivers/tty/n_tty.c linux-2.6.38.2/drivers/tty/n_tty.c
27827+ ops->flags = 0; 28614+ ops->flags = 0;
27828 } 28615 }
27829 EXPORT_SYMBOL_GPL(n_tty_inherit_ops); 28616 EXPORT_SYMBOL_GPL(n_tty_inherit_ops);
27830diff -urNp linux-2.6.38.2/drivers/tty/pty.c linux-2.6.38.2/drivers/tty/pty.c 28617diff -urNp linux-2.6.38.3/drivers/tty/pty.c linux-2.6.38.3/drivers/tty/pty.c
27831--- linux-2.6.38.2/drivers/tty/pty.c 2011-03-14 21:20:32.000000000 -0400 28618--- linux-2.6.38.3/drivers/tty/pty.c 2011-03-14 21:20:32.000000000 -0400
27832+++ linux-2.6.38.2/drivers/tty/pty.c 2011-03-21 18:31:35.000000000 -0400 28619+++ linux-2.6.38.3/drivers/tty/pty.c 2011-04-17 15:57:32.000000000 -0400
27833@@ -700,7 +700,18 @@ out: 28620@@ -700,7 +700,18 @@ out:
27834 return retval; 28621 return retval;
27835 } 28622 }
@@ -27861,9 +28648,9 @@ diff -urNp linux-2.6.38.2/drivers/tty/pty.c linux-2.6.38.2/drivers/tty/pty.c
27861 cdev_init(&ptmx_cdev, &ptmx_fops); 28648 cdev_init(&ptmx_cdev, &ptmx_fops);
27862 if (cdev_add(&ptmx_cdev, MKDEV(TTYAUX_MAJOR, 2), 1) || 28649 if (cdev_add(&ptmx_cdev, MKDEV(TTYAUX_MAJOR, 2), 1) ||
27863 register_chrdev_region(MKDEV(TTYAUX_MAJOR, 2), 1, "/dev/ptmx") < 0) 28650 register_chrdev_region(MKDEV(TTYAUX_MAJOR, 2), 1, "/dev/ptmx") < 0)
27864diff -urNp linux-2.6.38.2/drivers/tty/serial/8250_pci.c linux-2.6.38.2/drivers/tty/serial/8250_pci.c 28651diff -urNp linux-2.6.38.3/drivers/tty/serial/8250_pci.c linux-2.6.38.3/drivers/tty/serial/8250_pci.c
27865--- linux-2.6.38.2/drivers/tty/serial/8250_pci.c 2011-03-14 21:20:32.000000000 -0400 28652--- linux-2.6.38.3/drivers/tty/serial/8250_pci.c 2011-03-14 21:20:32.000000000 -0400
27866+++ linux-2.6.38.2/drivers/tty/serial/8250_pci.c 2011-03-21 18:31:35.000000000 -0400 28653+++ linux-2.6.38.3/drivers/tty/serial/8250_pci.c 2011-04-17 15:57:32.000000000 -0400
27867@@ -3818,7 +3818,7 @@ static struct pci_device_id serial_pci_t 28654@@ -3818,7 +3818,7 @@ static struct pci_device_id serial_pci_t
27868 PCI_ANY_ID, PCI_ANY_ID, 28655 PCI_ANY_ID, PCI_ANY_ID,
27869 PCI_CLASS_COMMUNICATION_MULTISERIAL << 8, 28656 PCI_CLASS_COMMUNICATION_MULTISERIAL << 8,
@@ -27873,9 +28660,9 @@ diff -urNp linux-2.6.38.2/drivers/tty/serial/8250_pci.c linux-2.6.38.2/drivers/t
27873 }; 28660 };
27874 28661
27875 static struct pci_driver serial_pci_driver = { 28662 static struct pci_driver serial_pci_driver = {
27876diff -urNp linux-2.6.38.2/drivers/tty/serial/kgdboc.c linux-2.6.38.2/drivers/tty/serial/kgdboc.c 28663diff -urNp linux-2.6.38.3/drivers/tty/serial/kgdboc.c linux-2.6.38.3/drivers/tty/serial/kgdboc.c
27877--- linux-2.6.38.2/drivers/tty/serial/kgdboc.c 2011-03-14 21:20:32.000000000 -0400 28664--- linux-2.6.38.3/drivers/tty/serial/kgdboc.c 2011-03-14 21:20:32.000000000 -0400
27878+++ linux-2.6.38.2/drivers/tty/serial/kgdboc.c 2011-03-21 18:31:35.000000000 -0400 28665+++ linux-2.6.38.3/drivers/tty/serial/kgdboc.c 2011-04-17 15:57:32.000000000 -0400
27879@@ -22,7 +22,7 @@ 28666@@ -22,7 +22,7 @@
27880 28667
27881 #define MAX_CONFIG_LEN 40 28668 #define MAX_CONFIG_LEN 40
@@ -27894,9 +28681,9 @@ diff -urNp linux-2.6.38.2/drivers/tty/serial/kgdboc.c linux-2.6.38.2/drivers/tty
27894 .name = "kgdboc", 28681 .name = "kgdboc",
27895 .read_char = kgdboc_get_char, 28682 .read_char = kgdboc_get_char,
27896 .write_char = kgdboc_put_char, 28683 .write_char = kgdboc_put_char,
27897diff -urNp linux-2.6.38.2/drivers/tty/tty_io.c linux-2.6.38.2/drivers/tty/tty_io.c 28684diff -urNp linux-2.6.38.3/drivers/tty/tty_io.c linux-2.6.38.3/drivers/tty/tty_io.c
27898--- linux-2.6.38.2/drivers/tty/tty_io.c 2011-03-14 21:20:32.000000000 -0400 28685--- linux-2.6.38.3/drivers/tty/tty_io.c 2011-03-14 21:20:32.000000000 -0400
27899+++ linux-2.6.38.2/drivers/tty/tty_io.c 2011-03-21 18:31:35.000000000 -0400 28686+++ linux-2.6.38.3/drivers/tty/tty_io.c 2011-04-17 15:57:32.000000000 -0400
27900@@ -140,21 +140,11 @@ EXPORT_SYMBOL(tty_mutex); 28687@@ -140,21 +140,11 @@ EXPORT_SYMBOL(tty_mutex);
27901 /* Spinlock to protect the tty->tty_files list */ 28688 /* Spinlock to protect the tty->tty_files list */
27902 DEFINE_SPINLOCK(tty_files_lock); 28689 DEFINE_SPINLOCK(tty_files_lock);
@@ -28034,9 +28821,9 @@ diff -urNp linux-2.6.38.2/drivers/tty/tty_io.c linux-2.6.38.2/drivers/tty/tty_io
28034 /* 28821 /*
28035 * Initialize the console device. This is called *early*, so 28822 * Initialize the console device. This is called *early*, so
28036 * we can't necessarily depend on lots of kernel help here. 28823 * we can't necessarily depend on lots of kernel help here.
28037diff -urNp linux-2.6.38.2/drivers/tty/tty_ldisc.c linux-2.6.38.2/drivers/tty/tty_ldisc.c 28824diff -urNp linux-2.6.38.3/drivers/tty/tty_ldisc.c linux-2.6.38.3/drivers/tty/tty_ldisc.c
28038--- linux-2.6.38.2/drivers/tty/tty_ldisc.c 2011-03-14 21:20:32.000000000 -0400 28825--- linux-2.6.38.3/drivers/tty/tty_ldisc.c 2011-03-14 21:20:32.000000000 -0400
28039+++ linux-2.6.38.2/drivers/tty/tty_ldisc.c 2011-03-21 18:31:35.000000000 -0400 28826+++ linux-2.6.38.3/drivers/tty/tty_ldisc.c 2011-04-17 15:57:32.000000000 -0400
28040@@ -76,7 +76,7 @@ static void put_ldisc(struct tty_ldisc * 28827@@ -76,7 +76,7 @@ static void put_ldisc(struct tty_ldisc *
28041 if (atomic_dec_and_lock(&ld->users, &tty_ldisc_lock)) { 28828 if (atomic_dec_and_lock(&ld->users, &tty_ldisc_lock)) {
28042 struct tty_ldisc_ops *ldo = ld->ops; 28829 struct tty_ldisc_ops *ldo = ld->ops;
@@ -28082,9 +28869,9 @@ diff -urNp linux-2.6.38.2/drivers/tty/tty_ldisc.c linux-2.6.38.2/drivers/tty/tty
28082 module_put(ldops->owner); 28869 module_put(ldops->owner);
28083 spin_unlock_irqrestore(&tty_ldisc_lock, flags); 28870 spin_unlock_irqrestore(&tty_ldisc_lock, flags);
28084 } 28871 }
28085diff -urNp linux-2.6.38.2/drivers/tty/vt/keyboard.c linux-2.6.38.2/drivers/tty/vt/keyboard.c 28872diff -urNp linux-2.6.38.3/drivers/tty/vt/keyboard.c linux-2.6.38.3/drivers/tty/vt/keyboard.c
28086--- linux-2.6.38.2/drivers/tty/vt/keyboard.c 2011-03-14 21:20:32.000000000 -0400 28873--- linux-2.6.38.3/drivers/tty/vt/keyboard.c 2011-03-14 21:20:32.000000000 -0400
28087+++ linux-2.6.38.2/drivers/tty/vt/keyboard.c 2011-03-21 18:31:35.000000000 -0400 28874+++ linux-2.6.38.3/drivers/tty/vt/keyboard.c 2011-04-17 15:57:32.000000000 -0400
28088@@ -657,6 +657,16 @@ static void k_spec(struct vc_data *vc, u 28875@@ -657,6 +657,16 @@ static void k_spec(struct vc_data *vc, u
28089 kbd->kbdmode == VC_MEDIUMRAW) && 28876 kbd->kbdmode == VC_MEDIUMRAW) &&
28090 value != KVAL(K_SAK)) 28877 value != KVAL(K_SAK))
@@ -28111,9 +28898,9 @@ diff -urNp linux-2.6.38.2/drivers/tty/vt/keyboard.c linux-2.6.38.2/drivers/tty/v
28111 }; 28898 };
28112 28899
28113 MODULE_DEVICE_TABLE(input, kbd_ids); 28900 MODULE_DEVICE_TABLE(input, kbd_ids);
28114diff -urNp linux-2.6.38.2/drivers/tty/vt/vt.c linux-2.6.38.2/drivers/tty/vt/vt.c 28901diff -urNp linux-2.6.38.3/drivers/tty/vt/vt.c linux-2.6.38.3/drivers/tty/vt/vt.c
28115--- linux-2.6.38.2/drivers/tty/vt/vt.c 2011-03-14 21:20:32.000000000 -0400 28902--- linux-2.6.38.3/drivers/tty/vt/vt.c 2011-03-14 21:20:32.000000000 -0400
28116+++ linux-2.6.38.2/drivers/tty/vt/vt.c 2011-03-21 18:31:35.000000000 -0400 28903+++ linux-2.6.38.3/drivers/tty/vt/vt.c 2011-04-17 15:57:32.000000000 -0400
28117@@ -262,7 +262,7 @@ EXPORT_SYMBOL_GPL(unregister_vt_notifier 28904@@ -262,7 +262,7 @@ EXPORT_SYMBOL_GPL(unregister_vt_notifier
28118 28905
28119 static void notify_write(struct vc_data *vc, unsigned int unicode) 28906 static void notify_write(struct vc_data *vc, unsigned int unicode)
@@ -28123,9 +28910,9 @@ diff -urNp linux-2.6.38.2/drivers/tty/vt/vt.c linux-2.6.38.2/drivers/tty/vt/vt.c
28123 atomic_notifier_call_chain(&vt_notifier_list, VT_WRITE, &param); 28910 atomic_notifier_call_chain(&vt_notifier_list, VT_WRITE, &param);
28124 } 28911 }
28125 28912
28126diff -urNp linux-2.6.38.2/drivers/tty/vt/vt_ioctl.c linux-2.6.38.2/drivers/tty/vt/vt_ioctl.c 28913diff -urNp linux-2.6.38.3/drivers/tty/vt/vt_ioctl.c linux-2.6.38.3/drivers/tty/vt/vt_ioctl.c
28127--- linux-2.6.38.2/drivers/tty/vt/vt_ioctl.c 2011-03-14 21:20:32.000000000 -0400 28914--- linux-2.6.38.3/drivers/tty/vt/vt_ioctl.c 2011-03-14 21:20:32.000000000 -0400
28128+++ linux-2.6.38.2/drivers/tty/vt/vt_ioctl.c 2011-03-21 18:31:35.000000000 -0400 28915+++ linux-2.6.38.3/drivers/tty/vt/vt_ioctl.c 2011-04-17 15:57:32.000000000 -0400
28129@@ -210,9 +210,6 @@ do_kdsk_ioctl(int cmd, struct kbentry __ 28916@@ -210,9 +210,6 @@ do_kdsk_ioctl(int cmd, struct kbentry __
28130 if (copy_from_user(&tmp, user_kbe, sizeof(struct kbentry))) 28917 if (copy_from_user(&tmp, user_kbe, sizeof(struct kbentry)))
28131 return -EFAULT; 28918 return -EFAULT;
@@ -28166,9 +28953,9 @@ diff -urNp linux-2.6.38.2/drivers/tty/vt/vt_ioctl.c linux-2.6.38.2/drivers/tty/v
28166 if (!perm) { 28953 if (!perm) {
28167 ret = -EPERM; 28954 ret = -EPERM;
28168 goto reterr; 28955 goto reterr;
28169diff -urNp linux-2.6.38.2/drivers/uio/uio.c linux-2.6.38.2/drivers/uio/uio.c 28956diff -urNp linux-2.6.38.3/drivers/uio/uio.c linux-2.6.38.3/drivers/uio/uio.c
28170--- linux-2.6.38.2/drivers/uio/uio.c 2011-03-14 21:20:32.000000000 -0400 28957--- linux-2.6.38.3/drivers/uio/uio.c 2011-03-14 21:20:32.000000000 -0400
28171+++ linux-2.6.38.2/drivers/uio/uio.c 2011-03-21 18:31:35.000000000 -0400 28958+++ linux-2.6.38.3/drivers/uio/uio.c 2011-04-17 15:57:32.000000000 -0400
28172@@ -25,6 +25,7 @@ 28959@@ -25,6 +25,7 @@
28173 #include <linux/kobject.h> 28960 #include <linux/kobject.h>
28174 #include <linux/cdev.h> 28961 #include <linux/cdev.h>
@@ -28202,9 +28989,9 @@ diff -urNp linux-2.6.38.2/drivers/uio/uio.c linux-2.6.38.2/drivers/uio/uio.c
28202 } 28989 }
28203 28990
28204 static int uio_vma_fault(struct vm_area_struct *vma, struct vm_fault *vmf) 28991 static int uio_vma_fault(struct vm_area_struct *vma, struct vm_fault *vmf)
28205diff -urNp linux-2.6.38.2/drivers/usb/atm/cxacru.c linux-2.6.38.2/drivers/usb/atm/cxacru.c 28992diff -urNp linux-2.6.38.3/drivers/usb/atm/cxacru.c linux-2.6.38.3/drivers/usb/atm/cxacru.c
28206--- linux-2.6.38.2/drivers/usb/atm/cxacru.c 2011-03-14 21:20:32.000000000 -0400 28993--- linux-2.6.38.3/drivers/usb/atm/cxacru.c 2011-03-14 21:20:32.000000000 -0400
28207+++ linux-2.6.38.2/drivers/usb/atm/cxacru.c 2011-03-21 18:31:35.000000000 -0400 28994+++ linux-2.6.38.3/drivers/usb/atm/cxacru.c 2011-04-17 15:57:32.000000000 -0400
28208@@ -473,7 +473,7 @@ static ssize_t cxacru_sysfs_store_adsl_c 28995@@ -473,7 +473,7 @@ static ssize_t cxacru_sysfs_store_adsl_c
28209 ret = sscanf(buf + pos, "%x=%x%n", &index, &value, &tmp); 28996 ret = sscanf(buf + pos, "%x=%x%n", &index, &value, &tmp);
28210 if (ret < 2) 28997 if (ret < 2)
@@ -28214,9 +29001,9 @@ diff -urNp linux-2.6.38.2/drivers/usb/atm/cxacru.c linux-2.6.38.2/drivers/usb/at
28214 return -EINVAL; 29001 return -EINVAL;
28215 pos += tmp; 29002 pos += tmp;
28216 29003
28217diff -urNp linux-2.6.38.2/drivers/usb/atm/usbatm.c linux-2.6.38.2/drivers/usb/atm/usbatm.c 29004diff -urNp linux-2.6.38.3/drivers/usb/atm/usbatm.c linux-2.6.38.3/drivers/usb/atm/usbatm.c
28218--- linux-2.6.38.2/drivers/usb/atm/usbatm.c 2011-03-14 21:20:32.000000000 -0400 29005--- linux-2.6.38.3/drivers/usb/atm/usbatm.c 2011-03-14 21:20:32.000000000 -0400
28219+++ linux-2.6.38.2/drivers/usb/atm/usbatm.c 2011-03-21 18:31:35.000000000 -0400 29006+++ linux-2.6.38.3/drivers/usb/atm/usbatm.c 2011-04-17 15:57:32.000000000 -0400
28220@@ -332,7 +332,7 @@ static void usbatm_extract_one_cell(stru 29007@@ -332,7 +332,7 @@ static void usbatm_extract_one_cell(stru
28221 if (printk_ratelimit()) 29008 if (printk_ratelimit())
28222 atm_warn(instance, "%s: OAM not supported (vpi %d, vci %d)!\n", 29009 atm_warn(instance, "%s: OAM not supported (vpi %d, vci %d)!\n",
@@ -28296,9 +29083,9 @@ diff -urNp linux-2.6.38.2/drivers/usb/atm/usbatm.c linux-2.6.38.2/drivers/usb/at
28296 29083
28297 if (!left--) { 29084 if (!left--) {
28298 if (instance->disconnected) 29085 if (instance->disconnected)
28299diff -urNp linux-2.6.38.2/drivers/usb/class/cdc-acm.c linux-2.6.38.2/drivers/usb/class/cdc-acm.c 29086diff -urNp linux-2.6.38.3/drivers/usb/class/cdc-acm.c linux-2.6.38.3/drivers/usb/class/cdc-acm.c
28300--- linux-2.6.38.2/drivers/usb/class/cdc-acm.c 2011-03-28 17:42:40.000000000 -0400 29087--- linux-2.6.38.3/drivers/usb/class/cdc-acm.c 2011-04-18 17:27:16.000000000 -0400
28301+++ linux-2.6.38.2/drivers/usb/class/cdc-acm.c 2011-03-28 17:42:53.000000000 -0400 29088+++ linux-2.6.38.3/drivers/usb/class/cdc-acm.c 2011-04-17 15:57:32.000000000 -0400
28302@@ -1640,7 +1640,7 @@ static const struct usb_device_id acm_id 29089@@ -1640,7 +1640,7 @@ static const struct usb_device_id acm_id
28303 { USB_INTERFACE_INFO(USB_CLASS_COMM, USB_CDC_SUBCLASS_ACM, 29090 { USB_INTERFACE_INFO(USB_CLASS_COMM, USB_CDC_SUBCLASS_ACM,
28304 USB_CDC_ACM_PROTO_AT_CDMA) }, 29091 USB_CDC_ACM_PROTO_AT_CDMA) },
@@ -28308,9 +29095,9 @@ diff -urNp linux-2.6.38.2/drivers/usb/class/cdc-acm.c linux-2.6.38.2/drivers/usb
28308 }; 29095 };
28309 29096
28310 MODULE_DEVICE_TABLE(usb, acm_ids); 29097 MODULE_DEVICE_TABLE(usb, acm_ids);
28311diff -urNp linux-2.6.38.2/drivers/usb/class/usblp.c linux-2.6.38.2/drivers/usb/class/usblp.c 29098diff -urNp linux-2.6.38.3/drivers/usb/class/usblp.c linux-2.6.38.3/drivers/usb/class/usblp.c
28312--- linux-2.6.38.2/drivers/usb/class/usblp.c 2011-03-14 21:20:32.000000000 -0400 29099--- linux-2.6.38.3/drivers/usb/class/usblp.c 2011-03-14 21:20:32.000000000 -0400
28313+++ linux-2.6.38.2/drivers/usb/class/usblp.c 2011-03-21 18:31:35.000000000 -0400 29100+++ linux-2.6.38.3/drivers/usb/class/usblp.c 2011-04-17 15:57:32.000000000 -0400
28314@@ -227,7 +227,7 @@ static const struct quirk_printer_struct 29101@@ -227,7 +227,7 @@ static const struct quirk_printer_struct
28315 { 0x0482, 0x0010, USBLP_QUIRK_BIDIR }, /* Kyocera Mita FS 820, by zut <kernel@zut.de> */ 29102 { 0x0482, 0x0010, USBLP_QUIRK_BIDIR }, /* Kyocera Mita FS 820, by zut <kernel@zut.de> */
28316 { 0x04f9, 0x000d, USBLP_QUIRK_BIDIR }, /* Brother Industries, Ltd HL-1440 Laser Printer */ 29103 { 0x04f9, 0x000d, USBLP_QUIRK_BIDIR }, /* Brother Industries, Ltd HL-1440 Laser Printer */
@@ -28329,9 +29116,9 @@ diff -urNp linux-2.6.38.2/drivers/usb/class/usblp.c linux-2.6.38.2/drivers/usb/c
28329 }; 29116 };
28330 29117
28331 MODULE_DEVICE_TABLE(usb, usblp_ids); 29118 MODULE_DEVICE_TABLE(usb, usblp_ids);
28332diff -urNp linux-2.6.38.2/drivers/usb/core/hcd.c linux-2.6.38.2/drivers/usb/core/hcd.c 29119diff -urNp linux-2.6.38.3/drivers/usb/core/hcd.c linux-2.6.38.3/drivers/usb/core/hcd.c
28333--- linux-2.6.38.2/drivers/usb/core/hcd.c 2011-03-23 17:20:07.000000000 -0400 29120--- linux-2.6.38.3/drivers/usb/core/hcd.c 2011-04-18 17:27:14.000000000 -0400
28334+++ linux-2.6.38.2/drivers/usb/core/hcd.c 2011-03-26 20:49:43.000000000 -0400 29121+++ linux-2.6.38.3/drivers/usb/core/hcd.c 2011-04-17 15:57:32.000000000 -0400
28335@@ -2457,7 +2457,7 @@ EXPORT_SYMBOL_GPL(usb_hcd_platform_shutd 29122@@ -2457,7 +2457,7 @@ EXPORT_SYMBOL_GPL(usb_hcd_platform_shutd
28336 29123
28337 #if defined(CONFIG_USB_MON) || defined(CONFIG_USB_MON_MODULE) 29124 #if defined(CONFIG_USB_MON) || defined(CONFIG_USB_MON_MODULE)
@@ -28350,9 +29137,9 @@ diff -urNp linux-2.6.38.2/drivers/usb/core/hcd.c linux-2.6.38.2/drivers/usb/core
28350 { 29137 {
28351 29138
28352 if (mon_ops) 29139 if (mon_ops)
28353diff -urNp linux-2.6.38.2/drivers/usb/core/hub.c linux-2.6.38.2/drivers/usb/core/hub.c 29140diff -urNp linux-2.6.38.3/drivers/usb/core/hub.c linux-2.6.38.3/drivers/usb/core/hub.c
28354--- linux-2.6.38.2/drivers/usb/core/hub.c 2011-03-14 21:20:32.000000000 -0400 29141--- linux-2.6.38.3/drivers/usb/core/hub.c 2011-03-14 21:20:32.000000000 -0400
28355+++ linux-2.6.38.2/drivers/usb/core/hub.c 2011-03-21 18:31:35.000000000 -0400 29142+++ linux-2.6.38.3/drivers/usb/core/hub.c 2011-04-17 15:57:32.000000000 -0400
28356@@ -3492,7 +3492,7 @@ static const struct usb_device_id hub_id 29143@@ -3492,7 +3492,7 @@ static const struct usb_device_id hub_id
28357 .bDeviceClass = USB_CLASS_HUB}, 29144 .bDeviceClass = USB_CLASS_HUB},
28358 { .match_flags = USB_DEVICE_ID_MATCH_INT_CLASS, 29145 { .match_flags = USB_DEVICE_ID_MATCH_INT_CLASS,
@@ -28362,9 +29149,9 @@ diff -urNp linux-2.6.38.2/drivers/usb/core/hub.c linux-2.6.38.2/drivers/usb/core
28362 }; 29149 };
28363 29150
28364 MODULE_DEVICE_TABLE (usb, hub_id_table); 29151 MODULE_DEVICE_TABLE (usb, hub_id_table);
28365diff -urNp linux-2.6.38.2/drivers/usb/core/message.c linux-2.6.38.2/drivers/usb/core/message.c 29152diff -urNp linux-2.6.38.3/drivers/usb/core/message.c linux-2.6.38.3/drivers/usb/core/message.c
28366--- linux-2.6.38.2/drivers/usb/core/message.c 2011-03-14 21:20:32.000000000 -0400 29153--- linux-2.6.38.3/drivers/usb/core/message.c 2011-03-14 21:20:32.000000000 -0400
28367+++ linux-2.6.38.2/drivers/usb/core/message.c 2011-03-21 18:31:35.000000000 -0400 29154+++ linux-2.6.38.3/drivers/usb/core/message.c 2011-04-17 15:57:32.000000000 -0400
28368@@ -869,8 +869,8 @@ char *usb_cache_string(struct usb_device 29155@@ -869,8 +869,8 @@ char *usb_cache_string(struct usb_device
28369 buf = kmalloc(MAX_USB_STRING_SIZE, GFP_NOIO); 29156 buf = kmalloc(MAX_USB_STRING_SIZE, GFP_NOIO);
28370 if (buf) { 29157 if (buf) {
@@ -28376,9 +29163,9 @@ diff -urNp linux-2.6.38.2/drivers/usb/core/message.c linux-2.6.38.2/drivers/usb/
28376 if (!smallbuf) 29163 if (!smallbuf)
28377 return buf; 29164 return buf;
28378 memcpy(smallbuf, buf, len); 29165 memcpy(smallbuf, buf, len);
28379diff -urNp linux-2.6.38.2/drivers/usb/early/ehci-dbgp.c linux-2.6.38.2/drivers/usb/early/ehci-dbgp.c 29166diff -urNp linux-2.6.38.3/drivers/usb/early/ehci-dbgp.c linux-2.6.38.3/drivers/usb/early/ehci-dbgp.c
28380--- linux-2.6.38.2/drivers/usb/early/ehci-dbgp.c 2011-03-14 21:20:32.000000000 -0400 29167--- linux-2.6.38.3/drivers/usb/early/ehci-dbgp.c 2011-03-14 21:20:32.000000000 -0400
28381+++ linux-2.6.38.2/drivers/usb/early/ehci-dbgp.c 2011-03-21 18:31:35.000000000 -0400 29168+++ linux-2.6.38.3/drivers/usb/early/ehci-dbgp.c 2011-04-17 15:57:32.000000000 -0400
28382@@ -96,7 +96,7 @@ static inline u32 dbgp_len_update(u32 x, 29169@@ -96,7 +96,7 @@ static inline u32 dbgp_len_update(u32 x,
28383 } 29170 }
28384 29171
@@ -28397,9 +29184,9 @@ diff -urNp linux-2.6.38.2/drivers/usb/early/ehci-dbgp.c linux-2.6.38.2/drivers/u
28397 .name = "kgdbdbgp", 29184 .name = "kgdbdbgp",
28398 .read_char = kgdbdbgp_read_char, 29185 .read_char = kgdbdbgp_read_char,
28399 .write_char = kgdbdbgp_write_char, 29186 .write_char = kgdbdbgp_write_char,
28400diff -urNp linux-2.6.38.2/drivers/usb/host/ehci-pci.c linux-2.6.38.2/drivers/usb/host/ehci-pci.c 29187diff -urNp linux-2.6.38.3/drivers/usb/host/ehci-pci.c linux-2.6.38.3/drivers/usb/host/ehci-pci.c
28401--- linux-2.6.38.2/drivers/usb/host/ehci-pci.c 2011-03-14 21:20:32.000000000 -0400 29188--- linux-2.6.38.3/drivers/usb/host/ehci-pci.c 2011-03-14 21:20:32.000000000 -0400
28402+++ linux-2.6.38.2/drivers/usb/host/ehci-pci.c 2011-03-21 18:31:35.000000000 -0400 29189+++ linux-2.6.38.3/drivers/usb/host/ehci-pci.c 2011-04-17 15:57:32.000000000 -0400
28403@@ -516,7 +516,7 @@ static const struct pci_device_id pci_id 29190@@ -516,7 +516,7 @@ static const struct pci_device_id pci_id
28404 PCI_DEVICE_CLASS(PCI_CLASS_SERIAL_USB_EHCI, ~0), 29191 PCI_DEVICE_CLASS(PCI_CLASS_SERIAL_USB_EHCI, ~0),
28405 .driver_data = (unsigned long) &ehci_pci_hc_driver, 29192 .driver_data = (unsigned long) &ehci_pci_hc_driver,
@@ -28409,9 +29196,9 @@ diff -urNp linux-2.6.38.2/drivers/usb/host/ehci-pci.c linux-2.6.38.2/drivers/usb
28409 }; 29196 };
28410 MODULE_DEVICE_TABLE(pci, pci_ids); 29197 MODULE_DEVICE_TABLE(pci, pci_ids);
28411 29198
28412diff -urNp linux-2.6.38.2/drivers/usb/host/uhci-hcd.c linux-2.6.38.2/drivers/usb/host/uhci-hcd.c 29199diff -urNp linux-2.6.38.3/drivers/usb/host/uhci-hcd.c linux-2.6.38.3/drivers/usb/host/uhci-hcd.c
28413--- linux-2.6.38.2/drivers/usb/host/uhci-hcd.c 2011-03-14 21:20:32.000000000 -0400 29200--- linux-2.6.38.3/drivers/usb/host/uhci-hcd.c 2011-03-14 21:20:32.000000000 -0400
28414+++ linux-2.6.38.2/drivers/usb/host/uhci-hcd.c 2011-03-21 18:31:35.000000000 -0400 29201+++ linux-2.6.38.3/drivers/usb/host/uhci-hcd.c 2011-04-17 15:57:32.000000000 -0400
28415@@ -948,7 +948,7 @@ static const struct pci_device_id uhci_p 29202@@ -948,7 +948,7 @@ static const struct pci_device_id uhci_p
28416 /* handle any USB UHCI controller */ 29203 /* handle any USB UHCI controller */
28417 PCI_DEVICE_CLASS(PCI_CLASS_SERIAL_USB_UHCI, ~0), 29204 PCI_DEVICE_CLASS(PCI_CLASS_SERIAL_USB_UHCI, ~0),
@@ -28421,9 +29208,9 @@ diff -urNp linux-2.6.38.2/drivers/usb/host/uhci-hcd.c linux-2.6.38.2/drivers/usb
28421 }; 29208 };
28422 29209
28423 MODULE_DEVICE_TABLE(pci, uhci_pci_ids); 29210 MODULE_DEVICE_TABLE(pci, uhci_pci_ids);
28424diff -urNp linux-2.6.38.2/drivers/usb/mon/mon_main.c linux-2.6.38.2/drivers/usb/mon/mon_main.c 29211diff -urNp linux-2.6.38.3/drivers/usb/mon/mon_main.c linux-2.6.38.3/drivers/usb/mon/mon_main.c
28425--- linux-2.6.38.2/drivers/usb/mon/mon_main.c 2011-03-14 21:20:32.000000000 -0400 29212--- linux-2.6.38.3/drivers/usb/mon/mon_main.c 2011-03-14 21:20:32.000000000 -0400
28426+++ linux-2.6.38.2/drivers/usb/mon/mon_main.c 2011-03-21 18:31:35.000000000 -0400 29213+++ linux-2.6.38.3/drivers/usb/mon/mon_main.c 2011-04-17 15:57:32.000000000 -0400
28427@@ -238,7 +238,7 @@ static struct notifier_block mon_nb = { 29214@@ -238,7 +238,7 @@ static struct notifier_block mon_nb = {
28428 /* 29215 /*
28429 * Ops 29216 * Ops
@@ -28433,9 +29220,9 @@ diff -urNp linux-2.6.38.2/drivers/usb/mon/mon_main.c linux-2.6.38.2/drivers/usb/
28433 .urb_submit = mon_submit, 29220 .urb_submit = mon_submit,
28434 .urb_submit_error = mon_submit_error, 29221 .urb_submit_error = mon_submit_error,
28435 .urb_complete = mon_complete, 29222 .urb_complete = mon_complete,
28436diff -urNp linux-2.6.38.2/drivers/usb/storage/debug.h linux-2.6.38.2/drivers/usb/storage/debug.h 29223diff -urNp linux-2.6.38.3/drivers/usb/storage/debug.h linux-2.6.38.3/drivers/usb/storage/debug.h
28437--- linux-2.6.38.2/drivers/usb/storage/debug.h 2011-03-14 21:20:32.000000000 -0400 29224--- linux-2.6.38.3/drivers/usb/storage/debug.h 2011-03-14 21:20:32.000000000 -0400
28438+++ linux-2.6.38.2/drivers/usb/storage/debug.h 2011-03-21 18:31:35.000000000 -0400 29225+++ linux-2.6.38.3/drivers/usb/storage/debug.h 2011-04-17 15:57:32.000000000 -0400
28439@@ -54,9 +54,9 @@ void usb_stor_show_sense( unsigned char 29226@@ -54,9 +54,9 @@ void usb_stor_show_sense( unsigned char
28440 #define US_DEBUGPX(x...) printk( x ) 29227 #define US_DEBUGPX(x...) printk( x )
28441 #define US_DEBUG(x) x 29228 #define US_DEBUG(x) x
@@ -28449,9 +29236,9 @@ diff -urNp linux-2.6.38.2/drivers/usb/storage/debug.h linux-2.6.38.2/drivers/usb
28449 #endif 29236 #endif
28450 29237
28451 #endif 29238 #endif
28452diff -urNp linux-2.6.38.2/drivers/usb/storage/usb.c linux-2.6.38.2/drivers/usb/storage/usb.c 29239diff -urNp linux-2.6.38.3/drivers/usb/storage/usb.c linux-2.6.38.3/drivers/usb/storage/usb.c
28453--- linux-2.6.38.2/drivers/usb/storage/usb.c 2011-03-14 21:20:32.000000000 -0400 29240--- linux-2.6.38.3/drivers/usb/storage/usb.c 2011-03-14 21:20:32.000000000 -0400
28454+++ linux-2.6.38.2/drivers/usb/storage/usb.c 2011-03-21 18:31:35.000000000 -0400 29241+++ linux-2.6.38.3/drivers/usb/storage/usb.c 2011-04-17 15:57:32.000000000 -0400
28455@@ -122,7 +122,7 @@ MODULE_PARM_DESC(quirks, "supplemental l 29242@@ -122,7 +122,7 @@ MODULE_PARM_DESC(quirks, "supplemental l
28456 29243
28457 static struct us_unusual_dev us_unusual_dev_list[] = { 29244 static struct us_unusual_dev us_unusual_dev_list[] = {
@@ -28461,9 +29248,9 @@ diff -urNp linux-2.6.38.2/drivers/usb/storage/usb.c linux-2.6.38.2/drivers/usb/s
28461 }; 29248 };
28462 29249
28463 #undef UNUSUAL_DEV 29250 #undef UNUSUAL_DEV
28464diff -urNp linux-2.6.38.2/drivers/usb/storage/usual-tables.c linux-2.6.38.2/drivers/usb/storage/usual-tables.c 29251diff -urNp linux-2.6.38.3/drivers/usb/storage/usual-tables.c linux-2.6.38.3/drivers/usb/storage/usual-tables.c
28465--- linux-2.6.38.2/drivers/usb/storage/usual-tables.c 2011-03-14 21:20:32.000000000 -0400 29252--- linux-2.6.38.3/drivers/usb/storage/usual-tables.c 2011-03-14 21:20:32.000000000 -0400
28466+++ linux-2.6.38.2/drivers/usb/storage/usual-tables.c 2011-03-21 18:31:35.000000000 -0400 29253+++ linux-2.6.38.3/drivers/usb/storage/usual-tables.c 2011-04-17 15:57:32.000000000 -0400
28467@@ -48,7 +48,7 @@ 29254@@ -48,7 +48,7 @@
28468 29255
28469 struct usb_device_id usb_storage_usb_ids[] = { 29256 struct usb_device_id usb_storage_usb_ids[] = {
@@ -28473,9 +29260,9 @@ diff -urNp linux-2.6.38.2/drivers/usb/storage/usual-tables.c linux-2.6.38.2/driv
28473 }; 29260 };
28474 EXPORT_SYMBOL_GPL(usb_storage_usb_ids); 29261 EXPORT_SYMBOL_GPL(usb_storage_usb_ids);
28475 29262
28476diff -urNp linux-2.6.38.2/drivers/vhost/vhost.c linux-2.6.38.2/drivers/vhost/vhost.c 29263diff -urNp linux-2.6.38.3/drivers/vhost/vhost.c linux-2.6.38.3/drivers/vhost/vhost.c
28477--- linux-2.6.38.2/drivers/vhost/vhost.c 2011-03-14 21:20:32.000000000 -0400 29264--- linux-2.6.38.3/drivers/vhost/vhost.c 2011-03-14 21:20:32.000000000 -0400
28478+++ linux-2.6.38.2/drivers/vhost/vhost.c 2011-03-21 18:31:35.000000000 -0400 29265+++ linux-2.6.38.3/drivers/vhost/vhost.c 2011-04-17 15:57:32.000000000 -0400
28479@@ -565,7 +565,7 @@ static int init_used(struct vhost_virtqu 29266@@ -565,7 +565,7 @@ static int init_used(struct vhost_virtqu
28480 return get_user(vq->last_used_idx, &used->idx); 29267 return get_user(vq->last_used_idx, &used->idx);
28481 } 29268 }
@@ -28485,9 +29272,9 @@ diff -urNp linux-2.6.38.2/drivers/vhost/vhost.c linux-2.6.38.2/drivers/vhost/vho
28485 { 29272 {
28486 struct file *eventfp, *filep = NULL, 29273 struct file *eventfp, *filep = NULL,
28487 *pollstart = NULL, *pollstop = NULL; 29274 *pollstart = NULL, *pollstop = NULL;
28488diff -urNp linux-2.6.38.2/drivers/video/fbcmap.c linux-2.6.38.2/drivers/video/fbcmap.c 29275diff -urNp linux-2.6.38.3/drivers/video/fbcmap.c linux-2.6.38.3/drivers/video/fbcmap.c
28489--- linux-2.6.38.2/drivers/video/fbcmap.c 2011-03-14 21:20:32.000000000 -0400 29276--- linux-2.6.38.3/drivers/video/fbcmap.c 2011-03-14 21:20:32.000000000 -0400
28490+++ linux-2.6.38.2/drivers/video/fbcmap.c 2011-03-21 18:31:35.000000000 -0400 29277+++ linux-2.6.38.3/drivers/video/fbcmap.c 2011-04-17 15:57:32.000000000 -0400
28491@@ -285,8 +285,7 @@ int fb_set_user_cmap(struct fb_cmap_user 29278@@ -285,8 +285,7 @@ int fb_set_user_cmap(struct fb_cmap_user
28492 rc = -ENODEV; 29279 rc = -ENODEV;
28493 goto out; 29280 goto out;
@@ -28498,9 +29285,9 @@ diff -urNp linux-2.6.38.2/drivers/video/fbcmap.c linux-2.6.38.2/drivers/video/fb
28498 rc = -EINVAL; 29285 rc = -EINVAL;
28499 goto out1; 29286 goto out1;
28500 } 29287 }
28501diff -urNp linux-2.6.38.2/drivers/video/fbmem.c linux-2.6.38.2/drivers/video/fbmem.c 29288diff -urNp linux-2.6.38.3/drivers/video/fbmem.c linux-2.6.38.3/drivers/video/fbmem.c
28502--- linux-2.6.38.2/drivers/video/fbmem.c 2011-03-14 21:20:32.000000000 -0400 29289--- linux-2.6.38.3/drivers/video/fbmem.c 2011-03-14 21:20:32.000000000 -0400
28503+++ linux-2.6.38.2/drivers/video/fbmem.c 2011-03-21 18:31:35.000000000 -0400 29290+++ linux-2.6.38.3/drivers/video/fbmem.c 2011-04-17 15:57:32.000000000 -0400
28504@@ -403,7 +403,7 @@ static void fb_do_show_logo(struct fb_in 29291@@ -403,7 +403,7 @@ static void fb_do_show_logo(struct fb_in
28505 image->dx += image->width + 8; 29292 image->dx += image->width + 8;
28506 } 29293 }
@@ -28528,9 +29315,9 @@ diff -urNp linux-2.6.38.2/drivers/video/fbmem.c linux-2.6.38.2/drivers/video/fbm
28528 return -EINVAL; 29315 return -EINVAL;
28529 if (!registered_fb[con2fb.framebuffer]) 29316 if (!registered_fb[con2fb.framebuffer])
28530 request_module("fb%d", con2fb.framebuffer); 29317 request_module("fb%d", con2fb.framebuffer);
28531diff -urNp linux-2.6.38.2/drivers/video/fbmon.c linux-2.6.38.2/drivers/video/fbmon.c 29318diff -urNp linux-2.6.38.3/drivers/video/fbmon.c linux-2.6.38.3/drivers/video/fbmon.c
28532--- linux-2.6.38.2/drivers/video/fbmon.c 2011-03-14 21:20:32.000000000 -0400 29319--- linux-2.6.38.3/drivers/video/fbmon.c 2011-03-14 21:20:32.000000000 -0400
28533+++ linux-2.6.38.2/drivers/video/fbmon.c 2011-03-21 18:31:35.000000000 -0400 29320+++ linux-2.6.38.3/drivers/video/fbmon.c 2011-04-17 15:57:32.000000000 -0400
28534@@ -46,7 +46,7 @@ 29321@@ -46,7 +46,7 @@
28535 #ifdef DEBUG 29322 #ifdef DEBUG
28536 #define DPRINTK(fmt, args...) printk(fmt,## args) 29323 #define DPRINTK(fmt, args...) printk(fmt,## args)
@@ -28540,9 +29327,9 @@ diff -urNp linux-2.6.38.2/drivers/video/fbmon.c linux-2.6.38.2/drivers/video/fbm
28540 #endif 29327 #endif
28541 29328
28542 #define FBMON_FIX_HEADER 1 29329 #define FBMON_FIX_HEADER 1
28543diff -urNp linux-2.6.38.2/drivers/video/i810/i810_accel.c linux-2.6.38.2/drivers/video/i810/i810_accel.c 29330diff -urNp linux-2.6.38.3/drivers/video/i810/i810_accel.c linux-2.6.38.3/drivers/video/i810/i810_accel.c
28544--- linux-2.6.38.2/drivers/video/i810/i810_accel.c 2011-03-14 21:20:32.000000000 -0400 29331--- linux-2.6.38.3/drivers/video/i810/i810_accel.c 2011-03-14 21:20:32.000000000 -0400
28545+++ linux-2.6.38.2/drivers/video/i810/i810_accel.c 2011-03-21 18:31:35.000000000 -0400 29332+++ linux-2.6.38.3/drivers/video/i810/i810_accel.c 2011-04-17 15:57:32.000000000 -0400
28546@@ -73,6 +73,7 @@ static inline int wait_for_space(struct 29333@@ -73,6 +73,7 @@ static inline int wait_for_space(struct
28547 } 29334 }
28548 } 29335 }
@@ -28551,9 +29338,9 @@ diff -urNp linux-2.6.38.2/drivers/video/i810/i810_accel.c linux-2.6.38.2/drivers
28551 i810_report_error(mmio); 29338 i810_report_error(mmio);
28552 par->dev_flags |= LOCKUP; 29339 par->dev_flags |= LOCKUP;
28553 info->pixmap.scan_align = 1; 29340 info->pixmap.scan_align = 1;
28554diff -urNp linux-2.6.38.2/drivers/video/i810/i810_main.c linux-2.6.38.2/drivers/video/i810/i810_main.c 29341diff -urNp linux-2.6.38.3/drivers/video/i810/i810_main.c linux-2.6.38.3/drivers/video/i810/i810_main.c
28555--- linux-2.6.38.2/drivers/video/i810/i810_main.c 2011-03-14 21:20:32.000000000 -0400 29342--- linux-2.6.38.3/drivers/video/i810/i810_main.c 2011-03-14 21:20:32.000000000 -0400
28556+++ linux-2.6.38.2/drivers/video/i810/i810_main.c 2011-03-21 18:31:35.000000000 -0400 29343+++ linux-2.6.38.3/drivers/video/i810/i810_main.c 2011-04-17 15:57:32.000000000 -0400
28557@@ -120,7 +120,7 @@ static struct pci_device_id i810fb_pci_t 29344@@ -120,7 +120,7 @@ static struct pci_device_id i810fb_pci_t
28558 PCI_ANY_ID, PCI_ANY_ID, 0, 0, 4 }, 29345 PCI_ANY_ID, PCI_ANY_ID, 0, 0, 4 },
28559 { PCI_VENDOR_ID_INTEL, PCI_DEVICE_ID_INTEL_82815_CGC, 29346 { PCI_VENDOR_ID_INTEL, PCI_DEVICE_ID_INTEL_82815_CGC,
@@ -28563,9 +29350,9 @@ diff -urNp linux-2.6.38.2/drivers/video/i810/i810_main.c linux-2.6.38.2/drivers/
28563 }; 29350 };
28564 29351
28565 static struct pci_driver i810fb_driver = { 29352 static struct pci_driver i810fb_driver = {
28566diff -urNp linux-2.6.38.2/drivers/video/modedb.c linux-2.6.38.2/drivers/video/modedb.c 29353diff -urNp linux-2.6.38.3/drivers/video/modedb.c linux-2.6.38.3/drivers/video/modedb.c
28567--- linux-2.6.38.2/drivers/video/modedb.c 2011-03-14 21:20:32.000000000 -0400 29354--- linux-2.6.38.3/drivers/video/modedb.c 2011-03-14 21:20:32.000000000 -0400
28568+++ linux-2.6.38.2/drivers/video/modedb.c 2011-03-21 18:31:35.000000000 -0400 29355+++ linux-2.6.38.3/drivers/video/modedb.c 2011-04-17 15:57:32.000000000 -0400
28569@@ -40,255 +40,255 @@ static const struct fb_videomode modedb[ 29356@@ -40,255 +40,255 @@ static const struct fb_videomode modedb[
28570 29357
28571 /* 640x400 @ 70 Hz, 31.5 kHz hsync */ 29358 /* 640x400 @ 70 Hz, 31.5 kHz hsync */
@@ -28882,9 +29669,9 @@ diff -urNp linux-2.6.38.2/drivers/video/modedb.c linux-2.6.38.2/drivers/video/mo
28882 }; 29669 };
28883 29670
28884 #ifdef CONFIG_FB_MODE_HELPERS 29671 #ifdef CONFIG_FB_MODE_HELPERS
28885diff -urNp linux-2.6.38.2/drivers/video/pxa3xx-gcu.c linux-2.6.38.2/drivers/video/pxa3xx-gcu.c 29672diff -urNp linux-2.6.38.3/drivers/video/pxa3xx-gcu.c linux-2.6.38.3/drivers/video/pxa3xx-gcu.c
28886--- linux-2.6.38.2/drivers/video/pxa3xx-gcu.c 2011-03-14 21:20:32.000000000 -0400 29673--- linux-2.6.38.3/drivers/video/pxa3xx-gcu.c 2011-03-14 21:20:32.000000000 -0400
28887+++ linux-2.6.38.2/drivers/video/pxa3xx-gcu.c 2011-03-21 18:31:35.000000000 -0400 29674+++ linux-2.6.38.3/drivers/video/pxa3xx-gcu.c 2011-04-17 15:57:32.000000000 -0400
28888@@ -103,7 +103,7 @@ struct pxa3xx_gcu_priv { 29675@@ -103,7 +103,7 @@ struct pxa3xx_gcu_priv {
28889 dma_addr_t shared_phys; 29676 dma_addr_t shared_phys;
28890 struct resource *resource_mem; 29677 struct resource *resource_mem;
@@ -28894,9 +29681,9 @@ diff -urNp linux-2.6.38.2/drivers/video/pxa3xx-gcu.c linux-2.6.38.2/drivers/vide
28894 wait_queue_head_t wait_idle; 29681 wait_queue_head_t wait_idle;
28895 wait_queue_head_t wait_free; 29682 wait_queue_head_t wait_free;
28896 spinlock_t spinlock; 29683 spinlock_t spinlock;
28897diff -urNp linux-2.6.38.2/drivers/video/uvesafb.c linux-2.6.38.2/drivers/video/uvesafb.c 29684diff -urNp linux-2.6.38.3/drivers/video/uvesafb.c linux-2.6.38.3/drivers/video/uvesafb.c
28898--- linux-2.6.38.2/drivers/video/uvesafb.c 2011-03-14 21:20:32.000000000 -0400 29685--- linux-2.6.38.3/drivers/video/uvesafb.c 2011-03-14 21:20:32.000000000 -0400
28899+++ linux-2.6.38.2/drivers/video/uvesafb.c 2011-03-21 18:31:35.000000000 -0400 29686+++ linux-2.6.38.3/drivers/video/uvesafb.c 2011-04-17 15:57:32.000000000 -0400
28900@@ -19,6 +19,7 @@ 29687@@ -19,6 +19,7 @@
28901 #include <linux/io.h> 29688 #include <linux/io.h>
28902 #include <linux/mutex.h> 29689 #include <linux/mutex.h>
@@ -28972,9 +29759,9 @@ diff -urNp linux-2.6.38.2/drivers/video/uvesafb.c linux-2.6.38.2/drivers/video/u
28972 } 29759 }
28973 29760
28974 framebuffer_release(info); 29761 framebuffer_release(info);
28975diff -urNp linux-2.6.38.2/drivers/video/vesafb.c linux-2.6.38.2/drivers/video/vesafb.c 29762diff -urNp linux-2.6.38.3/drivers/video/vesafb.c linux-2.6.38.3/drivers/video/vesafb.c
28976--- linux-2.6.38.2/drivers/video/vesafb.c 2011-03-14 21:20:32.000000000 -0400 29763--- linux-2.6.38.3/drivers/video/vesafb.c 2011-03-14 21:20:32.000000000 -0400
28977+++ linux-2.6.38.2/drivers/video/vesafb.c 2011-03-21 18:31:35.000000000 -0400 29764+++ linux-2.6.38.3/drivers/video/vesafb.c 2011-04-17 15:57:32.000000000 -0400
28978@@ -9,6 +9,7 @@ 29765@@ -9,6 +9,7 @@
28979 */ 29766 */
28980 29767
@@ -29078,9 +29865,9 @@ diff -urNp linux-2.6.38.2/drivers/video/vesafb.c linux-2.6.38.2/drivers/video/ve
29078 if (info->screen_base) 29865 if (info->screen_base)
29079 iounmap(info->screen_base); 29866 iounmap(info->screen_base);
29080 framebuffer_release(info); 29867 framebuffer_release(info);
29081diff -urNp linux-2.6.38.2/fs/9p/vfs_inode.c linux-2.6.38.2/fs/9p/vfs_inode.c 29868diff -urNp linux-2.6.38.3/fs/9p/vfs_inode.c linux-2.6.38.3/fs/9p/vfs_inode.c
29082--- linux-2.6.38.2/fs/9p/vfs_inode.c 2011-03-14 21:20:32.000000000 -0400 29869--- linux-2.6.38.3/fs/9p/vfs_inode.c 2011-03-14 21:20:32.000000000 -0400
29083+++ linux-2.6.38.2/fs/9p/vfs_inode.c 2011-03-21 18:31:35.000000000 -0400 29870+++ linux-2.6.38.3/fs/9p/vfs_inode.c 2011-04-17 15:57:32.000000000 -0400
29084@@ -1094,7 +1094,7 @@ static void *v9fs_vfs_follow_link(struct 29871@@ -1094,7 +1094,7 @@ static void *v9fs_vfs_follow_link(struct
29085 void 29872 void
29086 v9fs_vfs_put_link(struct dentry *dentry, struct nameidata *nd, void *p) 29873 v9fs_vfs_put_link(struct dentry *dentry, struct nameidata *nd, void *p)
@@ -29090,9 +29877,9 @@ diff -urNp linux-2.6.38.2/fs/9p/vfs_inode.c linux-2.6.38.2/fs/9p/vfs_inode.c
29090 29877
29091 P9_DPRINTK(P9_DEBUG_VFS, " %s %s\n", dentry->d_name.name, 29878 P9_DPRINTK(P9_DEBUG_VFS, " %s %s\n", dentry->d_name.name,
29092 IS_ERR(s) ? "<error>" : s); 29879 IS_ERR(s) ? "<error>" : s);
29093diff -urNp linux-2.6.38.2/fs/aio.c linux-2.6.38.2/fs/aio.c 29880diff -urNp linux-2.6.38.3/fs/aio.c linux-2.6.38.3/fs/aio.c
29094--- linux-2.6.38.2/fs/aio.c 2011-03-28 17:42:40.000000000 -0400 29881--- linux-2.6.38.3/fs/aio.c 2011-04-18 17:27:16.000000000 -0400
29095+++ linux-2.6.38.2/fs/aio.c 2011-03-28 17:42:53.000000000 -0400 29882+++ linux-2.6.38.3/fs/aio.c 2011-04-17 15:57:32.000000000 -0400
29096@@ -130,7 +130,7 @@ static int aio_setup_ring(struct kioctx 29883@@ -130,7 +130,7 @@ static int aio_setup_ring(struct kioctx
29097 size += sizeof(struct io_event) * nr_events; 29884 size += sizeof(struct io_event) * nr_events;
29098 nr_pages = (size + PAGE_SIZE-1) >> PAGE_SHIFT; 29885 nr_pages = (size + PAGE_SIZE-1) >> PAGE_SHIFT;
@@ -29102,9 +29889,9 @@ diff -urNp linux-2.6.38.2/fs/aio.c linux-2.6.38.2/fs/aio.c
29102 return -EINVAL; 29889 return -EINVAL;
29103 29890
29104 nr_events = (PAGE_SIZE * nr_pages - sizeof(struct aio_ring)) / sizeof(struct io_event); 29891 nr_events = (PAGE_SIZE * nr_pages - sizeof(struct aio_ring)) / sizeof(struct io_event);
29105diff -urNp linux-2.6.38.2/fs/attr.c linux-2.6.38.2/fs/attr.c 29892diff -urNp linux-2.6.38.3/fs/attr.c linux-2.6.38.3/fs/attr.c
29106--- linux-2.6.38.2/fs/attr.c 2011-03-14 21:20:32.000000000 -0400 29893--- linux-2.6.38.3/fs/attr.c 2011-03-14 21:20:32.000000000 -0400
29107+++ linux-2.6.38.2/fs/attr.c 2011-03-21 18:31:35.000000000 -0400 29894+++ linux-2.6.38.3/fs/attr.c 2011-04-17 15:57:32.000000000 -0400
29108@@ -98,6 +98,7 @@ int inode_newsize_ok(const struct inode 29895@@ -98,6 +98,7 @@ int inode_newsize_ok(const struct inode
29109 unsigned long limit; 29896 unsigned long limit;
29110 29897
@@ -29113,9 +29900,9 @@ diff -urNp linux-2.6.38.2/fs/attr.c linux-2.6.38.2/fs/attr.c
29113 if (limit != RLIM_INFINITY && offset > limit) 29900 if (limit != RLIM_INFINITY && offset > limit)
29114 goto out_sig; 29901 goto out_sig;
29115 if (offset > inode->i_sb->s_maxbytes) 29902 if (offset > inode->i_sb->s_maxbytes)
29116diff -urNp linux-2.6.38.2/fs/befs/linuxvfs.c linux-2.6.38.2/fs/befs/linuxvfs.c 29903diff -urNp linux-2.6.38.3/fs/befs/linuxvfs.c linux-2.6.38.3/fs/befs/linuxvfs.c
29117--- linux-2.6.38.2/fs/befs/linuxvfs.c 2011-03-14 21:20:32.000000000 -0400 29904--- linux-2.6.38.3/fs/befs/linuxvfs.c 2011-03-14 21:20:32.000000000 -0400
29118+++ linux-2.6.38.2/fs/befs/linuxvfs.c 2011-03-21 18:31:35.000000000 -0400 29905+++ linux-2.6.38.3/fs/befs/linuxvfs.c 2011-04-17 15:57:32.000000000 -0400
29119@@ -499,7 +499,7 @@ static void befs_put_link(struct dentry 29906@@ -499,7 +499,7 @@ static void befs_put_link(struct dentry
29120 { 29907 {
29121 befs_inode_info *befs_ino = BEFS_I(dentry->d_inode); 29908 befs_inode_info *befs_ino = BEFS_I(dentry->d_inode);
@@ -29125,9 +29912,9 @@ diff -urNp linux-2.6.38.2/fs/befs/linuxvfs.c linux-2.6.38.2/fs/befs/linuxvfs.c
29125 if (!IS_ERR(link)) 29912 if (!IS_ERR(link))
29126 kfree(link); 29913 kfree(link);
29127 } 29914 }
29128diff -urNp linux-2.6.38.2/fs/binfmt_aout.c linux-2.6.38.2/fs/binfmt_aout.c 29915diff -urNp linux-2.6.38.3/fs/binfmt_aout.c linux-2.6.38.3/fs/binfmt_aout.c
29129--- linux-2.6.38.2/fs/binfmt_aout.c 2011-03-14 21:20:32.000000000 -0400 29916--- linux-2.6.38.3/fs/binfmt_aout.c 2011-03-14 21:20:32.000000000 -0400
29130+++ linux-2.6.38.2/fs/binfmt_aout.c 2011-03-21 18:31:35.000000000 -0400 29917+++ linux-2.6.38.3/fs/binfmt_aout.c 2011-04-17 15:57:32.000000000 -0400
29131@@ -16,6 +16,7 @@ 29918@@ -16,6 +16,7 @@
29132 #include <linux/string.h> 29919 #include <linux/string.h>
29133 #include <linux/fs.h> 29920 #include <linux/fs.h>
@@ -29204,9 +29991,9 @@ diff -urNp linux-2.6.38.2/fs/binfmt_aout.c linux-2.6.38.2/fs/binfmt_aout.c
29204 MAP_FIXED | MAP_PRIVATE | MAP_DENYWRITE | MAP_EXECUTABLE, 29991 MAP_FIXED | MAP_PRIVATE | MAP_DENYWRITE | MAP_EXECUTABLE,
29205 fd_offset + ex.a_text); 29992 fd_offset + ex.a_text);
29206 up_write(&current->mm->mmap_sem); 29993 up_write(&current->mm->mmap_sem);
29207diff -urNp linux-2.6.38.2/fs/binfmt_elf.c linux-2.6.38.2/fs/binfmt_elf.c 29994diff -urNp linux-2.6.38.3/fs/binfmt_elf.c linux-2.6.38.3/fs/binfmt_elf.c
29208--- linux-2.6.38.2/fs/binfmt_elf.c 2011-03-14 21:20:32.000000000 -0400 29995--- linux-2.6.38.3/fs/binfmt_elf.c 2011-03-14 21:20:32.000000000 -0400
29209+++ linux-2.6.38.2/fs/binfmt_elf.c 2011-03-21 18:31:35.000000000 -0400 29996+++ linux-2.6.38.3/fs/binfmt_elf.c 2011-04-17 15:57:32.000000000 -0400
29210@@ -51,6 +51,10 @@ static int elf_core_dump(struct coredump 29997@@ -51,6 +51,10 @@ static int elf_core_dump(struct coredump
29211 #define elf_core_dump NULL 29998 #define elf_core_dump NULL
29212 #endif 29999 #endif
@@ -29248,7 +30035,7 @@ diff -urNp linux-2.6.38.2/fs/binfmt_elf.c linux-2.6.38.2/fs/binfmt_elf.c
29248 return 0; 30035 return 0;
29249 } 30036 }
29250 30037
29251@@ -148,7 +159,7 @@ create_elf_tables(struct linux_binprm *b 30038@@ -148,12 +159,13 @@ create_elf_tables(struct linux_binprm *b
29252 elf_addr_t __user *u_rand_bytes; 30039 elf_addr_t __user *u_rand_bytes;
29253 const char *k_platform = ELF_PLATFORM; 30040 const char *k_platform = ELF_PLATFORM;
29254 const char *k_base_platform = ELF_BASE_PLATFORM; 30041 const char *k_base_platform = ELF_BASE_PLATFORM;
@@ -29257,7 +30044,13 @@ diff -urNp linux-2.6.38.2/fs/binfmt_elf.c linux-2.6.38.2/fs/binfmt_elf.c
29257 int items; 30044 int items;
29258 elf_addr_t *elf_info; 30045 elf_addr_t *elf_info;
29259 int ei_index = 0; 30046 int ei_index = 0;
29260@@ -195,8 +206,12 @@ create_elf_tables(struct linux_binprm *b 30047 const struct cred *cred = current_cred();
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
29261 * Generate 16 random bytes for userspace PRNG seeding. 30054 * Generate 16 random bytes for userspace PRNG seeding.
29262 */ 30055 */
29263 get_random_bytes(k_rand_bytes, sizeof(k_rand_bytes)); 30056 get_random_bytes(k_rand_bytes, sizeof(k_rand_bytes));
@@ -29272,7 +30065,20 @@ diff -urNp linux-2.6.38.2/fs/binfmt_elf.c linux-2.6.38.2/fs/binfmt_elf.c
29272 if (__copy_to_user(u_rand_bytes, k_rand_bytes, sizeof(k_rand_bytes))) 30065 if (__copy_to_user(u_rand_bytes, k_rand_bytes, sizeof(k_rand_bytes)))
29273 return -EFAULT; 30066 return -EFAULT;
29274 30067
29275@@ -381,10 +396,10 @@ static unsigned long load_elf_interp(str 30068@@ -308,9 +324,11 @@ create_elf_tables(struct linux_binprm *b
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
29276 { 30082 {
29277 struct elf_phdr *elf_phdata; 30083 struct elf_phdr *elf_phdata;
29278 struct elf_phdr *eppnt; 30084 struct elf_phdr *eppnt;
@@ -29285,7 +30091,7 @@ diff -urNp linux-2.6.38.2/fs/binfmt_elf.c linux-2.6.38.2/fs/binfmt_elf.c
29285 unsigned long total_size; 30091 unsigned long total_size;
29286 int retval, i, size; 30092 int retval, i, size;
29287 30093
29288@@ -430,6 +445,11 @@ static unsigned long load_elf_interp(str 30094@@ -430,6 +448,11 @@ static unsigned long load_elf_interp(str
29289 goto out_close; 30095 goto out_close;
29290 } 30096 }
29291 30097
@@ -29297,7 +30103,7 @@ diff -urNp linux-2.6.38.2/fs/binfmt_elf.c linux-2.6.38.2/fs/binfmt_elf.c
29297 eppnt = elf_phdata; 30103 eppnt = elf_phdata;
29298 for (i = 0; i < interp_elf_ex->e_phnum; i++, eppnt++) { 30104 for (i = 0; i < interp_elf_ex->e_phnum; i++, eppnt++) {
29299 if (eppnt->p_type == PT_LOAD) { 30105 if (eppnt->p_type == PT_LOAD) {
29300@@ -473,8 +493,8 @@ static unsigned long load_elf_interp(str 30106@@ -473,8 +496,8 @@ static unsigned long load_elf_interp(str
29301 k = load_addr + eppnt->p_vaddr; 30107 k = load_addr + eppnt->p_vaddr;
29302 if (BAD_ADDR(k) || 30108 if (BAD_ADDR(k) ||
29303 eppnt->p_filesz > eppnt->p_memsz || 30109 eppnt->p_filesz > eppnt->p_memsz ||
@@ -29308,7 +30114,7 @@ diff -urNp linux-2.6.38.2/fs/binfmt_elf.c linux-2.6.38.2/fs/binfmt_elf.c
29308 error = -ENOMEM; 30114 error = -ENOMEM;
29309 goto out_close; 30115 goto out_close;
29310 } 30116 }
29311@@ -528,6 +548,177 @@ out: 30117@@ -528,6 +551,193 @@ out:
29312 return error; 30118 return error;
29313 } 30119 }
29314 30120
@@ -29448,6 +30254,7 @@ diff -urNp linux-2.6.38.2/fs/binfmt_elf.c linux-2.6.38.2/fs/binfmt_elf.c
29448+ 30254+
29449+#ifdef CONFIG_PAX_PT_PAX_FLAGS 30255+#ifdef CONFIG_PAX_PT_PAX_FLAGS
29450+ unsigned long i; 30256+ unsigned long i;
30257+ int found_flags = 0;
29451+#endif 30258+#endif
29452+ 30259+
29453+#ifdef CONFIG_PAX_EI_PAX 30260+#ifdef CONFIG_PAX_EI_PAX
@@ -29471,10 +30278,25 @@ diff -urNp linux-2.6.38.2/fs/binfmt_elf.c linux-2.6.38.2/fs/binfmt_elf.c
29471+#endif 30278+#endif
29472+ 30279+
29473+ pax_flags = pax_parse_hardmode(&elf_phdata[i]); 30280+ pax_flags = pax_parse_hardmode(&elf_phdata[i]);
30281+ found_flags = 1;
29474+ break; 30282+ break;
29475+ } 30283+ }
29476+#endif 30284+#endif
29477+ 30285+
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+
29478+ if (0 > pax_check_flags(&pax_flags)) 30300+ if (0 > pax_check_flags(&pax_flags))
29479+ return -EINVAL; 30301+ return -EINVAL;
29480+ 30302+
@@ -29486,7 +30308,7 @@ diff -urNp linux-2.6.38.2/fs/binfmt_elf.c linux-2.6.38.2/fs/binfmt_elf.c
29486 /* 30308 /*
29487 * These are the functions used to load ELF style executables and shared 30309 * These are the functions used to load ELF style executables and shared
29488 * libraries. There is no binary dependent code anywhere else. 30310 * libraries. There is no binary dependent code anywhere else.
29489@@ -544,6 +735,11 @@ static unsigned long randomize_stack_top 30311@@ -544,6 +754,11 @@ static unsigned long randomize_stack_top
29490 { 30312 {
29491 unsigned int random_variable = 0; 30313 unsigned int random_variable = 0;
29492 30314
@@ -29498,7 +30320,7 @@ diff -urNp linux-2.6.38.2/fs/binfmt_elf.c linux-2.6.38.2/fs/binfmt_elf.c
29498 if ((current->flags & PF_RANDOMIZE) && 30320 if ((current->flags & PF_RANDOMIZE) &&
29499 !(current->personality & ADDR_NO_RANDOMIZE)) { 30321 !(current->personality & ADDR_NO_RANDOMIZE)) {
29500 random_variable = get_random_int() & STACK_RND_MASK; 30322 random_variable = get_random_int() & STACK_RND_MASK;
29501@@ -562,7 +758,7 @@ static int load_elf_binary(struct linux_ 30323@@ -562,7 +777,7 @@ static int load_elf_binary(struct linux_
29502 unsigned long load_addr = 0, load_bias = 0; 30324 unsigned long load_addr = 0, load_bias = 0;
29503 int load_addr_set = 0; 30325 int load_addr_set = 0;
29504 char * elf_interpreter = NULL; 30326 char * elf_interpreter = NULL;
@@ -29507,7 +30329,7 @@ diff -urNp linux-2.6.38.2/fs/binfmt_elf.c linux-2.6.38.2/fs/binfmt_elf.c
29507 struct elf_phdr *elf_ppnt, *elf_phdata; 30329 struct elf_phdr *elf_ppnt, *elf_phdata;
29508 unsigned long elf_bss, elf_brk; 30330 unsigned long elf_bss, elf_brk;
29509 int retval, i; 30331 int retval, i;
29510@@ -572,11 +768,11 @@ static int load_elf_binary(struct linux_ 30332@@ -572,11 +787,11 @@ static int load_elf_binary(struct linux_
29511 unsigned long start_code, end_code, start_data, end_data; 30333 unsigned long start_code, end_code, start_data, end_data;
29512 unsigned long reloc_func_desc = 0; 30334 unsigned long reloc_func_desc = 0;
29513 int executable_stack = EXSTACK_DEFAULT; 30335 int executable_stack = EXSTACK_DEFAULT;
@@ -29520,7 +30342,7 @@ diff -urNp linux-2.6.38.2/fs/binfmt_elf.c linux-2.6.38.2/fs/binfmt_elf.c
29520 30342
29521 loc = kmalloc(sizeof(*loc), GFP_KERNEL); 30343 loc = kmalloc(sizeof(*loc), GFP_KERNEL);
29522 if (!loc) { 30344 if (!loc) {
29523@@ -714,11 +910,80 @@ static int load_elf_binary(struct linux_ 30345@@ -714,11 +929,80 @@ static int load_elf_binary(struct linux_
29524 30346
29525 /* OK, This is the point of no return */ 30347 /* OK, This is the point of no return */
29526 current->flags &= ~PF_FORKNOEXEC; 30348 current->flags &= ~PF_FORKNOEXEC;
@@ -29602,7 +30424,7 @@ diff -urNp linux-2.6.38.2/fs/binfmt_elf.c linux-2.6.38.2/fs/binfmt_elf.c
29602 if (elf_read_implies_exec(loc->elf_ex, executable_stack)) 30424 if (elf_read_implies_exec(loc->elf_ex, executable_stack))
29603 current->personality |= READ_IMPLIES_EXEC; 30425 current->personality |= READ_IMPLIES_EXEC;
29604 30426
29605@@ -800,6 +1065,20 @@ static int load_elf_binary(struct linux_ 30427@@ -800,6 +1084,20 @@ static int load_elf_binary(struct linux_
29606 #else 30428 #else
29607 load_bias = ELF_PAGESTART(ELF_ET_DYN_BASE - vaddr); 30429 load_bias = ELF_PAGESTART(ELF_ET_DYN_BASE - vaddr);
29608 #endif 30430 #endif
@@ -29623,7 +30445,7 @@ diff -urNp linux-2.6.38.2/fs/binfmt_elf.c linux-2.6.38.2/fs/binfmt_elf.c
29623 } 30445 }
29624 30446
29625 error = elf_map(bprm->file, load_bias + vaddr, elf_ppnt, 30447 error = elf_map(bprm->file, load_bias + vaddr, elf_ppnt,
29626@@ -832,9 +1111,9 @@ static int load_elf_binary(struct linux_ 30448@@ -832,9 +1130,9 @@ static int load_elf_binary(struct linux_
29627 * allowed task size. Note that p_filesz must always be 30449 * allowed task size. Note that p_filesz must always be
29628 * <= p_memsz so it is only necessary to check p_memsz. 30450 * <= p_memsz so it is only necessary to check p_memsz.
29629 */ 30451 */
@@ -29636,7 +30458,7 @@ diff -urNp linux-2.6.38.2/fs/binfmt_elf.c linux-2.6.38.2/fs/binfmt_elf.c
29636 /* set_brk can never work. Avoid overflows. */ 30458 /* set_brk can never work. Avoid overflows. */
29637 send_sig(SIGKILL, current, 0); 30459 send_sig(SIGKILL, current, 0);
29638 retval = -EINVAL; 30460 retval = -EINVAL;
29639@@ -862,6 +1141,11 @@ static int load_elf_binary(struct linux_ 30461@@ -862,6 +1160,11 @@ static int load_elf_binary(struct linux_
29640 start_data += load_bias; 30462 start_data += load_bias;
29641 end_data += load_bias; 30463 end_data += load_bias;
29642 30464
@@ -29648,7 +30470,7 @@ diff -urNp linux-2.6.38.2/fs/binfmt_elf.c linux-2.6.38.2/fs/binfmt_elf.c
29648 /* Calling set_brk effectively mmaps the pages that we need 30470 /* Calling set_brk effectively mmaps the pages that we need
29649 * for the bss and break sections. We must do this before 30471 * for the bss and break sections. We must do this before
29650 * mapping in the interpreter, to make sure it doesn't wind 30472 * mapping in the interpreter, to make sure it doesn't wind
29651@@ -873,9 +1157,11 @@ static int load_elf_binary(struct linux_ 30473@@ -873,9 +1176,11 @@ static int load_elf_binary(struct linux_
29652 goto out_free_dentry; 30474 goto out_free_dentry;
29653 } 30475 }
29654 if (likely(elf_bss != elf_brk) && unlikely(padzero(elf_bss))) { 30476 if (likely(elf_bss != elf_brk) && unlikely(padzero(elf_bss))) {
@@ -29663,7 +30485,7 @@ diff -urNp linux-2.6.38.2/fs/binfmt_elf.c linux-2.6.38.2/fs/binfmt_elf.c
29663 } 30485 }
29664 30486
29665 if (elf_interpreter) { 30487 if (elf_interpreter) {
29666@@ -1086,7 +1372,7 @@ out: 30488@@ -1086,7 +1391,7 @@ out:
29667 * Decide what to dump of a segment, part, all or none. 30489 * Decide what to dump of a segment, part, all or none.
29668 */ 30490 */
29669 static unsigned long vma_dump_size(struct vm_area_struct *vma, 30491 static unsigned long vma_dump_size(struct vm_area_struct *vma,
@@ -29672,7 +30494,7 @@ diff -urNp linux-2.6.38.2/fs/binfmt_elf.c linux-2.6.38.2/fs/binfmt_elf.c
29672 { 30494 {
29673 #define FILTER(type) (mm_flags & (1UL << MMF_DUMP_##type)) 30495 #define FILTER(type) (mm_flags & (1UL << MMF_DUMP_##type))
29674 30496
29675@@ -1120,7 +1406,7 @@ static unsigned long vma_dump_size(struc 30497@@ -1120,7 +1425,7 @@ static unsigned long vma_dump_size(struc
29676 if (vma->vm_file == NULL) 30498 if (vma->vm_file == NULL)
29677 return 0; 30499 return 0;
29678 30500
@@ -29681,7 +30503,7 @@ diff -urNp linux-2.6.38.2/fs/binfmt_elf.c linux-2.6.38.2/fs/binfmt_elf.c
29681 goto whole; 30503 goto whole;
29682 30504
29683 /* 30505 /*
29684@@ -1342,9 +1628,9 @@ static void fill_auxv_note(struct memelf 30506@@ -1342,9 +1647,9 @@ static void fill_auxv_note(struct memelf
29685 { 30507 {
29686 elf_addr_t *auxv = (elf_addr_t *) mm->saved_auxv; 30508 elf_addr_t *auxv = (elf_addr_t *) mm->saved_auxv;
29687 int i = 0; 30509 int i = 0;
@@ -29693,7 +30515,7 @@ diff -urNp linux-2.6.38.2/fs/binfmt_elf.c linux-2.6.38.2/fs/binfmt_elf.c
29693 fill_note(note, "CORE", NT_AUXV, i * sizeof(elf_addr_t), auxv); 30515 fill_note(note, "CORE", NT_AUXV, i * sizeof(elf_addr_t), auxv);
29694 } 30516 }
29695 30517
29696@@ -1850,14 +2136,14 @@ static void fill_extnum_info(struct elfh 30518@@ -1850,14 +2155,14 @@ static void fill_extnum_info(struct elfh
29697 } 30519 }
29698 30520
29699 static size_t elf_core_vma_data_size(struct vm_area_struct *gate_vma, 30521 static size_t elf_core_vma_data_size(struct vm_area_struct *gate_vma,
@@ -29710,7 +30532,7 @@ diff -urNp linux-2.6.38.2/fs/binfmt_elf.c linux-2.6.38.2/fs/binfmt_elf.c
29710 return size; 30532 return size;
29711 } 30533 }
29712 30534
29713@@ -1951,7 +2237,7 @@ static int elf_core_dump(struct coredump 30535@@ -1951,7 +2256,7 @@ static int elf_core_dump(struct coredump
29714 30536
29715 dataoff = offset = roundup(offset, ELF_EXEC_PAGESIZE); 30537 dataoff = offset = roundup(offset, ELF_EXEC_PAGESIZE);
29716 30538
@@ -29719,7 +30541,7 @@ diff -urNp linux-2.6.38.2/fs/binfmt_elf.c linux-2.6.38.2/fs/binfmt_elf.c
29719 offset += elf_core_extra_data_size(); 30541 offset += elf_core_extra_data_size();
29720 e_shoff = offset; 30542 e_shoff = offset;
29721 30543
29722@@ -1965,10 +2251,12 @@ static int elf_core_dump(struct coredump 30544@@ -1965,10 +2270,12 @@ static int elf_core_dump(struct coredump
29723 offset = dataoff; 30545 offset = dataoff;
29724 30546
29725 size += sizeof(*elf); 30547 size += sizeof(*elf);
@@ -29732,7 +30554,7 @@ diff -urNp linux-2.6.38.2/fs/binfmt_elf.c linux-2.6.38.2/fs/binfmt_elf.c
29732 if (size > cprm->limit 30554 if (size > cprm->limit
29733 || !dump_write(cprm->file, phdr4note, sizeof(*phdr4note))) 30555 || !dump_write(cprm->file, phdr4note, sizeof(*phdr4note)))
29734 goto end_coredump; 30556 goto end_coredump;
29735@@ -1982,7 +2270,7 @@ static int elf_core_dump(struct coredump 30557@@ -1982,7 +2289,7 @@ static int elf_core_dump(struct coredump
29736 phdr.p_offset = offset; 30558 phdr.p_offset = offset;
29737 phdr.p_vaddr = vma->vm_start; 30559 phdr.p_vaddr = vma->vm_start;
29738 phdr.p_paddr = 0; 30560 phdr.p_paddr = 0;
@@ -29741,7 +30563,7 @@ diff -urNp linux-2.6.38.2/fs/binfmt_elf.c linux-2.6.38.2/fs/binfmt_elf.c
29741 phdr.p_memsz = vma->vm_end - vma->vm_start; 30563 phdr.p_memsz = vma->vm_end - vma->vm_start;
29742 offset += phdr.p_filesz; 30564 offset += phdr.p_filesz;
29743 phdr.p_flags = vma->vm_flags & VM_READ ? PF_R : 0; 30565 phdr.p_flags = vma->vm_flags & VM_READ ? PF_R : 0;
29744@@ -1993,6 +2281,7 @@ static int elf_core_dump(struct coredump 30566@@ -1993,6 +2300,7 @@ static int elf_core_dump(struct coredump
29745 phdr.p_align = ELF_EXEC_PAGESIZE; 30567 phdr.p_align = ELF_EXEC_PAGESIZE;
29746 30568
29747 size += sizeof(phdr); 30569 size += sizeof(phdr);
@@ -29749,7 +30571,7 @@ diff -urNp linux-2.6.38.2/fs/binfmt_elf.c linux-2.6.38.2/fs/binfmt_elf.c
29749 if (size > cprm->limit 30571 if (size > cprm->limit
29750 || !dump_write(cprm->file, &phdr, sizeof(phdr))) 30572 || !dump_write(cprm->file, &phdr, sizeof(phdr)))
29751 goto end_coredump; 30573 goto end_coredump;
29752@@ -2017,7 +2306,7 @@ static int elf_core_dump(struct coredump 30574@@ -2017,7 +2325,7 @@ static int elf_core_dump(struct coredump
29753 unsigned long addr; 30575 unsigned long addr;
29754 unsigned long end; 30576 unsigned long end;
29755 30577
@@ -29758,7 +30580,7 @@ diff -urNp linux-2.6.38.2/fs/binfmt_elf.c linux-2.6.38.2/fs/binfmt_elf.c
29758 30580
29759 for (addr = vma->vm_start; addr < end; addr += PAGE_SIZE) { 30581 for (addr = vma->vm_start; addr < end; addr += PAGE_SIZE) {
29760 struct page *page; 30582 struct page *page;
29761@@ -2026,6 +2315,7 @@ static int elf_core_dump(struct coredump 30583@@ -2026,6 +2334,7 @@ static int elf_core_dump(struct coredump
29762 page = get_dump_page(addr); 30584 page = get_dump_page(addr);
29763 if (page) { 30585 if (page) {
29764 void *kaddr = kmap(page); 30586 void *kaddr = kmap(page);
@@ -29766,7 +30588,7 @@ diff -urNp linux-2.6.38.2/fs/binfmt_elf.c linux-2.6.38.2/fs/binfmt_elf.c
29766 stop = ((size += PAGE_SIZE) > cprm->limit) || 30588 stop = ((size += PAGE_SIZE) > cprm->limit) ||
29767 !dump_write(cprm->file, kaddr, 30589 !dump_write(cprm->file, kaddr,
29768 PAGE_SIZE); 30590 PAGE_SIZE);
29769@@ -2043,6 +2333,7 @@ static int elf_core_dump(struct coredump 30591@@ -2043,6 +2352,7 @@ static int elf_core_dump(struct coredump
29770 30592
29771 if (e_phnum == PN_XNUM) { 30593 if (e_phnum == PN_XNUM) {
29772 size += sizeof(*shdr4extnum); 30594 size += sizeof(*shdr4extnum);
@@ -29774,7 +30596,7 @@ diff -urNp linux-2.6.38.2/fs/binfmt_elf.c linux-2.6.38.2/fs/binfmt_elf.c
29774 if (size > cprm->limit 30596 if (size > cprm->limit
29775 || !dump_write(cprm->file, shdr4extnum, 30597 || !dump_write(cprm->file, shdr4extnum,
29776 sizeof(*shdr4extnum))) 30598 sizeof(*shdr4extnum)))
29777@@ -2063,6 +2354,97 @@ out: 30599@@ -2063,6 +2373,97 @@ out:
29778 30600
29779 #endif /* CONFIG_ELF_CORE */ 30601 #endif /* CONFIG_ELF_CORE */
29780 30602
@@ -29872,9 +30694,9 @@ diff -urNp linux-2.6.38.2/fs/binfmt_elf.c linux-2.6.38.2/fs/binfmt_elf.c
29872 static int __init init_elf_binfmt(void) 30694 static int __init init_elf_binfmt(void)
29873 { 30695 {
29874 return register_binfmt(&elf_format); 30696 return register_binfmt(&elf_format);
29875diff -urNp linux-2.6.38.2/fs/binfmt_flat.c linux-2.6.38.2/fs/binfmt_flat.c 30697diff -urNp linux-2.6.38.3/fs/binfmt_flat.c linux-2.6.38.3/fs/binfmt_flat.c
29876--- linux-2.6.38.2/fs/binfmt_flat.c 2011-03-14 21:20:32.000000000 -0400 30698--- linux-2.6.38.3/fs/binfmt_flat.c 2011-03-14 21:20:32.000000000 -0400
29877+++ linux-2.6.38.2/fs/binfmt_flat.c 2011-03-21 18:31:35.000000000 -0400 30699+++ linux-2.6.38.3/fs/binfmt_flat.c 2011-04-17 15:57:32.000000000 -0400
29878@@ -567,7 +567,9 @@ static int load_flat_file(struct linux_b 30700@@ -567,7 +567,9 @@ static int load_flat_file(struct linux_b
29879 realdatastart = (unsigned long) -ENOMEM; 30701 realdatastart = (unsigned long) -ENOMEM;
29880 printk("Unable to allocate RAM for process data, errno %d\n", 30702 printk("Unable to allocate RAM for process data, errno %d\n",
@@ -29907,9 +30729,9 @@ diff -urNp linux-2.6.38.2/fs/binfmt_flat.c linux-2.6.38.2/fs/binfmt_flat.c
29907 ret = result; 30729 ret = result;
29908 goto err; 30730 goto err;
29909 } 30731 }
29910diff -urNp linux-2.6.38.2/fs/binfmt_misc.c linux-2.6.38.2/fs/binfmt_misc.c 30732diff -urNp linux-2.6.38.3/fs/binfmt_misc.c linux-2.6.38.3/fs/binfmt_misc.c
29911--- linux-2.6.38.2/fs/binfmt_misc.c 2011-03-14 21:20:32.000000000 -0400 30733--- linux-2.6.38.3/fs/binfmt_misc.c 2011-03-14 21:20:32.000000000 -0400
29912+++ linux-2.6.38.2/fs/binfmt_misc.c 2011-03-21 18:31:35.000000000 -0400 30734+++ linux-2.6.38.3/fs/binfmt_misc.c 2011-04-17 15:57:32.000000000 -0400
29913@@ -698,7 +698,7 @@ static int bm_fill_super(struct super_bl 30735@@ -698,7 +698,7 @@ static int bm_fill_super(struct super_bl
29914 static struct tree_descr bm_files[] = { 30736 static struct tree_descr bm_files[] = {
29915 [2] = {"status", &bm_status_operations, S_IWUSR|S_IRUGO}, 30737 [2] = {"status", &bm_status_operations, S_IWUSR|S_IRUGO},
@@ -29919,9 +30741,9 @@ diff -urNp linux-2.6.38.2/fs/binfmt_misc.c linux-2.6.38.2/fs/binfmt_misc.c
29919 }; 30741 };
29920 int err = simple_fill_super(sb, 0x42494e4d, bm_files); 30742 int err = simple_fill_super(sb, 0x42494e4d, bm_files);
29921 if (!err) 30743 if (!err)
29922diff -urNp linux-2.6.38.2/fs/bio.c linux-2.6.38.2/fs/bio.c 30744diff -urNp linux-2.6.38.3/fs/bio.c linux-2.6.38.3/fs/bio.c
29923--- linux-2.6.38.2/fs/bio.c 2011-03-14 21:20:32.000000000 -0400 30745--- linux-2.6.38.3/fs/bio.c 2011-03-14 21:20:32.000000000 -0400
29924+++ linux-2.6.38.2/fs/bio.c 2011-03-21 18:31:35.000000000 -0400 30746+++ linux-2.6.38.3/fs/bio.c 2011-04-17 15:57:32.000000000 -0400
29925@@ -1233,7 +1233,7 @@ static void bio_copy_kern_endio(struct b 30747@@ -1233,7 +1233,7 @@ static void bio_copy_kern_endio(struct b
29926 const int read = bio_data_dir(bio) == READ; 30748 const int read = bio_data_dir(bio) == READ;
29927 struct bio_map_data *bmd = bio->bi_private; 30749 struct bio_map_data *bmd = bio->bi_private;
@@ -29931,9 +30753,9 @@ diff -urNp linux-2.6.38.2/fs/bio.c linux-2.6.38.2/fs/bio.c
29931 30753
29932 __bio_for_each_segment(bvec, bio, i, 0) { 30754 __bio_for_each_segment(bvec, bio, i, 0) {
29933 char *addr = page_address(bvec->bv_page); 30755 char *addr = page_address(bvec->bv_page);
29934diff -urNp linux-2.6.38.2/fs/block_dev.c linux-2.6.38.2/fs/block_dev.c 30756diff -urNp linux-2.6.38.3/fs/block_dev.c linux-2.6.38.3/fs/block_dev.c
29935--- linux-2.6.38.2/fs/block_dev.c 2011-03-14 21:20:32.000000000 -0400 30757--- linux-2.6.38.3/fs/block_dev.c 2011-03-14 21:20:32.000000000 -0400
29936+++ linux-2.6.38.2/fs/block_dev.c 2011-03-21 18:31:35.000000000 -0400 30758+++ linux-2.6.38.3/fs/block_dev.c 2011-04-17 15:57:32.000000000 -0400
29937@@ -669,7 +669,7 @@ static bool bd_may_claim(struct block_de 30759@@ -669,7 +669,7 @@ static bool bd_may_claim(struct block_de
29938 else if (bdev->bd_contains == bdev) 30760 else if (bdev->bd_contains == bdev)
29939 return true; /* is a whole device which isn't held */ 30761 return true; /* is a whole device which isn't held */
@@ -29943,9 +30765,9 @@ diff -urNp linux-2.6.38.2/fs/block_dev.c linux-2.6.38.2/fs/block_dev.c
29943 return true; /* is a partition of a device that is being partitioned */ 30765 return true; /* is a partition of a device that is being partitioned */
29944 else if (whole->bd_holder != NULL) 30766 else if (whole->bd_holder != NULL)
29945 return false; /* is a partition of a held device */ 30767 return false; /* is a partition of a held device */
29946diff -urNp linux-2.6.38.2/fs/btrfs/ctree.c linux-2.6.38.2/fs/btrfs/ctree.c 30768diff -urNp linux-2.6.38.3/fs/btrfs/ctree.c linux-2.6.38.3/fs/btrfs/ctree.c
29947--- linux-2.6.38.2/fs/btrfs/ctree.c 2011-03-14 21:20:32.000000000 -0400 30769--- linux-2.6.38.3/fs/btrfs/ctree.c 2011-03-14 21:20:32.000000000 -0400
29948+++ linux-2.6.38.2/fs/btrfs/ctree.c 2011-03-21 18:31:35.000000000 -0400 30770+++ linux-2.6.38.3/fs/btrfs/ctree.c 2011-04-17 15:57:32.000000000 -0400
29949@@ -468,9 +468,12 @@ static noinline int __btrfs_cow_block(st 30771@@ -468,9 +468,12 @@ static noinline int __btrfs_cow_block(st
29950 free_extent_buffer(buf); 30772 free_extent_buffer(buf);
29951 add_root_to_dirty_list(root); 30773 add_root_to_dirty_list(root);
@@ -29970,9 +30792,9 @@ diff -urNp linux-2.6.38.2/fs/btrfs/ctree.c linux-2.6.38.2/fs/btrfs/ctree.c
29970 btrfs_cpu_key_to_disk(&disk_key, cpu_key); 30792 btrfs_cpu_key_to_disk(&disk_key, cpu_key);
29971 ret = fixup_low_keys(trans, root, path, &disk_key, 1); 30793 ret = fixup_low_keys(trans, root, path, &disk_key, 1);
29972 } 30794 }
29973diff -urNp linux-2.6.38.2/fs/btrfs/disk-io.c linux-2.6.38.2/fs/btrfs/disk-io.c 30795diff -urNp linux-2.6.38.3/fs/btrfs/disk-io.c linux-2.6.38.3/fs/btrfs/disk-io.c
29974--- linux-2.6.38.2/fs/btrfs/disk-io.c 2011-03-14 21:20:32.000000000 -0400 30796--- linux-2.6.38.3/fs/btrfs/disk-io.c 2011-04-18 17:27:18.000000000 -0400
29975+++ linux-2.6.38.2/fs/btrfs/disk-io.c 2011-03-21 18:31:35.000000000 -0400 30797+++ linux-2.6.38.3/fs/btrfs/disk-io.c 2011-04-17 16:53:48.000000000 -0400
29976@@ -41,7 +41,7 @@ 30798@@ -41,7 +41,7 @@
29977 #include "tree-log.h" 30799 #include "tree-log.h"
29978 #include "free-space-cache.h" 30800 #include "free-space-cache.h"
@@ -29982,7 +30804,7 @@ diff -urNp linux-2.6.38.2/fs/btrfs/disk-io.c linux-2.6.38.2/fs/btrfs/disk-io.c
29982 static void end_workqueue_fn(struct btrfs_work *work); 30804 static void end_workqueue_fn(struct btrfs_work *work);
29983 static void free_fs_root(struct btrfs_root *root); 30805 static void free_fs_root(struct btrfs_root *root);
29984 static void btrfs_check_super_valid(struct btrfs_fs_info *fs_info, 30806 static void btrfs_check_super_valid(struct btrfs_fs_info *fs_info,
29985@@ -3028,7 +3028,7 @@ static int btrfs_cleanup_transaction(str 30807@@ -3030,7 +3030,7 @@ static int btrfs_cleanup_transaction(str
29986 return 0; 30808 return 0;
29987 } 30809 }
29988 30810
@@ -29991,9 +30813,9 @@ diff -urNp linux-2.6.38.2/fs/btrfs/disk-io.c linux-2.6.38.2/fs/btrfs/disk-io.c
29991 .write_cache_pages_lock_hook = btree_lock_page_hook, 30813 .write_cache_pages_lock_hook = btree_lock_page_hook,
29992 .readpage_end_io_hook = btree_readpage_end_io_hook, 30814 .readpage_end_io_hook = btree_readpage_end_io_hook,
29993 .submit_bio_hook = btree_submit_bio_hook, 30815 .submit_bio_hook = btree_submit_bio_hook,
29994diff -urNp linux-2.6.38.2/fs/btrfs/extent_io.h linux-2.6.38.2/fs/btrfs/extent_io.h 30816diff -urNp linux-2.6.38.3/fs/btrfs/extent_io.h linux-2.6.38.3/fs/btrfs/extent_io.h
29995--- linux-2.6.38.2/fs/btrfs/extent_io.h 2011-03-14 21:20:32.000000000 -0400 30817--- linux-2.6.38.3/fs/btrfs/extent_io.h 2011-03-14 21:20:32.000000000 -0400
29996+++ linux-2.6.38.2/fs/btrfs/extent_io.h 2011-03-21 18:31:35.000000000 -0400 30818+++ linux-2.6.38.3/fs/btrfs/extent_io.h 2011-04-17 15:57:32.000000000 -0400
29997@@ -55,36 +55,36 @@ typedef int (extent_submit_bio_hook_t)(s 30819@@ -55,36 +55,36 @@ typedef int (extent_submit_bio_hook_t)(s
29998 struct bio *bio, int mirror_num, 30820 struct bio *bio, int mirror_num,
29999 unsigned long bio_flags, u64 bio_offset); 30821 unsigned long bio_flags, u64 bio_offset);
@@ -30054,9 +30876,9 @@ diff -urNp linux-2.6.38.2/fs/btrfs/extent_io.h linux-2.6.38.2/fs/btrfs/extent_io
30054 }; 30876 };
30055 30877
30056 struct extent_state { 30878 struct extent_state {
30057diff -urNp linux-2.6.38.2/fs/btrfs/free-space-cache.c linux-2.6.38.2/fs/btrfs/free-space-cache.c 30879diff -urNp linux-2.6.38.3/fs/btrfs/free-space-cache.c linux-2.6.38.3/fs/btrfs/free-space-cache.c
30058--- linux-2.6.38.2/fs/btrfs/free-space-cache.c 2011-03-14 21:20:32.000000000 -0400 30880--- linux-2.6.38.3/fs/btrfs/free-space-cache.c 2011-03-14 21:20:32.000000000 -0400
30059+++ linux-2.6.38.2/fs/btrfs/free-space-cache.c 2011-03-21 18:31:35.000000000 -0400 30881+++ linux-2.6.38.3/fs/btrfs/free-space-cache.c 2011-04-17 15:57:32.000000000 -0400
30060@@ -1855,8 +1855,6 @@ u64 btrfs_alloc_from_cluster(struct btrf 30882@@ -1855,8 +1855,6 @@ u64 btrfs_alloc_from_cluster(struct btrf
30061 30883
30062 while(1) { 30884 while(1) {
@@ -30075,9 +30897,9 @@ diff -urNp linux-2.6.38.2/fs/btrfs/free-space-cache.c linux-2.6.38.2/fs/btrfs/fr
30075 30897
30076 if (entry->bitmap && entry->bytes > bytes + empty_size) { 30898 if (entry->bitmap && entry->bytes > bytes + empty_size) {
30077 ret = btrfs_bitmap_cluster(block_group, entry, cluster, 30899 ret = btrfs_bitmap_cluster(block_group, entry, cluster,
30078diff -urNp linux-2.6.38.2/fs/btrfs/inode.c linux-2.6.38.2/fs/btrfs/inode.c 30900diff -urNp linux-2.6.38.3/fs/btrfs/inode.c linux-2.6.38.3/fs/btrfs/inode.c
30079--- linux-2.6.38.2/fs/btrfs/inode.c 2011-03-14 21:20:32.000000000 -0400 30901--- linux-2.6.38.3/fs/btrfs/inode.c 2011-03-14 21:20:32.000000000 -0400
30080+++ linux-2.6.38.2/fs/btrfs/inode.c 2011-03-24 23:08:20.000000000 -0400 30902+++ linux-2.6.38.3/fs/btrfs/inode.c 2011-04-17 15:57:32.000000000 -0400
30081@@ -64,7 +64,7 @@ static const struct inode_operations btr 30903@@ -64,7 +64,7 @@ static const struct inode_operations btr
30082 static const struct address_space_operations btrfs_aops; 30904 static const struct address_space_operations btrfs_aops;
30083 static const struct address_space_operations btrfs_symlink_aops; 30905 static const struct address_space_operations btrfs_symlink_aops;
@@ -30120,10 +30942,10 @@ diff -urNp linux-2.6.38.2/fs/btrfs/inode.c linux-2.6.38.2/fs/btrfs/inode.c
30120 .fill_delalloc = run_delalloc_range, 30942 .fill_delalloc = run_delalloc_range,
30121 .submit_bio_hook = btrfs_submit_bio_hook, 30943 .submit_bio_hook = btrfs_submit_bio_hook,
30122 .merge_bio_hook = btrfs_merge_bio_hook, 30944 .merge_bio_hook = btrfs_merge_bio_hook,
30123diff -urNp linux-2.6.38.2/fs/btrfs/ioctl.c linux-2.6.38.2/fs/btrfs/ioctl.c 30945diff -urNp linux-2.6.38.3/fs/btrfs/ioctl.c linux-2.6.38.3/fs/btrfs/ioctl.c
30124--- linux-2.6.38.2/fs/btrfs/ioctl.c 2011-03-14 21:20:32.000000000 -0400 30946--- linux-2.6.38.3/fs/btrfs/ioctl.c 2011-04-18 17:27:18.000000000 -0400
30125+++ linux-2.6.38.2/fs/btrfs/ioctl.c 2011-03-21 18:31:35.000000000 -0400 30947+++ linux-2.6.38.3/fs/btrfs/ioctl.c 2011-04-17 16:53:48.000000000 -0400
30126@@ -2270,9 +2270,12 @@ long btrfs_ioctl_space_info(struct btrfs 30948@@ -2274,9 +2274,12 @@ long btrfs_ioctl_space_info(struct btrfs
30127 for (i = 0; i < num_types; i++) { 30949 for (i = 0; i < num_types; i++) {
30128 struct btrfs_space_info *tmp; 30950 struct btrfs_space_info *tmp;
30129 30951
@@ -30136,7 +30958,7 @@ diff -urNp linux-2.6.38.2/fs/btrfs/ioctl.c linux-2.6.38.2/fs/btrfs/ioctl.c
30136 info = NULL; 30958 info = NULL;
30137 rcu_read_lock(); 30959 rcu_read_lock();
30138 list_for_each_entry_rcu(tmp, &root->fs_info->space_info, 30960 list_for_each_entry_rcu(tmp, &root->fs_info->space_info,
30139@@ -2294,10 +2297,7 @@ long btrfs_ioctl_space_info(struct btrfs 30961@@ -2298,10 +2301,7 @@ long btrfs_ioctl_space_info(struct btrfs
30140 memcpy(dest, &space, sizeof(space)); 30962 memcpy(dest, &space, sizeof(space));
30141 dest++; 30963 dest++;
30142 space_args.total_spaces++; 30964 space_args.total_spaces++;
@@ -30147,9 +30969,9 @@ diff -urNp linux-2.6.38.2/fs/btrfs/ioctl.c linux-2.6.38.2/fs/btrfs/ioctl.c
30147 } 30969 }
30148 up_read(&info->groups_sem); 30970 up_read(&info->groups_sem);
30149 } 30971 }
30150diff -urNp linux-2.6.38.2/fs/btrfs/relocation.c linux-2.6.38.2/fs/btrfs/relocation.c 30972diff -urNp linux-2.6.38.3/fs/btrfs/relocation.c linux-2.6.38.3/fs/btrfs/relocation.c
30151--- linux-2.6.38.2/fs/btrfs/relocation.c 2011-03-14 21:20:32.000000000 -0400 30973--- linux-2.6.38.3/fs/btrfs/relocation.c 2011-03-14 21:20:32.000000000 -0400
30152+++ linux-2.6.38.2/fs/btrfs/relocation.c 2011-03-21 18:31:35.000000000 -0400 30974+++ linux-2.6.38.3/fs/btrfs/relocation.c 2011-04-17 15:57:32.000000000 -0400
30153@@ -1239,7 +1239,7 @@ static int __update_reloc_root(struct bt 30975@@ -1239,7 +1239,7 @@ static int __update_reloc_root(struct bt
30154 } 30976 }
30155 spin_unlock(&rc->reloc_root_tree.lock); 30977 spin_unlock(&rc->reloc_root_tree.lock);
@@ -30159,9 +30981,9 @@ diff -urNp linux-2.6.38.2/fs/btrfs/relocation.c linux-2.6.38.2/fs/btrfs/relocati
30159 30981
30160 if (!del) { 30982 if (!del) {
30161 spin_lock(&rc->reloc_root_tree.lock); 30983 spin_lock(&rc->reloc_root_tree.lock);
30162diff -urNp linux-2.6.38.2/fs/cachefiles/bind.c linux-2.6.38.2/fs/cachefiles/bind.c 30984diff -urNp linux-2.6.38.3/fs/cachefiles/bind.c linux-2.6.38.3/fs/cachefiles/bind.c
30163--- linux-2.6.38.2/fs/cachefiles/bind.c 2011-03-14 21:20:32.000000000 -0400 30985--- linux-2.6.38.3/fs/cachefiles/bind.c 2011-03-14 21:20:32.000000000 -0400
30164+++ linux-2.6.38.2/fs/cachefiles/bind.c 2011-03-21 18:31:35.000000000 -0400 30986+++ linux-2.6.38.3/fs/cachefiles/bind.c 2011-04-17 15:57:32.000000000 -0400
30165@@ -39,13 +39,11 @@ int cachefiles_daemon_bind(struct cachef 30987@@ -39,13 +39,11 @@ int cachefiles_daemon_bind(struct cachef
30166 args); 30988 args);
30167 30989
@@ -30178,9 +31000,9 @@ diff -urNp linux-2.6.38.2/fs/cachefiles/bind.c linux-2.6.38.2/fs/cachefiles/bind
30178 cache->bcull_percent < cache->brun_percent && 31000 cache->bcull_percent < cache->brun_percent &&
30179 cache->brun_percent < 100); 31001 cache->brun_percent < 100);
30180 31002
30181diff -urNp linux-2.6.38.2/fs/cachefiles/daemon.c linux-2.6.38.2/fs/cachefiles/daemon.c 31003diff -urNp linux-2.6.38.3/fs/cachefiles/daemon.c linux-2.6.38.3/fs/cachefiles/daemon.c
30182--- linux-2.6.38.2/fs/cachefiles/daemon.c 2011-03-14 21:20:32.000000000 -0400 31004--- linux-2.6.38.3/fs/cachefiles/daemon.c 2011-03-14 21:20:32.000000000 -0400
30183+++ linux-2.6.38.2/fs/cachefiles/daemon.c 2011-03-21 18:31:35.000000000 -0400 31005+++ linux-2.6.38.3/fs/cachefiles/daemon.c 2011-04-17 15:57:32.000000000 -0400
30184@@ -196,7 +196,7 @@ static ssize_t cachefiles_daemon_read(st 31006@@ -196,7 +196,7 @@ static ssize_t cachefiles_daemon_read(st
30185 if (n > buflen) 31007 if (n > buflen)
30186 return -EMSGSIZE; 31008 return -EMSGSIZE;
@@ -30217,9 +31039,9 @@ diff -urNp linux-2.6.38.2/fs/cachefiles/daemon.c linux-2.6.38.2/fs/cachefiles/da
30217 return cachefiles_daemon_range_error(cache, args); 31039 return cachefiles_daemon_range_error(cache, args);
30218 31040
30219 cache->bstop_percent = bstop; 31041 cache->bstop_percent = bstop;
30220diff -urNp linux-2.6.38.2/fs/cachefiles/rdwr.c linux-2.6.38.2/fs/cachefiles/rdwr.c 31042diff -urNp linux-2.6.38.3/fs/cachefiles/rdwr.c linux-2.6.38.3/fs/cachefiles/rdwr.c
30221--- linux-2.6.38.2/fs/cachefiles/rdwr.c 2011-03-14 21:20:32.000000000 -0400 31043--- linux-2.6.38.3/fs/cachefiles/rdwr.c 2011-03-14 21:20:32.000000000 -0400
30222+++ linux-2.6.38.2/fs/cachefiles/rdwr.c 2011-03-21 18:31:35.000000000 -0400 31044+++ linux-2.6.38.3/fs/cachefiles/rdwr.c 2011-04-17 15:57:32.000000000 -0400
30223@@ -945,7 +945,7 @@ int cachefiles_write_page(struct fscache 31045@@ -945,7 +945,7 @@ int cachefiles_write_page(struct fscache
30224 old_fs = get_fs(); 31046 old_fs = get_fs();
30225 set_fs(KERNEL_DS); 31047 set_fs(KERNEL_DS);
@@ -30229,9 +31051,9 @@ diff -urNp linux-2.6.38.2/fs/cachefiles/rdwr.c linux-2.6.38.2/fs/cachefiles/rdwr
30229 set_fs(old_fs); 31051 set_fs(old_fs);
30230 kunmap(page); 31052 kunmap(page);
30231 if (ret != len) 31053 if (ret != len)
30232diff -urNp linux-2.6.38.2/fs/ceph/dir.c linux-2.6.38.2/fs/ceph/dir.c 31054diff -urNp linux-2.6.38.3/fs/ceph/dir.c linux-2.6.38.3/fs/ceph/dir.c
30233--- linux-2.6.38.2/fs/ceph/dir.c 2011-03-14 21:20:32.000000000 -0400 31055--- linux-2.6.38.3/fs/ceph/dir.c 2011-03-14 21:20:32.000000000 -0400
30234+++ linux-2.6.38.2/fs/ceph/dir.c 2011-03-21 18:31:35.000000000 -0400 31056+++ linux-2.6.38.3/fs/ceph/dir.c 2011-04-17 15:57:32.000000000 -0400
30235@@ -226,7 +226,7 @@ static int ceph_readdir(struct file *fil 31057@@ -226,7 +226,7 @@ static int ceph_readdir(struct file *fil
30236 struct ceph_fs_client *fsc = ceph_inode_to_client(inode); 31058 struct ceph_fs_client *fsc = ceph_inode_to_client(inode);
30237 struct ceph_mds_client *mdsc = fsc->mdsc; 31059 struct ceph_mds_client *mdsc = fsc->mdsc;
@@ -30250,9 +31072,9 @@ diff -urNp linux-2.6.38.2/fs/ceph/dir.c linux-2.6.38.2/fs/ceph/dir.c
30250 u64 pos = ceph_make_fpos(frag, off); 31072 u64 pos = ceph_make_fpos(frag, off);
30251 struct ceph_mds_reply_inode *in = 31073 struct ceph_mds_reply_inode *in =
30252 rinfo->dir_in[off - fi->offset].in; 31074 rinfo->dir_in[off - fi->offset].in;
30253diff -urNp linux-2.6.38.2/fs/cifs/cifs_uniupr.h linux-2.6.38.2/fs/cifs/cifs_uniupr.h 31075diff -urNp linux-2.6.38.3/fs/cifs/cifs_uniupr.h linux-2.6.38.3/fs/cifs/cifs_uniupr.h
30254--- linux-2.6.38.2/fs/cifs/cifs_uniupr.h 2011-03-14 21:20:32.000000000 -0400 31076--- linux-2.6.38.3/fs/cifs/cifs_uniupr.h 2011-03-14 21:20:32.000000000 -0400
30255+++ linux-2.6.38.2/fs/cifs/cifs_uniupr.h 2011-03-21 18:31:35.000000000 -0400 31077+++ linux-2.6.38.3/fs/cifs/cifs_uniupr.h 2011-04-17 15:57:32.000000000 -0400
30256@@ -132,7 +132,7 @@ const struct UniCaseRange CifsUniUpperRa 31078@@ -132,7 +132,7 @@ const struct UniCaseRange CifsUniUpperRa
30257 {0x0490, 0x04cc, UniCaseRangeU0490}, 31079 {0x0490, 0x04cc, UniCaseRangeU0490},
30258 {0x1e00, 0x1ffc, UniCaseRangeU1e00}, 31080 {0x1e00, 0x1ffc, UniCaseRangeU1e00},
@@ -30262,9 +31084,9 @@ diff -urNp linux-2.6.38.2/fs/cifs/cifs_uniupr.h linux-2.6.38.2/fs/cifs/cifs_uniu
30262 }; 31084 };
30263 #endif 31085 #endif
30264 31086
30265diff -urNp linux-2.6.38.2/fs/cifs/link.c linux-2.6.38.2/fs/cifs/link.c 31087diff -urNp linux-2.6.38.3/fs/cifs/link.c linux-2.6.38.3/fs/cifs/link.c
30266--- linux-2.6.38.2/fs/cifs/link.c 2011-03-14 21:20:32.000000000 -0400 31088--- linux-2.6.38.3/fs/cifs/link.c 2011-03-14 21:20:32.000000000 -0400
30267+++ linux-2.6.38.2/fs/cifs/link.c 2011-03-21 18:31:35.000000000 -0400 31089+++ linux-2.6.38.3/fs/cifs/link.c 2011-04-17 15:57:32.000000000 -0400
30268@@ -577,7 +577,7 @@ symlink_exit: 31090@@ -577,7 +577,7 @@ symlink_exit:
30269 31091
30270 void cifs_put_link(struct dentry *direntry, struct nameidata *nd, void *cookie) 31092 void cifs_put_link(struct dentry *direntry, struct nameidata *nd, void *cookie)
@@ -30274,9 +31096,9 @@ diff -urNp linux-2.6.38.2/fs/cifs/link.c linux-2.6.38.2/fs/cifs/link.c
30274 if (!IS_ERR(p)) 31096 if (!IS_ERR(p))
30275 kfree(p); 31097 kfree(p);
30276 } 31098 }
30277diff -urNp linux-2.6.38.2/fs/compat_binfmt_elf.c linux-2.6.38.2/fs/compat_binfmt_elf.c 31099diff -urNp linux-2.6.38.3/fs/compat_binfmt_elf.c linux-2.6.38.3/fs/compat_binfmt_elf.c
30278--- linux-2.6.38.2/fs/compat_binfmt_elf.c 2011-03-14 21:20:32.000000000 -0400 31100--- linux-2.6.38.3/fs/compat_binfmt_elf.c 2011-03-14 21:20:32.000000000 -0400
30279+++ linux-2.6.38.2/fs/compat_binfmt_elf.c 2011-03-21 18:31:35.000000000 -0400 31101+++ linux-2.6.38.3/fs/compat_binfmt_elf.c 2011-04-17 15:57:32.000000000 -0400
30280@@ -30,11 +30,13 @@ 31102@@ -30,11 +30,13 @@
30281 #undef elf_phdr 31103 #undef elf_phdr
30282 #undef elf_shdr 31104 #undef elf_shdr
@@ -30291,9 +31113,9 @@ diff -urNp linux-2.6.38.2/fs/compat_binfmt_elf.c linux-2.6.38.2/fs/compat_binfmt
30291 #define elf_addr_t Elf32_Addr 31113 #define elf_addr_t Elf32_Addr
30292 31114
30293 /* 31115 /*
30294diff -urNp linux-2.6.38.2/fs/compat.c linux-2.6.38.2/fs/compat.c 31116diff -urNp linux-2.6.38.3/fs/compat.c linux-2.6.38.3/fs/compat.c
30295--- linux-2.6.38.2/fs/compat.c 2011-03-14 21:20:32.000000000 -0400 31117--- linux-2.6.38.3/fs/compat.c 2011-03-14 21:20:32.000000000 -0400
30296+++ linux-2.6.38.2/fs/compat.c 2011-03-21 18:31:35.000000000 -0400 31118+++ linux-2.6.38.3/fs/compat.c 2011-04-17 15:57:32.000000000 -0400
30297@@ -594,7 +594,7 @@ ssize_t compat_rw_copy_check_uvector(int 31119@@ -594,7 +594,7 @@ ssize_t compat_rw_copy_check_uvector(int
30298 goto out; 31120 goto out;
30299 31121
@@ -30404,10 +31226,15 @@ diff -urNp linux-2.6.38.2/fs/compat.c linux-2.6.38.2/fs/compat.c
30404 struct linux_binprm *bprm; 31226 struct linux_binprm *bprm;
30405 struct file *file; 31227 struct file *file;
30406 struct files_struct *displaced; 31228 struct files_struct *displaced;
30407@@ -1500,6 +1524,14 @@ int compat_do_execve(char * filename, 31229@@ -1500,6 +1524,19 @@ int compat_do_execve(char * filename,
30408 bprm->filename = filename; 31230 bprm->filename = filename;
30409 bprm->interp = filename; 31231 bprm->interp = filename;
30410 31232
31233+ if (gr_process_user_ban()) {
31234+ retval = -EPERM;
31235+ goto out_file;
31236+ }
31237+
30411+ gr_learn_resource(current, RLIMIT_NPROC, atomic_read(&current->cred->user->processes), 1); 31238+ gr_learn_resource(current, RLIMIT_NPROC, atomic_read(&current->cred->user->processes), 1);
30412+ retval = -EAGAIN; 31239+ retval = -EAGAIN;
30413+ if (gr_handle_nproc()) 31240+ if (gr_handle_nproc())
@@ -30419,7 +31246,7 @@ diff -urNp linux-2.6.38.2/fs/compat.c linux-2.6.38.2/fs/compat.c
30419 retval = bprm_mm_init(bprm); 31246 retval = bprm_mm_init(bprm);
30420 if (retval) 31247 if (retval)
30421 goto out_file; 31248 goto out_file;
30422@@ -1529,9 +1561,40 @@ int compat_do_execve(char * filename, 31249@@ -1529,9 +1566,40 @@ int compat_do_execve(char * filename,
30423 if (retval < 0) 31250 if (retval < 0)
30424 goto out; 31251 goto out;
30425 31252
@@ -30461,7 +31288,7 @@ diff -urNp linux-2.6.38.2/fs/compat.c linux-2.6.38.2/fs/compat.c
30461 31288
30462 /* execve succeeded */ 31289 /* execve succeeded */
30463 current->fs->in_exec = 0; 31290 current->fs->in_exec = 0;
30464@@ -1542,6 +1605,14 @@ int compat_do_execve(char * filename, 31291@@ -1542,6 +1610,14 @@ int compat_do_execve(char * filename,
30465 put_files_struct(displaced); 31292 put_files_struct(displaced);
30466 return retval; 31293 return retval;
30467 31294
@@ -30476,9 +31303,9 @@ diff -urNp linux-2.6.38.2/fs/compat.c linux-2.6.38.2/fs/compat.c
30476 out: 31303 out:
30477 if (bprm->mm) { 31304 if (bprm->mm) {
30478 acct_arg_size(bprm, 0); 31305 acct_arg_size(bprm, 0);
30479diff -urNp linux-2.6.38.2/fs/compat_ioctl.c linux-2.6.38.2/fs/compat_ioctl.c 31306diff -urNp linux-2.6.38.3/fs/compat_ioctl.c linux-2.6.38.3/fs/compat_ioctl.c
30480--- linux-2.6.38.2/fs/compat_ioctl.c 2011-03-14 21:20:32.000000000 -0400 31307--- linux-2.6.38.3/fs/compat_ioctl.c 2011-03-14 21:20:32.000000000 -0400
30481+++ linux-2.6.38.2/fs/compat_ioctl.c 2011-03-21 18:31:35.000000000 -0400 31308+++ linux-2.6.38.3/fs/compat_ioctl.c 2011-04-17 15:57:32.000000000 -0400
30482@@ -208,6 +208,8 @@ static int do_video_set_spu_palette(unsi 31309@@ -208,6 +208,8 @@ static int do_video_set_spu_palette(unsi
30483 31310
30484 err = get_user(palp, &up->palette); 31311 err = get_user(palp, &up->palette);
@@ -30499,9 +31326,21 @@ diff -urNp linux-2.6.38.2/fs/compat_ioctl.c linux-2.6.38.2/fs/compat_ioctl.c
30499 if (a > b) 31326 if (a > b)
30500 return 1; 31327 return 1;
30501 if (a < b) 31328 if (a < b)
30502diff -urNp linux-2.6.38.2/fs/debugfs/inode.c linux-2.6.38.2/fs/debugfs/inode.c 31329diff -urNp linux-2.6.38.3/fs/dcache.c linux-2.6.38.3/fs/dcache.c
30503--- linux-2.6.38.2/fs/debugfs/inode.c 2011-03-14 21:20:32.000000000 -0400 31330--- linux-2.6.38.3/fs/dcache.c 2011-04-18 17:27:16.000000000 -0400
30504+++ linux-2.6.38.2/fs/debugfs/inode.c 2011-03-21 18:31:35.000000000 -0400 31331+++ linux-2.6.38.3/fs/dcache.c 2011-04-17 15:57:32.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
30505@@ -130,7 +130,7 @@ static inline int debugfs_positive(struc 31344@@ -130,7 +130,7 @@ static inline int debugfs_positive(struc
30506 31345
30507 static int debug_fill_super(struct super_block *sb, void *data, int silent) 31346 static int debug_fill_super(struct super_block *sb, void *data, int silent)
@@ -30511,9 +31350,9 @@ diff -urNp linux-2.6.38.2/fs/debugfs/inode.c linux-2.6.38.2/fs/debugfs/inode.c
30511 31350
30512 return simple_fill_super(sb, DEBUGFS_MAGIC, debug_files); 31351 return simple_fill_super(sb, DEBUGFS_MAGIC, debug_files);
30513 } 31352 }
30514diff -urNp linux-2.6.38.2/fs/dlm/lockspace.c linux-2.6.38.2/fs/dlm/lockspace.c 31353diff -urNp linux-2.6.38.3/fs/dlm/lockspace.c linux-2.6.38.3/fs/dlm/lockspace.c
30515--- linux-2.6.38.2/fs/dlm/lockspace.c 2011-03-14 21:20:32.000000000 -0400 31354--- linux-2.6.38.3/fs/dlm/lockspace.c 2011-03-14 21:20:32.000000000 -0400
30516+++ linux-2.6.38.2/fs/dlm/lockspace.c 2011-03-21 18:31:35.000000000 -0400 31355+++ linux-2.6.38.3/fs/dlm/lockspace.c 2011-04-17 15:57:32.000000000 -0400
30517@@ -200,7 +200,7 @@ static int dlm_uevent(struct kset *kset, 31356@@ -200,7 +200,7 @@ static int dlm_uevent(struct kset *kset,
30518 return 0; 31357 return 0;
30519 } 31358 }
@@ -30523,9 +31362,9 @@ diff -urNp linux-2.6.38.2/fs/dlm/lockspace.c linux-2.6.38.2/fs/dlm/lockspace.c
30523 .uevent = dlm_uevent, 31362 .uevent = dlm_uevent,
30524 }; 31363 };
30525 31364
30526diff -urNp linux-2.6.38.2/fs/ecryptfs/inode.c linux-2.6.38.2/fs/ecryptfs/inode.c 31365diff -urNp linux-2.6.38.3/fs/ecryptfs/inode.c linux-2.6.38.3/fs/ecryptfs/inode.c
30527--- linux-2.6.38.2/fs/ecryptfs/inode.c 2011-03-14 21:20:32.000000000 -0400 31366--- linux-2.6.38.3/fs/ecryptfs/inode.c 2011-03-14 21:20:32.000000000 -0400
30528+++ linux-2.6.38.2/fs/ecryptfs/inode.c 2011-03-21 18:31:35.000000000 -0400 31367+++ linux-2.6.38.3/fs/ecryptfs/inode.c 2011-04-17 15:57:32.000000000 -0400
30529@@ -658,7 +658,7 @@ static int ecryptfs_readlink_lower(struc 31368@@ -658,7 +658,7 @@ static int ecryptfs_readlink_lower(struc
30530 old_fs = get_fs(); 31369 old_fs = get_fs();
30531 set_fs(get_ds()); 31370 set_fs(get_ds());
@@ -30553,9 +31392,9 @@ diff -urNp linux-2.6.38.2/fs/ecryptfs/inode.c linux-2.6.38.2/fs/ecryptfs/inode.c
30553 if (!IS_ERR(buf)) { 31392 if (!IS_ERR(buf)) {
30554 /* Free the char* */ 31393 /* Free the char* */
30555 kfree(buf); 31394 kfree(buf);
30556diff -urNp linux-2.6.38.2/fs/ecryptfs/miscdev.c linux-2.6.38.2/fs/ecryptfs/miscdev.c 31395diff -urNp linux-2.6.38.3/fs/ecryptfs/miscdev.c linux-2.6.38.3/fs/ecryptfs/miscdev.c
30557--- linux-2.6.38.2/fs/ecryptfs/miscdev.c 2011-03-14 21:20:32.000000000 -0400 31396--- linux-2.6.38.3/fs/ecryptfs/miscdev.c 2011-03-14 21:20:32.000000000 -0400
30558+++ linux-2.6.38.2/fs/ecryptfs/miscdev.c 2011-03-21 18:31:35.000000000 -0400 31397+++ linux-2.6.38.3/fs/ecryptfs/miscdev.c 2011-04-17 15:57:32.000000000 -0400
30559@@ -328,7 +328,7 @@ check_list: 31398@@ -328,7 +328,7 @@ check_list:
30560 goto out_unlock_msg_ctx; 31399 goto out_unlock_msg_ctx;
30561 i = 5; 31400 i = 5;
@@ -30565,9 +31404,9 @@ diff -urNp linux-2.6.38.2/fs/ecryptfs/miscdev.c linux-2.6.38.2/fs/ecryptfs/miscd
30565 goto out_unlock_msg_ctx; 31404 goto out_unlock_msg_ctx;
30566 i += packet_length_size; 31405 i += packet_length_size;
30567 if (copy_to_user(&buf[i], msg_ctx->msg, msg_ctx->msg_size)) 31406 if (copy_to_user(&buf[i], msg_ctx->msg, msg_ctx->msg_size))
30568diff -urNp linux-2.6.38.2/fs/exec.c linux-2.6.38.2/fs/exec.c 31407diff -urNp linux-2.6.38.3/fs/exec.c linux-2.6.38.3/fs/exec.c
30569--- linux-2.6.38.2/fs/exec.c 2011-03-14 21:20:32.000000000 -0400 31408--- linux-2.6.38.3/fs/exec.c 2011-03-14 21:20:32.000000000 -0400
30570+++ linux-2.6.38.2/fs/exec.c 2011-03-21 18:31:35.000000000 -0400 31409+++ linux-2.6.38.3/fs/exec.c 2011-04-17 15:57:32.000000000 -0400
30571@@ -55,12 +55,24 @@ 31410@@ -55,12 +55,24 @@
30572 #include <linux/fs_struct.h> 31411 #include <linux/fs_struct.h>
30573 #include <linux/pipe_fs_i.h> 31412 #include <linux/pipe_fs_i.h>
@@ -30772,10 +31611,15 @@ diff -urNp linux-2.6.38.2/fs/exec.c linux-2.6.38.2/fs/exec.c
30772 struct linux_binprm *bprm; 31611 struct linux_binprm *bprm;
30773 struct file *file; 31612 struct file *file;
30774 struct files_struct *displaced; 31613 struct files_struct *displaced;
30775@@ -1414,6 +1448,18 @@ int do_execve(const char * filename, 31614@@ -1414,6 +1448,23 @@ int do_execve(const char * filename,
30776 bprm->filename = filename; 31615 bprm->filename = filename;
30777 bprm->interp = filename; 31616 bprm->interp = filename;
30778 31617
31618+ if (gr_process_user_ban()) {
31619+ retval = -EPERM;
31620+ goto out_file;
31621+ }
31622+
30779+ gr_learn_resource(current, RLIMIT_NPROC, atomic_read(&current->cred->user->processes), 1); 31623+ gr_learn_resource(current, RLIMIT_NPROC, atomic_read(&current->cred->user->processes), 1);
30780+ 31624+
30781+ if (gr_handle_nproc()) { 31625+ if (gr_handle_nproc()) {
@@ -30791,7 +31635,7 @@ diff -urNp linux-2.6.38.2/fs/exec.c linux-2.6.38.2/fs/exec.c
30791 retval = bprm_mm_init(bprm); 31635 retval = bprm_mm_init(bprm);
30792 if (retval) 31636 if (retval)
30793 goto out_file; 31637 goto out_file;
30794@@ -1443,9 +1489,40 @@ int do_execve(const char * filename, 31638@@ -1443,9 +1494,40 @@ int do_execve(const char * filename,
30795 if (retval < 0) 31639 if (retval < 0)
30796 goto out; 31640 goto out;
30797 31641
@@ -30833,7 +31677,7 @@ diff -urNp linux-2.6.38.2/fs/exec.c linux-2.6.38.2/fs/exec.c
30833 31677
30834 /* execve succeeded */ 31678 /* execve succeeded */
30835 current->fs->in_exec = 0; 31679 current->fs->in_exec = 0;
30836@@ -1456,6 +1533,14 @@ int do_execve(const char * filename, 31680@@ -1456,6 +1538,14 @@ int do_execve(const char * filename,
30837 put_files_struct(displaced); 31681 put_files_struct(displaced);
30838 return retval; 31682 return retval;
30839 31683
@@ -30848,7 +31692,7 @@ diff -urNp linux-2.6.38.2/fs/exec.c linux-2.6.38.2/fs/exec.c
30848 out: 31692 out:
30849 if (bprm->mm) { 31693 if (bprm->mm) {
30850 acct_arg_size(bprm, 0); 31694 acct_arg_size(bprm, 0);
30851@@ -1642,6 +1727,217 @@ out: 31695@@ -1642,6 +1732,208 @@ out:
30852 return ispipe; 31696 return ispipe;
30853 } 31697 }
30854 31698
@@ -31040,25 +31884,16 @@ diff -urNp linux-2.6.38.2/fs/exec.c linux-2.6.38.2/fs/exec.c
31040+} 31884+}
31041+ 31885+
31042+ 31886+
31043+void pax_report_leak_to_user(const void *ptr, unsigned long len) 31887+void pax_report_usercopy(const void *ptr, unsigned long len, bool to, const char *type)
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)
31055+{ 31888+{
31056+ if (current->signal->curr_ip) 31889+ if (current->signal->curr_ip)
31057+ printk(KERN_ERR "PAX: From %pI4: kernel memory overflow attempt detected to %p (%lu bytes)\n", 31890+ printk(KERN_ERR "PAX: From %pI4: kernel memory %s attempt detected %s %p (%s) (%lu bytes)\n",
31058+ &current->signal->curr_ip, ptr, len); 31891+ &current->signal->curr_ip, to ? "leak" : "overwrite", to ? "from" : "to", ptr, type ? : "unknown", len);
31059+ else 31892+ else
31060+ printk(KERN_ERR "PAX: kernel memory overflow attempt detected to %p (%lu bytes)\n", ptr, len); 31893+ printk(KERN_ERR "PAX: kernel memory %s attempt detected %s %p (%s) (%lu bytes)\n",
31894+ to ? "leak" : "overwrite", to ? "from" : "to", ptr, type ? : "unknown", len);
31061+ dump_stack(); 31895+ dump_stack();
31896+ gr_handle_kernel_exploit();
31062+ do_group_exit(SIGKILL); 31897+ do_group_exit(SIGKILL);
31063+} 31898+}
31064+#endif 31899+#endif
@@ -31066,7 +31901,7 @@ diff -urNp linux-2.6.38.2/fs/exec.c linux-2.6.38.2/fs/exec.c
31066 static int zap_process(struct task_struct *start, int exit_code) 31901 static int zap_process(struct task_struct *start, int exit_code)
31067 { 31902 {
31068 struct task_struct *t; 31903 struct task_struct *t;
31069@@ -1852,17 +2148,17 @@ static void wait_for_dump_helpers(struct 31904@@ -1852,17 +2144,17 @@ static void wait_for_dump_helpers(struct
31070 pipe = file->f_path.dentry->d_inode->i_pipe; 31905 pipe = file->f_path.dentry->d_inode->i_pipe;
31071 31906
31072 pipe_lock(pipe); 31907 pipe_lock(pipe);
@@ -31089,20 +31924,28 @@ diff -urNp linux-2.6.38.2/fs/exec.c linux-2.6.38.2/fs/exec.c
31089 pipe_unlock(pipe); 31924 pipe_unlock(pipe);
31090 31925
31091 } 31926 }
31092@@ -1978,6 +2274,10 @@ void do_coredump(long signr, int exit_co 31927@@ -1938,6 +2230,9 @@ 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
31093 goto fail_corename; 31938 goto fail_corename;
31094 } 31939 }
31095 31940
31096+ if (signr == SIGSEGV || signr == SIGBUS || signr == SIGKILL || signr == SIGILL)
31097+ gr_handle_brute_attach(current);
31098+ gr_learn_resource(current, RLIMIT_CORE, binfmt->min_coredump, 1); 31941+ gr_learn_resource(current, RLIMIT_CORE, binfmt->min_coredump, 1);
31099+ 31942+
31100 if (ispipe) { 31943 if (ispipe) {
31101 int dump_count; 31944 int dump_count;
31102 char **helper_argv; 31945 char **helper_argv;
31103diff -urNp linux-2.6.38.2/fs/ext2/balloc.c linux-2.6.38.2/fs/ext2/balloc.c 31946diff -urNp linux-2.6.38.3/fs/ext2/balloc.c linux-2.6.38.3/fs/ext2/balloc.c
31104--- linux-2.6.38.2/fs/ext2/balloc.c 2011-03-14 21:20:32.000000000 -0400 31947--- linux-2.6.38.3/fs/ext2/balloc.c 2011-03-14 21:20:32.000000000 -0400
31105+++ linux-2.6.38.2/fs/ext2/balloc.c 2011-03-21 18:31:35.000000000 -0400 31948+++ linux-2.6.38.3/fs/ext2/balloc.c 2011-04-17 15:57:32.000000000 -0400
31106@@ -1192,7 +1192,7 @@ static int ext2_has_free_blocks(struct e 31949@@ -1192,7 +1192,7 @@ static int ext2_has_free_blocks(struct e
31107 31950
31108 free_blocks = percpu_counter_read_positive(&sbi->s_freeblocks_counter); 31951 free_blocks = percpu_counter_read_positive(&sbi->s_freeblocks_counter);
@@ -31112,9 +31955,9 @@ diff -urNp linux-2.6.38.2/fs/ext2/balloc.c linux-2.6.38.2/fs/ext2/balloc.c
31112 sbi->s_resuid != current_fsuid() && 31955 sbi->s_resuid != current_fsuid() &&
31113 (sbi->s_resgid == 0 || !in_group_p (sbi->s_resgid))) { 31956 (sbi->s_resgid == 0 || !in_group_p (sbi->s_resgid))) {
31114 return 0; 31957 return 0;
31115diff -urNp linux-2.6.38.2/fs/ext2/xattr.c linux-2.6.38.2/fs/ext2/xattr.c 31958diff -urNp linux-2.6.38.3/fs/ext2/xattr.c linux-2.6.38.3/fs/ext2/xattr.c
31116--- linux-2.6.38.2/fs/ext2/xattr.c 2011-03-14 21:20:32.000000000 -0400 31959--- linux-2.6.38.3/fs/ext2/xattr.c 2011-03-14 21:20:32.000000000 -0400
31117+++ linux-2.6.38.2/fs/ext2/xattr.c 2011-03-21 18:31:35.000000000 -0400 31960+++ linux-2.6.38.3/fs/ext2/xattr.c 2011-04-17 15:57:32.000000000 -0400
31118@@ -86,8 +86,8 @@ 31961@@ -86,8 +86,8 @@
31119 printk("\n"); \ 31962 printk("\n"); \
31120 } while (0) 31963 } while (0)
@@ -31126,9 +31969,9 @@ diff -urNp linux-2.6.38.2/fs/ext2/xattr.c linux-2.6.38.2/fs/ext2/xattr.c
31126 #endif 31969 #endif
31127 31970
31128 static int ext2_xattr_set2(struct inode *, struct buffer_head *, 31971 static int ext2_xattr_set2(struct inode *, struct buffer_head *,
31129diff -urNp linux-2.6.38.2/fs/ext3/balloc.c linux-2.6.38.2/fs/ext3/balloc.c 31972diff -urNp linux-2.6.38.3/fs/ext3/balloc.c linux-2.6.38.3/fs/ext3/balloc.c
31130--- linux-2.6.38.2/fs/ext3/balloc.c 2011-03-14 21:20:32.000000000 -0400 31973--- linux-2.6.38.3/fs/ext3/balloc.c 2011-03-14 21:20:32.000000000 -0400
31131+++ linux-2.6.38.2/fs/ext3/balloc.c 2011-03-21 18:31:35.000000000 -0400 31974+++ linux-2.6.38.3/fs/ext3/balloc.c 2011-04-17 15:57:32.000000000 -0400
31132@@ -1441,7 +1441,7 @@ static int ext3_has_free_blocks(struct e 31975@@ -1441,7 +1441,7 @@ static int ext3_has_free_blocks(struct e
31133 31976
31134 free_blocks = percpu_counter_read_positive(&sbi->s_freeblocks_counter); 31977 free_blocks = percpu_counter_read_positive(&sbi->s_freeblocks_counter);
@@ -31138,9 +31981,9 @@ diff -urNp linux-2.6.38.2/fs/ext3/balloc.c linux-2.6.38.2/fs/ext3/balloc.c
31138 sbi->s_resuid != current_fsuid() && 31981 sbi->s_resuid != current_fsuid() &&
31139 (sbi->s_resgid == 0 || !in_group_p (sbi->s_resgid))) { 31982 (sbi->s_resgid == 0 || !in_group_p (sbi->s_resgid))) {
31140 return 0; 31983 return 0;
31141diff -urNp linux-2.6.38.2/fs/ext3/namei.c linux-2.6.38.2/fs/ext3/namei.c 31984diff -urNp linux-2.6.38.3/fs/ext3/namei.c linux-2.6.38.3/fs/ext3/namei.c
31142--- linux-2.6.38.2/fs/ext3/namei.c 2011-03-23 17:20:08.000000000 -0400 31985--- linux-2.6.38.3/fs/ext3/namei.c 2011-04-18 17:27:14.000000000 -0400
31143+++ linux-2.6.38.2/fs/ext3/namei.c 2011-03-23 17:21:51.000000000 -0400 31986+++ linux-2.6.38.3/fs/ext3/namei.c 2011-04-17 15:57:32.000000000 -0400
31144@@ -1159,7 +1159,7 @@ static struct ext3_dir_entry_2 *do_split 31987@@ -1159,7 +1159,7 @@ static struct ext3_dir_entry_2 *do_split
31145 char *data1 = (*bh)->b_data, *data2; 31988 char *data1 = (*bh)->b_data, *data2;
31146 unsigned split, move, size; 31989 unsigned split, move, size;
@@ -31150,9 +31993,9 @@ diff -urNp linux-2.6.38.2/fs/ext3/namei.c linux-2.6.38.2/fs/ext3/namei.c
31150 31993
31151 bh2 = ext3_append (handle, dir, &newblock, &err); 31994 bh2 = ext3_append (handle, dir, &newblock, &err);
31152 if (!(bh2)) { 31995 if (!(bh2)) {
31153diff -urNp linux-2.6.38.2/fs/ext3/xattr.c linux-2.6.38.2/fs/ext3/xattr.c 31996diff -urNp linux-2.6.38.3/fs/ext3/xattr.c linux-2.6.38.3/fs/ext3/xattr.c
31154--- linux-2.6.38.2/fs/ext3/xattr.c 2011-03-14 21:20:32.000000000 -0400 31997--- linux-2.6.38.3/fs/ext3/xattr.c 2011-03-14 21:20:32.000000000 -0400
31155+++ linux-2.6.38.2/fs/ext3/xattr.c 2011-03-21 18:31:35.000000000 -0400 31998+++ linux-2.6.38.3/fs/ext3/xattr.c 2011-04-17 15:57:32.000000000 -0400
31156@@ -89,8 +89,8 @@ 31999@@ -89,8 +89,8 @@
31157 printk("\n"); \ 32000 printk("\n"); \
31158 } while (0) 32001 } while (0)
@@ -31164,9 +32007,9 @@ diff -urNp linux-2.6.38.2/fs/ext3/xattr.c linux-2.6.38.2/fs/ext3/xattr.c
31164 #endif 32007 #endif
31165 32008
31166 static void ext3_xattr_cache_insert(struct buffer_head *); 32009 static void ext3_xattr_cache_insert(struct buffer_head *);
31167diff -urNp linux-2.6.38.2/fs/ext4/balloc.c linux-2.6.38.2/fs/ext4/balloc.c 32010diff -urNp linux-2.6.38.3/fs/ext4/balloc.c linux-2.6.38.3/fs/ext4/balloc.c
31168--- linux-2.6.38.2/fs/ext4/balloc.c 2011-03-14 21:20:32.000000000 -0400 32011--- linux-2.6.38.3/fs/ext4/balloc.c 2011-03-14 21:20:32.000000000 -0400
31169+++ linux-2.6.38.2/fs/ext4/balloc.c 2011-03-21 18:31:35.000000000 -0400 32012+++ linux-2.6.38.3/fs/ext4/balloc.c 2011-04-17 15:57:32.000000000 -0400
31170@@ -519,7 +519,7 @@ static int ext4_has_free_blocks(struct e 32013@@ -519,7 +519,7 @@ static int ext4_has_free_blocks(struct e
31171 /* Hm, nope. Are (enough) root reserved blocks available? */ 32014 /* Hm, nope. Are (enough) root reserved blocks available? */
31172 if (sbi->s_resuid == current_fsuid() || 32015 if (sbi->s_resuid == current_fsuid() ||
@@ -31176,9 +32019,9 @@ diff -urNp linux-2.6.38.2/fs/ext4/balloc.c linux-2.6.38.2/fs/ext4/balloc.c
31176 if (free_blocks >= (nblocks + dirty_blocks)) 32019 if (free_blocks >= (nblocks + dirty_blocks))
31177 return 1; 32020 return 1;
31178 } 32021 }
31179diff -urNp linux-2.6.38.2/fs/ext4/ext4.h linux-2.6.38.2/fs/ext4/ext4.h 32022diff -urNp linux-2.6.38.3/fs/ext4/ext4.h linux-2.6.38.3/fs/ext4/ext4.h
31180--- linux-2.6.38.2/fs/ext4/ext4.h 2011-03-14 21:20:32.000000000 -0400 32023--- linux-2.6.38.3/fs/ext4/ext4.h 2011-03-14 21:20:32.000000000 -0400
31181+++ linux-2.6.38.2/fs/ext4/ext4.h 2011-03-21 18:31:35.000000000 -0400 32024+++ linux-2.6.38.3/fs/ext4/ext4.h 2011-04-17 15:57:32.000000000 -0400
31182@@ -1166,19 +1166,19 @@ struct ext4_sb_info { 32025@@ -1166,19 +1166,19 @@ struct ext4_sb_info {
31183 unsigned long s_mb_last_start; 32026 unsigned long s_mb_last_start;
31184 32027
@@ -31209,9 +32052,9 @@ diff -urNp linux-2.6.38.2/fs/ext4/ext4.h linux-2.6.38.2/fs/ext4/ext4.h
31209 atomic_t s_lock_busy; 32052 atomic_t s_lock_busy;
31210 32053
31211 /* locality groups */ 32054 /* locality groups */
31212diff -urNp linux-2.6.38.2/fs/ext4/mballoc.c linux-2.6.38.2/fs/ext4/mballoc.c 32055diff -urNp linux-2.6.38.3/fs/ext4/mballoc.c linux-2.6.38.3/fs/ext4/mballoc.c
31213--- linux-2.6.38.2/fs/ext4/mballoc.c 2011-03-14 21:20:32.000000000 -0400 32056--- linux-2.6.38.3/fs/ext4/mballoc.c 2011-03-14 21:20:32.000000000 -0400
31214+++ linux-2.6.38.2/fs/ext4/mballoc.c 2011-03-21 18:31:35.000000000 -0400 32057+++ linux-2.6.38.3/fs/ext4/mballoc.c 2011-04-17 15:57:32.000000000 -0400
31215@@ -1846,7 +1846,7 @@ void ext4_mb_simple_scan_group(struct ex 32058@@ -1846,7 +1846,7 @@ void ext4_mb_simple_scan_group(struct ex
31216 BUG_ON(ac->ac_b_ex.fe_len != ac->ac_g_ex.fe_len); 32059 BUG_ON(ac->ac_b_ex.fe_len != ac->ac_g_ex.fe_len);
31217 32060
@@ -31325,9 +32168,9 @@ diff -urNp linux-2.6.38.2/fs/ext4/mballoc.c linux-2.6.38.2/fs/ext4/mballoc.c
31325 trace_ext4_mballoc_discard(sb, NULL, group, bit, pa->pa_len); 32168 trace_ext4_mballoc_discard(sb, NULL, group, bit, pa->pa_len);
31326 32169
31327 return 0; 32170 return 0;
31328diff -urNp linux-2.6.38.2/fs/ext4/namei.c linux-2.6.38.2/fs/ext4/namei.c 32171diff -urNp linux-2.6.38.3/fs/ext4/namei.c linux-2.6.38.3/fs/ext4/namei.c
31329--- linux-2.6.38.2/fs/ext4/namei.c 2011-03-14 21:20:32.000000000 -0400 32172--- linux-2.6.38.3/fs/ext4/namei.c 2011-03-14 21:20:32.000000000 -0400
31330+++ linux-2.6.38.2/fs/ext4/namei.c 2011-03-21 18:31:35.000000000 -0400 32173+++ linux-2.6.38.3/fs/ext4/namei.c 2011-04-17 15:57:32.000000000 -0400
31331@@ -1161,7 +1161,7 @@ static struct ext4_dir_entry_2 *do_split 32174@@ -1161,7 +1161,7 @@ static struct ext4_dir_entry_2 *do_split
31332 char *data1 = (*bh)->b_data, *data2; 32175 char *data1 = (*bh)->b_data, *data2;
31333 unsigned split, move, size; 32176 unsigned split, move, size;
@@ -31337,9 +32180,9 @@ diff -urNp linux-2.6.38.2/fs/ext4/namei.c linux-2.6.38.2/fs/ext4/namei.c
31337 32180
31338 bh2 = ext4_append (handle, dir, &newblock, &err); 32181 bh2 = ext4_append (handle, dir, &newblock, &err);
31339 if (!(bh2)) { 32182 if (!(bh2)) {
31340diff -urNp linux-2.6.38.2/fs/ext4/xattr.c linux-2.6.38.2/fs/ext4/xattr.c 32183diff -urNp linux-2.6.38.3/fs/ext4/xattr.c linux-2.6.38.3/fs/ext4/xattr.c
31341--- linux-2.6.38.2/fs/ext4/xattr.c 2011-03-14 21:20:32.000000000 -0400 32184--- linux-2.6.38.3/fs/ext4/xattr.c 2011-03-14 21:20:32.000000000 -0400
31342+++ linux-2.6.38.2/fs/ext4/xattr.c 2011-03-21 18:31:35.000000000 -0400 32185+++ linux-2.6.38.3/fs/ext4/xattr.c 2011-04-17 15:57:32.000000000 -0400
31343@@ -82,8 +82,8 @@ 32186@@ -82,8 +82,8 @@
31344 printk("\n"); \ 32187 printk("\n"); \
31345 } while (0) 32188 } while (0)
@@ -31351,9 +32194,9 @@ diff -urNp linux-2.6.38.2/fs/ext4/xattr.c linux-2.6.38.2/fs/ext4/xattr.c
31351 #endif 32194 #endif
31352 32195
31353 static void ext4_xattr_cache_insert(struct buffer_head *); 32196 static void ext4_xattr_cache_insert(struct buffer_head *);
31354diff -urNp linux-2.6.38.2/fs/fcntl.c linux-2.6.38.2/fs/fcntl.c 32197diff -urNp linux-2.6.38.3/fs/fcntl.c linux-2.6.38.3/fs/fcntl.c
31355--- linux-2.6.38.2/fs/fcntl.c 2011-03-14 21:20:32.000000000 -0400 32198--- linux-2.6.38.3/fs/fcntl.c 2011-03-14 21:20:32.000000000 -0400
31356+++ linux-2.6.38.2/fs/fcntl.c 2011-03-21 18:31:35.000000000 -0400 32199+++ linux-2.6.38.3/fs/fcntl.c 2011-04-17 15:57:32.000000000 -0400
31357@@ -224,6 +224,11 @@ int __f_setown(struct file *filp, struct 32200@@ -224,6 +224,11 @@ int __f_setown(struct file *filp, struct
31358 if (err) 32201 if (err)
31359 return err; 32202 return err;
@@ -31391,9 +32234,9 @@ diff -urNp linux-2.6.38.2/fs/fcntl.c linux-2.6.38.2/fs/fcntl.c
31391 )); 32234 ));
31392 32235
31393 fasync_cache = kmem_cache_create("fasync_cache", 32236 fasync_cache = kmem_cache_create("fasync_cache",
31394diff -urNp linux-2.6.38.2/fs/fifo.c linux-2.6.38.2/fs/fifo.c 32237diff -urNp linux-2.6.38.3/fs/fifo.c linux-2.6.38.3/fs/fifo.c
31395--- linux-2.6.38.2/fs/fifo.c 2011-03-14 21:20:32.000000000 -0400 32238--- linux-2.6.38.3/fs/fifo.c 2011-03-14 21:20:32.000000000 -0400
31396+++ linux-2.6.38.2/fs/fifo.c 2011-03-21 18:31:35.000000000 -0400 32239+++ linux-2.6.38.3/fs/fifo.c 2011-04-17 15:57:32.000000000 -0400
31397@@ -58,10 +58,10 @@ static int fifo_open(struct inode *inode 32240@@ -58,10 +58,10 @@ static int fifo_open(struct inode *inode
31398 */ 32241 */
31399 filp->f_op = &read_pipefifo_fops; 32242 filp->f_op = &read_pipefifo_fops;
@@ -31464,9 +32307,9 @@ diff -urNp linux-2.6.38.2/fs/fifo.c linux-2.6.38.2/fs/fifo.c
31464 free_pipe_info(inode); 32307 free_pipe_info(inode);
31465 32308
31466 err_nocleanup: 32309 err_nocleanup:
31467diff -urNp linux-2.6.38.2/fs/file.c linux-2.6.38.2/fs/file.c 32310diff -urNp linux-2.6.38.3/fs/file.c linux-2.6.38.3/fs/file.c
31468--- linux-2.6.38.2/fs/file.c 2011-03-14 21:20:32.000000000 -0400 32311--- linux-2.6.38.3/fs/file.c 2011-03-14 21:20:32.000000000 -0400
31469+++ linux-2.6.38.2/fs/file.c 2011-03-21 18:31:35.000000000 -0400 32312+++ linux-2.6.38.3/fs/file.c 2011-04-17 15:57:32.000000000 -0400
31470@@ -14,6 +14,7 @@ 32313@@ -14,6 +14,7 @@
31471 #include <linux/slab.h> 32314 #include <linux/slab.h>
31472 #include <linux/vmalloc.h> 32315 #include <linux/vmalloc.h>
@@ -31483,9 +32326,25 @@ diff -urNp linux-2.6.38.2/fs/file.c linux-2.6.38.2/fs/file.c
31483 if (nr >= rlimit(RLIMIT_NOFILE)) 32326 if (nr >= rlimit(RLIMIT_NOFILE))
31484 return -EMFILE; 32327 return -EMFILE;
31485 32328
31486diff -urNp linux-2.6.38.2/fs/fs_struct.c linux-2.6.38.2/fs/fs_struct.c 32329diff -urNp linux-2.6.38.3/fs/filesystems.c linux-2.6.38.3/fs/filesystems.c
31487--- linux-2.6.38.2/fs/fs_struct.c 2011-03-14 21:20:32.000000000 -0400 32330--- linux-2.6.38.3/fs/filesystems.c 2011-03-14 21:20:32.000000000 -0400
31488+++ linux-2.6.38.2/fs/fs_struct.c 2011-03-21 18:31:35.000000000 -0400 32331+++ linux-2.6.38.3/fs/filesystems.c 2011-04-17 15:57:32.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
31489@@ -4,6 +4,7 @@ 32348@@ -4,6 +4,7 @@
31490 #include <linux/path.h> 32349 #include <linux/path.h>
31491 #include <linux/slab.h> 32350 #include <linux/slab.h>
@@ -31575,9 +32434,9 @@ diff -urNp linux-2.6.38.2/fs/fs_struct.c linux-2.6.38.2/fs/fs_struct.c
31575 spin_unlock(&fs->lock); 32434 spin_unlock(&fs->lock);
31576 32435
31577 task_unlock(current); 32436 task_unlock(current);
31578diff -urNp linux-2.6.38.2/fs/fuse/control.c linux-2.6.38.2/fs/fuse/control.c 32437diff -urNp linux-2.6.38.3/fs/fuse/control.c linux-2.6.38.3/fs/fuse/control.c
31579--- linux-2.6.38.2/fs/fuse/control.c 2011-03-14 21:20:32.000000000 -0400 32438--- linux-2.6.38.3/fs/fuse/control.c 2011-03-14 21:20:32.000000000 -0400
31580+++ linux-2.6.38.2/fs/fuse/control.c 2011-03-21 18:31:35.000000000 -0400 32439+++ linux-2.6.38.3/fs/fuse/control.c 2011-04-17 15:57:32.000000000 -0400
31581@@ -298,7 +298,7 @@ void fuse_ctl_remove_conn(struct fuse_co 32440@@ -298,7 +298,7 @@ void fuse_ctl_remove_conn(struct fuse_co
31582 32441
31583 static int fuse_ctl_fill_super(struct super_block *sb, void *data, int silent) 32442 static int fuse_ctl_fill_super(struct super_block *sb, void *data, int silent)
@@ -31587,9 +32446,9 @@ diff -urNp linux-2.6.38.2/fs/fuse/control.c linux-2.6.38.2/fs/fuse/control.c
31587 struct fuse_conn *fc; 32446 struct fuse_conn *fc;
31588 int err; 32447 int err;
31589 32448
31590diff -urNp linux-2.6.38.2/fs/fuse/cuse.c linux-2.6.38.2/fs/fuse/cuse.c 32449diff -urNp linux-2.6.38.3/fs/fuse/cuse.c linux-2.6.38.3/fs/fuse/cuse.c
31591--- linux-2.6.38.2/fs/fuse/cuse.c 2011-03-14 21:20:32.000000000 -0400 32450--- linux-2.6.38.3/fs/fuse/cuse.c 2011-03-14 21:20:32.000000000 -0400
31592+++ linux-2.6.38.2/fs/fuse/cuse.c 2011-03-21 18:31:35.000000000 -0400 32451+++ linux-2.6.38.3/fs/fuse/cuse.c 2011-04-17 15:57:32.000000000 -0400
31593@@ -530,8 +530,18 @@ static int cuse_channel_release(struct i 32452@@ -530,8 +530,18 @@ static int cuse_channel_release(struct i
31594 return rc; 32453 return rc;
31595 } 32454 }
@@ -31624,9 +32483,9 @@ diff -urNp linux-2.6.38.2/fs/fuse/cuse.c linux-2.6.38.2/fs/fuse/cuse.c
31624 cuse_class = class_create(THIS_MODULE, "cuse"); 32483 cuse_class = class_create(THIS_MODULE, "cuse");
31625 if (IS_ERR(cuse_class)) 32484 if (IS_ERR(cuse_class))
31626 return PTR_ERR(cuse_class); 32485 return PTR_ERR(cuse_class);
31627diff -urNp linux-2.6.38.2/fs/fuse/dev.c linux-2.6.38.2/fs/fuse/dev.c 32486diff -urNp linux-2.6.38.3/fs/fuse/dev.c linux-2.6.38.3/fs/fuse/dev.c
31628--- linux-2.6.38.2/fs/fuse/dev.c 2011-03-14 21:20:32.000000000 -0400 32487--- linux-2.6.38.3/fs/fuse/dev.c 2011-03-14 21:20:32.000000000 -0400
31629+++ linux-2.6.38.2/fs/fuse/dev.c 2011-03-21 18:31:35.000000000 -0400 32488+++ linux-2.6.38.3/fs/fuse/dev.c 2011-04-17 15:57:32.000000000 -0400
31630@@ -1183,7 +1183,7 @@ static ssize_t fuse_dev_do_read(struct f 32489@@ -1183,7 +1183,7 @@ static ssize_t fuse_dev_do_read(struct f
31631 return err; 32490 return err;
31632 } 32491 }
@@ -31708,9 +32567,9 @@ diff -urNp linux-2.6.38.2/fs/fuse/dev.c linux-2.6.38.2/fs/fuse/dev.c
31708 const struct file_operations fuse_dev_operations = { 32567 const struct file_operations fuse_dev_operations = {
31709 .owner = THIS_MODULE, 32568 .owner = THIS_MODULE,
31710 .llseek = no_llseek, 32569 .llseek = no_llseek,
31711diff -urNp linux-2.6.38.2/fs/fuse/dir.c linux-2.6.38.2/fs/fuse/dir.c 32570diff -urNp linux-2.6.38.3/fs/fuse/dir.c linux-2.6.38.3/fs/fuse/dir.c
31712--- linux-2.6.38.2/fs/fuse/dir.c 2011-03-14 21:20:32.000000000 -0400 32571--- linux-2.6.38.3/fs/fuse/dir.c 2011-03-14 21:20:32.000000000 -0400
31713+++ linux-2.6.38.2/fs/fuse/dir.c 2011-03-21 18:31:35.000000000 -0400 32572+++ linux-2.6.38.3/fs/fuse/dir.c 2011-04-17 15:57:32.000000000 -0400
31714@@ -1133,7 +1133,7 @@ static char *read_link(struct dentry *de 32573@@ -1133,7 +1133,7 @@ static char *read_link(struct dentry *de
31715 return link; 32574 return link;
31716 } 32575 }
@@ -31720,9 +32579,9 @@ diff -urNp linux-2.6.38.2/fs/fuse/dir.c linux-2.6.38.2/fs/fuse/dir.c
31720 { 32579 {
31721 if (!IS_ERR(link)) 32580 if (!IS_ERR(link))
31722 free_page((unsigned long) link); 32581 free_page((unsigned long) link);
31723diff -urNp linux-2.6.38.2/fs/fuse/fuse_i.h linux-2.6.38.2/fs/fuse/fuse_i.h 32582diff -urNp linux-2.6.38.3/fs/fuse/fuse_i.h linux-2.6.38.3/fs/fuse/fuse_i.h
31724--- linux-2.6.38.2/fs/fuse/fuse_i.h 2011-03-14 21:20:32.000000000 -0400 32583--- linux-2.6.38.3/fs/fuse/fuse_i.h 2011-03-14 21:20:32.000000000 -0400
31725+++ linux-2.6.38.2/fs/fuse/fuse_i.h 2011-03-21 18:31:35.000000000 -0400 32584+++ linux-2.6.38.3/fs/fuse/fuse_i.h 2011-04-17 15:57:32.000000000 -0400
31726@@ -541,6 +541,16 @@ extern const struct file_operations fuse 32585@@ -541,6 +541,16 @@ extern const struct file_operations fuse
31727 32586
31728 extern const struct dentry_operations fuse_dentry_operations; 32587 extern const struct dentry_operations fuse_dentry_operations;
@@ -31740,9 +32599,9 @@ diff -urNp linux-2.6.38.2/fs/fuse/fuse_i.h linux-2.6.38.2/fs/fuse/fuse_i.h
31740 /** 32599 /**
31741 * Inode to nodeid comparison. 32600 * Inode to nodeid comparison.
31742 */ 32601 */
31743diff -urNp linux-2.6.38.2/fs/hfs/inode.c linux-2.6.38.2/fs/hfs/inode.c 32602diff -urNp linux-2.6.38.3/fs/hfs/inode.c linux-2.6.38.3/fs/hfs/inode.c
31744--- linux-2.6.38.2/fs/hfs/inode.c 2011-03-14 21:20:32.000000000 -0400 32603--- linux-2.6.38.3/fs/hfs/inode.c 2011-03-14 21:20:32.000000000 -0400
31745+++ linux-2.6.38.2/fs/hfs/inode.c 2011-03-21 18:31:35.000000000 -0400 32604+++ linux-2.6.38.3/fs/hfs/inode.c 2011-04-17 15:57:32.000000000 -0400
31746@@ -447,7 +447,7 @@ int hfs_write_inode(struct inode *inode, 32605@@ -447,7 +447,7 @@ int hfs_write_inode(struct inode *inode,
31747 32606
31748 if (S_ISDIR(main_inode->i_mode)) { 32607 if (S_ISDIR(main_inode->i_mode)) {
@@ -31761,9 +32620,9 @@ diff -urNp linux-2.6.38.2/fs/hfs/inode.c linux-2.6.38.2/fs/hfs/inode.c
31761 hfs_bnode_read(fd.bnode, &rec, fd.entryoffset, 32620 hfs_bnode_read(fd.bnode, &rec, fd.entryoffset,
31762 sizeof(struct hfs_cat_file)); 32621 sizeof(struct hfs_cat_file));
31763 if (rec.type != HFS_CDR_FIL || 32622 if (rec.type != HFS_CDR_FIL ||
31764diff -urNp linux-2.6.38.2/fs/hfsplus/inode.c linux-2.6.38.2/fs/hfsplus/inode.c 32623diff -urNp linux-2.6.38.3/fs/hfsplus/inode.c linux-2.6.38.3/fs/hfsplus/inode.c
31765--- linux-2.6.38.2/fs/hfsplus/inode.c 2011-03-14 21:20:32.000000000 -0400 32624--- linux-2.6.38.3/fs/hfsplus/inode.c 2011-03-14 21:20:32.000000000 -0400
31766+++ linux-2.6.38.2/fs/hfsplus/inode.c 2011-03-21 18:31:35.000000000 -0400 32625+++ linux-2.6.38.3/fs/hfsplus/inode.c 2011-04-17 15:57:32.000000000 -0400
31767@@ -498,7 +498,7 @@ int hfsplus_cat_read_inode(struct inode 32626@@ -498,7 +498,7 @@ int hfsplus_cat_read_inode(struct inode
31768 struct hfsplus_cat_folder *folder = &entry.folder; 32627 struct hfsplus_cat_folder *folder = &entry.folder;
31769 32628
@@ -31800,9 +32659,9 @@ diff -urNp linux-2.6.38.2/fs/hfsplus/inode.c linux-2.6.38.2/fs/hfsplus/inode.c
31800 hfs_bnode_read(fd.bnode, &entry, fd.entryoffset, 32659 hfs_bnode_read(fd.bnode, &entry, fd.entryoffset,
31801 sizeof(struct hfsplus_cat_file)); 32660 sizeof(struct hfsplus_cat_file));
31802 hfsplus_inode_write_fork(inode, &file->data_fork); 32661 hfsplus_inode_write_fork(inode, &file->data_fork);
31803diff -urNp linux-2.6.38.2/fs/hugetlbfs/inode.c linux-2.6.38.2/fs/hugetlbfs/inode.c 32662diff -urNp linux-2.6.38.3/fs/hugetlbfs/inode.c linux-2.6.38.3/fs/hugetlbfs/inode.c
31804--- linux-2.6.38.2/fs/hugetlbfs/inode.c 2011-03-14 21:20:32.000000000 -0400 32663--- linux-2.6.38.3/fs/hugetlbfs/inode.c 2011-03-14 21:20:32.000000000 -0400
31805+++ linux-2.6.38.2/fs/hugetlbfs/inode.c 2011-03-21 18:31:35.000000000 -0400 32664+++ linux-2.6.38.3/fs/hugetlbfs/inode.c 2011-04-17 15:57:32.000000000 -0400
31806@@ -915,7 +915,7 @@ static struct file_system_type hugetlbfs 32665@@ -915,7 +915,7 @@ static struct file_system_type hugetlbfs
31807 .kill_sb = kill_litter_super, 32666 .kill_sb = kill_litter_super,
31808 }; 32667 };
@@ -31812,9 +32671,9 @@ diff -urNp linux-2.6.38.2/fs/hugetlbfs/inode.c linux-2.6.38.2/fs/hugetlbfs/inode
31812 32671
31813 static int can_do_hugetlb_shm(void) 32672 static int can_do_hugetlb_shm(void)
31814 { 32673 {
31815diff -urNp linux-2.6.38.2/fs/jffs2/debug.h linux-2.6.38.2/fs/jffs2/debug.h 32674diff -urNp linux-2.6.38.3/fs/jffs2/debug.h linux-2.6.38.3/fs/jffs2/debug.h
31816--- linux-2.6.38.2/fs/jffs2/debug.h 2011-03-14 21:20:32.000000000 -0400 32675--- linux-2.6.38.3/fs/jffs2/debug.h 2011-03-14 21:20:32.000000000 -0400
31817+++ linux-2.6.38.2/fs/jffs2/debug.h 2011-03-21 18:31:35.000000000 -0400 32676+++ linux-2.6.38.3/fs/jffs2/debug.h 2011-04-17 15:57:32.000000000 -0400
31818@@ -53,13 +53,13 @@ 32677@@ -53,13 +53,13 @@
31819 #if CONFIG_JFFS2_FS_DEBUG > 0 32678 #if CONFIG_JFFS2_FS_DEBUG > 0
31820 #define D1(x) x 32679 #define D1(x) x
@@ -31916,9 +32775,9 @@ diff -urNp linux-2.6.38.2/fs/jffs2/debug.h linux-2.6.38.2/fs/jffs2/debug.h
31916 #endif 32775 #endif
31917 32776
31918 /* "Sanity" checks */ 32777 /* "Sanity" checks */
31919diff -urNp linux-2.6.38.2/fs/jffs2/erase.c linux-2.6.38.2/fs/jffs2/erase.c 32778diff -urNp linux-2.6.38.3/fs/jffs2/erase.c linux-2.6.38.3/fs/jffs2/erase.c
31920--- linux-2.6.38.2/fs/jffs2/erase.c 2011-03-14 21:20:32.000000000 -0400 32779--- linux-2.6.38.3/fs/jffs2/erase.c 2011-03-14 21:20:32.000000000 -0400
31921+++ linux-2.6.38.2/fs/jffs2/erase.c 2011-03-21 18:31:35.000000000 -0400 32780+++ linux-2.6.38.3/fs/jffs2/erase.c 2011-04-17 15:57:32.000000000 -0400
31922@@ -439,7 +439,8 @@ static void jffs2_mark_erased_block(stru 32781@@ -439,7 +439,8 @@ static void jffs2_mark_erased_block(stru
31923 struct jffs2_unknown_node marker = { 32782 struct jffs2_unknown_node marker = {
31924 .magic = cpu_to_je16(JFFS2_MAGIC_BITMASK), 32783 .magic = cpu_to_je16(JFFS2_MAGIC_BITMASK),
@@ -31929,9 +32788,9 @@ diff -urNp linux-2.6.38.2/fs/jffs2/erase.c linux-2.6.38.2/fs/jffs2/erase.c
31929 }; 32788 };
31930 32789
31931 jffs2_prealloc_raw_node_refs(c, jeb, 1); 32790 jffs2_prealloc_raw_node_refs(c, jeb, 1);
31932diff -urNp linux-2.6.38.2/fs/jffs2/summary.h linux-2.6.38.2/fs/jffs2/summary.h 32791diff -urNp linux-2.6.38.3/fs/jffs2/summary.h linux-2.6.38.3/fs/jffs2/summary.h
31933--- linux-2.6.38.2/fs/jffs2/summary.h 2011-03-14 21:20:32.000000000 -0400 32792--- linux-2.6.38.3/fs/jffs2/summary.h 2011-03-14 21:20:32.000000000 -0400
31934+++ linux-2.6.38.2/fs/jffs2/summary.h 2011-03-21 18:31:35.000000000 -0400 32793+++ linux-2.6.38.3/fs/jffs2/summary.h 2011-04-17 15:57:32.000000000 -0400
31935@@ -194,18 +194,18 @@ int jffs2_sum_scan_sumnode(struct jffs2_ 32794@@ -194,18 +194,18 @@ int jffs2_sum_scan_sumnode(struct jffs2_
31936 32795
31937 #define jffs2_sum_active() (0) 32796 #define jffs2_sum_active() (0)
@@ -31960,9 +32819,9 @@ diff -urNp linux-2.6.38.2/fs/jffs2/summary.h linux-2.6.38.2/fs/jffs2/summary.h
31960 #define jffs2_sum_scan_sumnode(a,b,c,d,e) (0) 32819 #define jffs2_sum_scan_sumnode(a,b,c,d,e) (0)
31961 32820
31962 #endif /* CONFIG_JFFS2_SUMMARY */ 32821 #endif /* CONFIG_JFFS2_SUMMARY */
31963diff -urNp linux-2.6.38.2/fs/jffs2/wbuf.c linux-2.6.38.2/fs/jffs2/wbuf.c 32822diff -urNp linux-2.6.38.3/fs/jffs2/wbuf.c linux-2.6.38.3/fs/jffs2/wbuf.c
31964--- linux-2.6.38.2/fs/jffs2/wbuf.c 2011-03-14 21:20:32.000000000 -0400 32823--- linux-2.6.38.3/fs/jffs2/wbuf.c 2011-03-14 21:20:32.000000000 -0400
31965+++ linux-2.6.38.2/fs/jffs2/wbuf.c 2011-03-21 18:31:35.000000000 -0400 32824+++ linux-2.6.38.3/fs/jffs2/wbuf.c 2011-04-17 15:57:32.000000000 -0400
31966@@ -1012,7 +1012,8 @@ static const struct jffs2_unknown_node o 32825@@ -1012,7 +1012,8 @@ static const struct jffs2_unknown_node o
31967 { 32826 {
31968 .magic = constant_cpu_to_je16(JFFS2_MAGIC_BITMASK), 32827 .magic = constant_cpu_to_je16(JFFS2_MAGIC_BITMASK),
@@ -31973,9 +32832,9 @@ diff -urNp linux-2.6.38.2/fs/jffs2/wbuf.c linux-2.6.38.2/fs/jffs2/wbuf.c
31973 }; 32832 };
31974 32833
31975 /* 32834 /*
31976diff -urNp linux-2.6.38.2/fs/Kconfig.binfmt linux-2.6.38.2/fs/Kconfig.binfmt 32835diff -urNp linux-2.6.38.3/fs/Kconfig.binfmt linux-2.6.38.3/fs/Kconfig.binfmt
31977--- linux-2.6.38.2/fs/Kconfig.binfmt 2011-03-14 21:20:32.000000000 -0400 32836--- linux-2.6.38.3/fs/Kconfig.binfmt 2011-03-14 21:20:32.000000000 -0400
31978+++ linux-2.6.38.2/fs/Kconfig.binfmt 2011-03-21 18:31:35.000000000 -0400 32837+++ linux-2.6.38.3/fs/Kconfig.binfmt 2011-04-17 15:57:32.000000000 -0400
31979@@ -86,7 +86,7 @@ config HAVE_AOUT 32838@@ -86,7 +86,7 @@ config HAVE_AOUT
31980 32839
31981 config BINFMT_AOUT 32840 config BINFMT_AOUT
@@ -31985,9 +32844,35 @@ diff -urNp linux-2.6.38.2/fs/Kconfig.binfmt linux-2.6.38.2/fs/Kconfig.binfmt
31985 ---help--- 32844 ---help---
31986 A.out (Assembler.OUTput) is a set of formats for libraries and 32845 A.out (Assembler.OUTput) is a set of formats for libraries and
31987 executables used in the earliest versions of UNIX. Linux used 32846 executables used in the earliest versions of UNIX. Linux used
31988diff -urNp linux-2.6.38.2/fs/lockd/svc.c linux-2.6.38.2/fs/lockd/svc.c 32847diff -urNp linux-2.6.38.3/fs/libfs.c linux-2.6.38.3/fs/libfs.c
31989--- linux-2.6.38.2/fs/lockd/svc.c 2011-03-14 21:20:32.000000000 -0400 32848--- linux-2.6.38.3/fs/libfs.c 2011-03-14 21:20:32.000000000 -0400
31990+++ linux-2.6.38.2/fs/lockd/svc.c 2011-03-21 18:31:35.000000000 -0400 32849+++ linux-2.6.38.3/fs/libfs.c 2011-04-17 15:57:32.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
31991@@ -41,7 +41,7 @@ 32876@@ -41,7 +41,7 @@
31992 32877
31993 static struct svc_program nlmsvc_program; 32878 static struct svc_program nlmsvc_program;
@@ -31997,9 +32882,9 @@ diff -urNp linux-2.6.38.2/fs/lockd/svc.c linux-2.6.38.2/fs/lockd/svc.c
31997 EXPORT_SYMBOL_GPL(nlmsvc_ops); 32882 EXPORT_SYMBOL_GPL(nlmsvc_ops);
31998 32883
31999 static DEFINE_MUTEX(nlmsvc_mutex); 32884 static DEFINE_MUTEX(nlmsvc_mutex);
32000diff -urNp linux-2.6.38.2/fs/locks.c linux-2.6.38.2/fs/locks.c 32885diff -urNp linux-2.6.38.3/fs/locks.c linux-2.6.38.3/fs/locks.c
32001--- linux-2.6.38.2/fs/locks.c 2011-03-14 21:20:32.000000000 -0400 32886--- linux-2.6.38.3/fs/locks.c 2011-03-14 21:20:32.000000000 -0400
32002+++ linux-2.6.38.2/fs/locks.c 2011-03-21 18:31:35.000000000 -0400 32887+++ linux-2.6.38.3/fs/locks.c 2011-04-17 15:57:32.000000000 -0400
32003@@ -2044,16 +2044,16 @@ void locks_remove_flock(struct file *fil 32888@@ -2044,16 +2044,16 @@ void locks_remove_flock(struct file *fil
32004 return; 32889 return;
32005 32890
@@ -32021,9 +32906,9 @@ diff -urNp linux-2.6.38.2/fs/locks.c linux-2.6.38.2/fs/locks.c
32021 } 32906 }
32022 32907
32023 lock_flocks(); 32908 lock_flocks();
32024diff -urNp linux-2.6.38.2/fs/namei.c linux-2.6.38.2/fs/namei.c 32909diff -urNp linux-2.6.38.3/fs/namei.c linux-2.6.38.3/fs/namei.c
32025--- linux-2.6.38.2/fs/namei.c 2011-03-14 21:20:32.000000000 -0400 32910--- linux-2.6.38.3/fs/namei.c 2011-03-14 21:20:32.000000000 -0400
32026+++ linux-2.6.38.2/fs/namei.c 2011-03-28 16:59:25.000000000 -0400 32911+++ linux-2.6.38.3/fs/namei.c 2011-04-17 15:57:32.000000000 -0400
32027@@ -226,14 +226,6 @@ int generic_permission(struct inode *ino 32912@@ -226,14 +226,6 @@ int generic_permission(struct inode *ino
32028 return ret; 32913 return ret;
32029 32914
@@ -32482,9 +33367,34 @@ diff -urNp linux-2.6.38.2/fs/namei.c linux-2.6.38.2/fs/namei.c
32482 exit6: 33367 exit6:
32483 mnt_drop_write(oldnd.path.mnt); 33368 mnt_drop_write(oldnd.path.mnt);
32484 exit5: 33369 exit5:
32485diff -urNp linux-2.6.38.2/fs/namespace.c linux-2.6.38.2/fs/namespace.c 33370@@ -3437,6 +3598,8 @@ SYSCALL_DEFINE2(rename, const char __use
32486--- linux-2.6.38.2/fs/namespace.c 2011-03-28 17:42:40.000000000 -0400 33371
32487+++ linux-2.6.38.2/fs/namespace.c 2011-03-28 17:42:53.000000000 -0400 33372 int vfs_readlink(struct dentry *dentry, char __user *buffer, int buflen, const char *link)
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
32488@@ -1285,6 +1285,9 @@ static int do_umount(struct vfsmount *mn 33398@@ -1285,6 +1285,9 @@ static int do_umount(struct vfsmount *mn
32489 if (!(sb->s_flags & MS_RDONLY)) 33399 if (!(sb->s_flags & MS_RDONLY))
32490 retval = do_remount_sb(sb, MS_RDONLY, NULL, 0); 33400 retval = do_remount_sb(sb, MS_RDONLY, NULL, 0);
@@ -32545,9 +33455,9 @@ diff -urNp linux-2.6.38.2/fs/namespace.c linux-2.6.38.2/fs/namespace.c
32545 get_fs_root(current->fs, &root); 33455 get_fs_root(current->fs, &root);
32546 down_write(&namespace_sem); 33456 down_write(&namespace_sem);
32547 mutex_lock(&old.dentry->d_inode->i_mutex); 33457 mutex_lock(&old.dentry->d_inode->i_mutex);
32548diff -urNp linux-2.6.38.2/fs/nfs/inode.c linux-2.6.38.2/fs/nfs/inode.c 33458diff -urNp linux-2.6.38.3/fs/nfs/inode.c linux-2.6.38.3/fs/nfs/inode.c
32549--- linux-2.6.38.2/fs/nfs/inode.c 2011-03-14 21:20:32.000000000 -0400 33459--- linux-2.6.38.3/fs/nfs/inode.c 2011-03-14 21:20:32.000000000 -0400
32550+++ linux-2.6.38.2/fs/nfs/inode.c 2011-03-21 18:31:35.000000000 -0400 33460+++ linux-2.6.38.3/fs/nfs/inode.c 2011-04-17 15:57:32.000000000 -0400
32551@@ -998,16 +998,16 @@ static int nfs_size_need_update(const st 33461@@ -998,16 +998,16 @@ static int nfs_size_need_update(const st
32552 return nfs_size_to_loff_t(fattr->size) > i_size_read(inode); 33462 return nfs_size_to_loff_t(fattr->size) > i_size_read(inode);
32553 } 33463 }
@@ -32568,9 +33478,9 @@ diff -urNp linux-2.6.38.2/fs/nfs/inode.c linux-2.6.38.2/fs/nfs/inode.c
32568 } 33478 }
32569 33479
32570 void nfs_fattr_init(struct nfs_fattr *fattr) 33480 void nfs_fattr_init(struct nfs_fattr *fattr)
32571diff -urNp linux-2.6.38.2/fs/nfs/nfs4proc.c linux-2.6.38.2/fs/nfs/nfs4proc.c 33481diff -urNp linux-2.6.38.3/fs/nfs/nfs4proc.c linux-2.6.38.3/fs/nfs/nfs4proc.c
32572--- linux-2.6.38.2/fs/nfs/nfs4proc.c 2011-03-14 21:20:32.000000000 -0400 33482--- linux-2.6.38.3/fs/nfs/nfs4proc.c 2011-03-14 21:20:32.000000000 -0400
32573+++ linux-2.6.38.2/fs/nfs/nfs4proc.c 2011-03-21 18:31:35.000000000 -0400 33483+++ linux-2.6.38.3/fs/nfs/nfs4proc.c 2011-04-17 15:57:32.000000000 -0400
32574@@ -1198,7 +1198,7 @@ static int _nfs4_do_open_reclaim(struct 33484@@ -1198,7 +1198,7 @@ static int _nfs4_do_open_reclaim(struct
32575 static int nfs4_do_open_reclaim(struct nfs_open_context *ctx, struct nfs4_state *state) 33485 static int nfs4_do_open_reclaim(struct nfs_open_context *ctx, struct nfs4_state *state)
32576 { 33486 {
@@ -32841,10 +33751,10 @@ diff -urNp linux-2.6.38.2/fs/nfs/nfs4proc.c linux-2.6.38.2/fs/nfs/nfs4proc.c
32841 int err; 33751 int err;
32842 33752
32843 err = nfs4_set_lock_state(state, fl); 33753 err = nfs4_set_lock_state(state, fl);
32844diff -urNp linux-2.6.38.2/fs/nfsd/lockd.c linux-2.6.38.2/fs/nfsd/lockd.c 33754diff -urNp linux-2.6.38.3/fs/nfsd/lockd.c linux-2.6.38.3/fs/nfsd/lockd.c
32845--- linux-2.6.38.2/fs/nfsd/lockd.c 2011-03-14 21:20:32.000000000 -0400 33755--- linux-2.6.38.3/fs/nfsd/lockd.c 2011-04-18 17:27:18.000000000 -0400
32846+++ linux-2.6.38.2/fs/nfsd/lockd.c 2011-03-21 18:31:35.000000000 -0400 33756+++ linux-2.6.38.3/fs/nfsd/lockd.c 2011-04-17 16:53:48.000000000 -0400
32847@@ -61,7 +61,7 @@ nlm_fclose(struct file *filp) 33757@@ -60,7 +60,7 @@ nlm_fclose(struct file *filp)
32848 fput(filp); 33758 fput(filp);
32849 } 33759 }
32850 33760
@@ -32853,9 +33763,9 @@ diff -urNp linux-2.6.38.2/fs/nfsd/lockd.c linux-2.6.38.2/fs/nfsd/lockd.c
32853 .fopen = nlm_fopen, /* open file for locking */ 33763 .fopen = nlm_fopen, /* open file for locking */
32854 .fclose = nlm_fclose, /* close file */ 33764 .fclose = nlm_fclose, /* close file */
32855 }; 33765 };
32856diff -urNp linux-2.6.38.2/fs/nfsd/nfsctl.c linux-2.6.38.2/fs/nfsd/nfsctl.c 33766diff -urNp linux-2.6.38.3/fs/nfsd/nfsctl.c linux-2.6.38.3/fs/nfsd/nfsctl.c
32857--- linux-2.6.38.2/fs/nfsd/nfsctl.c 2011-03-14 21:20:32.000000000 -0400 33767--- linux-2.6.38.3/fs/nfsd/nfsctl.c 2011-03-14 21:20:32.000000000 -0400
32858+++ linux-2.6.38.2/fs/nfsd/nfsctl.c 2011-03-21 18:31:35.000000000 -0400 33768+++ linux-2.6.38.3/fs/nfsd/nfsctl.c 2011-04-17 15:57:32.000000000 -0400
32859@@ -180,7 +180,7 @@ static int export_features_open(struct i 33769@@ -180,7 +180,7 @@ static int export_features_open(struct i
32860 return single_open(file, export_features_show, NULL); 33770 return single_open(file, export_features_show, NULL);
32861 } 33771 }
@@ -32865,9 +33775,9 @@ diff -urNp linux-2.6.38.2/fs/nfsd/nfsctl.c linux-2.6.38.2/fs/nfsd/nfsctl.c
32865 .open = export_features_open, 33775 .open = export_features_open,
32866 .read = seq_read, 33776 .read = seq_read,
32867 .llseek = seq_lseek, 33777 .llseek = seq_lseek,
32868diff -urNp linux-2.6.38.2/fs/nfsd/vfs.c linux-2.6.38.2/fs/nfsd/vfs.c 33778diff -urNp linux-2.6.38.3/fs/nfsd/vfs.c linux-2.6.38.3/fs/nfsd/vfs.c
32869--- linux-2.6.38.2/fs/nfsd/vfs.c 2011-03-14 21:20:32.000000000 -0400 33779--- linux-2.6.38.3/fs/nfsd/vfs.c 2011-03-14 21:20:32.000000000 -0400
32870+++ linux-2.6.38.2/fs/nfsd/vfs.c 2011-03-21 18:31:35.000000000 -0400 33780+++ linux-2.6.38.3/fs/nfsd/vfs.c 2011-04-17 15:57:32.000000000 -0400
32871@@ -898,7 +898,7 @@ nfsd_vfs_read(struct svc_rqst *rqstp, st 33781@@ -898,7 +898,7 @@ nfsd_vfs_read(struct svc_rqst *rqstp, st
32872 } else { 33782 } else {
32873 oldfs = get_fs(); 33783 oldfs = get_fs();
@@ -32895,9 +33805,9 @@ diff -urNp linux-2.6.38.2/fs/nfsd/vfs.c linux-2.6.38.2/fs/nfsd/vfs.c
32895 set_fs(oldfs); 33805 set_fs(oldfs);
32896 33806
32897 if (host_err < 0) 33807 if (host_err < 0)
32898diff -urNp linux-2.6.38.2/fs/nls/nls_base.c linux-2.6.38.2/fs/nls/nls_base.c 33808diff -urNp linux-2.6.38.3/fs/nls/nls_base.c linux-2.6.38.3/fs/nls/nls_base.c
32899--- linux-2.6.38.2/fs/nls/nls_base.c 2011-03-14 21:20:32.000000000 -0400 33809--- linux-2.6.38.3/fs/nls/nls_base.c 2011-03-14 21:20:32.000000000 -0400
32900+++ linux-2.6.38.2/fs/nls/nls_base.c 2011-03-21 18:31:35.000000000 -0400 33810+++ linux-2.6.38.3/fs/nls/nls_base.c 2011-04-17 15:57:32.000000000 -0400
32901@@ -41,7 +41,7 @@ static const struct utf8_table utf8_tabl 33811@@ -41,7 +41,7 @@ static const struct utf8_table utf8_tabl
32902 {0xF8, 0xF0, 3*6, 0x1FFFFF, 0x10000, /* 4 byte sequence */}, 33812 {0xF8, 0xF0, 3*6, 0x1FFFFF, 0x10000, /* 4 byte sequence */},
32903 {0xFC, 0xF8, 4*6, 0x3FFFFFF, 0x200000, /* 5 byte sequence */}, 33813 {0xFC, 0xF8, 4*6, 0x3FFFFFF, 0x200000, /* 5 byte sequence */},
@@ -32907,9 +33817,21 @@ diff -urNp linux-2.6.38.2/fs/nls/nls_base.c linux-2.6.38.2/fs/nls/nls_base.c
32907 }; 33817 };
32908 33818
32909 #define UNICODE_MAX 0x0010ffff 33819 #define UNICODE_MAX 0x0010ffff
32910diff -urNp linux-2.6.38.2/fs/ntfs/dir.c linux-2.6.38.2/fs/ntfs/dir.c 33820diff -urNp linux-2.6.38.3/fs/notify/dnotify/dnotify.c linux-2.6.38.3/fs/notify/dnotify/dnotify.c
32911--- linux-2.6.38.2/fs/ntfs/dir.c 2011-03-14 21:20:32.000000000 -0400 33821--- linux-2.6.38.3/fs/notify/dnotify/dnotify.c 2011-03-14 21:20:32.000000000 -0400
32912+++ linux-2.6.38.2/fs/ntfs/dir.c 2011-03-21 18:31:35.000000000 -0400 33822+++ linux-2.6.38.3/fs/notify/dnotify/dnotify.c 2011-04-17 15:57:32.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
32913@@ -1329,7 +1329,7 @@ find_next_index_buffer: 33835@@ -1329,7 +1329,7 @@ find_next_index_buffer:
32914 ia = (INDEX_ALLOCATION*)(kaddr + (ia_pos & ~PAGE_CACHE_MASK & 33836 ia = (INDEX_ALLOCATION*)(kaddr + (ia_pos & ~PAGE_CACHE_MASK &
32915 ~(s64)(ndir->itype.index.block_size - 1))); 33837 ~(s64)(ndir->itype.index.block_size - 1)));
@@ -32919,9 +33841,9 @@ diff -urNp linux-2.6.38.2/fs/ntfs/dir.c linux-2.6.38.2/fs/ntfs/dir.c
32919 ntfs_error(sb, "Out of bounds check failed. Corrupt directory " 33841 ntfs_error(sb, "Out of bounds check failed. Corrupt directory "
32920 "inode 0x%lx or driver bug.", vdir->i_ino); 33842 "inode 0x%lx or driver bug.", vdir->i_ino);
32921 goto err_out; 33843 goto err_out;
32922diff -urNp linux-2.6.38.2/fs/ntfs/file.c linux-2.6.38.2/fs/ntfs/file.c 33844diff -urNp linux-2.6.38.3/fs/ntfs/file.c linux-2.6.38.3/fs/ntfs/file.c
32923--- linux-2.6.38.2/fs/ntfs/file.c 2011-03-14 21:20:32.000000000 -0400 33845--- linux-2.6.38.3/fs/ntfs/file.c 2011-03-14 21:20:32.000000000 -0400
32924+++ linux-2.6.38.2/fs/ntfs/file.c 2011-03-21 18:31:35.000000000 -0400 33846+++ linux-2.6.38.3/fs/ntfs/file.c 2011-04-17 15:57:32.000000000 -0400
32925@@ -2222,6 +2222,6 @@ const struct inode_operations ntfs_file_ 33847@@ -2222,6 +2222,6 @@ const struct inode_operations ntfs_file_
32926 #endif /* NTFS_RW */ 33848 #endif /* NTFS_RW */
32927 }; 33849 };
@@ -32931,9 +33853,9 @@ diff -urNp linux-2.6.38.2/fs/ntfs/file.c linux-2.6.38.2/fs/ntfs/file.c
32931 33853
32932-const struct inode_operations ntfs_empty_inode_ops = {}; 33854-const struct inode_operations ntfs_empty_inode_ops = {};
32933+const struct inode_operations ntfs_empty_inode_ops __read_only; 33855+const struct inode_operations ntfs_empty_inode_ops __read_only;
32934diff -urNp linux-2.6.38.2/fs/ocfs2/localalloc.c linux-2.6.38.2/fs/ocfs2/localalloc.c 33856diff -urNp linux-2.6.38.3/fs/ocfs2/localalloc.c linux-2.6.38.3/fs/ocfs2/localalloc.c
32935--- linux-2.6.38.2/fs/ocfs2/localalloc.c 2011-03-14 21:20:32.000000000 -0400 33857--- linux-2.6.38.3/fs/ocfs2/localalloc.c 2011-03-14 21:20:32.000000000 -0400
32936+++ linux-2.6.38.2/fs/ocfs2/localalloc.c 2011-03-21 18:31:35.000000000 -0400 33858+++ linux-2.6.38.3/fs/ocfs2/localalloc.c 2011-04-17 15:57:32.000000000 -0400
32937@@ -1307,7 +1307,7 @@ static int ocfs2_local_alloc_slide_windo 33859@@ -1307,7 +1307,7 @@ static int ocfs2_local_alloc_slide_windo
32938 goto bail; 33860 goto bail;
32939 } 33861 }
@@ -32943,9 +33865,9 @@ diff -urNp linux-2.6.38.2/fs/ocfs2/localalloc.c linux-2.6.38.2/fs/ocfs2/localall
32943 33865
32944 bail: 33866 bail:
32945 if (handle) 33867 if (handle)
32946diff -urNp linux-2.6.38.2/fs/ocfs2/ocfs2.h linux-2.6.38.2/fs/ocfs2/ocfs2.h 33868diff -urNp linux-2.6.38.3/fs/ocfs2/ocfs2.h linux-2.6.38.3/fs/ocfs2/ocfs2.h
32947--- linux-2.6.38.2/fs/ocfs2/ocfs2.h 2011-03-14 21:20:32.000000000 -0400 33869--- linux-2.6.38.3/fs/ocfs2/ocfs2.h 2011-03-14 21:20:32.000000000 -0400
32948+++ linux-2.6.38.2/fs/ocfs2/ocfs2.h 2011-03-21 18:31:35.000000000 -0400 33870+++ linux-2.6.38.3/fs/ocfs2/ocfs2.h 2011-04-17 15:57:32.000000000 -0400
32949@@ -230,11 +230,11 @@ enum ocfs2_vol_state 33871@@ -230,11 +230,11 @@ enum ocfs2_vol_state
32950 33872
32951 struct ocfs2_alloc_stats 33873 struct ocfs2_alloc_stats
@@ -32963,9 +33885,9 @@ diff -urNp linux-2.6.38.2/fs/ocfs2/ocfs2.h linux-2.6.38.2/fs/ocfs2/ocfs2.h
32963 }; 33885 };
32964 33886
32965 enum ocfs2_local_alloc_state 33887 enum ocfs2_local_alloc_state
32966diff -urNp linux-2.6.38.2/fs/ocfs2/suballoc.c linux-2.6.38.2/fs/ocfs2/suballoc.c 33888diff -urNp linux-2.6.38.3/fs/ocfs2/suballoc.c linux-2.6.38.3/fs/ocfs2/suballoc.c
32967--- linux-2.6.38.2/fs/ocfs2/suballoc.c 2011-03-14 21:20:32.000000000 -0400 33889--- linux-2.6.38.3/fs/ocfs2/suballoc.c 2011-03-14 21:20:32.000000000 -0400
32968+++ linux-2.6.38.2/fs/ocfs2/suballoc.c 2011-03-21 18:31:35.000000000 -0400 33890+++ linux-2.6.38.3/fs/ocfs2/suballoc.c 2011-04-17 15:57:32.000000000 -0400
32969@@ -877,7 +877,7 @@ static int ocfs2_reserve_suballoc_bits(s 33891@@ -877,7 +877,7 @@ static int ocfs2_reserve_suballoc_bits(s
32970 mlog_errno(status); 33892 mlog_errno(status);
32971 goto bail; 33893 goto bail;
@@ -33011,9 +33933,9 @@ diff -urNp linux-2.6.38.2/fs/ocfs2/suballoc.c linux-2.6.38.2/fs/ocfs2/suballoc.c
33011 *num_clusters = res.sr_bits; 33933 *num_clusters = res.sr_bits;
33012 } 33934 }
33013 } 33935 }
33014diff -urNp linux-2.6.38.2/fs/ocfs2/super.c linux-2.6.38.2/fs/ocfs2/super.c 33936diff -urNp linux-2.6.38.3/fs/ocfs2/super.c linux-2.6.38.3/fs/ocfs2/super.c
33015--- linux-2.6.38.2/fs/ocfs2/super.c 2011-03-14 21:20:32.000000000 -0400 33937--- linux-2.6.38.3/fs/ocfs2/super.c 2011-03-14 21:20:32.000000000 -0400
33016+++ linux-2.6.38.2/fs/ocfs2/super.c 2011-03-21 18:31:35.000000000 -0400 33938+++ linux-2.6.38.3/fs/ocfs2/super.c 2011-04-17 15:57:32.000000000 -0400
33017@@ -297,11 +297,11 @@ static int ocfs2_osb_dump(struct ocfs2_s 33939@@ -297,11 +297,11 @@ static int ocfs2_osb_dump(struct ocfs2_s
33018 "%10s => GlobalAllocs: %d LocalAllocs: %d " 33940 "%10s => GlobalAllocs: %d LocalAllocs: %d "
33019 "SubAllocs: %d LAWinMoves: %d SAExtends: %d\n", 33941 "SubAllocs: %d LAWinMoves: %d SAExtends: %d\n",
@@ -33048,9 +33970,9 @@ diff -urNp linux-2.6.38.2/fs/ocfs2/super.c linux-2.6.38.2/fs/ocfs2/super.c
33048 33970
33049 /* Copy the blockcheck stats from the superblock probe */ 33971 /* Copy the blockcheck stats from the superblock probe */
33050 osb->osb_ecc_stats = *stats; 33972 osb->osb_ecc_stats = *stats;
33051diff -urNp linux-2.6.38.2/fs/ocfs2/symlink.c linux-2.6.38.2/fs/ocfs2/symlink.c 33973diff -urNp linux-2.6.38.3/fs/ocfs2/symlink.c linux-2.6.38.3/fs/ocfs2/symlink.c
33052--- linux-2.6.38.2/fs/ocfs2/symlink.c 2011-03-14 21:20:32.000000000 -0400 33974--- linux-2.6.38.3/fs/ocfs2/symlink.c 2011-03-14 21:20:32.000000000 -0400
33053+++ linux-2.6.38.2/fs/ocfs2/symlink.c 2011-03-21 18:31:35.000000000 -0400 33975+++ linux-2.6.38.3/fs/ocfs2/symlink.c 2011-04-17 15:57:32.000000000 -0400
33054@@ -148,7 +148,7 @@ bail: 33976@@ -148,7 +148,7 @@ bail:
33055 33977
33056 static void ocfs2_fast_put_link(struct dentry *dentry, struct nameidata *nd, void *cookie) 33978 static void ocfs2_fast_put_link(struct dentry *dentry, struct nameidata *nd, void *cookie)
@@ -33060,9 +33982,9 @@ diff -urNp linux-2.6.38.2/fs/ocfs2/symlink.c linux-2.6.38.2/fs/ocfs2/symlink.c
33060 if (!IS_ERR(link)) 33982 if (!IS_ERR(link))
33061 kfree(link); 33983 kfree(link);
33062 } 33984 }
33063diff -urNp linux-2.6.38.2/fs/open.c linux-2.6.38.2/fs/open.c 33985diff -urNp linux-2.6.38.3/fs/open.c linux-2.6.38.3/fs/open.c
33064--- linux-2.6.38.2/fs/open.c 2011-03-14 21:20:32.000000000 -0400 33986--- linux-2.6.38.3/fs/open.c 2011-03-14 21:20:32.000000000 -0400
33065+++ linux-2.6.38.2/fs/open.c 2011-03-21 18:31:35.000000000 -0400 33987+++ linux-2.6.38.3/fs/open.c 2011-04-17 15:57:32.000000000 -0400
33066@@ -112,6 +112,10 @@ static long do_sys_truncate(const char _ 33988@@ -112,6 +112,10 @@ static long do_sys_truncate(const char _
33067 error = locks_verify_truncate(inode, NULL, length); 33989 error = locks_verify_truncate(inode, NULL, length);
33068 if (!error) 33990 if (!error)
@@ -33200,10 +34122,33 @@ diff -urNp linux-2.6.38.2/fs/open.c linux-2.6.38.2/fs/open.c
33200 if (IS_ERR(f)) { 34122 if (IS_ERR(f)) {
33201 put_unused_fd(fd); 34123 put_unused_fd(fd);
33202 fd = PTR_ERR(f); 34124 fd = PTR_ERR(f);
33203diff -urNp linux-2.6.38.2/fs/partitions/ldm.c linux-2.6.38.2/fs/partitions/ldm.c 34125diff -urNp linux-2.6.38.3/fs/partitions/ldm.c linux-2.6.38.3/fs/partitions/ldm.c
33204--- linux-2.6.38.2/fs/partitions/ldm.c 2011-03-14 21:20:32.000000000 -0400 34126--- linux-2.6.38.3/fs/partitions/ldm.c 2011-03-14 21:20:32.000000000 -0400
33205+++ linux-2.6.38.2/fs/partitions/ldm.c 2011-03-21 18:31:35.000000000 -0400 34127+++ linux-2.6.38.3/fs/partitions/ldm.c 2011-04-18 19:31:25.000000000 -0400
33206@@ -1313,7 +1313,7 @@ static bool ldm_frag_add (const u8 *data 34128@@ -1299,6 +1299,11 @@ 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)
33207 goto found; 34152 goto found;
33208 } 34153 }
33209 34154
@@ -33212,9 +34157,23 @@ diff -urNp linux-2.6.38.2/fs/partitions/ldm.c linux-2.6.38.2/fs/partitions/ldm.c
33212 if (!f) { 34157 if (!f) {
33213 ldm_crit ("Out of memory."); 34158 ldm_crit ("Out of memory.");
33214 return false; 34159 return false;
33215diff -urNp linux-2.6.38.2/fs/pipe.c linux-2.6.38.2/fs/pipe.c 34160@@ -1334,10 +1344,9 @@ found:
33216--- linux-2.6.38.2/fs/pipe.c 2011-03-14 21:20:32.000000000 -0400 34161
33217+++ linux-2.6.38.2/fs/pipe.c 2011-03-21 18:31:35.000000000 -0400 34162 f->map |= (1 << rec);
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
33218@@ -420,9 +420,9 @@ redo: 34177@@ -420,9 +420,9 @@ redo:
33219 } 34178 }
33220 if (bufs) /* More to do? */ 34179 if (bufs) /* More to do? */
@@ -33338,9 +34297,9 @@ diff -urNp linux-2.6.38.2/fs/pipe.c linux-2.6.38.2/fs/pipe.c
33338 inode->i_fop = &rdwr_pipefifo_fops; 34297 inode->i_fop = &rdwr_pipefifo_fops;
33339 34298
33340 /* 34299 /*
33341diff -urNp linux-2.6.38.2/fs/proc/array.c linux-2.6.38.2/fs/proc/array.c 34300diff -urNp linux-2.6.38.3/fs/proc/array.c linux-2.6.38.3/fs/proc/array.c
33342--- linux-2.6.38.2/fs/proc/array.c 2011-03-28 17:42:40.000000000 -0400 34301--- linux-2.6.38.3/fs/proc/array.c 2011-04-18 17:27:16.000000000 -0400
33343+++ linux-2.6.38.2/fs/proc/array.c 2011-03-28 17:48:30.000000000 -0400 34302+++ linux-2.6.38.3/fs/proc/array.c 2011-04-17 15:57:32.000000000 -0400
33344@@ -60,6 +60,7 @@ 34303@@ -60,6 +60,7 @@
33345 #include <linux/tty.h> 34304 #include <linux/tty.h>
33346 #include <linux/string.h> 34305 #include <linux/string.h>
@@ -33443,9 +34402,9 @@ diff -urNp linux-2.6.38.2/fs/proc/array.c linux-2.6.38.2/fs/proc/array.c
33443+ return sprintf(buffer, "%pI4\n", &task->signal->curr_ip); 34402+ return sprintf(buffer, "%pI4\n", &task->signal->curr_ip);
33444+} 34403+}
33445+#endif 34404+#endif
33446diff -urNp linux-2.6.38.2/fs/proc/base.c linux-2.6.38.2/fs/proc/base.c 34405diff -urNp linux-2.6.38.3/fs/proc/base.c linux-2.6.38.3/fs/proc/base.c
33447--- linux-2.6.38.2/fs/proc/base.c 2011-03-14 21:20:32.000000000 -0400 34406--- linux-2.6.38.3/fs/proc/base.c 2011-03-14 21:20:32.000000000 -0400
33448+++ linux-2.6.38.2/fs/proc/base.c 2011-03-26 11:59:10.000000000 -0400 34407+++ linux-2.6.38.3/fs/proc/base.c 2011-04-18 19:26:45.000000000 -0400
33449@@ -104,6 +104,22 @@ struct pid_entry { 34408@@ -104,6 +104,22 @@ struct pid_entry {
33450 union proc_op op; 34409 union proc_op op;
33451 }; 34410 };
@@ -33811,10 +34770,14 @@ diff -urNp linux-2.6.38.2/fs/proc/base.c linux-2.6.38.2/fs/proc/base.c
33811 put_task_struct(task); 34770 put_task_struct(task);
33812 out: 34771 out:
33813 return result; 34772 return result;
33814@@ -3068,6 +3191,11 @@ int proc_pid_readdir(struct file * filp, 34773@@ -3066,11 +3189,21 @@ static int proc_pid_fill_cache(struct fi
33815 { 34774 /* for the /proc/ directory itself, after non-process stuff has been done */
33816 unsigned int nr = filp->f_pos - FIRST_PROCESS_ENTRY; 34775 int proc_pid_readdir(struct file * filp, void * dirent, filldir_t filldir)
33817 struct task_struct *reaper = get_proc_task(filp->f_path.dentry->d_inode); 34776 {
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;
33818+#if defined(CONFIG_GRKERNSEC_PROC_USER) || defined(CONFIG_GRKERNSEC_PROC_USERGROUP) 34781+#if defined(CONFIG_GRKERNSEC_PROC_USER) || defined(CONFIG_GRKERNSEC_PROC_USERGROUP)
33819+ const struct cred *tmpcred = current_cred(); 34782+ const struct cred *tmpcred = current_cred();
33820+ const struct cred *itercred; 34783+ const struct cred *itercred;
@@ -33823,7 +34786,15 @@ diff -urNp linux-2.6.38.2/fs/proc/base.c linux-2.6.38.2/fs/proc/base.c
33823 struct tgid_iter iter; 34786 struct tgid_iter iter;
33824 struct pid_namespace *ns; 34787 struct pid_namespace *ns;
33825 34788
33826@@ -3086,8 +3214,27 @@ int proc_pid_readdir(struct file * filp, 34789+ if (filp->f_pos >= PID_MAX_LIMIT + TGID_OFFSET)
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,
33827 for (iter = next_tgid(ns, iter); 34798 for (iter = next_tgid(ns, iter);
33828 iter.task; 34799 iter.task;
33829 iter.tgid += 1, iter = next_tgid(ns, iter)) { 34800 iter.tgid += 1, iter = next_tgid(ns, iter)) {
@@ -33852,7 +34823,7 @@ diff -urNp linux-2.6.38.2/fs/proc/base.c linux-2.6.38.2/fs/proc/base.c
33852 put_task_struct(iter.task); 34823 put_task_struct(iter.task);
33853 goto out; 34824 goto out;
33854 } 34825 }
33855@@ -3114,7 +3261,7 @@ static const struct pid_entry tid_base_s 34826@@ -3114,7 +3266,7 @@ static const struct pid_entry tid_base_s
33856 REG("sched", S_IRUGO|S_IWUSR, proc_pid_sched_operations), 34827 REG("sched", S_IRUGO|S_IWUSR, proc_pid_sched_operations),
33857 #endif 34828 #endif
33858 REG("comm", S_IRUGO|S_IWUSR, proc_pid_set_comm_operations), 34829 REG("comm", S_IRUGO|S_IWUSR, proc_pid_set_comm_operations),
@@ -33861,7 +34832,7 @@ diff -urNp linux-2.6.38.2/fs/proc/base.c linux-2.6.38.2/fs/proc/base.c
33861 INF("syscall", S_IRUSR, proc_pid_syscall), 34832 INF("syscall", S_IRUSR, proc_pid_syscall),
33862 #endif 34833 #endif
33863 INF("cmdline", S_IRUGO, proc_pid_cmdline), 34834 INF("cmdline", S_IRUGO, proc_pid_cmdline),
33864@@ -3138,10 +3285,10 @@ static const struct pid_entry tid_base_s 34835@@ -3138,10 +3290,10 @@ static const struct pid_entry tid_base_s
33865 #ifdef CONFIG_SECURITY 34836 #ifdef CONFIG_SECURITY
33866 DIR("attr", S_IRUGO|S_IXUGO, proc_attr_dir_inode_operations, proc_attr_dir_operations), 34837 DIR("attr", S_IRUGO|S_IXUGO, proc_attr_dir_inode_operations, proc_attr_dir_operations),
33867 #endif 34838 #endif
@@ -33874,9 +34845,9 @@ diff -urNp linux-2.6.38.2/fs/proc/base.c linux-2.6.38.2/fs/proc/base.c
33874 ONE("stack", S_IRUSR, proc_pid_stack), 34845 ONE("stack", S_IRUSR, proc_pid_stack),
33875 #endif 34846 #endif
33876 #ifdef CONFIG_SCHEDSTATS 34847 #ifdef CONFIG_SCHEDSTATS
33877diff -urNp linux-2.6.38.2/fs/proc/cmdline.c linux-2.6.38.2/fs/proc/cmdline.c 34848diff -urNp linux-2.6.38.3/fs/proc/cmdline.c linux-2.6.38.3/fs/proc/cmdline.c
33878--- linux-2.6.38.2/fs/proc/cmdline.c 2011-03-14 21:20:32.000000000 -0400 34849--- linux-2.6.38.3/fs/proc/cmdline.c 2011-03-14 21:20:32.000000000 -0400
33879+++ linux-2.6.38.2/fs/proc/cmdline.c 2011-03-21 18:31:35.000000000 -0400 34850+++ linux-2.6.38.3/fs/proc/cmdline.c 2011-04-17 15:57:32.000000000 -0400
33880@@ -23,7 +23,11 @@ static const struct file_operations cmdl 34851@@ -23,7 +23,11 @@ static const struct file_operations cmdl
33881 34852
33882 static int __init proc_cmdline_init(void) 34853 static int __init proc_cmdline_init(void)
@@ -33889,9 +34860,9 @@ diff -urNp linux-2.6.38.2/fs/proc/cmdline.c linux-2.6.38.2/fs/proc/cmdline.c
33889 return 0; 34860 return 0;
33890 } 34861 }
33891 module_init(proc_cmdline_init); 34862 module_init(proc_cmdline_init);
33892diff -urNp linux-2.6.38.2/fs/proc/devices.c linux-2.6.38.2/fs/proc/devices.c 34863diff -urNp linux-2.6.38.3/fs/proc/devices.c linux-2.6.38.3/fs/proc/devices.c
33893--- linux-2.6.38.2/fs/proc/devices.c 2011-03-14 21:20:32.000000000 -0400 34864--- linux-2.6.38.3/fs/proc/devices.c 2011-03-14 21:20:32.000000000 -0400
33894+++ linux-2.6.38.2/fs/proc/devices.c 2011-03-21 18:31:35.000000000 -0400 34865+++ linux-2.6.38.3/fs/proc/devices.c 2011-04-17 15:57:32.000000000 -0400
33895@@ -64,7 +64,11 @@ static const struct file_operations proc 34866@@ -64,7 +64,11 @@ static const struct file_operations proc
33896 34867
33897 static int __init proc_devices_init(void) 34868 static int __init proc_devices_init(void)
@@ -33904,9 +34875,9 @@ diff -urNp linux-2.6.38.2/fs/proc/devices.c linux-2.6.38.2/fs/proc/devices.c
33904 return 0; 34875 return 0;
33905 } 34876 }
33906 module_init(proc_devices_init); 34877 module_init(proc_devices_init);
33907diff -urNp linux-2.6.38.2/fs/proc/inode.c linux-2.6.38.2/fs/proc/inode.c 34878diff -urNp linux-2.6.38.3/fs/proc/inode.c linux-2.6.38.3/fs/proc/inode.c
33908--- linux-2.6.38.2/fs/proc/inode.c 2011-03-14 21:20:32.000000000 -0400 34879--- linux-2.6.38.3/fs/proc/inode.c 2011-03-14 21:20:32.000000000 -0400
33909+++ linux-2.6.38.2/fs/proc/inode.c 2011-03-21 18:31:35.000000000 -0400 34880+++ linux-2.6.38.3/fs/proc/inode.c 2011-04-17 15:57:32.000000000 -0400
33910@@ -435,7 +435,11 @@ struct inode *proc_get_inode(struct supe 34881@@ -435,7 +435,11 @@ struct inode *proc_get_inode(struct supe
33911 if (de->mode) { 34882 if (de->mode) {
33912 inode->i_mode = de->mode; 34883 inode->i_mode = de->mode;
@@ -33919,9 +34890,9 @@ diff -urNp linux-2.6.38.2/fs/proc/inode.c linux-2.6.38.2/fs/proc/inode.c
33919 } 34890 }
33920 if (de->size) 34891 if (de->size)
33921 inode->i_size = de->size; 34892 inode->i_size = de->size;
33922diff -urNp linux-2.6.38.2/fs/proc/internal.h linux-2.6.38.2/fs/proc/internal.h 34893diff -urNp linux-2.6.38.3/fs/proc/internal.h linux-2.6.38.3/fs/proc/internal.h
33923--- linux-2.6.38.2/fs/proc/internal.h 2011-03-14 21:20:32.000000000 -0400 34894--- linux-2.6.38.3/fs/proc/internal.h 2011-03-14 21:20:32.000000000 -0400
33924+++ linux-2.6.38.2/fs/proc/internal.h 2011-03-21 18:31:35.000000000 -0400 34895+++ linux-2.6.38.3/fs/proc/internal.h 2011-04-17 15:57:32.000000000 -0400
33925@@ -51,6 +51,9 @@ extern int proc_pid_status(struct seq_fi 34896@@ -51,6 +51,9 @@ extern int proc_pid_status(struct seq_fi
33926 struct pid *pid, struct task_struct *task); 34897 struct pid *pid, struct task_struct *task);
33927 extern int proc_pid_statm(struct seq_file *m, struct pid_namespace *ns, 34898 extern int proc_pid_statm(struct seq_file *m, struct pid_namespace *ns,
@@ -33932,9 +34903,9 @@ diff -urNp linux-2.6.38.2/fs/proc/internal.h linux-2.6.38.2/fs/proc/internal.h
33932 extern loff_t mem_lseek(struct file *file, loff_t offset, int orig); 34903 extern loff_t mem_lseek(struct file *file, loff_t offset, int orig);
33933 34904
33934 extern const struct file_operations proc_maps_operations; 34905 extern const struct file_operations proc_maps_operations;
33935diff -urNp linux-2.6.38.2/fs/proc/Kconfig linux-2.6.38.2/fs/proc/Kconfig 34906diff -urNp linux-2.6.38.3/fs/proc/Kconfig linux-2.6.38.3/fs/proc/Kconfig
33936--- linux-2.6.38.2/fs/proc/Kconfig 2011-03-14 21:20:32.000000000 -0400 34907--- linux-2.6.38.3/fs/proc/Kconfig 2011-03-14 21:20:32.000000000 -0400
33937+++ linux-2.6.38.2/fs/proc/Kconfig 2011-03-21 18:31:35.000000000 -0400 34908+++ linux-2.6.38.3/fs/proc/Kconfig 2011-04-17 15:57:32.000000000 -0400
33938@@ -30,12 +30,12 @@ config PROC_FS 34909@@ -30,12 +30,12 @@ config PROC_FS
33939 34910
33940 config PROC_KCORE 34911 config PROC_KCORE
@@ -33962,9 +34933,9 @@ diff -urNp linux-2.6.38.2/fs/proc/Kconfig linux-2.6.38.2/fs/proc/Kconfig
33962 bool "Enable /proc page monitoring" if EXPERT 34933 bool "Enable /proc page monitoring" if EXPERT
33963 help 34934 help
33964 Various /proc files exist to monitor process memory utilization: 34935 Various /proc files exist to monitor process memory utilization:
33965diff -urNp linux-2.6.38.2/fs/proc/kcore.c linux-2.6.38.2/fs/proc/kcore.c 34936diff -urNp linux-2.6.38.3/fs/proc/kcore.c linux-2.6.38.3/fs/proc/kcore.c
33966--- linux-2.6.38.2/fs/proc/kcore.c 2011-03-14 21:20:32.000000000 -0400 34937--- linux-2.6.38.3/fs/proc/kcore.c 2011-03-14 21:20:32.000000000 -0400
33967+++ linux-2.6.38.2/fs/proc/kcore.c 2011-03-21 18:31:35.000000000 -0400 34938+++ linux-2.6.38.3/fs/proc/kcore.c 2011-04-17 15:57:32.000000000 -0400
33968@@ -478,9 +478,10 @@ read_kcore(struct file *file, char __use 34939@@ -478,9 +478,10 @@ read_kcore(struct file *file, char __use
33969 * the addresses in the elf_phdr on our list. 34940 * the addresses in the elf_phdr on our list.
33970 */ 34941 */
@@ -34023,9 +34994,9 @@ diff -urNp linux-2.6.38.2/fs/proc/kcore.c linux-2.6.38.2/fs/proc/kcore.c
34023 if (!capable(CAP_SYS_RAWIO)) 34994 if (!capable(CAP_SYS_RAWIO))
34024 return -EPERM; 34995 return -EPERM;
34025 if (kcore_need_update) 34996 if (kcore_need_update)
34026diff -urNp linux-2.6.38.2/fs/proc/meminfo.c linux-2.6.38.2/fs/proc/meminfo.c 34997diff -urNp linux-2.6.38.3/fs/proc/meminfo.c linux-2.6.38.3/fs/proc/meminfo.c
34027--- linux-2.6.38.2/fs/proc/meminfo.c 2011-03-14 21:20:32.000000000 -0400 34998--- linux-2.6.38.3/fs/proc/meminfo.c 2011-03-14 21:20:32.000000000 -0400
34028+++ linux-2.6.38.2/fs/proc/meminfo.c 2011-03-21 18:31:35.000000000 -0400 34999+++ linux-2.6.38.3/fs/proc/meminfo.c 2011-04-17 15:57:32.000000000 -0400
34029@@ -157,7 +157,7 @@ static int meminfo_proc_show(struct seq_ 35000@@ -157,7 +157,7 @@ static int meminfo_proc_show(struct seq_
34030 vmi.used >> 10, 35001 vmi.used >> 10,
34031 vmi.largest_chunk >> 10 35002 vmi.largest_chunk >> 10
@@ -34035,9 +35006,9 @@ diff -urNp linux-2.6.38.2/fs/proc/meminfo.c linux-2.6.38.2/fs/proc/meminfo.c
34035 #endif 35006 #endif
34036 #ifdef CONFIG_TRANSPARENT_HUGEPAGE 35007 #ifdef CONFIG_TRANSPARENT_HUGEPAGE
34037 ,K(global_page_state(NR_ANON_TRANSPARENT_HUGEPAGES) * 35008 ,K(global_page_state(NR_ANON_TRANSPARENT_HUGEPAGES) *
34038diff -urNp linux-2.6.38.2/fs/proc/nommu.c linux-2.6.38.2/fs/proc/nommu.c 35009diff -urNp linux-2.6.38.3/fs/proc/nommu.c linux-2.6.38.3/fs/proc/nommu.c
34039--- linux-2.6.38.2/fs/proc/nommu.c 2011-03-14 21:20:32.000000000 -0400 35010--- linux-2.6.38.3/fs/proc/nommu.c 2011-03-14 21:20:32.000000000 -0400
34040+++ linux-2.6.38.2/fs/proc/nommu.c 2011-03-21 18:31:35.000000000 -0400 35011+++ linux-2.6.38.3/fs/proc/nommu.c 2011-04-17 15:57:32.000000000 -0400
34041@@ -66,7 +66,7 @@ static int nommu_region_show(struct seq_ 35012@@ -66,7 +66,7 @@ static int nommu_region_show(struct seq_
34042 if (len < 1) 35013 if (len < 1)
34043 len = 1; 35014 len = 1;
@@ -34047,9 +35018,9 @@ diff -urNp linux-2.6.38.2/fs/proc/nommu.c linux-2.6.38.2/fs/proc/nommu.c
34047 } 35018 }
34048 35019
34049 seq_putc(m, '\n'); 35020 seq_putc(m, '\n');
34050diff -urNp linux-2.6.38.2/fs/proc/proc_net.c linux-2.6.38.2/fs/proc/proc_net.c 35021diff -urNp linux-2.6.38.3/fs/proc/proc_net.c linux-2.6.38.3/fs/proc/proc_net.c
34051--- linux-2.6.38.2/fs/proc/proc_net.c 2011-03-14 21:20:32.000000000 -0400 35022--- linux-2.6.38.3/fs/proc/proc_net.c 2011-03-14 21:20:32.000000000 -0400
34052+++ linux-2.6.38.2/fs/proc/proc_net.c 2011-03-21 18:31:35.000000000 -0400 35023+++ linux-2.6.38.3/fs/proc/proc_net.c 2011-04-17 15:57:32.000000000 -0400
34053@@ -105,6 +105,17 @@ static struct net *get_proc_task_net(str 35024@@ -105,6 +105,17 @@ static struct net *get_proc_task_net(str
34054 struct task_struct *task; 35025 struct task_struct *task;
34055 struct nsproxy *ns; 35026 struct nsproxy *ns;
@@ -34068,9 +35039,9 @@ diff -urNp linux-2.6.38.2/fs/proc/proc_net.c linux-2.6.38.2/fs/proc/proc_net.c
34068 35039
34069 rcu_read_lock(); 35040 rcu_read_lock();
34070 task = pid_task(proc_pid(dir), PIDTYPE_PID); 35041 task = pid_task(proc_pid(dir), PIDTYPE_PID);
34071diff -urNp linux-2.6.38.2/fs/proc/proc_sysctl.c linux-2.6.38.2/fs/proc/proc_sysctl.c 35042diff -urNp linux-2.6.38.3/fs/proc/proc_sysctl.c linux-2.6.38.3/fs/proc/proc_sysctl.c
34072--- linux-2.6.38.2/fs/proc/proc_sysctl.c 2011-03-14 21:20:32.000000000 -0400 35043--- linux-2.6.38.3/fs/proc/proc_sysctl.c 2011-03-14 21:20:32.000000000 -0400
34073+++ linux-2.6.38.2/fs/proc/proc_sysctl.c 2011-03-21 18:31:35.000000000 -0400 35044+++ linux-2.6.38.3/fs/proc/proc_sysctl.c 2011-04-17 15:57:32.000000000 -0400
34074@@ -8,6 +8,8 @@ 35045@@ -8,6 +8,8 @@
34075 #include <linux/namei.h> 35046 #include <linux/namei.h>
34076 #include "internal.h" 35047 #include "internal.h"
@@ -34110,9 +35081,9 @@ diff -urNp linux-2.6.38.2/fs/proc/proc_sysctl.c linux-2.6.38.2/fs/proc/proc_sysc
34110 generic_fillattr(inode, stat); 35081 generic_fillattr(inode, stat);
34111 if (table) 35082 if (table)
34112 stat->mode = (stat->mode & S_IFMT) | table->mode; 35083 stat->mode = (stat->mode & S_IFMT) | table->mode;
34113diff -urNp linux-2.6.38.2/fs/proc/root.c linux-2.6.38.2/fs/proc/root.c 35084diff -urNp linux-2.6.38.3/fs/proc/root.c linux-2.6.38.3/fs/proc/root.c
34114--- linux-2.6.38.2/fs/proc/root.c 2011-03-14 21:20:32.000000000 -0400 35085--- linux-2.6.38.3/fs/proc/root.c 2011-03-14 21:20:32.000000000 -0400
34115+++ linux-2.6.38.2/fs/proc/root.c 2011-03-21 18:31:35.000000000 -0400 35086+++ linux-2.6.38.3/fs/proc/root.c 2011-04-17 15:57:32.000000000 -0400
34116@@ -132,7 +132,15 @@ void __init proc_root_init(void) 35087@@ -132,7 +132,15 @@ void __init proc_root_init(void)
34117 #ifdef CONFIG_PROC_DEVICETREE 35088 #ifdef CONFIG_PROC_DEVICETREE
34118 proc_device_tree_init(); 35089 proc_device_tree_init();
@@ -34129,9 +35100,9 @@ diff -urNp linux-2.6.38.2/fs/proc/root.c linux-2.6.38.2/fs/proc/root.c
34129 proc_sys_init(); 35100 proc_sys_init();
34130 } 35101 }
34131 35102
34132diff -urNp linux-2.6.38.2/fs/proc/task_mmu.c linux-2.6.38.2/fs/proc/task_mmu.c 35103diff -urNp linux-2.6.38.3/fs/proc/task_mmu.c linux-2.6.38.3/fs/proc/task_mmu.c
34133--- linux-2.6.38.2/fs/proc/task_mmu.c 2011-03-28 17:42:40.000000000 -0400 35104--- linux-2.6.38.3/fs/proc/task_mmu.c 2011-04-18 17:27:16.000000000 -0400
34134+++ linux-2.6.38.2/fs/proc/task_mmu.c 2011-03-28 17:42:53.000000000 -0400 35105+++ linux-2.6.38.3/fs/proc/task_mmu.c 2011-04-18 19:35:47.000000000 -0400
34135@@ -49,8 +49,13 @@ void task_mem(struct seq_file *m, struct 35106@@ -49,8 +49,13 @@ void task_mem(struct seq_file *m, struct
34136 "VmExe:\t%8lu kB\n" 35107 "VmExe:\t%8lu kB\n"
34137 "VmLib:\t%8lu kB\n" 35108 "VmLib:\t%8lu kB\n"
@@ -34163,7 +35134,17 @@ diff -urNp linux-2.6.38.2/fs/proc/task_mmu.c linux-2.6.38.2/fs/proc/task_mmu.c
34163 } 35134 }
34164 35135
34165 unsigned long task_vsize(struct mm_struct *mm) 35136 unsigned long task_vsize(struct mm_struct *mm)
34166@@ -204,6 +215,12 @@ static int do_maps_open(struct inode *in 35137@@ -180,7 +191,8 @@ static void m_stop(struct seq_file *m, v
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
34167 return ret; 35148 return ret;
34168 } 35149 }
34169 35150
@@ -34176,7 +35157,7 @@ diff -urNp linux-2.6.38.2/fs/proc/task_mmu.c linux-2.6.38.2/fs/proc/task_mmu.c
34176 static void show_map_vma(struct seq_file *m, struct vm_area_struct *vma) 35157 static void show_map_vma(struct seq_file *m, struct vm_area_struct *vma)
34177 { 35158 {
34178 struct mm_struct *mm = vma->vm_mm; 35159 struct mm_struct *mm = vma->vm_mm;
34179@@ -211,7 +228,6 @@ static void show_map_vma(struct seq_file 35160@@ -211,7 +229,6 @@ static void show_map_vma(struct seq_file
34180 int flags = vma->vm_flags; 35161 int flags = vma->vm_flags;
34181 unsigned long ino = 0; 35162 unsigned long ino = 0;
34182 unsigned long long pgoff = 0; 35163 unsigned long long pgoff = 0;
@@ -34184,7 +35165,7 @@ diff -urNp linux-2.6.38.2/fs/proc/task_mmu.c linux-2.6.38.2/fs/proc/task_mmu.c
34184 dev_t dev = 0; 35165 dev_t dev = 0;
34185 int len; 35166 int len;
34186 35167
34187@@ -222,20 +238,23 @@ static void show_map_vma(struct seq_file 35168@@ -222,20 +239,23 @@ static void show_map_vma(struct seq_file
34188 pgoff = ((loff_t)vma->vm_pgoff) << PAGE_SHIFT; 35169 pgoff = ((loff_t)vma->vm_pgoff) << PAGE_SHIFT;
34189 } 35170 }
34190 35171
@@ -34215,7 +35196,7 @@ diff -urNp linux-2.6.38.2/fs/proc/task_mmu.c linux-2.6.38.2/fs/proc/task_mmu.c
34215 MAJOR(dev), MINOR(dev), ino, &len); 35196 MAJOR(dev), MINOR(dev), ino, &len);
34216 35197
34217 /* 35198 /*
34218@@ -244,16 +263,16 @@ static void show_map_vma(struct seq_file 35199@@ -244,16 +264,16 @@ static void show_map_vma(struct seq_file
34219 */ 35200 */
34220 if (file) { 35201 if (file) {
34221 pad_len_spaces(m, len); 35202 pad_len_spaces(m, len);
@@ -34237,7 +35218,7 @@ diff -urNp linux-2.6.38.2/fs/proc/task_mmu.c linux-2.6.38.2/fs/proc/task_mmu.c
34237 name = "[stack]"; 35218 name = "[stack]";
34238 } 35219 }
34239 } else { 35220 } else {
34240@@ -399,11 +418,16 @@ static int show_smap(struct seq_file *m, 35221@@ -399,11 +419,16 @@ static int show_smap(struct seq_file *m,
34241 }; 35222 };
34242 35223
34243 memset(&mss, 0, sizeof mss); 35224 memset(&mss, 0, sizeof mss);
@@ -34259,7 +35240,7 @@ diff -urNp linux-2.6.38.2/fs/proc/task_mmu.c linux-2.6.38.2/fs/proc/task_mmu.c
34259 show_map_vma(m, vma); 35240 show_map_vma(m, vma);
34260 35241
34261 seq_printf(m, 35242 seq_printf(m,
34262@@ -420,7 +444,11 @@ static int show_smap(struct seq_file *m, 35243@@ -420,7 +445,11 @@ static int show_smap(struct seq_file *m,
34263 "KernelPageSize: %8lu kB\n" 35244 "KernelPageSize: %8lu kB\n"
34264 "MMUPageSize: %8lu kB\n" 35245 "MMUPageSize: %8lu kB\n"
34265 "Locked: %8lu kB\n", 35246 "Locked: %8lu kB\n",
@@ -34271,9 +35252,9 @@ diff -urNp linux-2.6.38.2/fs/proc/task_mmu.c linux-2.6.38.2/fs/proc/task_mmu.c
34271 mss.resident >> 10, 35252 mss.resident >> 10,
34272 (unsigned long)(mss.pss >> (10 + PSS_SHIFT)), 35253 (unsigned long)(mss.pss >> (10 + PSS_SHIFT)),
34273 mss.shared_clean >> 10, 35254 mss.shared_clean >> 10,
34274diff -urNp linux-2.6.38.2/fs/proc/task_nommu.c linux-2.6.38.2/fs/proc/task_nommu.c 35255diff -urNp linux-2.6.38.3/fs/proc/task_nommu.c linux-2.6.38.3/fs/proc/task_nommu.c
34275--- linux-2.6.38.2/fs/proc/task_nommu.c 2011-03-14 21:20:32.000000000 -0400 35256--- linux-2.6.38.3/fs/proc/task_nommu.c 2011-03-14 21:20:32.000000000 -0400
34276+++ linux-2.6.38.2/fs/proc/task_nommu.c 2011-03-21 18:31:35.000000000 -0400 35257+++ linux-2.6.38.3/fs/proc/task_nommu.c 2011-04-17 15:57:32.000000000 -0400
34277@@ -51,7 +51,7 @@ void task_mem(struct seq_file *m, struct 35258@@ -51,7 +51,7 @@ void task_mem(struct seq_file *m, struct
34278 else 35259 else
34279 bytes += kobjsize(mm); 35260 bytes += kobjsize(mm);
@@ -34292,9 +35273,9 @@ diff -urNp linux-2.6.38.2/fs/proc/task_nommu.c linux-2.6.38.2/fs/proc/task_nommu
34292 } else if (mm) { 35273 } else if (mm) {
34293 if (vma->vm_start <= mm->start_stack && 35274 if (vma->vm_start <= mm->start_stack &&
34294 vma->vm_end >= mm->start_stack) { 35275 vma->vm_end >= mm->start_stack) {
34295diff -urNp linux-2.6.38.2/fs/readdir.c linux-2.6.38.2/fs/readdir.c 35276diff -urNp linux-2.6.38.3/fs/readdir.c linux-2.6.38.3/fs/readdir.c
34296--- linux-2.6.38.2/fs/readdir.c 2011-03-14 21:20:32.000000000 -0400 35277--- linux-2.6.38.3/fs/readdir.c 2011-03-14 21:20:32.000000000 -0400
34297+++ linux-2.6.38.2/fs/readdir.c 2011-03-21 18:31:35.000000000 -0400 35278+++ linux-2.6.38.3/fs/readdir.c 2011-04-17 15:57:32.000000000 -0400
34298@@ -17,6 +17,7 @@ 35279@@ -17,6 +17,7 @@
34299 #include <linux/security.h> 35280 #include <linux/security.h>
34300 #include <linux/syscalls.h> 35281 #include <linux/syscalls.h>
@@ -34384,9 +35365,9 @@ diff -urNp linux-2.6.38.2/fs/readdir.c linux-2.6.38.2/fs/readdir.c
34384 buf.count = count; 35365 buf.count = count;
34385 buf.error = 0; 35366 buf.error = 0;
34386 35367
34387diff -urNp linux-2.6.38.2/fs/reiserfs/do_balan.c linux-2.6.38.2/fs/reiserfs/do_balan.c 35368diff -urNp linux-2.6.38.3/fs/reiserfs/do_balan.c linux-2.6.38.3/fs/reiserfs/do_balan.c
34388--- linux-2.6.38.2/fs/reiserfs/do_balan.c 2011-03-14 21:20:32.000000000 -0400 35369--- linux-2.6.38.3/fs/reiserfs/do_balan.c 2011-03-14 21:20:32.000000000 -0400
34389+++ linux-2.6.38.2/fs/reiserfs/do_balan.c 2011-03-21 18:31:35.000000000 -0400 35370+++ linux-2.6.38.3/fs/reiserfs/do_balan.c 2011-04-17 15:57:32.000000000 -0400
34390@@ -2051,7 +2051,7 @@ void do_balance(struct tree_balance *tb, 35371@@ -2051,7 +2051,7 @@ void do_balance(struct tree_balance *tb,
34391 return; 35372 return;
34392 } 35373 }
@@ -34396,9 +35377,9 @@ diff -urNp linux-2.6.38.2/fs/reiserfs/do_balan.c linux-2.6.38.2/fs/reiserfs/do_b
34396 do_balance_starts(tb); 35377 do_balance_starts(tb);
34397 35378
34398 /* balance leaf returns 0 except if combining L R and S into 35379 /* balance leaf returns 0 except if combining L R and S into
34399diff -urNp linux-2.6.38.2/fs/reiserfs/item_ops.c linux-2.6.38.2/fs/reiserfs/item_ops.c 35380diff -urNp linux-2.6.38.3/fs/reiserfs/item_ops.c linux-2.6.38.3/fs/reiserfs/item_ops.c
34400--- linux-2.6.38.2/fs/reiserfs/item_ops.c 2011-03-14 21:20:32.000000000 -0400 35381--- linux-2.6.38.3/fs/reiserfs/item_ops.c 2011-03-14 21:20:32.000000000 -0400
34401+++ linux-2.6.38.2/fs/reiserfs/item_ops.c 2011-03-21 18:31:35.000000000 -0400 35382+++ linux-2.6.38.3/fs/reiserfs/item_ops.c 2011-04-17 15:57:32.000000000 -0400
34402@@ -102,7 +102,7 @@ static void sd_print_vi(struct virtual_i 35383@@ -102,7 +102,7 @@ static void sd_print_vi(struct virtual_i
34403 vi->vi_index, vi->vi_type, vi->vi_ih); 35384 vi->vi_index, vi->vi_type, vi->vi_ih);
34404 } 35385 }
@@ -34453,9 +35434,9 @@ diff -urNp linux-2.6.38.2/fs/reiserfs/item_ops.c linux-2.6.38.2/fs/reiserfs/item
34453 &stat_data_ops, 35434 &stat_data_ops,
34454 &indirect_ops, 35435 &indirect_ops,
34455 &direct_ops, 35436 &direct_ops,
34456diff -urNp linux-2.6.38.2/fs/reiserfs/procfs.c linux-2.6.38.2/fs/reiserfs/procfs.c 35437diff -urNp linux-2.6.38.3/fs/reiserfs/procfs.c linux-2.6.38.3/fs/reiserfs/procfs.c
34457--- linux-2.6.38.2/fs/reiserfs/procfs.c 2011-03-14 21:20:32.000000000 -0400 35438--- linux-2.6.38.3/fs/reiserfs/procfs.c 2011-03-14 21:20:32.000000000 -0400
34458+++ linux-2.6.38.2/fs/reiserfs/procfs.c 2011-03-21 18:31:35.000000000 -0400 35439+++ linux-2.6.38.3/fs/reiserfs/procfs.c 2011-04-17 15:57:32.000000000 -0400
34459@@ -113,7 +113,7 @@ static int show_super(struct seq_file *m 35440@@ -113,7 +113,7 @@ static int show_super(struct seq_file *m
34460 "SMALL_TAILS " : "NO_TAILS ", 35441 "SMALL_TAILS " : "NO_TAILS ",
34461 replay_only(sb) ? "REPLAY_ONLY " : "", 35442 replay_only(sb) ? "REPLAY_ONLY " : "",
@@ -34465,9 +35446,9 @@ diff -urNp linux-2.6.38.2/fs/reiserfs/procfs.c linux-2.6.38.2/fs/reiserfs/procfs
34465 SF(s_disk_reads), SF(s_disk_writes), SF(s_fix_nodes), 35446 SF(s_disk_reads), SF(s_disk_writes), SF(s_fix_nodes),
34466 SF(s_do_balance), SF(s_unneeded_left_neighbor), 35447 SF(s_do_balance), SF(s_unneeded_left_neighbor),
34467 SF(s_good_search_by_key_reada), SF(s_bmaps), 35448 SF(s_good_search_by_key_reada), SF(s_bmaps),
34468diff -urNp linux-2.6.38.2/fs/select.c linux-2.6.38.2/fs/select.c 35449diff -urNp linux-2.6.38.3/fs/select.c linux-2.6.38.3/fs/select.c
34469--- linux-2.6.38.2/fs/select.c 2011-03-14 21:20:32.000000000 -0400 35450--- linux-2.6.38.3/fs/select.c 2011-03-14 21:20:32.000000000 -0400
34470+++ linux-2.6.38.2/fs/select.c 2011-03-21 18:31:35.000000000 -0400 35451+++ linux-2.6.38.3/fs/select.c 2011-04-17 15:57:32.000000000 -0400
34471@@ -20,6 +20,7 @@ 35452@@ -20,6 +20,7 @@
34472 #include <linux/module.h> 35453 #include <linux/module.h>
34473 #include <linux/slab.h> 35454 #include <linux/slab.h>
@@ -34484,9 +35465,9 @@ diff -urNp linux-2.6.38.2/fs/select.c linux-2.6.38.2/fs/select.c
34484 if (nfds > rlimit(RLIMIT_NOFILE)) 35465 if (nfds > rlimit(RLIMIT_NOFILE))
34485 return -EINVAL; 35466 return -EINVAL;
34486 35467
34487diff -urNp linux-2.6.38.2/fs/seq_file.c linux-2.6.38.2/fs/seq_file.c 35468diff -urNp linux-2.6.38.3/fs/seq_file.c linux-2.6.38.3/fs/seq_file.c
34488--- linux-2.6.38.2/fs/seq_file.c 2011-03-14 21:20:32.000000000 -0400 35469--- linux-2.6.38.3/fs/seq_file.c 2011-03-14 21:20:32.000000000 -0400
34489+++ linux-2.6.38.2/fs/seq_file.c 2011-03-21 18:31:35.000000000 -0400 35470+++ linux-2.6.38.3/fs/seq_file.c 2011-04-17 15:57:32.000000000 -0400
34490@@ -76,7 +76,8 @@ static int traverse(struct seq_file *m, 35471@@ -76,7 +76,8 @@ static int traverse(struct seq_file *m,
34491 return 0; 35472 return 0;
34492 } 35473 }
@@ -34527,9 +35508,9 @@ diff -urNp linux-2.6.38.2/fs/seq_file.c linux-2.6.38.2/fs/seq_file.c
34527 if (!m->buf) 35508 if (!m->buf)
34528 goto Enomem; 35509 goto Enomem;
34529 m->count = 0; 35510 m->count = 0;
34530diff -urNp linux-2.6.38.2/fs/splice.c linux-2.6.38.2/fs/splice.c 35511diff -urNp linux-2.6.38.3/fs/splice.c linux-2.6.38.3/fs/splice.c
34531--- linux-2.6.38.2/fs/splice.c 2011-03-14 21:20:32.000000000 -0400 35512--- linux-2.6.38.3/fs/splice.c 2011-03-14 21:20:32.000000000 -0400
34532+++ linux-2.6.38.2/fs/splice.c 2011-03-21 18:31:35.000000000 -0400 35513+++ linux-2.6.38.3/fs/splice.c 2011-04-17 15:57:32.000000000 -0400
34533@@ -186,7 +186,7 @@ ssize_t splice_to_pipe(struct pipe_inode 35514@@ -186,7 +186,7 @@ ssize_t splice_to_pipe(struct pipe_inode
34534 pipe_lock(pipe); 35515 pipe_lock(pipe);
34535 35516
@@ -34668,9 +35649,9 @@ diff -urNp linux-2.6.38.2/fs/splice.c linux-2.6.38.2/fs/splice.c
34668 ret = -EAGAIN; 35649 ret = -EAGAIN;
34669 35650
34670 pipe_unlock(ipipe); 35651 pipe_unlock(ipipe);
34671diff -urNp linux-2.6.38.2/fs/sysfs/mount.c linux-2.6.38.2/fs/sysfs/mount.c 35652diff -urNp linux-2.6.38.3/fs/sysfs/mount.c linux-2.6.38.3/fs/sysfs/mount.c
34672--- linux-2.6.38.2/fs/sysfs/mount.c 2011-03-14 21:20:32.000000000 -0400 35653--- linux-2.6.38.3/fs/sysfs/mount.c 2011-03-14 21:20:32.000000000 -0400
34673+++ linux-2.6.38.2/fs/sysfs/mount.c 2011-03-21 18:31:35.000000000 -0400 35654+++ linux-2.6.38.3/fs/sysfs/mount.c 2011-04-17 15:57:32.000000000 -0400
34674@@ -36,7 +36,11 @@ struct sysfs_dirent sysfs_root = { 35655@@ -36,7 +36,11 @@ struct sysfs_dirent sysfs_root = {
34675 .s_name = "", 35656 .s_name = "",
34676 .s_count = ATOMIC_INIT(1), 35657 .s_count = ATOMIC_INIT(1),
@@ -34683,9 +35664,9 @@ diff -urNp linux-2.6.38.2/fs/sysfs/mount.c linux-2.6.38.2/fs/sysfs/mount.c
34683 .s_ino = 1, 35664 .s_ino = 1,
34684 }; 35665 };
34685 35666
34686diff -urNp linux-2.6.38.2/fs/sysfs/symlink.c linux-2.6.38.2/fs/sysfs/symlink.c 35667diff -urNp linux-2.6.38.3/fs/sysfs/symlink.c linux-2.6.38.3/fs/sysfs/symlink.c
34687--- linux-2.6.38.2/fs/sysfs/symlink.c 2011-03-14 21:20:32.000000000 -0400 35668--- linux-2.6.38.3/fs/sysfs/symlink.c 2011-03-14 21:20:32.000000000 -0400
34688+++ linux-2.6.38.2/fs/sysfs/symlink.c 2011-03-21 18:31:35.000000000 -0400 35669+++ linux-2.6.38.3/fs/sysfs/symlink.c 2011-04-17 15:57:32.000000000 -0400
34689@@ -286,7 +286,7 @@ static void *sysfs_follow_link(struct de 35670@@ -286,7 +286,7 @@ static void *sysfs_follow_link(struct de
34690 35671
34691 static void sysfs_put_link(struct dentry *dentry, struct nameidata *nd, void *cookie) 35672 static void sysfs_put_link(struct dentry *dentry, struct nameidata *nd, void *cookie)
@@ -34695,10 +35676,10 @@ diff -urNp linux-2.6.38.2/fs/sysfs/symlink.c linux-2.6.38.2/fs/sysfs/symlink.c
34695 if (!IS_ERR(page)) 35676 if (!IS_ERR(page))
34696 free_page((unsigned long)page); 35677 free_page((unsigned long)page);
34697 } 35678 }
34698diff -urNp linux-2.6.38.2/fs/ubifs/debug.c linux-2.6.38.2/fs/ubifs/debug.c 35679diff -urNp linux-2.6.38.3/fs/ubifs/debug.c linux-2.6.38.3/fs/ubifs/debug.c
34699--- linux-2.6.38.2/fs/ubifs/debug.c 2011-03-14 21:20:32.000000000 -0400 35680--- linux-2.6.38.3/fs/ubifs/debug.c 2011-04-18 17:27:18.000000000 -0400
34700+++ linux-2.6.38.2/fs/ubifs/debug.c 2011-03-21 18:31:35.000000000 -0400 35681+++ linux-2.6.38.3/fs/ubifs/debug.c 2011-04-17 16:53:48.000000000 -0400
34701@@ -2813,19 +2813,19 @@ int dbg_debugfs_init_fs(struct ubifs_inf 35682@@ -2844,19 +2844,19 @@ int dbg_debugfs_init_fs(struct ubifs_inf
34702 } 35683 }
34703 35684
34704 fname = "dump_lprops"; 35685 fname = "dump_lprops";
@@ -34721,9 +35702,9 @@ diff -urNp linux-2.6.38.2/fs/ubifs/debug.c linux-2.6.38.2/fs/ubifs/debug.c
34721 if (IS_ERR(dent)) 35702 if (IS_ERR(dent))
34722 goto out_remove; 35703 goto out_remove;
34723 d->dfs_dump_tnc = dent; 35704 d->dfs_dump_tnc = dent;
34724diff -urNp linux-2.6.38.2/fs/udf/misc.c linux-2.6.38.2/fs/udf/misc.c 35705diff -urNp linux-2.6.38.3/fs/udf/misc.c linux-2.6.38.3/fs/udf/misc.c
34725--- linux-2.6.38.2/fs/udf/misc.c 2011-03-14 21:20:32.000000000 -0400 35706--- linux-2.6.38.3/fs/udf/misc.c 2011-03-14 21:20:32.000000000 -0400
34726+++ linux-2.6.38.2/fs/udf/misc.c 2011-03-21 18:31:35.000000000 -0400 35707+++ linux-2.6.38.3/fs/udf/misc.c 2011-04-17 15:57:32.000000000 -0400
34727@@ -142,8 +142,8 @@ struct genericFormat *udf_add_extendedat 35708@@ -142,8 +142,8 @@ struct genericFormat *udf_add_extendedat
34728 iinfo->i_lenEAttr += size; 35709 iinfo->i_lenEAttr += size;
34729 return (struct genericFormat *)&ea[offset]; 35710 return (struct genericFormat *)&ea[offset];
@@ -34744,9 +35725,9 @@ diff -urNp linux-2.6.38.2/fs/udf/misc.c linux-2.6.38.2/fs/udf/misc.c
34744 u8 checksum = 0; 35725 u8 checksum = 0;
34745 int i; 35726 int i;
34746 for (i = 0; i < sizeof(struct tag); ++i) 35727 for (i = 0; i < sizeof(struct tag); ++i)
34747diff -urNp linux-2.6.38.2/fs/udf/udfdecl.h linux-2.6.38.2/fs/udf/udfdecl.h 35728diff -urNp linux-2.6.38.3/fs/udf/udfdecl.h linux-2.6.38.3/fs/udf/udfdecl.h
34748--- linux-2.6.38.2/fs/udf/udfdecl.h 2011-03-14 21:20:32.000000000 -0400 35729--- linux-2.6.38.3/fs/udf/udfdecl.h 2011-03-14 21:20:32.000000000 -0400
34749+++ linux-2.6.38.2/fs/udf/udfdecl.h 2011-03-21 18:31:35.000000000 -0400 35730+++ linux-2.6.38.3/fs/udf/udfdecl.h 2011-04-17 15:57:32.000000000 -0400
34750@@ -26,7 +26,7 @@ do { \ 35731@@ -26,7 +26,7 @@ do { \
34751 printk(f, ##a); \ 35732 printk(f, ##a); \
34752 } while (0) 35733 } while (0)
@@ -34756,9 +35737,9 @@ diff -urNp linux-2.6.38.2/fs/udf/udfdecl.h linux-2.6.38.2/fs/udf/udfdecl.h
34756 #endif 35737 #endif
34757 35738
34758 #define udf_info(f, a...) \ 35739 #define udf_info(f, a...) \
34759diff -urNp linux-2.6.38.2/fs/utimes.c linux-2.6.38.2/fs/utimes.c 35740diff -urNp linux-2.6.38.3/fs/utimes.c linux-2.6.38.3/fs/utimes.c
34760--- linux-2.6.38.2/fs/utimes.c 2011-03-14 21:20:32.000000000 -0400 35741--- linux-2.6.38.3/fs/utimes.c 2011-03-14 21:20:32.000000000 -0400
34761+++ linux-2.6.38.2/fs/utimes.c 2011-03-21 18:31:35.000000000 -0400 35742+++ linux-2.6.38.3/fs/utimes.c 2011-04-17 15:57:32.000000000 -0400
34762@@ -1,6 +1,7 @@ 35743@@ -1,6 +1,7 @@
34763 #include <linux/compiler.h> 35744 #include <linux/compiler.h>
34764 #include <linux/file.h> 35745 #include <linux/file.h>
@@ -34780,9 +35761,9 @@ diff -urNp linux-2.6.38.2/fs/utimes.c linux-2.6.38.2/fs/utimes.c
34780 mutex_lock(&inode->i_mutex); 35761 mutex_lock(&inode->i_mutex);
34781 error = notify_change(path->dentry, &newattrs); 35762 error = notify_change(path->dentry, &newattrs);
34782 mutex_unlock(&inode->i_mutex); 35763 mutex_unlock(&inode->i_mutex);
34783diff -urNp linux-2.6.38.2/fs/xattr_acl.c linux-2.6.38.2/fs/xattr_acl.c 35764diff -urNp linux-2.6.38.3/fs/xattr_acl.c linux-2.6.38.3/fs/xattr_acl.c
34784--- linux-2.6.38.2/fs/xattr_acl.c 2011-03-14 21:20:32.000000000 -0400 35765--- linux-2.6.38.3/fs/xattr_acl.c 2011-03-14 21:20:32.000000000 -0400
34785+++ linux-2.6.38.2/fs/xattr_acl.c 2011-03-21 18:31:35.000000000 -0400 35766+++ linux-2.6.38.3/fs/xattr_acl.c 2011-04-17 15:57:32.000000000 -0400
34786@@ -17,8 +17,8 @@ 35767@@ -17,8 +17,8 @@
34787 struct posix_acl * 35768 struct posix_acl *
34788 posix_acl_from_xattr(const void *value, size_t size) 35769 posix_acl_from_xattr(const void *value, size_t size)
@@ -34794,9 +35775,9 @@ diff -urNp linux-2.6.38.2/fs/xattr_acl.c linux-2.6.38.2/fs/xattr_acl.c
34794 int count; 35775 int count;
34795 struct posix_acl *acl; 35776 struct posix_acl *acl;
34796 struct posix_acl_entry *acl_e; 35777 struct posix_acl_entry *acl_e;
34797diff -urNp linux-2.6.38.2/fs/xattr.c linux-2.6.38.2/fs/xattr.c 35778diff -urNp linux-2.6.38.3/fs/xattr.c linux-2.6.38.3/fs/xattr.c
34798--- linux-2.6.38.2/fs/xattr.c 2011-03-14 21:20:32.000000000 -0400 35779--- linux-2.6.38.3/fs/xattr.c 2011-03-14 21:20:32.000000000 -0400
34799+++ linux-2.6.38.2/fs/xattr.c 2011-03-21 18:31:35.000000000 -0400 35780+++ linux-2.6.38.3/fs/xattr.c 2011-04-17 15:57:32.000000000 -0400
34800@@ -247,7 +247,7 @@ EXPORT_SYMBOL_GPL(vfs_removexattr); 35781@@ -247,7 +247,7 @@ EXPORT_SYMBOL_GPL(vfs_removexattr);
34801 * Extended attribute SET operations 35782 * Extended attribute SET operations
34802 */ 35783 */
@@ -34859,9 +35840,9 @@ diff -urNp linux-2.6.38.2/fs/xattr.c linux-2.6.38.2/fs/xattr.c
34859 mnt_drop_write(f->f_path.mnt); 35840 mnt_drop_write(f->f_path.mnt);
34860 } 35841 }
34861 fput(f); 35842 fput(f);
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 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
34863--- linux-2.6.38.2/fs/xfs/linux-2.6/xfs_ioctl32.c 2011-03-14 21:20:32.000000000 -0400 35844--- linux-2.6.38.3/fs/xfs/linux-2.6/xfs_ioctl32.c 2011-03-14 21:20: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 35845+++ linux-2.6.38.3/fs/xfs/linux-2.6/xfs_ioctl32.c 2011-04-17 15:57:32.000000000 -0400
34865@@ -73,6 +73,7 @@ xfs_compat_ioc_fsgeometry_v1( 35846@@ -73,6 +73,7 @@ xfs_compat_ioc_fsgeometry_v1(
34866 xfs_fsop_geom_t fsgeo; 35847 xfs_fsop_geom_t fsgeo;
34867 int error; 35848 int error;
@@ -34870,9 +35851,9 @@ diff -urNp linux-2.6.38.2/fs/xfs/linux-2.6/xfs_ioctl32.c linux-2.6.38.2/fs/xfs/l
34870 error = xfs_fs_geometry(mp, &fsgeo, 3); 35851 error = xfs_fs_geometry(mp, &fsgeo, 3);
34871 if (error) 35852 if (error)
34872 return -error; 35853 return -error;
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 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
34874--- linux-2.6.38.2/fs/xfs/linux-2.6/xfs_ioctl.c 2011-03-14 21:20:32.000000000 -0400 35855--- linux-2.6.38.3/fs/xfs/linux-2.6/xfs_ioctl.c 2011-03-14 21:20:32.000000000 -0400
34875+++ linux-2.6.38.2/fs/xfs/linux-2.6/xfs_ioctl.c 2011-03-21 18:31:35.000000000 -0400 35856+++ linux-2.6.38.3/fs/xfs/linux-2.6/xfs_ioctl.c 2011-04-17 20:08:09.000000000 -0400
34876@@ -128,7 +128,7 @@ xfs_find_handle( 35857@@ -128,7 +128,7 @@ xfs_find_handle(
34877 } 35858 }
34878 35859
@@ -34882,17 +35863,9 @@ diff -urNp linux-2.6.38.2/fs/xfs/linux-2.6/xfs_ioctl.c linux-2.6.38.2/fs/xfs/lin
34882 copy_to_user(hreq->ohandlen, &hsize, sizeof(__s32))) 35863 copy_to_user(hreq->ohandlen, &hsize, sizeof(__s32)))
34883 goto out_put; 35864 goto out_put;
34884 35865
34885@@ -720,6 +720,7 @@ xfs_ioc_fsgeometry( 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
34886 xfs_fsop_geom_t fsgeo; 35867--- linux-2.6.38.3/fs/xfs/linux-2.6/xfs_iops.c 2011-03-14 21:20:32.000000000 -0400
34887 int error; 35868+++ linux-2.6.38.3/fs/xfs/linux-2.6/xfs_iops.c 2011-04-17 15:57:32.000000000 -0400
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
34896@@ -436,7 +436,7 @@ xfs_vn_put_link( 35869@@ -436,7 +436,7 @@ xfs_vn_put_link(
34897 struct nameidata *nd, 35870 struct nameidata *nd,
34898 void *p) 35871 void *p)
@@ -34902,9 +35875,9 @@ diff -urNp linux-2.6.38.2/fs/xfs/linux-2.6/xfs_iops.c linux-2.6.38.2/fs/xfs/linu
34902 35875
34903 if (!IS_ERR(s)) 35876 if (!IS_ERR(s))
34904 kfree(s); 35877 kfree(s);
34905diff -urNp linux-2.6.38.2/fs/xfs/xfs_bmap.c linux-2.6.38.2/fs/xfs/xfs_bmap.c 35878diff -urNp linux-2.6.38.3/fs/xfs/xfs_bmap.c linux-2.6.38.3/fs/xfs/xfs_bmap.c
34906--- linux-2.6.38.2/fs/xfs/xfs_bmap.c 2011-03-14 21:20:32.000000000 -0400 35879--- linux-2.6.38.3/fs/xfs/xfs_bmap.c 2011-03-14 21:20:32.000000000 -0400
34907+++ linux-2.6.38.2/fs/xfs/xfs_bmap.c 2011-03-21 18:31:35.000000000 -0400 35880+++ linux-2.6.38.3/fs/xfs/xfs_bmap.c 2011-04-17 15:57:32.000000000 -0400
34908@@ -287,7 +287,7 @@ xfs_bmap_validate_ret( 35881@@ -287,7 +287,7 @@ xfs_bmap_validate_ret(
34909 int nmap, 35882 int nmap,
34910 int ret_nmap); 35883 int ret_nmap);
@@ -34914,9 +35887,29 @@ diff -urNp linux-2.6.38.2/fs/xfs/xfs_bmap.c linux-2.6.38.2/fs/xfs/xfs_bmap.c
34914 #endif /* DEBUG */ 35887 #endif /* DEBUG */
34915 35888
34916 STATIC int 35889 STATIC int
34917diff -urNp linux-2.6.38.2/grsecurity/gracl_alloc.c linux-2.6.38.2/grsecurity/gracl_alloc.c 35890diff -urNp linux-2.6.38.3/fs/xfs/xfs_dir2_sf.c linux-2.6.38.3/fs/xfs/xfs_dir2_sf.c
34918--- linux-2.6.38.2/grsecurity/gracl_alloc.c 1969-12-31 19:00:00.000000000 -0500 35891--- linux-2.6.38.3/fs/xfs/xfs_dir2_sf.c 2011-03-14 21:20:32.000000000 -0400
34919+++ linux-2.6.38.2/grsecurity/gracl_alloc.c 2011-03-21 18:31:35.000000000 -0400 35892+++ linux-2.6.38.3/fs/xfs/xfs_dir2_sf.c 2011-04-18 22:03:12.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
34920@@ -0,0 +1,105 @@ 35913@@ -0,0 +1,105 @@
34921+#include <linux/kernel.h> 35914+#include <linux/kernel.h>
34922+#include <linux/mm.h> 35915+#include <linux/mm.h>
@@ -35023,9 +36016,9 @@ diff -urNp linux-2.6.38.2/grsecurity/gracl_alloc.c linux-2.6.38.2/grsecurity/gra
35023+ else 36016+ else
35024+ return 1; 36017+ return 1;
35025+} 36018+}
35026diff -urNp linux-2.6.38.2/grsecurity/gracl.c linux-2.6.38.2/grsecurity/gracl.c 36019diff -urNp linux-2.6.38.3/grsecurity/gracl.c linux-2.6.38.3/grsecurity/gracl.c
35027--- linux-2.6.38.2/grsecurity/gracl.c 1969-12-31 19:00:00.000000000 -0500 36020--- linux-2.6.38.3/grsecurity/gracl.c 1969-12-31 19:00:00.000000000 -0500
35028+++ linux-2.6.38.2/grsecurity/gracl.c 2011-03-28 17:16:45.000000000 -0400 36021+++ linux-2.6.38.3/grsecurity/gracl.c 2011-04-17 15:57:32.000000000 -0400
35029@@ -0,0 +1,4074 @@ 36022@@ -0,0 +1,4074 @@
35030+#include <linux/kernel.h> 36023+#include <linux/kernel.h>
35031+#include <linux/module.h> 36024+#include <linux/module.h>
@@ -36856,9 +37849,9 @@ diff -urNp linux-2.6.38.2/grsecurity/gracl.c linux-2.6.38.2/grsecurity/gracl.c
36856+ write_seqlock(&rename_lock); 37849+ write_seqlock(&rename_lock);
36857+ br_read_lock(vfsmount_lock); 37850+ br_read_lock(vfsmount_lock);
36858+ 37851+
36859+ if (unlikely(mnt == shm_mnt || mnt == pipe_mnt || mnt == sock_mnt || 37852+ if (unlikely((mnt == shm_mnt && dentry->d_inode->i_nlink == 0) || mnt == pipe_mnt || mnt == sock_mnt ||
36860+#ifdef CONFIG_HUGETLBFS 37853+#ifdef CONFIG_HUGETLBFS
36861+ mnt == hugetlbfs_vfsmount || 37854+ (mnt == hugetlbfs_vfsmount && dentry->d_inode->i_nlink == 0) ||
36862+#endif 37855+#endif
36863+ /* ignore Eric Biederman */ 37856+ /* ignore Eric Biederman */
36864+ IS_PRIVATE(l_dentry->d_inode))) { 37857+ IS_PRIVATE(l_dentry->d_inode))) {
@@ -38837,7 +39830,7 @@ diff -urNp linux-2.6.38.2/grsecurity/gracl.c linux-2.6.38.2/grsecurity/gracl.c
38837+ struct acl_object_label *obj, *obj2; 39830+ struct acl_object_label *obj, *obj2;
38838+ 39831+
38839+ if (gr_status & GR_READY && !(task->acl->mode & GR_OVERRIDE) && 39832+ if (gr_status & GR_READY && !(task->acl->mode & GR_OVERRIDE) &&
38840+ !task->is_writable && S_ISREG(filp->f_path.dentry->d_inode->i_mode) && filp->f_path.mnt != shm_mnt) { 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))) {
38841+ obj = chk_obj_label(filp->f_path.dentry, filp->f_path.mnt, default_role->root_label); 39834+ obj = chk_obj_label(filp->f_path.dentry, filp->f_path.mnt, default_role->root_label);
38842+ obj2 = chk_obj_label(filp->f_path.dentry, filp->f_path.mnt, 39835+ obj2 = chk_obj_label(filp->f_path.dentry, filp->f_path.mnt,
38843+ task->role->root_label); 39836+ task->role->root_label);
@@ -39101,9 +40094,9 @@ diff -urNp linux-2.6.38.2/grsecurity/gracl.c linux-2.6.38.2/grsecurity/gracl.c
39101+EXPORT_SYMBOL(gr_check_group_change); 40094+EXPORT_SYMBOL(gr_check_group_change);
39102+#endif 40095+#endif
39103+ 40096+
39104diff -urNp linux-2.6.38.2/grsecurity/gracl_cap.c linux-2.6.38.2/grsecurity/gracl_cap.c 40097diff -urNp linux-2.6.38.3/grsecurity/gracl_cap.c linux-2.6.38.3/grsecurity/gracl_cap.c
39105--- linux-2.6.38.2/grsecurity/gracl_cap.c 1969-12-31 19:00:00.000000000 -0500 40098--- linux-2.6.38.3/grsecurity/gracl_cap.c 1969-12-31 19:00:00.000000000 -0500
39106+++ linux-2.6.38.2/grsecurity/gracl_cap.c 2011-03-21 20:22:36.000000000 -0400 40099+++ linux-2.6.38.3/grsecurity/gracl_cap.c 2011-04-17 15:57:32.000000000 -0400
39107@@ -0,0 +1,139 @@ 40100@@ -0,0 +1,139 @@
39108+#include <linux/kernel.h> 40101+#include <linux/kernel.h>
39109+#include <linux/module.h> 40102+#include <linux/module.h>
@@ -39244,9 +40237,9 @@ diff -urNp linux-2.6.38.2/grsecurity/gracl_cap.c linux-2.6.38.2/grsecurity/gracl
39244+ return 0; 40237+ return 0;
39245+} 40238+}
39246+ 40239+
39247diff -urNp linux-2.6.38.2/grsecurity/gracl_fs.c linux-2.6.38.2/grsecurity/gracl_fs.c 40240diff -urNp linux-2.6.38.3/grsecurity/gracl_fs.c linux-2.6.38.3/grsecurity/gracl_fs.c
39248--- linux-2.6.38.2/grsecurity/gracl_fs.c 1969-12-31 19:00:00.000000000 -0500 40241--- linux-2.6.38.3/grsecurity/gracl_fs.c 1969-12-31 19:00:00.000000000 -0500
39249+++ linux-2.6.38.2/grsecurity/gracl_fs.c 2011-03-26 14:32:42.000000000 -0400 40242+++ linux-2.6.38.3/grsecurity/gracl_fs.c 2011-04-17 15:57:32.000000000 -0400
39250@@ -0,0 +1,431 @@ 40243@@ -0,0 +1,431 @@
39251+#include <linux/kernel.h> 40244+#include <linux/kernel.h>
39252+#include <linux/sched.h> 40245+#include <linux/sched.h>
@@ -39679,9 +40672,9 @@ diff -urNp linux-2.6.38.2/grsecurity/gracl_fs.c linux-2.6.38.2/grsecurity/gracl_
39679+ 40672+
39680+ return 0; 40673+ return 0;
39681+} 40674+}
39682diff -urNp linux-2.6.38.2/grsecurity/gracl_ip.c linux-2.6.38.2/grsecurity/gracl_ip.c 40675diff -urNp linux-2.6.38.3/grsecurity/gracl_ip.c linux-2.6.38.3/grsecurity/gracl_ip.c
39683--- linux-2.6.38.2/grsecurity/gracl_ip.c 1969-12-31 19:00:00.000000000 -0500 40676--- linux-2.6.38.3/grsecurity/gracl_ip.c 1969-12-31 19:00:00.000000000 -0500
39684+++ linux-2.6.38.2/grsecurity/gracl_ip.c 2011-03-21 18:31:35.000000000 -0400 40677+++ linux-2.6.38.3/grsecurity/gracl_ip.c 2011-04-17 15:57:32.000000000 -0400
39685@@ -0,0 +1,382 @@ 40678@@ -0,0 +1,382 @@
39686+#include <linux/kernel.h> 40679+#include <linux/kernel.h>
39687+#include <asm/uaccess.h> 40680+#include <asm/uaccess.h>
@@ -40065,9 +41058,9 @@ diff -urNp linux-2.6.38.2/grsecurity/gracl_ip.c linux-2.6.38.2/grsecurity/gracl_
40065+ 41058+
40066+ return gr_search_connectbind(GR_CONNECT | GR_CONNECTOVERRIDE, sk, &sin, SOCK_DGRAM); 41059+ return gr_search_connectbind(GR_CONNECT | GR_CONNECTOVERRIDE, sk, &sin, SOCK_DGRAM);
40067+} 41060+}
40068diff -urNp linux-2.6.38.2/grsecurity/gracl_learn.c linux-2.6.38.2/grsecurity/gracl_learn.c 41061diff -urNp linux-2.6.38.3/grsecurity/gracl_learn.c linux-2.6.38.3/grsecurity/gracl_learn.c
40069--- linux-2.6.38.2/grsecurity/gracl_learn.c 1969-12-31 19:00:00.000000000 -0500 41062--- linux-2.6.38.3/grsecurity/gracl_learn.c 1969-12-31 19:00:00.000000000 -0500
40070+++ linux-2.6.38.2/grsecurity/gracl_learn.c 2011-03-21 18:31:35.000000000 -0400 41063+++ linux-2.6.38.3/grsecurity/gracl_learn.c 2011-04-17 15:57:32.000000000 -0400
40071@@ -0,0 +1,211 @@ 41064@@ -0,0 +1,211 @@
40072+#include <linux/kernel.h> 41065+#include <linux/kernel.h>
40073+#include <linux/mm.h> 41066+#include <linux/mm.h>
@@ -40280,9 +41273,9 @@ diff -urNp linux-2.6.38.2/grsecurity/gracl_learn.c linux-2.6.38.2/grsecurity/gra
40280+ .release = close_learn, 41273+ .release = close_learn,
40281+ .poll = poll_learn, 41274+ .poll = poll_learn,
40282+}; 41275+};
40283diff -urNp linux-2.6.38.2/grsecurity/gracl_res.c linux-2.6.38.2/grsecurity/gracl_res.c 41276diff -urNp linux-2.6.38.3/grsecurity/gracl_res.c linux-2.6.38.3/grsecurity/gracl_res.c
40284--- linux-2.6.38.2/grsecurity/gracl_res.c 1969-12-31 19:00:00.000000000 -0500 41277--- linux-2.6.38.3/grsecurity/gracl_res.c 1969-12-31 19:00:00.000000000 -0500
40285+++ linux-2.6.38.2/grsecurity/gracl_res.c 2011-03-21 18:31:35.000000000 -0400 41278+++ linux-2.6.38.3/grsecurity/gracl_res.c 2011-04-17 15:57:32.000000000 -0400
40286@@ -0,0 +1,68 @@ 41279@@ -0,0 +1,68 @@
40287+#include <linux/kernel.h> 41280+#include <linux/kernel.h>
40288+#include <linux/sched.h> 41281+#include <linux/sched.h>
@@ -40352,10 +41345,10 @@ diff -urNp linux-2.6.38.2/grsecurity/gracl_res.c linux-2.6.38.2/grsecurity/gracl
40352+ rcu_read_unlock(); 41345+ rcu_read_unlock();
40353+ return; 41346+ return;
40354+} 41347+}
40355diff -urNp linux-2.6.38.2/grsecurity/gracl_segv.c linux-2.6.38.2/grsecurity/gracl_segv.c 41348diff -urNp linux-2.6.38.3/grsecurity/gracl_segv.c linux-2.6.38.3/grsecurity/gracl_segv.c
40356--- linux-2.6.38.2/grsecurity/gracl_segv.c 1969-12-31 19:00:00.000000000 -0500 41349--- linux-2.6.38.3/grsecurity/gracl_segv.c 1969-12-31 19:00:00.000000000 -0500
40357+++ linux-2.6.38.2/grsecurity/gracl_segv.c 2011-03-24 23:09:37.000000000 -0400 41350+++ linux-2.6.38.3/grsecurity/gracl_segv.c 2011-04-17 15:57:32.000000000 -0400
40358@@ -0,0 +1,326 @@ 41351@@ -0,0 +1,300 @@
40359+#include <linux/kernel.h> 41352+#include <linux/kernel.h>
40360+#include <linux/mm.h> 41353+#include <linux/mm.h>
40361+#include <asm/uaccess.h> 41354+#include <asm/uaccess.h>
@@ -40382,8 +41375,6 @@ diff -urNp linux-2.6.38.2/grsecurity/gracl_segv.c linux-2.6.38.2/grsecurity/grac
40382+extern struct acl_subject_label * 41375+extern struct acl_subject_label *
40383+ lookup_acl_subj_label(const ino_t inode, const dev_t dev, 41376+ lookup_acl_subj_label(const ino_t inode, const dev_t dev,
40384+ struct acl_role_label *role); 41377+ struct acl_role_label *role);
40385+extern int specific_send_sig_info(int sig, struct siginfo *info, struct task_struct *t);
40386+
40387+ 41378+
40388+#ifdef CONFIG_BTRFS_FS 41379+#ifdef CONFIG_BTRFS_FS
40389+extern dev_t get_btrfs_dev_from_inode(struct inode *inode); 41380+extern dev_t get_btrfs_dev_from_inode(struct inode *inode);
@@ -40533,32 +41524,8 @@ diff -urNp linux-2.6.38.2/grsecurity/gracl_segv.c linux-2.6.38.2/grsecurity/grac
40533+ 41524+
40534+ return 0; 41525+ return 0;
40535+} 41526+}
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;
40542+ 41527+
40543+ spin_lock_irqsave(&t->sighand->siglock, flags); 41528+extern int gr_fake_force_sig(int sig, struct task_struct *t);
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+}
40562+ 41529+
40563+void 41530+void
40564+gr_handle_crash(struct task_struct *task, const int sig) 41531+gr_handle_crash(struct task_struct *task, const int sig)
@@ -40682,9 +41649,9 @@ diff -urNp linux-2.6.38.2/grsecurity/gracl_segv.c linux-2.6.38.2/grsecurity/grac
40682+ 41649+
40683+ return; 41650+ return;
40684+} 41651+}
40685diff -urNp linux-2.6.38.2/grsecurity/gracl_shm.c linux-2.6.38.2/grsecurity/gracl_shm.c 41652diff -urNp linux-2.6.38.3/grsecurity/gracl_shm.c linux-2.6.38.3/grsecurity/gracl_shm.c
40686--- linux-2.6.38.2/grsecurity/gracl_shm.c 1969-12-31 19:00:00.000000000 -0500 41653--- linux-2.6.38.3/grsecurity/gracl_shm.c 1969-12-31 19:00:00.000000000 -0500
40687+++ linux-2.6.38.2/grsecurity/gracl_shm.c 2011-03-21 18:31:35.000000000 -0400 41654+++ linux-2.6.38.3/grsecurity/gracl_shm.c 2011-04-17 15:57:32.000000000 -0400
40688@@ -0,0 +1,40 @@ 41655@@ -0,0 +1,40 @@
40689+#include <linux/kernel.h> 41656+#include <linux/kernel.h>
40690+#include <linux/mm.h> 41657+#include <linux/mm.h>
@@ -40726,9 +41693,9 @@ diff -urNp linux-2.6.38.2/grsecurity/gracl_shm.c linux-2.6.38.2/grsecurity/gracl
40726+ 41693+
40727+ return 1; 41694+ return 1;
40728+} 41695+}
40729diff -urNp linux-2.6.38.2/grsecurity/grsec_chdir.c linux-2.6.38.2/grsecurity/grsec_chdir.c 41696diff -urNp linux-2.6.38.3/grsecurity/grsec_chdir.c linux-2.6.38.3/grsecurity/grsec_chdir.c
40730--- linux-2.6.38.2/grsecurity/grsec_chdir.c 1969-12-31 19:00:00.000000000 -0500 41697--- linux-2.6.38.3/grsecurity/grsec_chdir.c 1969-12-31 19:00:00.000000000 -0500
40731+++ linux-2.6.38.2/grsecurity/grsec_chdir.c 2011-03-21 18:31:35.000000000 -0400 41698+++ linux-2.6.38.3/grsecurity/grsec_chdir.c 2011-04-17 15:57:32.000000000 -0400
40732@@ -0,0 +1,19 @@ 41699@@ -0,0 +1,19 @@
40733+#include <linux/kernel.h> 41700+#include <linux/kernel.h>
40734+#include <linux/sched.h> 41701+#include <linux/sched.h>
@@ -40749,10 +41716,10 @@ diff -urNp linux-2.6.38.2/grsecurity/grsec_chdir.c linux-2.6.38.2/grsecurity/grs
40749+#endif 41716+#endif
40750+ return; 41717+ return;
40751+} 41718+}
40752diff -urNp linux-2.6.38.2/grsecurity/grsec_chroot.c linux-2.6.38.2/grsecurity/grsec_chroot.c 41719diff -urNp linux-2.6.38.3/grsecurity/grsec_chroot.c linux-2.6.38.3/grsecurity/grsec_chroot.c
40753--- linux-2.6.38.2/grsecurity/grsec_chroot.c 1969-12-31 19:00:00.000000000 -0500 41720--- linux-2.6.38.3/grsecurity/grsec_chroot.c 1969-12-31 19:00:00.000000000 -0500
40754+++ linux-2.6.38.2/grsecurity/grsec_chroot.c 2011-03-21 21:24:10.000000000 -0400 41721+++ linux-2.6.38.3/grsecurity/grsec_chroot.c 2011-04-17 15:57:32.000000000 -0400
40755@@ -0,0 +1,351 @@ 41722@@ -0,0 +1,355 @@
40756+#include <linux/kernel.h> 41723+#include <linux/kernel.h>
40757+#include <linux/module.h> 41724+#include <linux/module.h>
40758+#include <linux/sched.h> 41725+#include <linux/sched.h>
@@ -40802,7 +41769,7 @@ diff -urNp linux-2.6.38.2/grsecurity/grsec_chroot.c linux-2.6.38.2/grsecurity/gr
40802+ rcu_read_lock(); 41769+ rcu_read_lock();
40803+ read_lock(&tasklist_lock); 41770+ read_lock(&tasklist_lock);
40804+ p = pid_task(pid, PIDTYPE_PID); 41771+ p = pid_task(pid, PIDTYPE_PID);
40805+ if (unlikely(!have_same_root(current, p))) { 41772+ if (unlikely(p && !have_same_root(current, p))) {
40806+ read_unlock(&tasklist_lock); 41773+ read_unlock(&tasklist_lock);
40807+ rcu_read_unlock(); 41774+ rcu_read_unlock();
40808+ gr_log_noargs(GR_DONT_AUDIT, GR_UNIX_CHROOT_MSG); 41775+ gr_log_noargs(GR_DONT_AUDIT, GR_UNIX_CHROOT_MSG);
@@ -40945,6 +41912,8 @@ diff -urNp linux-2.6.38.2/grsecurity/grsec_chroot.c linux-2.6.38.2/grsecurity/gr
40945+ if (pid) { 41912+ if (pid) {
40946+ struct task_struct *p; 41913+ struct task_struct *p;
40947+ p = pid_task(pid, PIDTYPE_PID); 41914+ p = pid_task(pid, PIDTYPE_PID);
41915+ if (p == NULL)
41916+ goto unlock;
40948+ starttime = p->start_time.tv_sec; 41917+ starttime = p->start_time.tv_sec;
40949+ if (unlikely(!have_same_root(current, p) && 41918+ if (unlikely(!have_same_root(current, p) &&
40950+ time_before_eq((unsigned long)starttime, (unsigned long)shm_createtime))) { 41919+ time_before_eq((unsigned long)starttime, (unsigned long)shm_createtime))) {
@@ -40958,6 +41927,8 @@ diff -urNp linux-2.6.38.2/grsecurity/grsec_chroot.c linux-2.6.38.2/grsecurity/gr
40958+ if (pid) { 41927+ if (pid) {
40959+ struct task_struct *p; 41928+ struct task_struct *p;
40960+ p = pid_task(pid, PIDTYPE_PID); 41929+ p = pid_task(pid, PIDTYPE_PID);
41930+ if (p == NULL)
41931+ goto unlock;
40961+ if (unlikely(!have_same_root(current, p))) { 41932+ if (unlikely(!have_same_root(current, p))) {
40962+ read_unlock(&tasklist_lock); 41933+ read_unlock(&tasklist_lock);
40963+ rcu_read_unlock(); 41934+ rcu_read_unlock();
@@ -40966,7 +41937,7 @@ diff -urNp linux-2.6.38.2/grsecurity/grsec_chroot.c linux-2.6.38.2/grsecurity/gr
40966+ } 41937+ }
40967+ } 41938+ }
40968+ } 41939+ }
40969+ 41940+unlock:
40970+ read_unlock(&tasklist_lock); 41941+ read_unlock(&tasklist_lock);
40971+ rcu_read_unlock(); 41942+ rcu_read_unlock();
40972+#endif 41943+#endif
@@ -41104,9 +42075,9 @@ diff -urNp linux-2.6.38.2/grsecurity/grsec_chroot.c linux-2.6.38.2/grsecurity/gr
41104+#ifdef CONFIG_SECURITY 42075+#ifdef CONFIG_SECURITY
41105+EXPORT_SYMBOL(gr_handle_chroot_caps); 42076+EXPORT_SYMBOL(gr_handle_chroot_caps);
41106+#endif 42077+#endif
41107diff -urNp linux-2.6.38.2/grsecurity/grsec_disabled.c linux-2.6.38.2/grsecurity/grsec_disabled.c 42078diff -urNp linux-2.6.38.3/grsecurity/grsec_disabled.c linux-2.6.38.3/grsecurity/grsec_disabled.c
41108--- linux-2.6.38.2/grsecurity/grsec_disabled.c 1969-12-31 19:00:00.000000000 -0500 42079--- linux-2.6.38.3/grsecurity/grsec_disabled.c 1969-12-31 19:00:00.000000000 -0500
41109+++ linux-2.6.38.2/grsecurity/grsec_disabled.c 2011-03-25 18:57:41.000000000 -0400 42080+++ linux-2.6.38.3/grsecurity/grsec_disabled.c 2011-04-17 15:57:32.000000000 -0400
41110@@ -0,0 +1,447 @@ 42081@@ -0,0 +1,447 @@
41111+#include <linux/kernel.h> 42082+#include <linux/kernel.h>
41112+#include <linux/module.h> 42083+#include <linux/module.h>
@@ -41555,9 +42526,9 @@ diff -urNp linux-2.6.38.2/grsecurity/grsec_disabled.c linux-2.6.38.2/grsecurity/
41555+EXPORT_SYMBOL(gr_check_user_change); 42526+EXPORT_SYMBOL(gr_check_user_change);
41556+EXPORT_SYMBOL(gr_check_group_change); 42527+EXPORT_SYMBOL(gr_check_group_change);
41557+#endif 42528+#endif
41558diff -urNp linux-2.6.38.2/grsecurity/grsec_exec.c linux-2.6.38.2/grsecurity/grsec_exec.c 42529diff -urNp linux-2.6.38.3/grsecurity/grsec_exec.c linux-2.6.38.3/grsecurity/grsec_exec.c
41559--- linux-2.6.38.2/grsecurity/grsec_exec.c 1969-12-31 19:00:00.000000000 -0500 42530--- linux-2.6.38.3/grsecurity/grsec_exec.c 1969-12-31 19:00:00.000000000 -0500
41560+++ linux-2.6.38.2/grsecurity/grsec_exec.c 2011-03-21 18:31:35.000000000 -0400 42531+++ linux-2.6.38.3/grsecurity/grsec_exec.c 2011-04-17 15:57:32.000000000 -0400
41561@@ -0,0 +1,147 @@ 42532@@ -0,0 +1,147 @@
41562+#include <linux/kernel.h> 42533+#include <linux/kernel.h>
41563+#include <linux/sched.h> 42534+#include <linux/sched.h>
@@ -41706,9 +42677,9 @@ diff -urNp linux-2.6.38.2/grsecurity/grsec_exec.c linux-2.6.38.2/grsecurity/grse
41706+ return; 42677+ return;
41707+} 42678+}
41708+#endif 42679+#endif
41709diff -urNp linux-2.6.38.2/grsecurity/grsec_fifo.c linux-2.6.38.2/grsecurity/grsec_fifo.c 42680diff -urNp linux-2.6.38.3/grsecurity/grsec_fifo.c linux-2.6.38.3/grsecurity/grsec_fifo.c
41710--- linux-2.6.38.2/grsecurity/grsec_fifo.c 1969-12-31 19:00:00.000000000 -0500 42681--- linux-2.6.38.3/grsecurity/grsec_fifo.c 1969-12-31 19:00:00.000000000 -0500
41711+++ linux-2.6.38.2/grsecurity/grsec_fifo.c 2011-03-21 20:33:29.000000000 -0400 42682+++ linux-2.6.38.3/grsecurity/grsec_fifo.c 2011-04-17 15:57:32.000000000 -0400
41712@@ -0,0 +1,24 @@ 42683@@ -0,0 +1,24 @@
41713+#include <linux/kernel.h> 42684+#include <linux/kernel.h>
41714+#include <linux/sched.h> 42685+#include <linux/sched.h>
@@ -41734,9 +42705,9 @@ diff -urNp linux-2.6.38.2/grsecurity/grsec_fifo.c linux-2.6.38.2/grsecurity/grse
41734+#endif 42705+#endif
41735+ return 0; 42706+ return 0;
41736+} 42707+}
41737diff -urNp linux-2.6.38.2/grsecurity/grsec_fork.c linux-2.6.38.2/grsecurity/grsec_fork.c 42708diff -urNp linux-2.6.38.3/grsecurity/grsec_fork.c linux-2.6.38.3/grsecurity/grsec_fork.c
41738--- linux-2.6.38.2/grsecurity/grsec_fork.c 1969-12-31 19:00:00.000000000 -0500 42709--- linux-2.6.38.3/grsecurity/grsec_fork.c 1969-12-31 19:00:00.000000000 -0500
41739+++ linux-2.6.38.2/grsecurity/grsec_fork.c 2011-03-21 18:31:35.000000000 -0400 42710+++ linux-2.6.38.3/grsecurity/grsec_fork.c 2011-04-17 15:57:32.000000000 -0400
41740@@ -0,0 +1,23 @@ 42711@@ -0,0 +1,23 @@
41741+#include <linux/kernel.h> 42712+#include <linux/kernel.h>
41742+#include <linux/sched.h> 42713+#include <linux/sched.h>
@@ -41761,9 +42732,9 @@ diff -urNp linux-2.6.38.2/grsecurity/grsec_fork.c linux-2.6.38.2/grsecurity/grse
41761+#endif 42732+#endif
41762+ return; 42733+ return;
41763+} 42734+}
41764diff -urNp linux-2.6.38.2/grsecurity/grsec_init.c linux-2.6.38.2/grsecurity/grsec_init.c 42735diff -urNp linux-2.6.38.3/grsecurity/grsec_init.c linux-2.6.38.3/grsecurity/grsec_init.c
41765--- linux-2.6.38.2/grsecurity/grsec_init.c 1969-12-31 19:00:00.000000000 -0500 42736--- linux-2.6.38.3/grsecurity/grsec_init.c 1969-12-31 19:00:00.000000000 -0500
41766+++ linux-2.6.38.2/grsecurity/grsec_init.c 2011-03-21 18:31:35.000000000 -0400 42737+++ linux-2.6.38.3/grsecurity/grsec_init.c 2011-04-17 15:57:32.000000000 -0400
41767@@ -0,0 +1,270 @@ 42738@@ -0,0 +1,270 @@
41768+#include <linux/kernel.h> 42739+#include <linux/kernel.h>
41769+#include <linux/sched.h> 42740+#include <linux/sched.h>
@@ -42035,9 +43006,9 @@ diff -urNp linux-2.6.38.2/grsecurity/grsec_init.c linux-2.6.38.2/grsecurity/grse
42035+ 43006+
42036+ return; 43007+ return;
42037+} 43008+}
42038diff -urNp linux-2.6.38.2/grsecurity/grsec_link.c linux-2.6.38.2/grsecurity/grsec_link.c 43009diff -urNp linux-2.6.38.3/grsecurity/grsec_link.c linux-2.6.38.3/grsecurity/grsec_link.c
42039--- linux-2.6.38.2/grsecurity/grsec_link.c 1969-12-31 19:00:00.000000000 -0500 43010--- linux-2.6.38.3/grsecurity/grsec_link.c 1969-12-31 19:00:00.000000000 -0500
42040+++ linux-2.6.38.2/grsecurity/grsec_link.c 2011-03-21 20:34:41.000000000 -0400 43011+++ linux-2.6.38.3/grsecurity/grsec_link.c 2011-04-17 15:57:32.000000000 -0400
42041@@ -0,0 +1,43 @@ 43012@@ -0,0 +1,43 @@
42042+#include <linux/kernel.h> 43013+#include <linux/kernel.h>
42043+#include <linux/sched.h> 43014+#include <linux/sched.h>
@@ -42082,9 +43053,9 @@ diff -urNp linux-2.6.38.2/grsecurity/grsec_link.c linux-2.6.38.2/grsecurity/grse
42082+#endif 43053+#endif
42083+ return 0; 43054+ return 0;
42084+} 43055+}
42085diff -urNp linux-2.6.38.2/grsecurity/grsec_log.c linux-2.6.38.2/grsecurity/grsec_log.c 43056diff -urNp linux-2.6.38.3/grsecurity/grsec_log.c linux-2.6.38.3/grsecurity/grsec_log.c
42086--- linux-2.6.38.2/grsecurity/grsec_log.c 1969-12-31 19:00:00.000000000 -0500 43057--- linux-2.6.38.3/grsecurity/grsec_log.c 1969-12-31 19:00:00.000000000 -0500
42087+++ linux-2.6.38.2/grsecurity/grsec_log.c 2011-03-21 18:31:35.000000000 -0400 43058+++ linux-2.6.38.3/grsecurity/grsec_log.c 2011-04-17 15:57:32.000000000 -0400
42088@@ -0,0 +1,310 @@ 43059@@ -0,0 +1,310 @@
42089+#include <linux/kernel.h> 43060+#include <linux/kernel.h>
42090+#include <linux/sched.h> 43061+#include <linux/sched.h>
@@ -42396,10 +43367,10 @@ diff -urNp linux-2.6.38.2/grsecurity/grsec_log.c linux-2.6.38.2/grsecurity/grsec
42396+ gr_log_end(audit); 43367+ gr_log_end(audit);
42397+ END_LOCKS(audit); 43368+ END_LOCKS(audit);
42398+} 43369+}
42399diff -urNp linux-2.6.38.2/grsecurity/grsec_mem.c linux-2.6.38.2/grsecurity/grsec_mem.c 43370diff -urNp linux-2.6.38.3/grsecurity/grsec_mem.c linux-2.6.38.3/grsecurity/grsec_mem.c
42400--- linux-2.6.38.2/grsecurity/grsec_mem.c 1969-12-31 19:00:00.000000000 -0500 43371--- linux-2.6.38.3/grsecurity/grsec_mem.c 1969-12-31 19:00:00.000000000 -0500
42401+++ linux-2.6.38.2/grsecurity/grsec_mem.c 2011-03-26 14:40:33.000000000 -0400 43372+++ linux-2.6.38.3/grsecurity/grsec_mem.c 2011-04-17 15:57:32.000000000 -0400
42402@@ -0,0 +1,100 @@ 43373@@ -0,0 +1,33 @@
42403+#include <linux/kernel.h> 43374+#include <linux/kernel.h>
42404+#include <linux/sched.h> 43375+#include <linux/sched.h>
42405+#include <linux/mm.h> 43376+#include <linux/mm.h>
@@ -42421,88 +43392,21 @@ diff -urNp linux-2.6.38.2/grsecurity/grsec_mem.c linux-2.6.38.2/grsecurity/grsec
42421+} 43392+}
42422+ 43393+
42423+void 43394+void
42424+gr_handle_mem_write(void) 43395+gr_handle_mem_readwrite(u64 from, u64 to)
42425+{
42426+ gr_log_noargs(GR_DONT_AUDIT, GR_MEM_WRITE_MSG);
42427+ return;
42428+}
42429+
42430+void
42431+gr_handle_kmem_write(void)
42432+{ 43396+{
42433+ gr_log_noargs(GR_DONT_AUDIT, GR_KMEM_MSG); 43397+ gr_log_two_u64(GR_DONT_AUDIT, GR_MEM_READWRITE_MSG, from, to);
42434+ return; 43398+ return;
42435+} 43399+}
42436+ 43400+
42437+void 43401+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
42498+gr_handle_vm86(void) 43402+gr_handle_vm86(void)
42499+{ 43403+{
42500+ gr_log_noargs(GR_DONT_AUDIT, GR_VM86_MSG); 43404+ gr_log_noargs(GR_DONT_AUDIT, GR_VM86_MSG);
42501+ return; 43405+ return;
42502+} 43406+}
42503diff -urNp linux-2.6.38.2/grsecurity/grsec_mount.c linux-2.6.38.2/grsecurity/grsec_mount.c 43407diff -urNp linux-2.6.38.3/grsecurity/grsec_mount.c linux-2.6.38.3/grsecurity/grsec_mount.c
42504--- linux-2.6.38.2/grsecurity/grsec_mount.c 1969-12-31 19:00:00.000000000 -0500 43408--- linux-2.6.38.3/grsecurity/grsec_mount.c 1969-12-31 19:00:00.000000000 -0500
42505+++ linux-2.6.38.2/grsecurity/grsec_mount.c 2011-03-21 18:31:35.000000000 -0400 43409+++ linux-2.6.38.3/grsecurity/grsec_mount.c 2011-04-17 15:57:32.000000000 -0400
42506@@ -0,0 +1,62 @@ 43410@@ -0,0 +1,62 @@
42507+#include <linux/kernel.h> 43411+#include <linux/kernel.h>
42508+#include <linux/sched.h> 43412+#include <linux/sched.h>
@@ -42566,9 +43470,9 @@ diff -urNp linux-2.6.38.2/grsecurity/grsec_mount.c linux-2.6.38.2/grsecurity/grs
42566+#endif 43470+#endif
42567+ return 0; 43471+ return 0;
42568+} 43472+}
42569diff -urNp linux-2.6.38.2/grsecurity/grsec_pax.c linux-2.6.38.2/grsecurity/grsec_pax.c 43473diff -urNp linux-2.6.38.3/grsecurity/grsec_pax.c linux-2.6.38.3/grsecurity/grsec_pax.c
42570--- linux-2.6.38.2/grsecurity/grsec_pax.c 1969-12-31 19:00:00.000000000 -0500 43474--- linux-2.6.38.3/grsecurity/grsec_pax.c 1969-12-31 19:00:00.000000000 -0500
42571+++ linux-2.6.38.2/grsecurity/grsec_pax.c 2011-03-21 18:31:35.000000000 -0400 43475+++ linux-2.6.38.3/grsecurity/grsec_pax.c 2011-04-17 15:57:32.000000000 -0400
42572@@ -0,0 +1,36 @@ 43476@@ -0,0 +1,36 @@
42573+#include <linux/kernel.h> 43477+#include <linux/kernel.h>
42574+#include <linux/sched.h> 43478+#include <linux/sched.h>
@@ -42606,9 +43510,9 @@ diff -urNp linux-2.6.38.2/grsecurity/grsec_pax.c linux-2.6.38.2/grsecurity/grsec
42606+#endif 43510+#endif
42607+ return; 43511+ return;
42608+} 43512+}
42609diff -urNp linux-2.6.38.2/grsecurity/grsec_ptrace.c linux-2.6.38.2/grsecurity/grsec_ptrace.c 43513diff -urNp linux-2.6.38.3/grsecurity/grsec_ptrace.c linux-2.6.38.3/grsecurity/grsec_ptrace.c
42610--- linux-2.6.38.2/grsecurity/grsec_ptrace.c 1969-12-31 19:00:00.000000000 -0500 43514--- linux-2.6.38.3/grsecurity/grsec_ptrace.c 1969-12-31 19:00:00.000000000 -0500
42611+++ linux-2.6.38.2/grsecurity/grsec_ptrace.c 2011-03-21 18:31:35.000000000 -0400 43515+++ linux-2.6.38.3/grsecurity/grsec_ptrace.c 2011-04-17 15:57:32.000000000 -0400
42612@@ -0,0 +1,14 @@ 43516@@ -0,0 +1,14 @@
42613+#include <linux/kernel.h> 43517+#include <linux/kernel.h>
42614+#include <linux/sched.h> 43518+#include <linux/sched.h>
@@ -42624,15 +43528,16 @@ diff -urNp linux-2.6.38.2/grsecurity/grsec_ptrace.c linux-2.6.38.2/grsecurity/gr
42624+#endif 43528+#endif
42625+ return; 43529+ return;
42626+} 43530+}
42627diff -urNp linux-2.6.38.2/grsecurity/grsec_sig.c linux-2.6.38.2/grsecurity/grsec_sig.c 43531diff -urNp linux-2.6.38.3/grsecurity/grsec_sig.c linux-2.6.38.3/grsecurity/grsec_sig.c
42628--- linux-2.6.38.2/grsecurity/grsec_sig.c 1969-12-31 19:00:00.000000000 -0500 43532--- linux-2.6.38.3/grsecurity/grsec_sig.c 1969-12-31 19:00:00.000000000 -0500
42629+++ linux-2.6.38.2/grsecurity/grsec_sig.c 2011-03-26 19:58:27.000000000 -0400 43533+++ linux-2.6.38.3/grsecurity/grsec_sig.c 2011-04-17 15:57:32.000000000 -0400
42630@@ -0,0 +1,65 @@ 43534@@ -0,0 +1,197 @@
42631+#include <linux/kernel.h> 43535+#include <linux/kernel.h>
42632+#include <linux/sched.h> 43536+#include <linux/sched.h>
42633+#include <linux/delay.h> 43537+#include <linux/delay.h>
42634+#include <linux/grsecurity.h> 43538+#include <linux/grsecurity.h>
42635+#include <linux/grinternal.h> 43539+#include <linux/grinternal.h>
43540+#include <linux/hardirq.h>
42636+ 43541+
42637+char *signames[] = { 43542+char *signames[] = {
42638+ [SIGSEGV] = "Segmentation fault", 43543+ [SIGSEGV] = "Segmentation fault",
@@ -42671,15 +43576,91 @@ diff -urNp linux-2.6.38.2/grsecurity/grsec_sig.c linux-2.6.38.2/grsecurity/grsec
42671+ return 0; 43576+ return 0;
42672+} 43577+}
42673+ 43578+
42674+void gr_handle_brute_attach(struct task_struct *p) 43579+#ifdef CONFIG_GRKERNSEC
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)
42675+{ 43622+{
42676+#ifdef CONFIG_GRKERNSEC_BRUTE 43623+#ifdef CONFIG_GRKERNSEC_BRUTE
43624+ uid_t uid = 0;
43625+
43626+ rcu_read_lock();
42677+ read_lock(&tasklist_lock); 43627+ read_lock(&tasklist_lock);
42678+ read_lock(&grsec_exec_file_lock); 43628+ read_lock(&grsec_exec_file_lock);
42679+ if (p->real_parent && p->real_parent->exec_file == p->exec_file) 43629+ if (p->real_parent && p->real_parent->exec_file == p->exec_file)
42680+ p->real_parent->brute = 1; 43630+ 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:
42681+ read_unlock(&grsec_exec_file_lock); 43657+ read_unlock(&grsec_exec_file_lock);
42682+ read_unlock(&tasklist_lock); 43658+ 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+
42683+#endif 43664+#endif
42684+ return; 43665+ return;
42685+} 43666+}
@@ -42693,9 +43674,64 @@ diff -urNp linux-2.6.38.2/grsecurity/grsec_sig.c linux-2.6.38.2/grsecurity/grsec
42693+ return; 43674+ return;
42694+} 43675+}
42695+ 43676+
42696diff -urNp linux-2.6.38.2/grsecurity/grsec_sock.c linux-2.6.38.2/grsecurity/grsec_sock.c 43677+void gr_handle_kernel_exploit(void)
42697--- linux-2.6.38.2/grsecurity/grsec_sock.c 1969-12-31 19:00:00.000000000 -0500 43678+{
42698+++ linux-2.6.38.2/grsecurity/grsec_sock.c 2011-03-21 18:31:35.000000000 -0400 43679+#ifdef CONFIG_GRKERNSEC_KERN_LOCKOUT
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
42699@@ -0,0 +1,275 @@ 43735@@ -0,0 +1,275 @@
42700+#include <linux/kernel.h> 43736+#include <linux/kernel.h>
42701+#include <linux/module.h> 43737+#include <linux/module.h>
@@ -42972,9 +44008,9 @@ diff -urNp linux-2.6.38.2/grsecurity/grsec_sock.c linux-2.6.38.2/grsecurity/grse
42972+ return current_cap(); 44008+ return current_cap();
42973+#endif 44009+#endif
42974+} 44010+}
42975diff -urNp linux-2.6.38.2/grsecurity/grsec_sysctl.c linux-2.6.38.2/grsecurity/grsec_sysctl.c 44011diff -urNp linux-2.6.38.3/grsecurity/grsec_sysctl.c linux-2.6.38.3/grsecurity/grsec_sysctl.c
42976--- linux-2.6.38.2/grsecurity/grsec_sysctl.c 1969-12-31 19:00:00.000000000 -0500 44012--- linux-2.6.38.3/grsecurity/grsec_sysctl.c 1969-12-31 19:00:00.000000000 -0500
42977+++ linux-2.6.38.2/grsecurity/grsec_sysctl.c 2011-03-21 18:31:35.000000000 -0400 44013+++ linux-2.6.38.3/grsecurity/grsec_sysctl.c 2011-04-17 15:57:32.000000000 -0400
42978@@ -0,0 +1,433 @@ 44014@@ -0,0 +1,433 @@
42979+#include <linux/kernel.h> 44015+#include <linux/kernel.h>
42980+#include <linux/sched.h> 44016+#include <linux/sched.h>
@@ -43409,9 +44445,9 @@ diff -urNp linux-2.6.38.2/grsecurity/grsec_sysctl.c linux-2.6.38.2/grsecurity/gr
43409+ { } 44445+ { }
43410+}; 44446+};
43411+#endif 44447+#endif
43412diff -urNp linux-2.6.38.2/grsecurity/grsec_time.c linux-2.6.38.2/grsecurity/grsec_time.c 44448diff -urNp linux-2.6.38.3/grsecurity/grsec_time.c linux-2.6.38.3/grsecurity/grsec_time.c
43413--- linux-2.6.38.2/grsecurity/grsec_time.c 1969-12-31 19:00:00.000000000 -0500 44449--- linux-2.6.38.3/grsecurity/grsec_time.c 1969-12-31 19:00:00.000000000 -0500
43414+++ linux-2.6.38.2/grsecurity/grsec_time.c 2011-03-21 18:31:35.000000000 -0400 44450+++ linux-2.6.38.3/grsecurity/grsec_time.c 2011-04-17 15:57:32.000000000 -0400
43415@@ -0,0 +1,16 @@ 44451@@ -0,0 +1,16 @@
43416+#include <linux/kernel.h> 44452+#include <linux/kernel.h>
43417+#include <linux/sched.h> 44453+#include <linux/sched.h>
@@ -43429,9 +44465,9 @@ diff -urNp linux-2.6.38.2/grsecurity/grsec_time.c linux-2.6.38.2/grsecurity/grse
43429+} 44465+}
43430+ 44466+
43431+EXPORT_SYMBOL(gr_log_timechange); 44467+EXPORT_SYMBOL(gr_log_timechange);
43432diff -urNp linux-2.6.38.2/grsecurity/grsec_tpe.c linux-2.6.38.2/grsecurity/grsec_tpe.c 44468diff -urNp linux-2.6.38.3/grsecurity/grsec_tpe.c linux-2.6.38.3/grsecurity/grsec_tpe.c
43433--- linux-2.6.38.2/grsecurity/grsec_tpe.c 1969-12-31 19:00:00.000000000 -0500 44469--- linux-2.6.38.3/grsecurity/grsec_tpe.c 1969-12-31 19:00:00.000000000 -0500
43434+++ linux-2.6.38.2/grsecurity/grsec_tpe.c 2011-03-21 18:31:35.000000000 -0400 44470+++ linux-2.6.38.3/grsecurity/grsec_tpe.c 2011-04-17 15:57:32.000000000 -0400
43435@@ -0,0 +1,39 @@ 44471@@ -0,0 +1,39 @@
43436+#include <linux/kernel.h> 44472+#include <linux/kernel.h>
43437+#include <linux/sched.h> 44473+#include <linux/sched.h>
@@ -43472,9 +44508,9 @@ diff -urNp linux-2.6.38.2/grsecurity/grsec_tpe.c linux-2.6.38.2/grsecurity/grsec
43472+#endif 44508+#endif
43473+ return 1; 44509+ return 1;
43474+} 44510+}
43475diff -urNp linux-2.6.38.2/grsecurity/grsum.c linux-2.6.38.2/grsecurity/grsum.c 44511diff -urNp linux-2.6.38.3/grsecurity/grsum.c linux-2.6.38.3/grsecurity/grsum.c
43476--- linux-2.6.38.2/grsecurity/grsum.c 1969-12-31 19:00:00.000000000 -0500 44512--- linux-2.6.38.3/grsecurity/grsum.c 1969-12-31 19:00:00.000000000 -0500
43477+++ linux-2.6.38.2/grsecurity/grsum.c 2011-03-21 18:31:35.000000000 -0400 44513+++ linux-2.6.38.3/grsecurity/grsum.c 2011-04-17 15:57:32.000000000 -0400
43478@@ -0,0 +1,61 @@ 44514@@ -0,0 +1,61 @@
43479+#include <linux/err.h> 44515+#include <linux/err.h>
43480+#include <linux/kernel.h> 44516+#include <linux/kernel.h>
@@ -43537,10 +44573,10 @@ diff -urNp linux-2.6.38.2/grsecurity/grsum.c linux-2.6.38.2/grsecurity/grsum.c
43537+ 44573+
43538+ return retval; 44574+ return retval;
43539+} 44575+}
43540diff -urNp linux-2.6.38.2/grsecurity/Kconfig linux-2.6.38.2/grsecurity/Kconfig 44576diff -urNp linux-2.6.38.3/grsecurity/Kconfig linux-2.6.38.3/grsecurity/Kconfig
43541--- linux-2.6.38.2/grsecurity/Kconfig 1969-12-31 19:00:00.000000000 -0500 44577--- linux-2.6.38.3/grsecurity/Kconfig 1969-12-31 19:00:00.000000000 -0500
43542+++ linux-2.6.38.2/grsecurity/Kconfig 2011-03-26 19:54:37.000000000 -0400 44578+++ linux-2.6.38.3/grsecurity/Kconfig 2011-04-17 15:57:32.000000000 -0400
43543@@ -0,0 +1,1020 @@ 44579@@ -0,0 +1,1045 @@
43544+# 44580+#
43545+# grecurity configuration 44581+# grecurity configuration
43546+# 44582+#
@@ -43683,6 +44719,7 @@ diff -urNp linux-2.6.38.2/grsecurity/Kconfig linux-2.6.38.2/grsecurity/Kconfig
43683+ select GRKERNSEC_MODHARDEN if (MODULES) 44719+ select GRKERNSEC_MODHARDEN if (MODULES)
43684+ select GRKERNSEC_HARDEN_PTRACE 44720+ select GRKERNSEC_HARDEN_PTRACE
43685+ select GRKERNSEC_VM86 if (X86_32) 44721+ select GRKERNSEC_VM86 if (X86_32)
44722+ select GRKERNSEC_KERN_LOCKOUT if (X86)
43686+ select PAX 44723+ select PAX
43687+ select PAX_RANDUSTACK 44724+ select PAX_RANDUSTACK
43688+ select PAX_ASLR 44725+ select PAX_ASLR
@@ -43694,7 +44731,7 @@ diff -urNp linux-2.6.38.2/grsecurity/Kconfig linux-2.6.38.2/grsecurity/Kconfig
43694+ select PAX_HAVE_ACL_FLAGS 44731+ select PAX_HAVE_ACL_FLAGS
43695+ select PAX_KERNEXEC if ((PPC || X86) && (!X86_32 || X86_WP_WORKS_OK) && !XEN) 44732+ select PAX_KERNEXEC if ((PPC || X86) && (!X86_32 || X86_WP_WORKS_OK) && !XEN)
43696+ select PAX_MEMORY_UDEREF if (X86 && !XEN) 44733+ select PAX_MEMORY_UDEREF if (X86 && !XEN)
43697+ select PAX_RANDKSTACK if (X86_TSC && !X86_64) 44734+ select PAX_RANDKSTACK if (X86_TSC && X86)
43698+ select PAX_SEGMEXEC if (X86_32) 44735+ select PAX_SEGMEXEC if (X86_32)
43699+ select PAX_PAGEEXEC 44736+ select PAX_PAGEEXEC
43700+ select PAX_EMUPLT if (ALPHA || PARISC || SPARC32 || SPARC64) 44737+ select PAX_EMUPLT if (ALPHA || PARISC || SPARC32 || SPARC64)
@@ -43735,6 +44772,7 @@ diff -urNp linux-2.6.38.2/grsecurity/Kconfig linux-2.6.38.2/grsecurity/Kconfig
43735+ - Ptrace restrictions 44772+ - Ptrace restrictions
43736+ - Restricted vm86 mode 44773+ - Restricted vm86 mode
43737+ - Restricted sysfs/debugfs 44774+ - Restricted sysfs/debugfs
44775+ - Active kernel exploit response
43738+ 44776+
43739+config GRKERNSEC_CUSTOM 44777+config GRKERNSEC_CUSTOM
43740+ bool "Custom" 44778+ bool "Custom"
@@ -43753,6 +44791,7 @@ diff -urNp linux-2.6.38.2/grsecurity/Kconfig linux-2.6.38.2/grsecurity/Kconfig
43753+ 44791+
43754+config GRKERNSEC_KMEM 44792+config GRKERNSEC_KMEM
43755+ bool "Deny writing to /dev/kmem, /dev/mem, and /dev/port" 44793+ bool "Deny writing to /dev/kmem, /dev/mem, and /dev/port"
44794+ select STRICT_DEVMEM if (X86 || ARM || TILE || S390)
43756+ help 44795+ help
43757+ If you say Y here, /dev/kmem and /dev/mem won't be allowed to 44796+ If you say Y here, /dev/kmem and /dev/mem won't be allowed to
43758+ be written to via mmap or otherwise to modify the running kernel. 44797+ be written to via mmap or otherwise to modify the running kernel.
@@ -43819,13 +44858,18 @@ diff -urNp linux-2.6.38.2/grsecurity/Kconfig linux-2.6.38.2/grsecurity/Kconfig
43819+ bool "Deter exploit bruteforcing" 44858+ bool "Deter exploit bruteforcing"
43820+ help 44859+ help
43821+ If you say Y here, attempts to bruteforce exploits against forking 44860+ If you say Y here, attempts to bruteforce exploits against forking
43822+ daemons such as apache or sshd will be deterred. When a child of a 44861+ daemons such as apache or sshd, as well as against suid/sgid binaries
43823+ forking daemon is killed by PaX or crashes due to an illegal 44862+ will be deterred. When a child of a forking daemon is killed by PaX
43824+ instruction, the parent process will be delayed 30 seconds upon every 44863+ or crashes due to an illegal instruction or other suspicious signal,
43825+ subsequent fork until the administrator is able to assess the 44864+ the parent process will be delayed 30 seconds upon every subsequent
43826+ situation and restart the daemon. It is recommended that you also 44865+ fork until the administrator is able to assess the situation and
43827+ enable signal logging in the auditing section so that logs are 44866+ restart the daemon.
43828+ generated when a process performs an illegal instruction. 44867+ In the suid/sgid case, the attempt is logged, the user has all their
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.
43829+ 44873+
43830+config GRKERNSEC_MODHARDEN 44874+config GRKERNSEC_MODHARDEN
43831+ bool "Harden module auto-loading" 44875+ bool "Harden module auto-loading"
@@ -43873,6 +44917,23 @@ diff -urNp linux-2.6.38.2/grsecurity/Kconfig linux-2.6.38.2/grsecurity/Kconfig
43873+ useful protection against local kernel exploitation of overflows 44917+ useful protection against local kernel exploitation of overflows
43874+ and arbitrary read/write vulnerabilities. 44918+ and arbitrary read/write vulnerabilities.
43875+ 44919+
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+
43876+endmenu 44937+endmenu
43877+menu "Role Based Access Control Options" 44938+menu "Role Based Access Control Options"
43878+depends on GRKERNSEC 44939+depends on GRKERNSEC
@@ -44561,9 +45622,9 @@ diff -urNp linux-2.6.38.2/grsecurity/Kconfig linux-2.6.38.2/grsecurity/Kconfig
44561+endmenu 45622+endmenu
44562+ 45623+
44563+endmenu 45624+endmenu
44564diff -urNp linux-2.6.38.2/grsecurity/Makefile linux-2.6.38.2/grsecurity/Makefile 45625diff -urNp linux-2.6.38.3/grsecurity/Makefile linux-2.6.38.3/grsecurity/Makefile
44565--- linux-2.6.38.2/grsecurity/Makefile 1969-12-31 19:00:00.000000000 -0500 45626--- linux-2.6.38.3/grsecurity/Makefile 1969-12-31 19:00:00.000000000 -0500
44566+++ linux-2.6.38.2/grsecurity/Makefile 2011-03-21 18:31:35.000000000 -0400 45627+++ linux-2.6.38.3/grsecurity/Makefile 2011-04-17 15:57:32.000000000 -0400
44567@@ -0,0 +1,29 @@ 45628@@ -0,0 +1,29 @@
44568+# grsecurity's ACL system was originally written in 2001 by Michael Dalton 45629+# grsecurity's ACL system was originally written in 2001 by Michael Dalton
44569+# during 2001-2009 it has been completely redesigned by Brad Spengler 45630+# during 2001-2009 it has been completely redesigned by Brad Spengler
@@ -44594,9 +45655,9 @@ diff -urNp linux-2.6.38.2/grsecurity/Makefile linux-2.6.38.2/grsecurity/Makefile
44594+ @-chmod -f 700 . 45655+ @-chmod -f 700 .
44595+ @echo ' grsec: protected kernel image paths' 45656+ @echo ' grsec: protected kernel image paths'
44596+endif 45657+endif
44597diff -urNp linux-2.6.38.2/include/acpi/acoutput.h linux-2.6.38.2/include/acpi/acoutput.h 45658diff -urNp linux-2.6.38.3/include/acpi/acoutput.h linux-2.6.38.3/include/acpi/acoutput.h
44598--- linux-2.6.38.2/include/acpi/acoutput.h 2011-03-14 21:20:32.000000000 -0400 45659--- linux-2.6.38.3/include/acpi/acoutput.h 2011-03-14 21:20:32.000000000 -0400
44599+++ linux-2.6.38.2/include/acpi/acoutput.h 2011-03-21 18:31:35.000000000 -0400 45660+++ linux-2.6.38.3/include/acpi/acoutput.h 2011-04-17 15:57:32.000000000 -0400
44600@@ -269,8 +269,8 @@ 45661@@ -269,8 +269,8 @@
44601 * leaving no executable debug code! 45662 * leaving no executable debug code!
44602 */ 45663 */
@@ -44608,9 +45669,9 @@ diff -urNp linux-2.6.38.2/include/acpi/acoutput.h linux-2.6.38.2/include/acpi/ac
44608 45669
44609 #endif /* ACPI_DEBUG_OUTPUT */ 45670 #endif /* ACPI_DEBUG_OUTPUT */
44610 45671
44611diff -urNp linux-2.6.38.2/include/acpi/acpi_drivers.h linux-2.6.38.2/include/acpi/acpi_drivers.h 45672diff -urNp linux-2.6.38.3/include/acpi/acpi_drivers.h linux-2.6.38.3/include/acpi/acpi_drivers.h
44612--- linux-2.6.38.2/include/acpi/acpi_drivers.h 2011-03-14 21:20:32.000000000 -0400 45673--- linux-2.6.38.3/include/acpi/acpi_drivers.h 2011-03-14 21:20:32.000000000 -0400
44613+++ linux-2.6.38.2/include/acpi/acpi_drivers.h 2011-03-21 18:31:35.000000000 -0400 45674+++ linux-2.6.38.3/include/acpi/acpi_drivers.h 2011-04-17 15:57:32.000000000 -0400
44614@@ -119,8 +119,8 @@ void pci_acpi_crs_quirks(void); 45675@@ -119,8 +119,8 @@ void pci_acpi_crs_quirks(void);
44615 Dock Station 45676 Dock Station
44616 -------------------------------------------------------------------------- */ 45677 -------------------------------------------------------------------------- */
@@ -44640,9 +45701,9 @@ diff -urNp linux-2.6.38.2/include/acpi/acpi_drivers.h linux-2.6.38.2/include/acp
44640 void *context) 45701 void *context)
44641 { 45702 {
44642 return -ENODEV; 45703 return -ENODEV;
44643diff -urNp linux-2.6.38.2/include/asm-generic/atomic-long.h linux-2.6.38.2/include/asm-generic/atomic-long.h 45704diff -urNp linux-2.6.38.3/include/asm-generic/atomic-long.h linux-2.6.38.3/include/asm-generic/atomic-long.h
44644--- linux-2.6.38.2/include/asm-generic/atomic-long.h 2011-03-14 21:20:32.000000000 -0400 45705--- linux-2.6.38.3/include/asm-generic/atomic-long.h 2011-03-14 21:20:32.000000000 -0400
44645+++ linux-2.6.38.2/include/asm-generic/atomic-long.h 2011-03-21 18:31:35.000000000 -0400 45706+++ linux-2.6.38.3/include/asm-generic/atomic-long.h 2011-04-17 15:57:32.000000000 -0400
44646@@ -22,6 +22,12 @@ 45707@@ -22,6 +22,12 @@
44647 45708
44648 typedef atomic64_t atomic_long_t; 45709 typedef atomic64_t atomic_long_t;
@@ -44935,9 +45996,9 @@ diff -urNp linux-2.6.38.2/include/asm-generic/atomic-long.h linux-2.6.38.2/inclu
44935+#endif 45996+#endif
44936+ 45997+
44937 #endif /* _ASM_GENERIC_ATOMIC_LONG_H */ 45998 #endif /* _ASM_GENERIC_ATOMIC_LONG_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 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
44939--- linux-2.6.38.2/include/asm-generic/dma-mapping-common.h 2011-03-14 21:20:32.000000000 -0400 46000--- linux-2.6.38.3/include/asm-generic/dma-mapping-common.h 2011-03-14 21:20:32.000000000 -0400
44940+++ linux-2.6.38.2/include/asm-generic/dma-mapping-common.h 2011-03-21 18:31:35.000000000 -0400 46001+++ linux-2.6.38.3/include/asm-generic/dma-mapping-common.h 2011-04-17 15:57:32.000000000 -0400
44941@@ -11,7 +11,7 @@ static inline dma_addr_t dma_map_single_ 46002@@ -11,7 +11,7 @@ static inline dma_addr_t dma_map_single_
44942 enum dma_data_direction dir, 46003 enum dma_data_direction dir,
44943 struct dma_attrs *attrs) 46004 struct dma_attrs *attrs)
@@ -45028,9 +46089,9 @@ diff -urNp linux-2.6.38.2/include/asm-generic/dma-mapping-common.h linux-2.6.38.
45028 46089
45029 BUG_ON(!valid_dma_direction(dir)); 46090 BUG_ON(!valid_dma_direction(dir));
45030 if (ops->sync_sg_for_device) 46091 if (ops->sync_sg_for_device)
45031diff -urNp linux-2.6.38.2/include/asm-generic/futex.h linux-2.6.38.2/include/asm-generic/futex.h 46092diff -urNp linux-2.6.38.3/include/asm-generic/futex.h linux-2.6.38.3/include/asm-generic/futex.h
45032--- linux-2.6.38.2/include/asm-generic/futex.h 2011-03-14 21:20:32.000000000 -0400 46093--- linux-2.6.38.3/include/asm-generic/futex.h 2011-03-14 21:20:32.000000000 -0400
45033+++ linux-2.6.38.2/include/asm-generic/futex.h 2011-03-21 18:31:35.000000000 -0400 46094+++ linux-2.6.38.3/include/asm-generic/futex.h 2011-04-17 15:57:32.000000000 -0400
45034@@ -6,7 +6,7 @@ 46095@@ -6,7 +6,7 @@
45035 #include <asm/errno.h> 46096 #include <asm/errno.h>
45036 46097
@@ -45049,9 +46110,9 @@ diff -urNp linux-2.6.38.2/include/asm-generic/futex.h linux-2.6.38.2/include/asm
45049 { 46110 {
45050 return -ENOSYS; 46111 return -ENOSYS;
45051 } 46112 }
45052diff -urNp linux-2.6.38.2/include/asm-generic/int-l64.h linux-2.6.38.2/include/asm-generic/int-l64.h 46113diff -urNp linux-2.6.38.3/include/asm-generic/int-l64.h linux-2.6.38.3/include/asm-generic/int-l64.h
45053--- linux-2.6.38.2/include/asm-generic/int-l64.h 2011-03-14 21:20:32.000000000 -0400 46114--- linux-2.6.38.3/include/asm-generic/int-l64.h 2011-03-14 21:20:32.000000000 -0400
45054+++ linux-2.6.38.2/include/asm-generic/int-l64.h 2011-03-21 18:31:35.000000000 -0400 46115+++ linux-2.6.38.3/include/asm-generic/int-l64.h 2011-04-17 15:57:32.000000000 -0400
45055@@ -46,6 +46,8 @@ typedef unsigned int u32; 46116@@ -46,6 +46,8 @@ typedef unsigned int u32;
45056 typedef signed long s64; 46117 typedef signed long s64;
45057 typedef unsigned long u64; 46118 typedef unsigned long u64;
@@ -45061,9 +46122,9 @@ diff -urNp linux-2.6.38.2/include/asm-generic/int-l64.h linux-2.6.38.2/include/a
45061 #define S8_C(x) x 46122 #define S8_C(x) x
45062 #define U8_C(x) x ## U 46123 #define U8_C(x) x ## U
45063 #define S16_C(x) x 46124 #define S16_C(x) x
45064diff -urNp linux-2.6.38.2/include/asm-generic/int-ll64.h linux-2.6.38.2/include/asm-generic/int-ll64.h 46125diff -urNp linux-2.6.38.3/include/asm-generic/int-ll64.h linux-2.6.38.3/include/asm-generic/int-ll64.h
45065--- linux-2.6.38.2/include/asm-generic/int-ll64.h 2011-03-14 21:20:32.000000000 -0400 46126--- linux-2.6.38.3/include/asm-generic/int-ll64.h 2011-03-14 21:20:32.000000000 -0400
45066+++ linux-2.6.38.2/include/asm-generic/int-ll64.h 2011-03-21 18:31:35.000000000 -0400 46127+++ linux-2.6.38.3/include/asm-generic/int-ll64.h 2011-04-17 15:57:32.000000000 -0400
45067@@ -51,6 +51,8 @@ typedef unsigned int u32; 46128@@ -51,6 +51,8 @@ typedef unsigned int u32;
45068 typedef signed long long s64; 46129 typedef signed long long s64;
45069 typedef unsigned long long u64; 46130 typedef unsigned long long u64;
@@ -45073,9 +46134,9 @@ diff -urNp linux-2.6.38.2/include/asm-generic/int-ll64.h linux-2.6.38.2/include/
45073 #define S8_C(x) x 46134 #define S8_C(x) x
45074 #define U8_C(x) x ## U 46135 #define U8_C(x) x ## U
45075 #define S16_C(x) x 46136 #define S16_C(x) x
45076diff -urNp linux-2.6.38.2/include/asm-generic/kmap_types.h linux-2.6.38.2/include/asm-generic/kmap_types.h 46137diff -urNp linux-2.6.38.3/include/asm-generic/kmap_types.h linux-2.6.38.3/include/asm-generic/kmap_types.h
45077--- linux-2.6.38.2/include/asm-generic/kmap_types.h 2011-03-14 21:20:32.000000000 -0400 46138--- linux-2.6.38.3/include/asm-generic/kmap_types.h 2011-03-14 21:20:32.000000000 -0400
45078+++ linux-2.6.38.2/include/asm-generic/kmap_types.h 2011-03-21 18:31:35.000000000 -0400 46139+++ linux-2.6.38.3/include/asm-generic/kmap_types.h 2011-04-17 15:57:32.000000000 -0400
45079@@ -29,10 +29,11 @@ KMAP_D(16) KM_IRQ_PTE, 46140@@ -29,10 +29,11 @@ KMAP_D(16) KM_IRQ_PTE,
45080 KMAP_D(17) KM_NMI, 46141 KMAP_D(17) KM_NMI,
45081 KMAP_D(18) KM_NMI_PTE, 46142 KMAP_D(18) KM_NMI_PTE,
@@ -45089,9 +46150,9 @@ diff -urNp linux-2.6.38.2/include/asm-generic/kmap_types.h linux-2.6.38.2/includ
45089 }; 46150 };
45090 46151
45091 #undef KMAP_D 46152 #undef KMAP_D
45092diff -urNp linux-2.6.38.2/include/asm-generic/pgtable.h linux-2.6.38.2/include/asm-generic/pgtable.h 46153diff -urNp linux-2.6.38.3/include/asm-generic/pgtable.h linux-2.6.38.3/include/asm-generic/pgtable.h
45093--- linux-2.6.38.2/include/asm-generic/pgtable.h 2011-03-14 21:20:32.000000000 -0400 46154--- linux-2.6.38.3/include/asm-generic/pgtable.h 2011-03-14 21:20:32.000000000 -0400
45094+++ linux-2.6.38.2/include/asm-generic/pgtable.h 2011-03-21 18:31:35.000000000 -0400 46155+++ linux-2.6.38.3/include/asm-generic/pgtable.h 2011-04-17 15:57:32.000000000 -0400
45095@@ -447,6 +447,14 @@ static inline int pmd_write(pmd_t pmd) 46156@@ -447,6 +447,14 @@ static inline int pmd_write(pmd_t pmd)
45096 #endif /* __HAVE_ARCH_PMD_WRITE */ 46157 #endif /* __HAVE_ARCH_PMD_WRITE */
45097 #endif 46158 #endif
@@ -45107,9 +46168,9 @@ diff -urNp linux-2.6.38.2/include/asm-generic/pgtable.h linux-2.6.38.2/include/a
45107 #endif /* !__ASSEMBLY__ */ 46168 #endif /* !__ASSEMBLY__ */
45108 46169
45109 #endif /* _ASM_GENERIC_PGTABLE_H */ 46170 #endif /* _ASM_GENERIC_PGTABLE_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 46171diff -urNp linux-2.6.38.3/include/asm-generic/pgtable-nopmd.h linux-2.6.38.3/include/asm-generic/pgtable-nopmd.h
45111--- linux-2.6.38.2/include/asm-generic/pgtable-nopmd.h 2011-03-14 21:20:32.000000000 -0400 46172--- linux-2.6.38.3/include/asm-generic/pgtable-nopmd.h 2011-03-14 21:20:32.000000000 -0400
45112+++ linux-2.6.38.2/include/asm-generic/pgtable-nopmd.h 2011-03-21 18:31:35.000000000 -0400 46173+++ linux-2.6.38.3/include/asm-generic/pgtable-nopmd.h 2011-04-17 15:57:32.000000000 -0400
45113@@ -1,14 +1,19 @@ 46174@@ -1,14 +1,19 @@
45114 #ifndef _PGTABLE_NOPMD_H 46175 #ifndef _PGTABLE_NOPMD_H
45115 #define _PGTABLE_NOPMD_H 46176 #define _PGTABLE_NOPMD_H
@@ -45146,9 +46207,9 @@ diff -urNp linux-2.6.38.2/include/asm-generic/pgtable-nopmd.h linux-2.6.38.2/inc
45146 /* 46207 /*
45147 * The "pud_xxx()" functions here are trivial for a folded two-level 46208 * The "pud_xxx()" functions here are trivial for a folded two-level
45148 * setup: the pmd is never bad, and a pmd always exists (as it's folded 46209 * setup: the pmd is never bad, and a pmd always exists (as it's folded
45149diff -urNp linux-2.6.38.2/include/asm-generic/pgtable-nopud.h linux-2.6.38.2/include/asm-generic/pgtable-nopud.h 46210diff -urNp linux-2.6.38.3/include/asm-generic/pgtable-nopud.h linux-2.6.38.3/include/asm-generic/pgtable-nopud.h
45150--- linux-2.6.38.2/include/asm-generic/pgtable-nopud.h 2011-03-14 21:20:32.000000000 -0400 46211--- linux-2.6.38.3/include/asm-generic/pgtable-nopud.h 2011-03-14 21:20:32.000000000 -0400
45151+++ linux-2.6.38.2/include/asm-generic/pgtable-nopud.h 2011-03-21 18:31:35.000000000 -0400 46212+++ linux-2.6.38.3/include/asm-generic/pgtable-nopud.h 2011-04-17 15:57:32.000000000 -0400
45152@@ -1,10 +1,15 @@ 46213@@ -1,10 +1,15 @@
45153 #ifndef _PGTABLE_NOPUD_H 46214 #ifndef _PGTABLE_NOPUD_H
45154 #define _PGTABLE_NOPUD_H 46215 #define _PGTABLE_NOPUD_H
@@ -45179,9 +46240,9 @@ diff -urNp linux-2.6.38.2/include/asm-generic/pgtable-nopud.h linux-2.6.38.2/inc
45179 /* 46240 /*
45180 * The "pgd_xxx()" functions here are trivial for a folded two-level 46241 * The "pgd_xxx()" functions here are trivial for a folded two-level
45181 * setup: the pud is never bad, and a pud always exists (as it's folded 46242 * setup: the pud is never bad, and a pud always exists (as it's folded
45182diff -urNp linux-2.6.38.2/include/asm-generic/vmlinux.lds.h linux-2.6.38.2/include/asm-generic/vmlinux.lds.h 46243diff -urNp linux-2.6.38.3/include/asm-generic/vmlinux.lds.h linux-2.6.38.3/include/asm-generic/vmlinux.lds.h
45183--- linux-2.6.38.2/include/asm-generic/vmlinux.lds.h 2011-03-14 21:20:32.000000000 -0400 46244--- linux-2.6.38.3/include/asm-generic/vmlinux.lds.h 2011-03-14 21:20:32.000000000 -0400
45184+++ linux-2.6.38.2/include/asm-generic/vmlinux.lds.h 2011-03-21 18:31:35.000000000 -0400 46245+++ linux-2.6.38.3/include/asm-generic/vmlinux.lds.h 2011-04-17 15:57:32.000000000 -0400
45185@@ -213,6 +213,7 @@ 46246@@ -213,6 +213,7 @@
45186 .rodata : AT(ADDR(.rodata) - LOAD_OFFSET) { \ 46247 .rodata : AT(ADDR(.rodata) - LOAD_OFFSET) { \
45187 VMLINUX_SYMBOL(__start_rodata) = .; \ 46248 VMLINUX_SYMBOL(__start_rodata) = .; \
@@ -45218,19 +46279,19 @@ diff -urNp linux-2.6.38.2/include/asm-generic/vmlinux.lds.h linux-2.6.38.2/inclu
45218 46279
45219 /** 46280 /**
45220 * PERCPU - define output section for percpu area, simple version 46281 * PERCPU - define output section for percpu area, simple version
45221diff -urNp linux-2.6.38.2/include/drm/drm_pciids.h linux-2.6.38.2/include/drm/drm_pciids.h 46282diff -urNp linux-2.6.38.3/include/drm/drm_pciids.h linux-2.6.38.3/include/drm/drm_pciids.h
45222--- linux-2.6.38.2/include/drm/drm_pciids.h 2011-03-14 21:20:32.000000000 -0400 46283--- linux-2.6.38.3/include/drm/drm_pciids.h 2011-04-18 17:27:18.000000000 -0400
45223+++ linux-2.6.38.2/include/drm/drm_pciids.h 2011-03-21 18:31:35.000000000 -0400 46284+++ linux-2.6.38.3/include/drm/drm_pciids.h 2011-04-17 16:58:34.000000000 -0400
45224@@ -458,7 +458,7 @@ 46285@@ -460,7 +460,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}, \
45227 {0x1002, 0x9805, 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}, \
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}, \
45228- {0, 0, 0} 46289- {0, 0, 0}
45229+ {0, 0, 0, 0, 0, 0} 46290+ {0, 0, 0, 0, 0, 0}
45230 46291
45231 #define r128_PCI_IDS \ 46292 #define r128_PCI_IDS \
45232 {0x1002, 0x4c45, PCI_ANY_ID, PCI_ANY_ID, 0, 0, 0}, \ 46293 {0x1002, 0x4c45, PCI_ANY_ID, PCI_ANY_ID, 0, 0, 0}, \
45233@@ -498,14 +498,14 @@ 46294@@ -500,14 +500,14 @@
45234 {0x1002, 0x5446, PCI_ANY_ID, PCI_ANY_ID, 0, 0, 0}, \ 46295 {0x1002, 0x5446, PCI_ANY_ID, PCI_ANY_ID, 0, 0, 0}, \
45235 {0x1002, 0x544C, PCI_ANY_ID, PCI_ANY_ID, 0, 0, 0}, \ 46296 {0x1002, 0x544C, PCI_ANY_ID, PCI_ANY_ID, 0, 0, 0}, \
45236 {0x1002, 0x5452, PCI_ANY_ID, PCI_ANY_ID, 0, 0, 0}, \ 46297 {0x1002, 0x5452, PCI_ANY_ID, PCI_ANY_ID, 0, 0, 0}, \
@@ -45247,7 +46308,7 @@ diff -urNp linux-2.6.38.2/include/drm/drm_pciids.h linux-2.6.38.2/include/drm/dr
45247 46308
45248 #define mach64_PCI_IDS \ 46309 #define mach64_PCI_IDS \
45249 {0x1002, 0x4749, PCI_ANY_ID, PCI_ANY_ID, 0, 0, 0}, \ 46310 {0x1002, 0x4749, PCI_ANY_ID, PCI_ANY_ID, 0, 0, 0}, \
45250@@ -528,7 +528,7 @@ 46311@@ -530,7 +530,7 @@
45251 {0x1002, 0x4c53, PCI_ANY_ID, PCI_ANY_ID, 0, 0, 0}, \ 46312 {0x1002, 0x4c53, PCI_ANY_ID, PCI_ANY_ID, 0, 0, 0}, \
45252 {0x1002, 0x4c4d, PCI_ANY_ID, PCI_ANY_ID, 0, 0, 0}, \ 46313 {0x1002, 0x4c4d, PCI_ANY_ID, PCI_ANY_ID, 0, 0, 0}, \
45253 {0x1002, 0x4c4e, PCI_ANY_ID, PCI_ANY_ID, 0, 0, 0}, \ 46314 {0x1002, 0x4c4e, PCI_ANY_ID, PCI_ANY_ID, 0, 0, 0}, \
@@ -45256,7 +46317,7 @@ diff -urNp linux-2.6.38.2/include/drm/drm_pciids.h linux-2.6.38.2/include/drm/dr
45256 46317
45257 #define sisdrv_PCI_IDS \ 46318 #define sisdrv_PCI_IDS \
45258 {0x1039, 0x0300, PCI_ANY_ID, PCI_ANY_ID, 0, 0, 0}, \ 46319 {0x1039, 0x0300, PCI_ANY_ID, PCI_ANY_ID, 0, 0, 0}, \
45259@@ -539,7 +539,7 @@ 46320@@ -541,7 +541,7 @@
45260 {0x1039, 0x7300, PCI_ANY_ID, PCI_ANY_ID, 0, 0, 0}, \ 46321 {0x1039, 0x7300, PCI_ANY_ID, PCI_ANY_ID, 0, 0, 0}, \
45261 {0x18CA, 0x0040, PCI_ANY_ID, PCI_ANY_ID, 0, 0, SIS_CHIP_315}, \ 46322 {0x18CA, 0x0040, 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}, \ 46323 {0x18CA, 0x0042, PCI_ANY_ID, PCI_ANY_ID, 0, 0, SIS_CHIP_315}, \
@@ -45265,7 +46326,7 @@ diff -urNp linux-2.6.38.2/include/drm/drm_pciids.h linux-2.6.38.2/include/drm/dr
45265 46326
45266 #define tdfx_PCI_IDS \ 46327 #define tdfx_PCI_IDS \
45267 {0x121a, 0x0003, PCI_ANY_ID, PCI_ANY_ID, 0, 0, 0}, \ 46328 {0x121a, 0x0003, PCI_ANY_ID, PCI_ANY_ID, 0, 0, 0}, \
45268@@ -548,7 +548,7 @@ 46329@@ -550,7 +550,7 @@
45269 {0x121a, 0x0007, PCI_ANY_ID, PCI_ANY_ID, 0, 0, 0}, \ 46330 {0x121a, 0x0007, PCI_ANY_ID, PCI_ANY_ID, 0, 0, 0}, \
45270 {0x121a, 0x0009, PCI_ANY_ID, PCI_ANY_ID, 0, 0, 0}, \ 46331 {0x121a, 0x0009, PCI_ANY_ID, PCI_ANY_ID, 0, 0, 0}, \
45271 {0x121a, 0x000b, PCI_ANY_ID, PCI_ANY_ID, 0, 0, 0}, \ 46332 {0x121a, 0x000b, PCI_ANY_ID, PCI_ANY_ID, 0, 0, 0}, \
@@ -45274,7 +46335,7 @@ diff -urNp linux-2.6.38.2/include/drm/drm_pciids.h linux-2.6.38.2/include/drm/dr
45274 46335
45275 #define viadrv_PCI_IDS \ 46336 #define viadrv_PCI_IDS \
45276 {0x1106, 0x3022, PCI_ANY_ID, PCI_ANY_ID, 0, 0, 0}, \ 46337 {0x1106, 0x3022, PCI_ANY_ID, PCI_ANY_ID, 0, 0, 0}, \
45277@@ -560,14 +560,14 @@ 46338@@ -562,14 +562,14 @@
45278 {0x1106, 0x3343, PCI_ANY_ID, PCI_ANY_ID, 0, 0, 0}, \ 46339 {0x1106, 0x3343, PCI_ANY_ID, PCI_ANY_ID, 0, 0, 0}, \
45279 {0x1106, 0x3230, PCI_ANY_ID, PCI_ANY_ID, 0, 0, VIA_DX9_0}, \ 46340 {0x1106, 0x3230, PCI_ANY_ID, PCI_ANY_ID, 0, 0, VIA_DX9_0}, \
45280 {0x1106, 0x3157, PCI_ANY_ID, PCI_ANY_ID, 0, 0, VIA_PRO_GROUP_A}, \ 46341 {0x1106, 0x3157, PCI_ANY_ID, PCI_ANY_ID, 0, 0, VIA_PRO_GROUP_A}, \
@@ -45291,7 +46352,7 @@ diff -urNp linux-2.6.38.2/include/drm/drm_pciids.h linux-2.6.38.2/include/drm/dr
45291 46352
45292 #define i830_PCI_IDS \ 46353 #define i830_PCI_IDS \
45293 {0x8086, 0x3577, PCI_ANY_ID, PCI_ANY_ID, 0, 0, 0}, \ 46354 {0x8086, 0x3577, PCI_ANY_ID, PCI_ANY_ID, 0, 0, 0}, \
45294@@ -575,11 +575,11 @@ 46355@@ -577,11 +577,11 @@
45295 {0x8086, 0x3582, PCI_ANY_ID, PCI_ANY_ID, 0, 0, 0}, \ 46356 {0x8086, 0x3582, PCI_ANY_ID, PCI_ANY_ID, 0, 0, 0}, \
45296 {0x8086, 0x2572, PCI_ANY_ID, PCI_ANY_ID, 0, 0, 0}, \ 46357 {0x8086, 0x2572, PCI_ANY_ID, PCI_ANY_ID, 0, 0, 0}, \
45297 {0x8086, 0x358e, PCI_ANY_ID, PCI_ANY_ID, 0, 0, 0}, \ 46358 {0x8086, 0x358e, PCI_ANY_ID, PCI_ANY_ID, 0, 0, 0}, \
@@ -45305,7 +46366,7 @@ diff -urNp linux-2.6.38.2/include/drm/drm_pciids.h linux-2.6.38.2/include/drm/dr
45305 46366
45306 #define savage_PCI_IDS \ 46367 #define savage_PCI_IDS \
45307 {0x5333, 0x8a20, PCI_ANY_ID, PCI_ANY_ID, 0, 0, S3_SAVAGE3D}, \ 46368 {0x5333, 0x8a20, PCI_ANY_ID, PCI_ANY_ID, 0, 0, S3_SAVAGE3D}, \
45308@@ -605,10 +605,10 @@ 46369@@ -607,10 +607,10 @@
45309 {0x5333, 0x8d02, PCI_ANY_ID, PCI_ANY_ID, 0, 0, S3_TWISTER}, \ 46370 {0x5333, 0x8d02, PCI_ANY_ID, PCI_ANY_ID, 0, 0, S3_TWISTER}, \
45310 {0x5333, 0x8d03, PCI_ANY_ID, PCI_ANY_ID, 0, 0, S3_PROSAVAGEDDR}, \ 46371 {0x5333, 0x8d03, PCI_ANY_ID, PCI_ANY_ID, 0, 0, S3_PROSAVAGEDDR}, \
45311 {0x5333, 0x8d04, PCI_ANY_ID, PCI_ANY_ID, 0, 0, S3_PROSAVAGEDDR}, \ 46372 {0x5333, 0x8d04, PCI_ANY_ID, PCI_ANY_ID, 0, 0, S3_PROSAVAGEDDR}, \
@@ -45318,15 +46379,15 @@ diff -urNp linux-2.6.38.2/include/drm/drm_pciids.h linux-2.6.38.2/include/drm/dr
45318 46379
45319 #define i915_PCI_IDS \ 46380 #define i915_PCI_IDS \
45320 {0x8086, 0x3577, PCI_ANY_ID, PCI_ANY_ID, PCI_CLASS_DISPLAY_VGA << 8, 0xffff00, 0}, \ 46381 {0x8086, 0x3577, PCI_ANY_ID, PCI_ANY_ID, PCI_CLASS_DISPLAY_VGA << 8, 0xffff00, 0}, \
45321@@ -642,4 +642,4 @@ 46382@@ -644,4 +644,4 @@
45322 {0x8086, 0x0042, PCI_ANY_ID, PCI_ANY_ID, PCI_CLASS_DISPLAY_VGA << 8, 0xffff00, 0}, \ 46383 {0x8086, 0x0042, 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}, \ 46384 {0x8086, 0x0046, 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}, \ 46385 {0x8086, 0x0102, PCI_ANY_ID, PCI_ANY_ID, PCI_CLASS_DISPLAY_VGA << 8, 0xffff00, 0}, \
45325- {0, 0, 0} 46386- {0, 0, 0}
45326+ {0, 0, 0, 0, 0, 0} 46387+ {0, 0, 0, 0, 0, 0}
45327diff -urNp linux-2.6.38.2/include/drm/drmP.h linux-2.6.38.2/include/drm/drmP.h 46388diff -urNp linux-2.6.38.3/include/drm/drmP.h linux-2.6.38.3/include/drm/drmP.h
45328--- linux-2.6.38.2/include/drm/drmP.h 2011-03-14 21:20:32.000000000 -0400 46389--- linux-2.6.38.3/include/drm/drmP.h 2011-03-14 21:20:32.000000000 -0400
45329+++ linux-2.6.38.2/include/drm/drmP.h 2011-03-21 18:31:35.000000000 -0400 46390+++ linux-2.6.38.3/include/drm/drmP.h 2011-04-17 15:57:32.000000000 -0400
45330@@ -73,6 +73,7 @@ 46391@@ -73,6 +73,7 @@
45331 #include <linux/workqueue.h> 46392 #include <linux/workqueue.h>
45332 #include <linux/poll.h> 46393 #include <linux/poll.h>
@@ -45380,9 +46441,9 @@ diff -urNp linux-2.6.38.2/include/drm/drmP.h linux-2.6.38.2/include/drm/drmP.h
45380 void *dev_private; /**< device private data */ 46441 void *dev_private; /**< device private data */
45381 void *mm_private; 46442 void *mm_private;
45382 struct address_space *dev_mapping; 46443 struct address_space *dev_mapping;
45383diff -urNp linux-2.6.38.2/include/linux/a.out.h linux-2.6.38.2/include/linux/a.out.h 46444diff -urNp linux-2.6.38.3/include/linux/a.out.h linux-2.6.38.3/include/linux/a.out.h
45384--- linux-2.6.38.2/include/linux/a.out.h 2011-03-14 21:20:32.000000000 -0400 46445--- linux-2.6.38.3/include/linux/a.out.h 2011-03-14 21:20:32.000000000 -0400
45385+++ linux-2.6.38.2/include/linux/a.out.h 2011-03-21 18:31:35.000000000 -0400 46446+++ linux-2.6.38.3/include/linux/a.out.h 2011-04-17 15:57:32.000000000 -0400
45386@@ -39,6 +39,14 @@ enum machine_type { 46447@@ -39,6 +39,14 @@ enum machine_type {
45387 M_MIPS2 = 152 /* MIPS R6000/R4000 binary */ 46448 M_MIPS2 = 152 /* MIPS R6000/R4000 binary */
45388 }; 46449 };
@@ -45398,9 +46459,9 @@ diff -urNp linux-2.6.38.2/include/linux/a.out.h linux-2.6.38.2/include/linux/a.o
45398 #if !defined (N_MAGIC) 46459 #if !defined (N_MAGIC)
45399 #define N_MAGIC(exec) ((exec).a_info & 0xffff) 46460 #define N_MAGIC(exec) ((exec).a_info & 0xffff)
45400 #endif 46461 #endif
45401diff -urNp linux-2.6.38.2/include/linux/atmdev.h linux-2.6.38.2/include/linux/atmdev.h 46462diff -urNp linux-2.6.38.3/include/linux/atmdev.h linux-2.6.38.3/include/linux/atmdev.h
45402--- linux-2.6.38.2/include/linux/atmdev.h 2011-03-14 21:20:32.000000000 -0400 46463--- linux-2.6.38.3/include/linux/atmdev.h 2011-04-18 17:27:18.000000000 -0400
45403+++ linux-2.6.38.2/include/linux/atmdev.h 2011-03-21 18:31:35.000000000 -0400 46464+++ linux-2.6.38.3/include/linux/atmdev.h 2011-04-17 16:53:48.000000000 -0400
45404@@ -237,7 +237,7 @@ struct compat_atm_iobuf { 46465@@ -237,7 +237,7 @@ struct compat_atm_iobuf {
45405 #endif 46466 #endif
45406 46467
@@ -45410,9 +46471,9 @@ diff -urNp linux-2.6.38.2/include/linux/atmdev.h linux-2.6.38.2/include/linux/at
45410 __AAL_STAT_ITEMS 46471 __AAL_STAT_ITEMS
45411 #undef __HANDLE_ITEM 46472 #undef __HANDLE_ITEM
45412 }; 46473 };
45413diff -urNp linux-2.6.38.2/include/linux/binfmts.h linux-2.6.38.2/include/linux/binfmts.h 46474diff -urNp linux-2.6.38.3/include/linux/binfmts.h linux-2.6.38.3/include/linux/binfmts.h
45414--- linux-2.6.38.2/include/linux/binfmts.h 2011-03-14 21:20:32.000000000 -0400 46475--- linux-2.6.38.3/include/linux/binfmts.h 2011-03-14 21:20:32.000000000 -0400
45415+++ linux-2.6.38.2/include/linux/binfmts.h 2011-03-21 18:31:35.000000000 -0400 46476+++ linux-2.6.38.3/include/linux/binfmts.h 2011-04-17 15:57:32.000000000 -0400
45416@@ -92,6 +92,7 @@ struct linux_binfmt { 46477@@ -92,6 +92,7 @@ struct linux_binfmt {
45417 int (*load_binary)(struct linux_binprm *, struct pt_regs * regs); 46478 int (*load_binary)(struct linux_binprm *, struct pt_regs * regs);
45418 int (*load_shlib)(struct file *); 46479 int (*load_shlib)(struct file *);
@@ -45421,9 +46482,9 @@ diff -urNp linux-2.6.38.2/include/linux/binfmts.h linux-2.6.38.2/include/linux/b
45421 unsigned long min_coredump; /* minimal dump size */ 46482 unsigned long min_coredump; /* minimal dump size */
45422 }; 46483 };
45423 46484
45424diff -urNp linux-2.6.38.2/include/linux/blkdev.h linux-2.6.38.2/include/linux/blkdev.h 46485diff -urNp linux-2.6.38.3/include/linux/blkdev.h linux-2.6.38.3/include/linux/blkdev.h
45425--- linux-2.6.38.2/include/linux/blkdev.h 2011-03-14 21:20:32.000000000 -0400 46486--- linux-2.6.38.3/include/linux/blkdev.h 2011-03-14 21:20:32.000000000 -0400
45426+++ linux-2.6.38.2/include/linux/blkdev.h 2011-03-21 18:31:35.000000000 -0400 46487+++ linux-2.6.38.3/include/linux/blkdev.h 2011-04-17 15:57:32.000000000 -0400
45427@@ -1247,22 +1247,22 @@ queue_max_integrity_segments(struct requ 46488@@ -1247,22 +1247,22 @@ queue_max_integrity_segments(struct requ
45428 #endif /* CONFIG_BLK_DEV_INTEGRITY */ 46489 #endif /* CONFIG_BLK_DEV_INTEGRITY */
45429 46490
@@ -45459,9 +46520,9 @@ diff -urNp linux-2.6.38.2/include/linux/blkdev.h linux-2.6.38.2/include/linux/bl
45459 }; 46520 };
45460 46521
45461 extern int __blkdev_driver_ioctl(struct block_device *, fmode_t, unsigned int, 46522 extern int __blkdev_driver_ioctl(struct block_device *, fmode_t, unsigned int,
45462diff -urNp linux-2.6.38.2/include/linux/byteorder/little_endian.h linux-2.6.38.2/include/linux/byteorder/little_endian.h 46523diff -urNp linux-2.6.38.3/include/linux/byteorder/little_endian.h linux-2.6.38.3/include/linux/byteorder/little_endian.h
45463--- linux-2.6.38.2/include/linux/byteorder/little_endian.h 2011-03-14 21:20:32.000000000 -0400 46524--- linux-2.6.38.3/include/linux/byteorder/little_endian.h 2011-03-14 21:20:32.000000000 -0400
45464+++ linux-2.6.38.2/include/linux/byteorder/little_endian.h 2011-03-21 18:31:35.000000000 -0400 46525+++ linux-2.6.38.3/include/linux/byteorder/little_endian.h 2011-04-17 15:57:32.000000000 -0400
45465@@ -42,51 +42,51 @@ 46526@@ -42,51 +42,51 @@
45466 46527
45467 static inline __le64 __cpu_to_le64p(const __u64 *p) 46528 static inline __le64 __cpu_to_le64p(const __u64 *p)
@@ -45526,9 +46587,9 @@ diff -urNp linux-2.6.38.2/include/linux/byteorder/little_endian.h linux-2.6.38.2
45526 } 46587 }
45527 #define __cpu_to_le64s(x) do { (void)(x); } while (0) 46588 #define __cpu_to_le64s(x) do { (void)(x); } while (0)
45528 #define __le64_to_cpus(x) do { (void)(x); } while (0) 46589 #define __le64_to_cpus(x) do { (void)(x); } while (0)
45529diff -urNp linux-2.6.38.2/include/linux/cache.h linux-2.6.38.2/include/linux/cache.h 46590diff -urNp linux-2.6.38.3/include/linux/cache.h linux-2.6.38.3/include/linux/cache.h
45530--- linux-2.6.38.2/include/linux/cache.h 2011-03-14 21:20:32.000000000 -0400 46591--- linux-2.6.38.3/include/linux/cache.h 2011-03-14 21:20:32.000000000 -0400
45531+++ linux-2.6.38.2/include/linux/cache.h 2011-03-21 18:31:35.000000000 -0400 46592+++ linux-2.6.38.3/include/linux/cache.h 2011-04-17 15:57:32.000000000 -0400
45532@@ -16,6 +16,10 @@ 46593@@ -16,6 +16,10 @@
45533 #define __read_mostly 46594 #define __read_mostly
45534 #endif 46595 #endif
@@ -45540,9 +46601,9 @@ diff -urNp linux-2.6.38.2/include/linux/cache.h linux-2.6.38.2/include/linux/cac
45540 #ifndef ____cacheline_aligned 46601 #ifndef ____cacheline_aligned
45541 #define ____cacheline_aligned __attribute__((__aligned__(SMP_CACHE_BYTES))) 46602 #define ____cacheline_aligned __attribute__((__aligned__(SMP_CACHE_BYTES)))
45542 #endif 46603 #endif
45543diff -urNp linux-2.6.38.2/include/linux/capability.h linux-2.6.38.2/include/linux/capability.h 46604diff -urNp linux-2.6.38.3/include/linux/capability.h linux-2.6.38.3/include/linux/capability.h
45544--- linux-2.6.38.2/include/linux/capability.h 2011-03-14 21:20:32.000000000 -0400 46605--- linux-2.6.38.3/include/linux/capability.h 2011-03-14 21:20:32.000000000 -0400
45545+++ linux-2.6.38.2/include/linux/capability.h 2011-03-21 18:31:35.000000000 -0400 46606+++ linux-2.6.38.3/include/linux/capability.h 2011-04-17 15:57:32.000000000 -0400
45546@@ -561,6 +561,7 @@ extern const kernel_cap_t __cap_init_eff 46607@@ -561,6 +561,7 @@ extern const kernel_cap_t __cap_init_eff
45547 (security_real_capable_noaudit((t), (cap)) == 0) 46608 (security_real_capable_noaudit((t), (cap)) == 0)
45548 46609
@@ -45551,9 +46612,9 @@ diff -urNp linux-2.6.38.2/include/linux/capability.h linux-2.6.38.2/include/linu
45551 46612
45552 /* audit system wants to get cap info from files as well */ 46613 /* audit system wants to get cap info from files as well */
45553 struct dentry; 46614 struct dentry;
45554diff -urNp linux-2.6.38.2/include/linux/compiler-gcc4.h linux-2.6.38.2/include/linux/compiler-gcc4.h 46615diff -urNp linux-2.6.38.3/include/linux/compiler-gcc4.h linux-2.6.38.3/include/linux/compiler-gcc4.h
45555--- linux-2.6.38.2/include/linux/compiler-gcc4.h 2011-03-14 21:20:32.000000000 -0400 46616--- linux-2.6.38.3/include/linux/compiler-gcc4.h 2011-03-14 21:20:32.000000000 -0400
45556+++ linux-2.6.38.2/include/linux/compiler-gcc4.h 2011-03-21 18:31:35.000000000 -0400 46617+++ linux-2.6.38.3/include/linux/compiler-gcc4.h 2011-04-17 15:57:32.000000000 -0400
45557@@ -54,6 +54,10 @@ 46618@@ -54,6 +54,10 @@
45558 46619
45559 #endif 46620 #endif
@@ -45565,9 +46626,9 @@ diff -urNp linux-2.6.38.2/include/linux/compiler-gcc4.h linux-2.6.38.2/include/l
45565 #endif 46626 #endif
45566 46627
45567 #if __GNUC_MINOR__ > 0 46628 #if __GNUC_MINOR__ > 0
45568diff -urNp linux-2.6.38.2/include/linux/compiler.h linux-2.6.38.2/include/linux/compiler.h 46629diff -urNp linux-2.6.38.3/include/linux/compiler.h linux-2.6.38.3/include/linux/compiler.h
45569--- linux-2.6.38.2/include/linux/compiler.h 2011-03-14 21:20:32.000000000 -0400 46630--- linux-2.6.38.3/include/linux/compiler.h 2011-03-14 21:20:32.000000000 -0400
45570+++ linux-2.6.38.2/include/linux/compiler.h 2011-03-21 18:31:35.000000000 -0400 46631+++ linux-2.6.38.3/include/linux/compiler.h 2011-04-17 15:57:32.000000000 -0400
45571@@ -273,6 +273,22 @@ void ftrace_likely_update(struct ftrace_ 46632@@ -273,6 +273,22 @@ void ftrace_likely_update(struct ftrace_
45572 #define __cold 46633 #define __cold
45573 #endif 46634 #endif
@@ -45600,9 +46661,9 @@ diff -urNp linux-2.6.38.2/include/linux/compiler.h linux-2.6.38.2/include/linux/
45600+#define ACCESS_ONCE_RW(x) (*(volatile typeof(x) *)&(x)) 46661+#define ACCESS_ONCE_RW(x) (*(volatile typeof(x) *)&(x))
45601 46662
45602 #endif /* __LINUX_COMPILER_H */ 46663 #endif /* __LINUX_COMPILER_H */
45603diff -urNp linux-2.6.38.2/include/linux/cpuset.h linux-2.6.38.2/include/linux/cpuset.h 46664diff -urNp linux-2.6.38.3/include/linux/cpuset.h linux-2.6.38.3/include/linux/cpuset.h
45604--- linux-2.6.38.2/include/linux/cpuset.h 2011-03-14 21:20:32.000000000 -0400 46665--- linux-2.6.38.3/include/linux/cpuset.h 2011-03-14 21:20:32.000000000 -0400
45605+++ linux-2.6.38.2/include/linux/cpuset.h 2011-03-21 18:31:35.000000000 -0400 46666+++ linux-2.6.38.3/include/linux/cpuset.h 2011-04-17 15:57:32.000000000 -0400
45606@@ -118,7 +118,7 @@ static inline void put_mems_allowed(void 46667@@ -118,7 +118,7 @@ static inline void put_mems_allowed(void
45607 * nodemask. 46668 * nodemask.
45608 */ 46669 */
@@ -45612,9 +46673,9 @@ diff -urNp linux-2.6.38.2/include/linux/cpuset.h linux-2.6.38.2/include/linux/cp
45612 } 46673 }
45613 46674
45614 static inline void set_mems_allowed(nodemask_t nodemask) 46675 static inline void set_mems_allowed(nodemask_t nodemask)
45615diff -urNp linux-2.6.38.2/include/linux/decompress/mm.h linux-2.6.38.2/include/linux/decompress/mm.h 46676diff -urNp linux-2.6.38.3/include/linux/decompress/mm.h linux-2.6.38.3/include/linux/decompress/mm.h
45616--- linux-2.6.38.2/include/linux/decompress/mm.h 2011-03-14 21:20:32.000000000 -0400 46677--- linux-2.6.38.3/include/linux/decompress/mm.h 2011-03-14 21:20:32.000000000 -0400
45617+++ linux-2.6.38.2/include/linux/decompress/mm.h 2011-03-21 18:31:35.000000000 -0400 46678+++ linux-2.6.38.3/include/linux/decompress/mm.h 2011-04-17 15:57:32.000000000 -0400
45618@@ -77,7 +77,7 @@ static void free(void *where) 46679@@ -77,7 +77,7 @@ static void free(void *where)
45619 * warnings when not needed (indeed large_malloc / large_free are not 46680 * warnings when not needed (indeed large_malloc / large_free are not
45620 * needed by inflate */ 46681 * needed by inflate */
@@ -45624,9 +46685,9 @@ diff -urNp linux-2.6.38.2/include/linux/decompress/mm.h linux-2.6.38.2/include/l
45624 #define free(a) kfree(a) 46685 #define free(a) kfree(a)
45625 46686
45626 #define large_malloc(a) vmalloc(a) 46687 #define large_malloc(a) vmalloc(a)
45627diff -urNp linux-2.6.38.2/include/linux/dma-mapping.h linux-2.6.38.2/include/linux/dma-mapping.h 46688diff -urNp linux-2.6.38.3/include/linux/dma-mapping.h linux-2.6.38.3/include/linux/dma-mapping.h
45628--- linux-2.6.38.2/include/linux/dma-mapping.h 2011-03-14 21:20:32.000000000 -0400 46689--- linux-2.6.38.3/include/linux/dma-mapping.h 2011-03-14 21:20:32.000000000 -0400
45629+++ linux-2.6.38.2/include/linux/dma-mapping.h 2011-03-21 18:31:35.000000000 -0400 46690+++ linux-2.6.38.3/include/linux/dma-mapping.h 2011-04-17 15:57:32.000000000 -0400
45630@@ -16,40 +16,40 @@ enum dma_data_direction { 46691@@ -16,40 +16,40 @@ enum dma_data_direction {
45631 }; 46692 };
45632 46693
@@ -45682,9 +46743,9 @@ diff -urNp linux-2.6.38.2/include/linux/dma-mapping.h linux-2.6.38.2/include/lin
45682 }; 46743 };
45683 46744
45684 #define DMA_BIT_MASK(n) (((n) == 64) ? ~0ULL : ((1ULL<<(n))-1)) 46745 #define DMA_BIT_MASK(n) (((n) == 64) ? ~0ULL : ((1ULL<<(n))-1))
45685diff -urNp linux-2.6.38.2/include/linux/elf.h linux-2.6.38.2/include/linux/elf.h 46746diff -urNp linux-2.6.38.3/include/linux/elf.h linux-2.6.38.3/include/linux/elf.h
45686--- linux-2.6.38.2/include/linux/elf.h 2011-03-14 21:20:32.000000000 -0400 46747--- linux-2.6.38.3/include/linux/elf.h 2011-03-14 21:20:32.000000000 -0400
45687+++ linux-2.6.38.2/include/linux/elf.h 2011-03-21 18:31:35.000000000 -0400 46748+++ linux-2.6.38.3/include/linux/elf.h 2011-04-17 15:57:32.000000000 -0400
45688@@ -49,6 +49,17 @@ typedef __s64 Elf64_Sxword; 46749@@ -49,6 +49,17 @@ typedef __s64 Elf64_Sxword;
45689 #define PT_GNU_EH_FRAME 0x6474e550 46750 #define PT_GNU_EH_FRAME 0x6474e550
45690 46751
@@ -45757,9 +46818,9 @@ diff -urNp linux-2.6.38.2/include/linux/elf.h linux-2.6.38.2/include/linux/elf.h
45757 46818
45758 #endif 46819 #endif
45759 46820
45760diff -urNp linux-2.6.38.2/include/linux/fs.h linux-2.6.38.2/include/linux/fs.h 46821diff -urNp linux-2.6.38.3/include/linux/fs.h linux-2.6.38.3/include/linux/fs.h
45761--- linux-2.6.38.2/include/linux/fs.h 2011-03-14 21:20:32.000000000 -0400 46822--- linux-2.6.38.3/include/linux/fs.h 2011-03-14 21:20:32.000000000 -0400
45762+++ linux-2.6.38.2/include/linux/fs.h 2011-03-21 18:31:35.000000000 -0400 46823+++ linux-2.6.38.3/include/linux/fs.h 2011-04-17 15:57:32.000000000 -0400
45763@@ -105,6 +105,11 @@ struct inodes_stat_t { 46824@@ -105,6 +105,11 @@ struct inodes_stat_t {
45764 /* File was opened by fanotify and shouldn't generate fanotify events */ 46825 /* File was opened by fanotify and shouldn't generate fanotify events */
45765 #define FMODE_NONOTIFY ((__force fmode_t)0x1000000) 46826 #define FMODE_NONOTIFY ((__force fmode_t)0x1000000)
@@ -45908,9 +46969,9 @@ diff -urNp linux-2.6.38.2/include/linux/fs.h linux-2.6.38.2/include/linux/fs.h
45908 }; 46969 };
45909 46970
45910 /* 46971 /*
45911diff -urNp linux-2.6.38.2/include/linux/fs_struct.h linux-2.6.38.2/include/linux/fs_struct.h 46972diff -urNp linux-2.6.38.3/include/linux/fs_struct.h linux-2.6.38.3/include/linux/fs_struct.h
45912--- linux-2.6.38.2/include/linux/fs_struct.h 2011-03-14 21:20:32.000000000 -0400 46973--- linux-2.6.38.3/include/linux/fs_struct.h 2011-03-14 21:20:32.000000000 -0400
45913+++ linux-2.6.38.2/include/linux/fs_struct.h 2011-03-21 18:31:35.000000000 -0400 46974+++ linux-2.6.38.3/include/linux/fs_struct.h 2011-04-17 15:57:32.000000000 -0400
45914@@ -6,7 +6,7 @@ 46975@@ -6,7 +6,7 @@
45915 #include <linux/seqlock.h> 46976 #include <linux/seqlock.h>
45916 46977
@@ -45920,9 +46981,9 @@ diff -urNp linux-2.6.38.2/include/linux/fs_struct.h linux-2.6.38.2/include/linux
45920 spinlock_t lock; 46981 spinlock_t lock;
45921 seqcount_t seq; 46982 seqcount_t seq;
45922 int umask; 46983 int umask;
45923diff -urNp linux-2.6.38.2/include/linux/genhd.h linux-2.6.38.2/include/linux/genhd.h 46984diff -urNp linux-2.6.38.3/include/linux/genhd.h linux-2.6.38.3/include/linux/genhd.h
45924--- linux-2.6.38.2/include/linux/genhd.h 2011-03-14 21:20:32.000000000 -0400 46985--- linux-2.6.38.3/include/linux/genhd.h 2011-03-14 21:20:32.000000000 -0400
45925+++ linux-2.6.38.2/include/linux/genhd.h 2011-03-21 18:31:35.000000000 -0400 46986+++ linux-2.6.38.3/include/linux/genhd.h 2011-04-17 15:57:32.000000000 -0400
45926@@ -183,7 +183,7 @@ struct gendisk { 46987@@ -183,7 +183,7 @@ struct gendisk {
45927 struct kobject *slave_dir; 46988 struct kobject *slave_dir;
45928 46989
@@ -45932,9 +46993,9 @@ diff -urNp linux-2.6.38.2/include/linux/genhd.h linux-2.6.38.2/include/linux/gen
45932 struct disk_events *ev; 46993 struct disk_events *ev;
45933 #ifdef CONFIG_BLK_DEV_INTEGRITY 46994 #ifdef CONFIG_BLK_DEV_INTEGRITY
45934 struct blk_integrity *integrity; 46995 struct blk_integrity *integrity;
45935diff -urNp linux-2.6.38.2/include/linux/gracl.h linux-2.6.38.2/include/linux/gracl.h 46996diff -urNp linux-2.6.38.3/include/linux/gracl.h linux-2.6.38.3/include/linux/gracl.h
45936--- linux-2.6.38.2/include/linux/gracl.h 1969-12-31 19:00:00.000000000 -0500 46997--- linux-2.6.38.3/include/linux/gracl.h 1969-12-31 19:00:00.000000000 -0500
45937+++ linux-2.6.38.2/include/linux/gracl.h 2011-03-26 14:27:27.000000000 -0400 46998+++ linux-2.6.38.3/include/linux/gracl.h 2011-04-17 15:57:32.000000000 -0400
45938@@ -0,0 +1,317 @@ 46999@@ -0,0 +1,317 @@
45939+#ifndef GR_ACL_H 47000+#ifndef GR_ACL_H
45940+#define GR_ACL_H 47001+#define GR_ACL_H
@@ -46253,9 +47314,9 @@ diff -urNp linux-2.6.38.2/include/linux/gracl.h linux-2.6.38.2/include/linux/gra
46253+ 47314+
46254+#endif 47315+#endif
46255+ 47316+
46256diff -urNp linux-2.6.38.2/include/linux/gralloc.h linux-2.6.38.2/include/linux/gralloc.h 47317diff -urNp linux-2.6.38.3/include/linux/gralloc.h linux-2.6.38.3/include/linux/gralloc.h
46257--- linux-2.6.38.2/include/linux/gralloc.h 1969-12-31 19:00:00.000000000 -0500 47318--- linux-2.6.38.3/include/linux/gralloc.h 1969-12-31 19:00:00.000000000 -0500
46258+++ linux-2.6.38.2/include/linux/gralloc.h 2011-03-21 18:31:35.000000000 -0400 47319+++ linux-2.6.38.3/include/linux/gralloc.h 2011-04-17 15:57:32.000000000 -0400
46259@@ -0,0 +1,9 @@ 47320@@ -0,0 +1,9 @@
46260+#ifndef __GRALLOC_H 47321+#ifndef __GRALLOC_H
46261+#define __GRALLOC_H 47322+#define __GRALLOC_H
@@ -46266,9 +47327,9 @@ diff -urNp linux-2.6.38.2/include/linux/gralloc.h linux-2.6.38.2/include/linux/g
46266+void *acl_alloc_num(unsigned long num, unsigned long len); 47327+void *acl_alloc_num(unsigned long num, unsigned long len);
46267+ 47328+
46268+#endif 47329+#endif
46269diff -urNp linux-2.6.38.2/include/linux/grdefs.h linux-2.6.38.2/include/linux/grdefs.h 47330diff -urNp linux-2.6.38.3/include/linux/grdefs.h linux-2.6.38.3/include/linux/grdefs.h
46270--- linux-2.6.38.2/include/linux/grdefs.h 1969-12-31 19:00:00.000000000 -0500 47331--- linux-2.6.38.3/include/linux/grdefs.h 1969-12-31 19:00:00.000000000 -0500
46271+++ linux-2.6.38.2/include/linux/grdefs.h 2011-03-26 16:39:14.000000000 -0400 47332+++ linux-2.6.38.3/include/linux/grdefs.h 2011-04-17 15:57:32.000000000 -0400
46272@@ -0,0 +1,139 @@ 47333@@ -0,0 +1,139 @@
46273+#ifndef GRDEFS_H 47334+#ifndef GRDEFS_H
46274+#define GRDEFS_H 47335+#define GRDEFS_H
@@ -46409,10 +47470,10 @@ diff -urNp linux-2.6.38.2/include/linux/grdefs.h linux-2.6.38.2/include/linux/gr
46409+}; 47470+};
46410+ 47471+
46411+#endif 47472+#endif
46412diff -urNp linux-2.6.38.2/include/linux/grinternal.h linux-2.6.38.2/include/linux/grinternal.h 47473diff -urNp linux-2.6.38.3/include/linux/grinternal.h linux-2.6.38.3/include/linux/grinternal.h
46413--- linux-2.6.38.2/include/linux/grinternal.h 1969-12-31 19:00:00.000000000 -0500 47474--- linux-2.6.38.3/include/linux/grinternal.h 1969-12-31 19:00:00.000000000 -0500
46414+++ linux-2.6.38.2/include/linux/grinternal.h 2011-03-26 16:51:07.000000000 -0400 47475+++ linux-2.6.38.3/include/linux/grinternal.h 2011-04-17 15:57:32.000000000 -0400
46415@@ -0,0 +1,217 @@ 47476@@ -0,0 +1,219 @@
46416+#ifndef __GRINTERNAL_H 47477+#ifndef __GRINTERNAL_H
46417+#define __GRINTERNAL_H 47478+#define __GRINTERNAL_H
46418+ 47479+
@@ -46569,6 +47630,7 @@ diff -urNp linux-2.6.38.2/include/linux/grinternal.h linux-2.6.38.2/include/linu
46569+ GR_STR_INT, 47630+ GR_STR_INT,
46570+ GR_TWO_STR_INT, 47631+ GR_TWO_STR_INT,
46571+ GR_TWO_INT, 47632+ GR_TWO_INT,
47633+ GR_TWO_U64,
46572+ GR_THREE_INT, 47634+ GR_THREE_INT,
46573+ GR_FIVE_INT_TWO_STR, 47635+ GR_FIVE_INT_TWO_STR,
46574+ GR_TWO_STR, 47636+ GR_TWO_STR,
@@ -46604,6 +47666,7 @@ diff -urNp linux-2.6.38.2/include/linux/grinternal.h linux-2.6.38.2/include/linu
46604+#define gr_log_str(audit, msg, str) gr_log_varargs(audit, msg, GR_ONE_STR, str) 47666+#define gr_log_str(audit, msg, str) gr_log_varargs(audit, msg, GR_ONE_STR, str)
46605+#define gr_log_str_int(audit, msg, str, num) gr_log_varargs(audit, msg, GR_STR_INT, str, num) 47667+#define gr_log_str_int(audit, msg, str, num) gr_log_varargs(audit, msg, GR_STR_INT, str, num)
46606+#define gr_log_int_int(audit, msg, num1, num2) gr_log_varargs(audit, msg, GR_TWO_INT, num1, num2) 47668+#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)
46607+#define gr_log_int3(audit, msg, num1, num2, num3) gr_log_varargs(audit, msg, GR_THREE_INT, num1, num2, num3) 47670+#define gr_log_int3(audit, msg, num1, num2, num3) gr_log_varargs(audit, msg, GR_THREE_INT, num1, num2, num3)
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) 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)
46609+#define gr_log_str_str(audit, msg, str1, str2) gr_log_varargs(audit, msg, GR_TWO_STR, str1, str2) 47672+#define gr_log_str_str(audit, msg, str1, str2) gr_log_varargs(audit, msg, GR_TWO_STR, str1, str2)
@@ -46630,10 +47693,10 @@ diff -urNp linux-2.6.38.2/include/linux/grinternal.h linux-2.6.38.2/include/linu
46630+#endif 47693+#endif
46631+ 47694+
46632+#endif 47695+#endif
46633diff -urNp linux-2.6.38.2/include/linux/grmsg.h linux-2.6.38.2/include/linux/grmsg.h 47696diff -urNp linux-2.6.38.3/include/linux/grmsg.h linux-2.6.38.3/include/linux/grmsg.h
46634--- linux-2.6.38.2/include/linux/grmsg.h 1969-12-31 19:00:00.000000000 -0500 47697--- linux-2.6.38.3/include/linux/grmsg.h 1969-12-31 19:00:00.000000000 -0500
46635+++ linux-2.6.38.2/include/linux/grmsg.h 2011-03-26 16:52:08.000000000 -0400 47698+++ linux-2.6.38.3/include/linux/grmsg.h 2011-04-17 15:57:32.000000000 -0400
46636@@ -0,0 +1,112 @@ 47699@@ -0,0 +1,108 @@
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" 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"
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" 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"
46639+#define GR_PTRACE_ACL_MSG "denied ptrace of %.950s(%.16s:%d) by " 47702+#define GR_PTRACE_ACL_MSG "denied ptrace of %.950s(%.16s:%d) by "
@@ -46645,10 +47708,7 @@ diff -urNp linux-2.6.38.2/include/linux/grmsg.h linux-2.6.38.2/include/linux/grm
46645+#define GR_SHMAT_ACL_MSG "denied attach of shared memory of UID %u, PID %d, ID %u by " 47708+#define GR_SHMAT_ACL_MSG "denied attach of shared memory of UID %u, PID %d, ID %u by "
46646+#define GR_UNIX_CHROOT_MSG "denied connect() to abstract AF_UNIX socket outside of chroot by " 47709+#define GR_UNIX_CHROOT_MSG "denied connect() to abstract AF_UNIX socket outside of chroot by "
46647+#define GR_SHMAT_CHROOT_MSG "denied attach of shared memory outside of chroot by " 47710+#define GR_SHMAT_CHROOT_MSG "denied attach of shared memory outside of chroot by "
46648+#define GR_KMEM_MSG "denied write of /dev/kmem by " 47711+#define GR_MEM_READWRITE_MSG "denied access of range %Lx -> %Lx in /dev/mem 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 "
46652+#define GR_SYMLINK_MSG "not following symlink %.950s owned by %d.%d by " 47712+#define GR_SYMLINK_MSG "not following symlink %.950s owned by %d.%d by "
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" 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"
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" 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"
@@ -46742,14 +47802,13 @@ diff -urNp linux-2.6.38.2/include/linux/grmsg.h linux-2.6.38.2/include/linux/grm
46742+#define GR_RWXMMAP_MSG "denied RWX mmap of %.950s by " 47802+#define GR_RWXMMAP_MSG "denied RWX mmap of %.950s by "
46743+#define GR_RWXMPROTECT_MSG "denied RWX mprotect of %.950s by " 47803+#define GR_RWXMPROTECT_MSG "denied RWX mprotect of %.950s by "
46744+#define GR_TEXTREL_AUDIT_MSG "text relocation in %s, VMA:0x%08lx 0x%08lx by " 47804+#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 "
46746+#define GR_VM86_MSG "denied use of vm86 by " 47805+#define GR_VM86_MSG "denied use of vm86 by "
46747+#define GR_PTRACE_AUDIT_MSG "process %.950s(%.16s:%d) attached to via ptrace by " 47806+#define GR_PTRACE_AUDIT_MSG "process %.950s(%.16s:%d) attached to via ptrace by "
46748+#define GR_INIT_TRANSFER_MSG "persistent special role transferred privilege to init by " 47807+#define GR_INIT_TRANSFER_MSG "persistent special role transferred privilege to init by "
46749diff -urNp linux-2.6.38.2/include/linux/grsecurity.h linux-2.6.38.2/include/linux/grsecurity.h 47808diff -urNp linux-2.6.38.3/include/linux/grsecurity.h linux-2.6.38.3/include/linux/grsecurity.h
46750--- linux-2.6.38.2/include/linux/grsecurity.h 1969-12-31 19:00:00.000000000 -0500 47809--- linux-2.6.38.3/include/linux/grsecurity.h 1969-12-31 19:00:00.000000000 -0500
46751+++ linux-2.6.38.2/include/linux/grsecurity.h 2011-03-26 19:58:41.000000000 -0400 47810+++ linux-2.6.38.3/include/linux/grsecurity.h 2011-04-17 15:57:32.000000000 -0400
46752@@ -0,0 +1,215 @@ 47811@@ -0,0 +1,212 @@
46753+#ifndef GR_SECURITY_H 47812+#ifndef GR_SECURITY_H
46754+#define GR_SECURITY_H 47813+#define GR_SECURITY_H
46755+#include <linux/fs.h> 47814+#include <linux/fs.h>
@@ -46775,8 +47834,10 @@ diff -urNp linux-2.6.38.2/include/linux/grsecurity.h linux-2.6.38.2/include/linu
46775+#error "CONFIG_PAX enabled, but no PaX options are enabled." 47834+#error "CONFIG_PAX enabled, but no PaX options are enabled."
46776+#endif 47835+#endif
46777+ 47836+
46778+void gr_handle_brute_attach(struct task_struct *p); 47837+void gr_handle_brute_attach(struct task_struct *p, unsigned long mm_flags);
46779+void gr_handle_brute_check(void); 47838+void gr_handle_brute_check(void);
47839+void gr_handle_kernel_exploit(void);
47840+int gr_process_user_ban(void);
46780+ 47841+
46781+char gr_roletype_to_char(void); 47842+char gr_roletype_to_char(void);
46782+ 47843+
@@ -46952,22 +48013,17 @@ diff -urNp linux-2.6.38.2/include/linux/grsecurity.h linux-2.6.38.2/include/linu
46952+ 48013+
46953+#ifdef CONFIG_GRKERNSEC 48014+#ifdef CONFIG_GRKERNSEC
46954+void task_grsec_rbac(struct seq_file *m, struct task_struct *p); 48015+void task_grsec_rbac(struct seq_file *m, struct task_struct *p);
46955+void gr_log_nonroot_mod_load(const char *modname);
46956+void gr_handle_vm86(void); 48016+void gr_handle_vm86(void);
46957+void gr_handle_mem_write(void); 48017+void gr_handle_mem_readwrite(u64 from, u64 to);
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);
46962+ 48018+
46963+extern int grsec_enable_dmesg; 48019+extern int grsec_enable_dmesg;
46964+extern int grsec_disable_privio; 48020+extern int grsec_disable_privio;
46965+#endif 48021+#endif
46966+ 48022+
46967+#endif 48023+#endif
46968diff -urNp linux-2.6.38.2/include/linux/grsock.h linux-2.6.38.2/include/linux/grsock.h 48024diff -urNp linux-2.6.38.3/include/linux/grsock.h linux-2.6.38.3/include/linux/grsock.h
46969--- linux-2.6.38.2/include/linux/grsock.h 1969-12-31 19:00:00.000000000 -0500 48025--- linux-2.6.38.3/include/linux/grsock.h 1969-12-31 19:00:00.000000000 -0500
46970+++ linux-2.6.38.2/include/linux/grsock.h 2011-03-21 18:31:35.000000000 -0400 48026+++ linux-2.6.38.3/include/linux/grsock.h 2011-04-17 15:57:32.000000000 -0400
46971@@ -0,0 +1,19 @@ 48027@@ -0,0 +1,19 @@
46972+#ifndef __GRSOCK_H 48028+#ifndef __GRSOCK_H
46973+#define __GRSOCK_H 48029+#define __GRSOCK_H
@@ -46988,9 +48044,9 @@ diff -urNp linux-2.6.38.2/include/linux/grsock.h linux-2.6.38.2/include/linux/gr
46988+ const int protocol); 48044+ const int protocol);
46989+ 48045+
46990+#endif 48046+#endif
46991diff -urNp linux-2.6.38.2/include/linux/highmem.h linux-2.6.38.2/include/linux/highmem.h 48047diff -urNp linux-2.6.38.3/include/linux/highmem.h linux-2.6.38.3/include/linux/highmem.h
46992--- linux-2.6.38.2/include/linux/highmem.h 2011-03-14 21:20:32.000000000 -0400 48048--- linux-2.6.38.3/include/linux/highmem.h 2011-03-14 21:20:32.000000000 -0400
46993+++ linux-2.6.38.2/include/linux/highmem.h 2011-03-21 18:31:35.000000000 -0400 48049+++ linux-2.6.38.3/include/linux/highmem.h 2011-04-17 15:57:32.000000000 -0400
46994@@ -185,6 +185,18 @@ static inline void clear_highpage(struct 48050@@ -185,6 +185,18 @@ static inline void clear_highpage(struct
46995 kunmap_atomic(kaddr, KM_USER0); 48051 kunmap_atomic(kaddr, KM_USER0);
46996 } 48052 }
@@ -47010,9 +48066,9 @@ diff -urNp linux-2.6.38.2/include/linux/highmem.h linux-2.6.38.2/include/linux/h
47010 static inline void zero_user_segments(struct page *page, 48066 static inline void zero_user_segments(struct page *page,
47011 unsigned start1, unsigned end1, 48067 unsigned start1, unsigned end1,
47012 unsigned start2, unsigned end2) 48068 unsigned start2, unsigned end2)
47013diff -urNp linux-2.6.38.2/include/linux/init.h linux-2.6.38.2/include/linux/init.h 48069diff -urNp linux-2.6.38.3/include/linux/init.h linux-2.6.38.3/include/linux/init.h
47014--- linux-2.6.38.2/include/linux/init.h 2011-03-14 21:20:32.000000000 -0400 48070--- linux-2.6.38.3/include/linux/init.h 2011-03-14 21:20:32.000000000 -0400
47015+++ linux-2.6.38.2/include/linux/init.h 2011-03-21 18:31:35.000000000 -0400 48071+++ linux-2.6.38.3/include/linux/init.h 2011-04-17 15:57:32.000000000 -0400
47016@@ -293,13 +293,13 @@ void __init parse_early_options(char *cm 48072@@ -293,13 +293,13 @@ void __init parse_early_options(char *cm
47017 48073
47018 /* Each module must use one module_init(). */ 48074 /* Each module must use one module_init(). */
@@ -47029,9 +48085,33 @@ diff -urNp linux-2.6.38.2/include/linux/init.h linux-2.6.38.2/include/linux/init
47029 { return exitfn; } \ 48085 { return exitfn; } \
47030 void cleanup_module(void) __attribute__((alias(#exitfn))); 48086 void cleanup_module(void) __attribute__((alias(#exitfn)));
47031 48087
47032diff -urNp linux-2.6.38.2/include/linux/interrupt.h linux-2.6.38.2/include/linux/interrupt.h 48088diff -urNp linux-2.6.38.3/include/linux/init_task.h linux-2.6.38.3/include/linux/init_task.h
47033--- linux-2.6.38.2/include/linux/interrupt.h 2011-03-14 21:20:32.000000000 -0400 48089--- linux-2.6.38.3/include/linux/init_task.h 2011-03-14 21:20:32.000000000 -0400
47034+++ linux-2.6.38.2/include/linux/interrupt.h 2011-03-21 18:31:35.000000000 -0400 48090+++ linux-2.6.38.3/include/linux/init_task.h 2011-04-18 18:02:13.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
47035@@ -393,7 +393,7 @@ enum 48115@@ -393,7 +393,7 @@ enum
47036 /* map softirq index to softirq name. update 'softirq_to_name' in 48116 /* map softirq index to softirq name. update 'softirq_to_name' in
47037 * kernel/softirq.c when adding a new softirq. 48117 * kernel/softirq.c when adding a new softirq.
@@ -47056,9 +48136,9 @@ diff -urNp linux-2.6.38.2/include/linux/interrupt.h linux-2.6.38.2/include/linux
47056 extern void softirq_init(void); 48136 extern void softirq_init(void);
47057 static inline void __raise_softirq_irqoff(unsigned int nr) 48137 static inline void __raise_softirq_irqoff(unsigned int nr)
47058 { 48138 {
47059diff -urNp linux-2.6.38.2/include/linux/jbd2.h linux-2.6.38.2/include/linux/jbd2.h 48139diff -urNp linux-2.6.38.3/include/linux/jbd2.h linux-2.6.38.3/include/linux/jbd2.h
47060--- linux-2.6.38.2/include/linux/jbd2.h 2011-03-14 21:20:32.000000000 -0400 48140--- linux-2.6.38.3/include/linux/jbd2.h 2011-03-14 21:20:32.000000000 -0400
47061+++ linux-2.6.38.2/include/linux/jbd2.h 2011-03-21 18:31:35.000000000 -0400 48141+++ linux-2.6.38.3/include/linux/jbd2.h 2011-04-17 15:57:32.000000000 -0400
47062@@ -67,7 +67,7 @@ extern u8 jbd2_journal_enable_debug; 48142@@ -67,7 +67,7 @@ extern u8 jbd2_journal_enable_debug;
47063 } \ 48143 } \
47064 } while (0) 48144 } while (0)
@@ -47068,9 +48148,9 @@ diff -urNp linux-2.6.38.2/include/linux/jbd2.h linux-2.6.38.2/include/linux/jbd2
47068 #endif 48148 #endif
47069 48149
47070 extern void *jbd2_alloc(size_t size, gfp_t flags); 48150 extern void *jbd2_alloc(size_t size, gfp_t flags);
47071diff -urNp linux-2.6.38.2/include/linux/jbd.h linux-2.6.38.2/include/linux/jbd.h 48151diff -urNp linux-2.6.38.3/include/linux/jbd.h linux-2.6.38.3/include/linux/jbd.h
47072--- linux-2.6.38.2/include/linux/jbd.h 2011-03-14 21:20:32.000000000 -0400 48152--- linux-2.6.38.3/include/linux/jbd.h 2011-03-14 21:20:32.000000000 -0400
47073+++ linux-2.6.38.2/include/linux/jbd.h 2011-03-21 18:31:35.000000000 -0400 48153+++ linux-2.6.38.3/include/linux/jbd.h 2011-04-17 15:57:32.000000000 -0400
47074@@ -67,7 +67,7 @@ extern u8 journal_enable_debug; 48154@@ -67,7 +67,7 @@ extern u8 journal_enable_debug;
47075 } \ 48155 } \
47076 } while (0) 48156 } while (0)
@@ -47080,9 +48160,9 @@ diff -urNp linux-2.6.38.2/include/linux/jbd.h linux-2.6.38.2/include/linux/jbd.h
47080 #endif 48160 #endif
47081 48161
47082 static inline void *jbd_alloc(size_t size, gfp_t flags) 48162 static inline void *jbd_alloc(size_t size, gfp_t flags)
47083diff -urNp linux-2.6.38.2/include/linux/kallsyms.h linux-2.6.38.2/include/linux/kallsyms.h 48163diff -urNp linux-2.6.38.3/include/linux/kallsyms.h linux-2.6.38.3/include/linux/kallsyms.h
47084--- linux-2.6.38.2/include/linux/kallsyms.h 2011-03-14 21:20:32.000000000 -0400 48164--- linux-2.6.38.3/include/linux/kallsyms.h 2011-03-14 21:20:32.000000000 -0400
47085+++ linux-2.6.38.2/include/linux/kallsyms.h 2011-03-21 18:31:35.000000000 -0400 48165+++ linux-2.6.38.3/include/linux/kallsyms.h 2011-04-17 15:57:32.000000000 -0400
47086@@ -15,7 +15,8 @@ 48166@@ -15,7 +15,8 @@
47087 48167
47088 struct module; 48168 struct module;
@@ -47109,9 +48189,9 @@ diff -urNp linux-2.6.38.2/include/linux/kallsyms.h linux-2.6.38.2/include/linux/
47109 48189
47110 /* This macro allows us to keep printk typechecking */ 48190 /* This macro allows us to keep printk typechecking */
47111 static void __check_printsym_format(const char *fmt, ...) 48191 static void __check_printsym_format(const char *fmt, ...)
47112diff -urNp linux-2.6.38.2/include/linux/kgdb.h linux-2.6.38.2/include/linux/kgdb.h 48192diff -urNp linux-2.6.38.3/include/linux/kgdb.h linux-2.6.38.3/include/linux/kgdb.h
47113--- linux-2.6.38.2/include/linux/kgdb.h 2011-03-14 21:20:32.000000000 -0400 48193--- linux-2.6.38.3/include/linux/kgdb.h 2011-03-14 21:20:32.000000000 -0400
47114+++ linux-2.6.38.2/include/linux/kgdb.h 2011-03-21 18:31:35.000000000 -0400 48194+++ linux-2.6.38.3/include/linux/kgdb.h 2011-04-17 15:57:32.000000000 -0400
47115@@ -269,22 +269,22 @@ struct kgdb_arch { 48195@@ -269,22 +269,22 @@ struct kgdb_arch {
47116 */ 48196 */
47117 struct kgdb_io { 48197 struct kgdb_io {
@@ -47145,9 +48225,21 @@ diff -urNp linux-2.6.38.2/include/linux/kgdb.h linux-2.6.38.2/include/linux/kgdb
47145 48225
47146 extern int kgdb_hex2long(char **ptr, unsigned long *long_val); 48226 extern int kgdb_hex2long(char **ptr, unsigned long *long_val);
47147 extern char *kgdb_mem2hex(char *mem, char *buf, int count); 48227 extern char *kgdb_mem2hex(char *mem, char *buf, int count);
47148diff -urNp linux-2.6.38.2/include/linux/kvm_host.h linux-2.6.38.2/include/linux/kvm_host.h 48228diff -urNp linux-2.6.38.3/include/linux/kmod.h linux-2.6.38.3/include/linux/kmod.h
47149--- linux-2.6.38.2/include/linux/kvm_host.h 2011-03-14 21:20:32.000000000 -0400 48229--- linux-2.6.38.3/include/linux/kmod.h 2011-03-14 21:20:32.000000000 -0400
47150+++ linux-2.6.38.2/include/linux/kvm_host.h 2011-03-21 18:31:35.000000000 -0400 48230+++ linux-2.6.38.3/include/linux/kmod.h 2011-04-17 15:57:32.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
47151@@ -288,7 +288,7 @@ void kvm_vcpu_uninit(struct kvm_vcpu *vc 48243@@ -288,7 +288,7 @@ void kvm_vcpu_uninit(struct kvm_vcpu *vc
47152 void vcpu_load(struct kvm_vcpu *vcpu); 48244 void vcpu_load(struct kvm_vcpu *vcpu);
47153 void vcpu_put(struct kvm_vcpu *vcpu); 48245 void vcpu_put(struct kvm_vcpu *vcpu);
@@ -47166,9 +48258,9 @@ diff -urNp linux-2.6.38.2/include/linux/kvm_host.h linux-2.6.38.2/include/linux/
47166 void kvm_arch_exit(void); 48258 void kvm_arch_exit(void);
47167 48259
47168 int kvm_arch_vcpu_init(struct kvm_vcpu *vcpu); 48260 int kvm_arch_vcpu_init(struct kvm_vcpu *vcpu);
47169diff -urNp linux-2.6.38.2/include/linux/libata.h linux-2.6.38.2/include/linux/libata.h 48261diff -urNp linux-2.6.38.3/include/linux/libata.h linux-2.6.38.3/include/linux/libata.h
47170--- linux-2.6.38.2/include/linux/libata.h 2011-03-14 21:20:32.000000000 -0400 48262--- linux-2.6.38.3/include/linux/libata.h 2011-03-14 21:20:32.000000000 -0400
47171+++ linux-2.6.38.2/include/linux/libata.h 2011-03-21 18:31:35.000000000 -0400 48263+++ linux-2.6.38.3/include/linux/libata.h 2011-04-17 15:57:32.000000000 -0400
47172@@ -65,11 +65,11 @@ 48264@@ -65,11 +65,11 @@
47173 #ifdef ATA_VERBOSE_DEBUG 48265 #ifdef ATA_VERBOSE_DEBUG
47174 #define VPRINTK(fmt, args...) printk(KERN_ERR "%s: " fmt, __func__, ## args) 48266 #define VPRINTK(fmt, args...) printk(KERN_ERR "%s: " fmt, __func__, ## args)
@@ -47234,9 +48326,9 @@ diff -urNp linux-2.6.38.2/include/linux/libata.h linux-2.6.38.2/include/linux/li
47234 extern int ata_scsi_detect(struct scsi_host_template *sht); 48326 extern int ata_scsi_detect(struct scsi_host_template *sht);
47235 extern int ata_scsi_ioctl(struct scsi_device *dev, int cmd, void __user *arg); 48327 extern int ata_scsi_ioctl(struct scsi_device *dev, int cmd, void __user *arg);
47236 extern int ata_scsi_queuecmd(struct Scsi_Host *h, struct scsi_cmnd *cmd); 48328 extern int ata_scsi_queuecmd(struct Scsi_Host *h, struct scsi_cmnd *cmd);
47237diff -urNp linux-2.6.38.2/include/linux/lockd/bind.h linux-2.6.38.2/include/linux/lockd/bind.h 48329diff -urNp linux-2.6.38.3/include/linux/lockd/bind.h linux-2.6.38.3/include/linux/lockd/bind.h
47238--- linux-2.6.38.2/include/linux/lockd/bind.h 2011-03-14 21:20:32.000000000 -0400 48330--- linux-2.6.38.3/include/linux/lockd/bind.h 2011-03-14 21:20:32.000000000 -0400
47239+++ linux-2.6.38.2/include/linux/lockd/bind.h 2011-03-21 18:31:35.000000000 -0400 48331+++ linux-2.6.38.3/include/linux/lockd/bind.h 2011-04-17 15:57:32.000000000 -0400
47240@@ -23,13 +23,13 @@ struct svc_rqst; 48332@@ -23,13 +23,13 @@ struct svc_rqst;
47241 * This is the set of functions for lockd->nfsd communication 48333 * This is the set of functions for lockd->nfsd communication
47242 */ 48334 */
@@ -47254,9 +48346,9 @@ diff -urNp linux-2.6.38.2/include/linux/lockd/bind.h linux-2.6.38.2/include/linu
47254 48346
47255 /* 48347 /*
47256 * Similar to nfs_client_initdata, but without the NFS-specific 48348 * Similar to nfs_client_initdata, but without the NFS-specific
47257diff -urNp linux-2.6.38.2/include/linux/mm.h linux-2.6.38.2/include/linux/mm.h 48349diff -urNp linux-2.6.38.3/include/linux/mm.h linux-2.6.38.3/include/linux/mm.h
47258--- linux-2.6.38.2/include/linux/mm.h 2011-03-28 17:42:40.000000000 -0400 48350--- linux-2.6.38.3/include/linux/mm.h 2011-04-18 17:27:16.000000000 -0400
47259+++ linux-2.6.38.2/include/linux/mm.h 2011-03-28 17:42:53.000000000 -0400 48351+++ linux-2.6.38.3/include/linux/mm.h 2011-04-17 15:57:32.000000000 -0400
47260@@ -113,7 +113,14 @@ extern unsigned int kobjsize(const void 48352@@ -113,7 +113,14 @@ extern unsigned int kobjsize(const void
47261 48353
47262 #define VM_CAN_NONLINEAR 0x08000000 /* Has ->fault & does nonlinear pages */ 48354 #define VM_CAN_NONLINEAR 0x08000000 /* Has ->fault & does nonlinear pages */
@@ -47357,9 +48449,9 @@ diff -urNp linux-2.6.38.2/include/linux/mm.h linux-2.6.38.2/include/linux/mm.h
47357+ 48449+
47358 #endif /* __KERNEL__ */ 48450 #endif /* __KERNEL__ */
47359 #endif /* _LINUX_MM_H */ 48451 #endif /* _LINUX_MM_H */
47360diff -urNp linux-2.6.38.2/include/linux/mm_types.h linux-2.6.38.2/include/linux/mm_types.h 48452diff -urNp linux-2.6.38.3/include/linux/mm_types.h linux-2.6.38.3/include/linux/mm_types.h
47361--- linux-2.6.38.2/include/linux/mm_types.h 2011-03-14 21:20:32.000000000 -0400 48453--- linux-2.6.38.3/include/linux/mm_types.h 2011-03-14 21:20:32.000000000 -0400
47362+++ linux-2.6.38.2/include/linux/mm_types.h 2011-03-21 18:31:35.000000000 -0400 48454+++ linux-2.6.38.3/include/linux/mm_types.h 2011-04-17 15:57:32.000000000 -0400
47363@@ -183,6 +183,8 @@ struct vm_area_struct { 48455@@ -183,6 +183,8 @@ struct vm_area_struct {
47364 #ifdef CONFIG_NUMA 48456 #ifdef CONFIG_NUMA
47365 struct mempolicy *vm_policy; /* NUMA policy for the VMA */ 48457 struct mempolicy *vm_policy; /* NUMA policy for the VMA */
@@ -47394,9 +48486,9 @@ diff -urNp linux-2.6.38.2/include/linux/mm_types.h linux-2.6.38.2/include/linux/
47394 }; 48486 };
47395 48487
47396 /* Future-safe accessor for struct mm_struct's cpu_vm_mask. */ 48488 /* Future-safe accessor for struct mm_struct's cpu_vm_mask. */
47397diff -urNp linux-2.6.38.2/include/linux/mmu_notifier.h linux-2.6.38.2/include/linux/mmu_notifier.h 48489diff -urNp linux-2.6.38.3/include/linux/mmu_notifier.h linux-2.6.38.3/include/linux/mmu_notifier.h
47398--- linux-2.6.38.2/include/linux/mmu_notifier.h 2011-03-14 21:20:32.000000000 -0400 48490--- linux-2.6.38.3/include/linux/mmu_notifier.h 2011-03-14 21:20:32.000000000 -0400
47399+++ linux-2.6.38.2/include/linux/mmu_notifier.h 2011-03-21 18:31:35.000000000 -0400 48491+++ linux-2.6.38.3/include/linux/mmu_notifier.h 2011-04-17 15:57:32.000000000 -0400
47400@@ -255,12 +255,12 @@ static inline void mmu_notifier_mm_destr 48492@@ -255,12 +255,12 @@ static inline void mmu_notifier_mm_destr
47401 */ 48493 */
47402 #define ptep_clear_flush_notify(__vma, __address, __ptep) \ 48494 #define ptep_clear_flush_notify(__vma, __address, __ptep) \
@@ -47413,9 +48505,9 @@ diff -urNp linux-2.6.38.2/include/linux/mmu_notifier.h linux-2.6.38.2/include/li
47413 }) 48505 })
47414 48506
47415 #define pmdp_clear_flush_notify(__vma, __address, __pmdp) \ 48507 #define pmdp_clear_flush_notify(__vma, __address, __pmdp) \
47416diff -urNp linux-2.6.38.2/include/linux/mmzone.h linux-2.6.38.2/include/linux/mmzone.h 48508diff -urNp linux-2.6.38.3/include/linux/mmzone.h linux-2.6.38.3/include/linux/mmzone.h
47417--- linux-2.6.38.2/include/linux/mmzone.h 2011-03-14 21:20:32.000000000 -0400 48509--- linux-2.6.38.3/include/linux/mmzone.h 2011-03-14 21:20:32.000000000 -0400
47418+++ linux-2.6.38.2/include/linux/mmzone.h 2011-03-21 18:31:35.000000000 -0400 48510+++ linux-2.6.38.3/include/linux/mmzone.h 2011-04-17 15:57:32.000000000 -0400
47419@@ -355,7 +355,7 @@ struct zone { 48511@@ -355,7 +355,7 @@ struct zone {
47420 unsigned long flags; /* zone flags, see below */ 48512 unsigned long flags; /* zone flags, see below */
47421 48513
@@ -47425,9 +48517,9 @@ diff -urNp linux-2.6.38.2/include/linux/mmzone.h linux-2.6.38.2/include/linux/mm
47425 48517
47426 /* 48518 /*
47427 * The target ratio of ACTIVE_ANON to INACTIVE_ANON pages on 48519 * The target ratio of ACTIVE_ANON to INACTIVE_ANON pages on
47428diff -urNp linux-2.6.38.2/include/linux/mod_devicetable.h linux-2.6.38.2/include/linux/mod_devicetable.h 48520diff -urNp linux-2.6.38.3/include/linux/mod_devicetable.h linux-2.6.38.3/include/linux/mod_devicetable.h
47429--- linux-2.6.38.2/include/linux/mod_devicetable.h 2011-03-14 21:20:32.000000000 -0400 48521--- linux-2.6.38.3/include/linux/mod_devicetable.h 2011-03-14 21:20:32.000000000 -0400
47430+++ linux-2.6.38.2/include/linux/mod_devicetable.h 2011-03-21 18:31:35.000000000 -0400 48522+++ linux-2.6.38.3/include/linux/mod_devicetable.h 2011-04-17 15:57:32.000000000 -0400
47431@@ -12,7 +12,7 @@ 48523@@ -12,7 +12,7 @@
47432 typedef unsigned long kernel_ulong_t; 48524 typedef unsigned long kernel_ulong_t;
47433 #endif 48525 #endif
@@ -47446,9 +48538,9 @@ diff -urNp linux-2.6.38.2/include/linux/mod_devicetable.h linux-2.6.38.2/include
47446 48538
47447 struct hid_device_id { 48539 struct hid_device_id {
47448 __u16 bus; 48540 __u16 bus;
47449diff -urNp linux-2.6.38.2/include/linux/module.h linux-2.6.38.2/include/linux/module.h 48541diff -urNp linux-2.6.38.3/include/linux/module.h linux-2.6.38.3/include/linux/module.h
47450--- linux-2.6.38.2/include/linux/module.h 2011-03-14 21:20:32.000000000 -0400 48542--- linux-2.6.38.3/include/linux/module.h 2011-03-14 21:20:32.000000000 -0400
47451+++ linux-2.6.38.2/include/linux/module.h 2011-03-21 18:31:35.000000000 -0400 48543+++ linux-2.6.38.3/include/linux/module.h 2011-04-17 15:57:32.000000000 -0400
47452@@ -324,19 +324,16 @@ struct module 48544@@ -324,19 +324,16 @@ struct module
47453 int (*init)(void); 48545 int (*init)(void);
47454 48546
@@ -47524,9 +48616,9 @@ diff -urNp linux-2.6.38.2/include/linux/module.h linux-2.6.38.2/include/linux/mo
47524 } 48616 }
47525 48617
47526 /* Search for module by name: must hold module_mutex. */ 48618 /* Search for module by name: must hold module_mutex. */
47527diff -urNp linux-2.6.38.2/include/linux/moduleloader.h linux-2.6.38.2/include/linux/moduleloader.h 48619diff -urNp linux-2.6.38.3/include/linux/moduleloader.h linux-2.6.38.3/include/linux/moduleloader.h
47528--- linux-2.6.38.2/include/linux/moduleloader.h 2011-03-14 21:20:32.000000000 -0400 48620--- linux-2.6.38.3/include/linux/moduleloader.h 2011-03-14 21:20:32.000000000 -0400
47529+++ linux-2.6.38.2/include/linux/moduleloader.h 2011-03-21 18:31:35.000000000 -0400 48621+++ linux-2.6.38.3/include/linux/moduleloader.h 2011-04-17 15:57:32.000000000 -0400
47530@@ -20,9 +20,21 @@ unsigned int arch_mod_section_prepend(st 48622@@ -20,9 +20,21 @@ unsigned int arch_mod_section_prepend(st
47531 sections. Returns NULL on failure. */ 48623 sections. Returns NULL on failure. */
47532 void *module_alloc(unsigned long size); 48624 void *module_alloc(unsigned long size);
@@ -47549,9 +48641,9 @@ diff -urNp linux-2.6.38.2/include/linux/moduleloader.h linux-2.6.38.2/include/li
47549 /* Apply the given relocation to the (simplified) ELF. Return -error 48641 /* Apply the given relocation to the (simplified) ELF. Return -error
47550 or 0. */ 48642 or 0. */
47551 int apply_relocate(Elf_Shdr *sechdrs, 48643 int apply_relocate(Elf_Shdr *sechdrs,
47552diff -urNp linux-2.6.38.2/include/linux/moduleparam.h linux-2.6.38.2/include/linux/moduleparam.h 48644diff -urNp linux-2.6.38.3/include/linux/moduleparam.h linux-2.6.38.3/include/linux/moduleparam.h
47553--- linux-2.6.38.2/include/linux/moduleparam.h 2011-03-14 21:20:32.000000000 -0400 48645--- linux-2.6.38.3/include/linux/moduleparam.h 2011-03-14 21:20:32.000000000 -0400
47554+++ linux-2.6.38.2/include/linux/moduleparam.h 2011-03-21 18:31:35.000000000 -0400 48646+++ linux-2.6.38.3/include/linux/moduleparam.h 2011-04-17 15:57:32.000000000 -0400
47555@@ -255,7 +255,7 @@ static inline void __kernel_param_unlock 48647@@ -255,7 +255,7 @@ static inline void __kernel_param_unlock
47556 * @len is usually just sizeof(string). 48648 * @len is usually just sizeof(string).
47557 */ 48649 */
@@ -47570,9 +48662,21 @@ diff -urNp linux-2.6.38.2/include/linux/moduleparam.h linux-2.6.38.2/include/lin
47570 = { ARRAY_SIZE(array), nump, &param_ops_##type, \ 48662 = { ARRAY_SIZE(array), nump, &param_ops_##type, \
47571 sizeof(array[0]), array }; \ 48663 sizeof(array[0]), array }; \
47572 __module_param_call(MODULE_PARAM_PREFIX, name, \ 48664 __module_param_call(MODULE_PARAM_PREFIX, name, \
47573diff -urNp linux-2.6.38.2/include/linux/namei.h linux-2.6.38.2/include/linux/namei.h 48665diff -urNp linux-2.6.38.3/include/linux/mutex.h linux-2.6.38.3/include/linux/mutex.h
47574--- linux-2.6.38.2/include/linux/namei.h 2011-03-14 21:20:32.000000000 -0400 48666--- linux-2.6.38.3/include/linux/mutex.h 2011-03-14 21:20:32.000000000 -0400
47575+++ linux-2.6.38.2/include/linux/namei.h 2011-03-21 18:31:35.000000000 -0400 48667+++ linux-2.6.38.3/include/linux/mutex.h 2011-04-17 17:44:37.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
47576@@ -25,7 +25,7 @@ struct nameidata { 48680@@ -25,7 +25,7 @@ struct nameidata {
47577 unsigned seq; 48681 unsigned seq;
47578 int last_type; 48682 int last_type;
@@ -47597,9 +48701,9 @@ diff -urNp linux-2.6.38.2/include/linux/namei.h linux-2.6.38.2/include/linux/nam
47597 { 48701 {
47598 return nd->saved_names[nd->depth]; 48702 return nd->saved_names[nd->depth];
47599 } 48703 }
47600diff -urNp linux-2.6.38.2/include/linux/netfilter/xt_gradm.h linux-2.6.38.2/include/linux/netfilter/xt_gradm.h 48704diff -urNp linux-2.6.38.3/include/linux/netfilter/xt_gradm.h linux-2.6.38.3/include/linux/netfilter/xt_gradm.h
47601--- linux-2.6.38.2/include/linux/netfilter/xt_gradm.h 1969-12-31 19:00:00.000000000 -0500 48705--- linux-2.6.38.3/include/linux/netfilter/xt_gradm.h 1969-12-31 19:00:00.000000000 -0500
47602+++ linux-2.6.38.2/include/linux/netfilter/xt_gradm.h 2011-03-21 18:31:35.000000000 -0400 48706+++ linux-2.6.38.3/include/linux/netfilter/xt_gradm.h 2011-04-17 15:57:32.000000000 -0400
47603@@ -0,0 +1,9 @@ 48707@@ -0,0 +1,9 @@
47604+#ifndef _LINUX_NETFILTER_XT_GRADM_H 48708+#ifndef _LINUX_NETFILTER_XT_GRADM_H
47605+#define _LINUX_NETFILTER_XT_GRADM_H 1 48709+#define _LINUX_NETFILTER_XT_GRADM_H 1
@@ -47610,9 +48714,9 @@ diff -urNp linux-2.6.38.2/include/linux/netfilter/xt_gradm.h linux-2.6.38.2/incl
47610+}; 48714+};
47611+ 48715+
47612+#endif 48716+#endif
47613diff -urNp linux-2.6.38.2/include/linux/oprofile.h linux-2.6.38.2/include/linux/oprofile.h 48717diff -urNp linux-2.6.38.3/include/linux/oprofile.h linux-2.6.38.3/include/linux/oprofile.h
47614--- linux-2.6.38.2/include/linux/oprofile.h 2011-03-14 21:20:32.000000000 -0400 48718--- linux-2.6.38.3/include/linux/oprofile.h 2011-03-14 21:20:32.000000000 -0400
47615+++ linux-2.6.38.2/include/linux/oprofile.h 2011-03-21 18:31:35.000000000 -0400 48719+++ linux-2.6.38.3/include/linux/oprofile.h 2011-04-17 15:57:32.000000000 -0400
47616@@ -132,9 +132,9 @@ int oprofilefs_create_ulong(struct super 48720@@ -132,9 +132,9 @@ int oprofilefs_create_ulong(struct super
47617 int oprofilefs_create_ro_ulong(struct super_block * sb, struct dentry * root, 48721 int oprofilefs_create_ro_ulong(struct super_block * sb, struct dentry * root,
47618 char const * name, ulong * val); 48722 char const * name, ulong * val);
@@ -47625,9 +48729,21 @@ diff -urNp linux-2.6.38.2/include/linux/oprofile.h linux-2.6.38.2/include/linux/
47625 48729
47626 /** create a directory */ 48730 /** create a directory */
47627 struct dentry * oprofilefs_mkdir(struct super_block * sb, struct dentry * root, 48731 struct dentry * oprofilefs_mkdir(struct super_block * sb, struct dentry * root,
47628diff -urNp linux-2.6.38.2/include/linux/pipe_fs_i.h linux-2.6.38.2/include/linux/pipe_fs_i.h 48732diff -urNp linux-2.6.38.3/include/linux/pid.h linux-2.6.38.3/include/linux/pid.h
47629--- linux-2.6.38.2/include/linux/pipe_fs_i.h 2011-03-14 21:20:32.000000000 -0400 48733--- linux-2.6.38.3/include/linux/pid.h 2011-03-14 21:20:32.000000000 -0400
47630+++ linux-2.6.38.2/include/linux/pipe_fs_i.h 2011-03-21 18:31:35.000000000 -0400 48734+++ linux-2.6.38.3/include/linux/pid.h 2011-04-18 19:21:21.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
47631@@ -46,9 +46,9 @@ struct pipe_buffer { 48747@@ -46,9 +46,9 @@ struct pipe_buffer {
47632 struct pipe_inode_info { 48748 struct pipe_inode_info {
47633 wait_queue_head_t wait; 48749 wait_queue_head_t wait;
@@ -47641,9 +48757,9 @@ diff -urNp linux-2.6.38.2/include/linux/pipe_fs_i.h linux-2.6.38.2/include/linux
47641 unsigned int r_counter; 48757 unsigned int r_counter;
47642 unsigned int w_counter; 48758 unsigned int w_counter;
47643 struct page *tmp_page; 48759 struct page *tmp_page;
47644diff -urNp linux-2.6.38.2/include/linux/pm_runtime.h linux-2.6.38.2/include/linux/pm_runtime.h 48760diff -urNp linux-2.6.38.3/include/linux/pm_runtime.h linux-2.6.38.3/include/linux/pm_runtime.h
47645--- linux-2.6.38.2/include/linux/pm_runtime.h 2011-03-14 21:20:32.000000000 -0400 48761--- linux-2.6.38.3/include/linux/pm_runtime.h 2011-03-14 21:20:32.000000000 -0400
47646+++ linux-2.6.38.2/include/linux/pm_runtime.h 2011-03-21 18:31:35.000000000 -0400 48762+++ linux-2.6.38.3/include/linux/pm_runtime.h 2011-04-17 15:57:32.000000000 -0400
47647@@ -89,7 +89,7 @@ static inline bool pm_runtime_enabled(st 48763@@ -89,7 +89,7 @@ static inline bool pm_runtime_enabled(st
47648 48764
47649 static inline void pm_runtime_mark_last_busy(struct device *dev) 48765 static inline void pm_runtime_mark_last_busy(struct device *dev)
@@ -47653,9 +48769,9 @@ diff -urNp linux-2.6.38.2/include/linux/pm_runtime.h linux-2.6.38.2/include/linu
47653 } 48769 }
47654 48770
47655 #else /* !CONFIG_PM_RUNTIME */ 48771 #else /* !CONFIG_PM_RUNTIME */
47656diff -urNp linux-2.6.38.2/include/linux/poison.h linux-2.6.38.2/include/linux/poison.h 48772diff -urNp linux-2.6.38.3/include/linux/poison.h linux-2.6.38.3/include/linux/poison.h
47657--- linux-2.6.38.2/include/linux/poison.h 2011-03-14 21:20:32.000000000 -0400 48773--- linux-2.6.38.3/include/linux/poison.h 2011-03-14 21:20:32.000000000 -0400
47658+++ linux-2.6.38.2/include/linux/poison.h 2011-03-21 18:31:35.000000000 -0400 48774+++ linux-2.6.38.3/include/linux/poison.h 2011-04-17 15:57:32.000000000 -0400
47659@@ -19,8 +19,8 @@ 48775@@ -19,8 +19,8 @@
47660 * under normal circumstances, used to verify that nobody uses 48776 * under normal circumstances, used to verify that nobody uses
47661 * non-initialized list entries. 48777 * non-initialized list entries.
@@ -47667,9 +48783,9 @@ diff -urNp linux-2.6.38.2/include/linux/poison.h linux-2.6.38.2/include/linux/po
47667 48783
47668 /********** include/linux/timer.h **********/ 48784 /********** include/linux/timer.h **********/
47669 /* 48785 /*
47670diff -urNp linux-2.6.38.2/include/linux/proc_fs.h linux-2.6.38.2/include/linux/proc_fs.h 48786diff -urNp linux-2.6.38.3/include/linux/proc_fs.h linux-2.6.38.3/include/linux/proc_fs.h
47671--- linux-2.6.38.2/include/linux/proc_fs.h 2011-03-14 21:20:32.000000000 -0400 48787--- linux-2.6.38.3/include/linux/proc_fs.h 2011-03-14 21:20:32.000000000 -0400
47672+++ linux-2.6.38.2/include/linux/proc_fs.h 2011-03-21 18:31:35.000000000 -0400 48788+++ linux-2.6.38.3/include/linux/proc_fs.h 2011-04-17 15:57:32.000000000 -0400
47673@@ -155,6 +155,19 @@ static inline struct proc_dir_entry *pro 48789@@ -155,6 +155,19 @@ static inline struct proc_dir_entry *pro
47674 return proc_create_data(name, mode, parent, proc_fops, NULL); 48790 return proc_create_data(name, mode, parent, proc_fops, NULL);
47675 } 48791 }
@@ -47690,9 +48806,9 @@ diff -urNp linux-2.6.38.2/include/linux/proc_fs.h linux-2.6.38.2/include/linux/p
47690 static inline struct proc_dir_entry *create_proc_read_entry(const char *name, 48806 static inline struct proc_dir_entry *create_proc_read_entry(const char *name,
47691 mode_t mode, struct proc_dir_entry *base, 48807 mode_t mode, struct proc_dir_entry *base,
47692 read_proc_t *read_proc, void * data) 48808 read_proc_t *read_proc, void * data)
47693diff -urNp linux-2.6.38.2/include/linux/ptrace.h linux-2.6.38.2/include/linux/ptrace.h 48809diff -urNp linux-2.6.38.3/include/linux/ptrace.h linux-2.6.38.3/include/linux/ptrace.h
47694--- linux-2.6.38.2/include/linux/ptrace.h 2011-03-14 21:20:32.000000000 -0400 48810--- linux-2.6.38.3/include/linux/ptrace.h 2011-03-14 21:20:32.000000000 -0400
47695+++ linux-2.6.38.2/include/linux/ptrace.h 2011-03-26 11:36:13.000000000 -0400 48811+++ linux-2.6.38.3/include/linux/ptrace.h 2011-04-17 15:57:32.000000000 -0400
47696@@ -115,10 +115,10 @@ extern void __ptrace_unlink(struct task_ 48812@@ -115,10 +115,10 @@ extern void __ptrace_unlink(struct task_
47697 extern void exit_ptrace(struct task_struct *tracer); 48813 extern void exit_ptrace(struct task_struct *tracer);
47698 #define PTRACE_MODE_READ 1 48814 #define PTRACE_MODE_READ 1
@@ -47706,9 +48822,9 @@ diff -urNp linux-2.6.38.2/include/linux/ptrace.h linux-2.6.38.2/include/linux/pt
47706 48822
47707 static inline int ptrace_reparented(struct task_struct *child) 48823 static inline int ptrace_reparented(struct task_struct *child)
47708 { 48824 {
47709diff -urNp linux-2.6.38.2/include/linux/random.h linux-2.6.38.2/include/linux/random.h 48825diff -urNp linux-2.6.38.3/include/linux/random.h linux-2.6.38.3/include/linux/random.h
47710--- linux-2.6.38.2/include/linux/random.h 2011-03-14 21:20:32.000000000 -0400 48826--- linux-2.6.38.3/include/linux/random.h 2011-03-14 21:20:32.000000000 -0400
47711+++ linux-2.6.38.2/include/linux/random.h 2011-03-21 18:31:35.000000000 -0400 48827+++ linux-2.6.38.3/include/linux/random.h 2011-04-17 15:57:32.000000000 -0400
47712@@ -80,12 +80,17 @@ void srandom32(u32 seed); 48828@@ -80,12 +80,17 @@ void srandom32(u32 seed);
47713 48829
47714 u32 prandom32(struct rnd_state *); 48830 u32 prandom32(struct rnd_state *);
@@ -47728,9 +48844,9 @@ diff -urNp linux-2.6.38.2/include/linux/random.h linux-2.6.38.2/include/linux/ra
47728 } 48844 }
47729 48845
47730 /** 48846 /**
47731diff -urNp linux-2.6.38.2/include/linux/reiserfs_fs.h linux-2.6.38.2/include/linux/reiserfs_fs.h 48847diff -urNp linux-2.6.38.3/include/linux/reiserfs_fs.h linux-2.6.38.3/include/linux/reiserfs_fs.h
47732--- linux-2.6.38.2/include/linux/reiserfs_fs.h 2011-03-14 21:20:32.000000000 -0400 48848--- linux-2.6.38.3/include/linux/reiserfs_fs.h 2011-03-14 21:20:32.000000000 -0400
47733+++ linux-2.6.38.2/include/linux/reiserfs_fs.h 2011-03-21 18:31:35.000000000 -0400 48849+++ linux-2.6.38.3/include/linux/reiserfs_fs.h 2011-04-17 15:57:32.000000000 -0400
47734@@ -1403,7 +1403,7 @@ static inline loff_t max_reiserfs_offset 48850@@ -1403,7 +1403,7 @@ static inline loff_t max_reiserfs_offset
47735 #define REISERFS_USER_MEM 1 /* reiserfs user memory mode */ 48851 #define REISERFS_USER_MEM 1 /* reiserfs user memory mode */
47736 48852
@@ -47777,9 +48893,9 @@ diff -urNp linux-2.6.38.2/include/linux/reiserfs_fs.h linux-2.6.38.2/include/lin
47777 48893
47778 #define op_bytes_number(ih,bsize) item_ops[le_ih_k_type (ih)]->bytes_number (ih, bsize) 48894 #define op_bytes_number(ih,bsize) item_ops[le_ih_k_type (ih)]->bytes_number (ih, 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) 48895 #define op_is_left_mergeable(key,bsize) item_ops[le_key_k_type (le_key_version (key), key)]->is_left_mergeable (key, bsize)
47780diff -urNp linux-2.6.38.2/include/linux/reiserfs_fs_sb.h linux-2.6.38.2/include/linux/reiserfs_fs_sb.h 48896diff -urNp linux-2.6.38.3/include/linux/reiserfs_fs_sb.h linux-2.6.38.3/include/linux/reiserfs_fs_sb.h
47781--- linux-2.6.38.2/include/linux/reiserfs_fs_sb.h 2011-03-14 21:20:32.000000000 -0400 48897--- linux-2.6.38.3/include/linux/reiserfs_fs_sb.h 2011-03-14 21:20:32.000000000 -0400
47782+++ linux-2.6.38.2/include/linux/reiserfs_fs_sb.h 2011-03-21 18:31:35.000000000 -0400 48898+++ linux-2.6.38.3/include/linux/reiserfs_fs_sb.h 2011-04-17 15:57:32.000000000 -0400
47783@@ -386,7 +386,7 @@ struct reiserfs_sb_info { 48899@@ -386,7 +386,7 @@ struct reiserfs_sb_info {
47784 /* Comment? -Hans */ 48900 /* Comment? -Hans */
47785 wait_queue_head_t s_wait; 48901 wait_queue_head_t s_wait;
@@ -47789,9 +48905,9 @@ diff -urNp linux-2.6.38.2/include/linux/reiserfs_fs_sb.h linux-2.6.38.2/include/
47789 // tree gets re-balanced 48905 // tree gets re-balanced
47790 unsigned long s_properties; /* File system properties. Currently holds 48906 unsigned long s_properties; /* File system properties. Currently holds
47791 on-disk FS format */ 48907 on-disk FS format */
47792diff -urNp linux-2.6.38.2/include/linux/rmap.h linux-2.6.38.2/include/linux/rmap.h 48908diff -urNp linux-2.6.38.3/include/linux/rmap.h linux-2.6.38.3/include/linux/rmap.h
47793--- linux-2.6.38.2/include/linux/rmap.h 2011-03-14 21:20:32.000000000 -0400 48909--- linux-2.6.38.3/include/linux/rmap.h 2011-03-14 21:20:32.000000000 -0400
47794+++ linux-2.6.38.2/include/linux/rmap.h 2011-03-21 18:31:35.000000000 -0400 48910+++ linux-2.6.38.3/include/linux/rmap.h 2011-04-17 15:57:32.000000000 -0400
47795@@ -145,8 +145,8 @@ static inline void anon_vma_unlock(struc 48911@@ -145,8 +145,8 @@ static inline void anon_vma_unlock(struc
47796 void anon_vma_init(void); /* create anon_vma_cachep */ 48912 void anon_vma_init(void); /* create anon_vma_cachep */
47797 int anon_vma_prepare(struct vm_area_struct *); 48913 int anon_vma_prepare(struct vm_area_struct *);
@@ -47803,9 +48919,9 @@ diff -urNp linux-2.6.38.2/include/linux/rmap.h linux-2.6.38.2/include/linux/rmap
47803 void __anon_vma_link(struct vm_area_struct *); 48919 void __anon_vma_link(struct vm_area_struct *);
47804 void anon_vma_free(struct anon_vma *); 48920 void anon_vma_free(struct anon_vma *);
47805 48921
47806diff -urNp linux-2.6.38.2/include/linux/sched.h linux-2.6.38.2/include/linux/sched.h 48922diff -urNp linux-2.6.38.3/include/linux/sched.h linux-2.6.38.3/include/linux/sched.h
47807--- linux-2.6.38.2/include/linux/sched.h 2011-03-14 21:20:32.000000000 -0400 48923--- linux-2.6.38.3/include/linux/sched.h 2011-03-14 21:20:32.000000000 -0400
47808+++ linux-2.6.38.2/include/linux/sched.h 2011-03-26 17:18:15.000000000 -0400 48924+++ linux-2.6.38.3/include/linux/sched.h 2011-04-18 22:03:12.000000000 -0400
47809@@ -99,6 +99,7 @@ struct robust_list_head; 48925@@ -99,6 +99,7 @@ struct robust_list_head;
47810 struct bio_list; 48926 struct bio_list;
47811 struct fs_struct; 48927 struct fs_struct;
@@ -47814,6 +48930,15 @@ diff -urNp linux-2.6.38.2/include/linux/sched.h linux-2.6.38.2/include/linux/sch
47814 48930
47815 /* 48931 /*
47816 * List of flags we want to share for kernel threads, 48932 * 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;
47817@@ -380,10 +381,13 @@ struct user_namespace; 48942@@ -380,10 +381,13 @@ struct user_namespace;
47818 #define DEFAULT_MAX_MAP_COUNT (USHRT_MAX - MAPCOUNT_ELF_CORE_MARGIN) 48943 #define DEFAULT_MAX_MAP_COUNT (USHRT_MAX - MAPCOUNT_ELF_CORE_MARGIN)
47819 48944
@@ -47846,16 +48971,19 @@ diff -urNp linux-2.6.38.2/include/linux/sched.h linux-2.6.38.2/include/linux/sch
47846 #ifdef CONFIG_AUDIT 48971 #ifdef CONFIG_AUDIT
47847 unsigned audit_tty; 48972 unsigned audit_tty;
47848 struct tty_audit_buf *tty_audit_buf; 48973 struct tty_audit_buf *tty_audit_buf;
47849@@ -1192,7 +1207,7 @@ enum perf_event_task_context { 48974@@ -700,6 +715,11 @@ struct user_struct {
47850 48975 struct key *session_keyring; /* UID's default session keyring */
47851 struct task_struct { 48976 #endif
47852 volatile long state; /* -1 unrunnable, 0 runnable, >0 stopped */ 48977
47853- void *stack; 48978+#if defined(CONFIG_GRKERNSEC_KERN_LOCKOUT) || defined(CONFIG_GRKERNSEC_BRUTE)
47854+ struct thread_info *stack; 48979+ unsigned int banned;
47855 atomic_t usage; 48980+ unsigned long ban_expires;
47856 unsigned int flags; /* per process flags, defined below */ 48981+#endif
47857 unsigned int ptrace; 48982+
47858@@ -1307,8 +1322,8 @@ struct task_struct { 48983 /* Hash table maintenance information */
48984 struct hlist_node uidhash_node;
48985 uid_t uid;
48986@@ -1307,8 +1327,8 @@ struct task_struct {
47859 struct list_head thread_group; 48987 struct list_head thread_group;
47860 48988
47861 struct completion *vfork_done; /* for vfork() */ 48989 struct completion *vfork_done; /* for vfork() */
@@ -47866,7 +48994,7 @@ diff -urNp linux-2.6.38.2/include/linux/sched.h linux-2.6.38.2/include/linux/sch
47866 48994
47867 cputime_t utime, stime, utimescaled, stimescaled; 48995 cputime_t utime, stime, utimescaled, stimescaled;
47868 cputime_t gtime; 48996 cputime_t gtime;
47869@@ -1324,13 +1339,6 @@ struct task_struct { 48997@@ -1324,13 +1344,6 @@ struct task_struct {
47870 struct task_cputime cputime_expires; 48998 struct task_cputime cputime_expires;
47871 struct list_head cpu_timers[3]; 48999 struct list_head cpu_timers[3];
47872 49000
@@ -47880,8 +49008,14 @@ diff -urNp linux-2.6.38.2/include/linux/sched.h linux-2.6.38.2/include/linux/sch
47880 char comm[TASK_COMM_LEN]; /* executable name excluding path 49008 char comm[TASK_COMM_LEN]; /* executable name excluding path
47881 - access with [gs]et_task_comm (which lock 49009 - access with [gs]et_task_comm (which lock
47882 it with task_lock()) 49010 it with task_lock())
47883@@ -1349,6 +1357,10 @@ struct task_struct { 49011@@ -1347,8 +1360,16 @@ struct task_struct {
49012 #endif
49013 /* CPU-specific state of this task */
47884 struct thread_struct thread; 49014 struct thread_struct thread;
49015+/* thread_info moved to task_struct */
49016+#ifdef CONFIG_X86
49017+ struct thread_info tinfo;
49018+#endif
47885 /* filesystem information */ 49019 /* filesystem information */
47886 struct fs_struct *fs; 49020 struct fs_struct *fs;
47887+ 49021+
@@ -47891,7 +49025,7 @@ diff -urNp linux-2.6.38.2/include/linux/sched.h linux-2.6.38.2/include/linux/sch
47891 /* open file information */ 49025 /* open file information */
47892 struct files_struct *files; 49026 struct files_struct *files;
47893 /* namespaces */ 49027 /* namespaces */
47894@@ -1395,6 +1407,11 @@ struct task_struct { 49028@@ -1395,6 +1416,11 @@ struct task_struct {
47895 struct rt_mutex_waiter *pi_blocked_on; 49029 struct rt_mutex_waiter *pi_blocked_on;
47896 #endif 49030 #endif
47897 49031
@@ -47903,7 +49037,7 @@ diff -urNp linux-2.6.38.2/include/linux/sched.h linux-2.6.38.2/include/linux/sch
47903 #ifdef CONFIG_DEBUG_MUTEXES 49037 #ifdef CONFIG_DEBUG_MUTEXES
47904 /* mutex deadlock detection */ 49038 /* mutex deadlock detection */
47905 struct mutex_waiter *blocked_on; 49039 struct mutex_waiter *blocked_on;
47906@@ -1499,6 +1516,21 @@ struct task_struct { 49040@@ -1499,6 +1525,21 @@ struct task_struct {
47907 unsigned long default_timer_slack_ns; 49041 unsigned long default_timer_slack_ns;
47908 49042
47909 struct list_head *scm_work_list; 49043 struct list_head *scm_work_list;
@@ -47925,7 +49059,7 @@ diff -urNp linux-2.6.38.2/include/linux/sched.h linux-2.6.38.2/include/linux/sch
47925 #ifdef CONFIG_FUNCTION_GRAPH_TRACER 49059 #ifdef CONFIG_FUNCTION_GRAPH_TRACER
47926 /* Index of current stored address in ret_stack */ 49060 /* Index of current stored address in ret_stack */
47927 int curr_ret_stack; 49061 int curr_ret_stack;
47928@@ -1530,6 +1562,52 @@ struct task_struct { 49062@@ -1530,6 +1571,51 @@ struct task_struct {
47929 #endif 49063 #endif
47930 }; 49064 };
47931 49065
@@ -47972,13 +49106,22 @@ diff -urNp linux-2.6.38.2/include/linux/sched.h linux-2.6.38.2/include/linux/sch
47972+void pax_report_fault(struct pt_regs *regs, void *pc, void *sp); 49106+void pax_report_fault(struct pt_regs *regs, void *pc, void *sp);
47973+void pax_report_insns(void *pc, void *sp); 49107+void pax_report_insns(void *pc, void *sp);
47974+void pax_report_refcount_overflow(struct pt_regs *regs); 49108+void pax_report_refcount_overflow(struct pt_regs *regs);
47975+void pax_report_leak_to_user(const void *ptr, unsigned long len); 49109+void pax_report_usercopy(const void *ptr, unsigned long len, bool to, const char *type);
47976+void pax_report_overflow_from_user(const void *ptr, unsigned long len);
47977+ 49110+
47978 /* Future-safe accessor for struct task_struct's cpus_allowed. */ 49111 /* Future-safe accessor for struct task_struct's cpus_allowed. */
47979 #define tsk_cpus_allowed(tsk) (&(tsk)->cpus_allowed) 49112 #define tsk_cpus_allowed(tsk) (&(tsk)->cpus_allowed)
47980 49113
47981@@ -2169,7 +2247,7 @@ extern void __cleanup_sighand(struct sig 49114@@ -1999,7 +2085,9 @@ void yield(void);
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
47982 extern void exit_itimers(struct signal_struct *); 49125 extern void exit_itimers(struct signal_struct *);
47983 extern void flush_itimer_signals(void); 49126 extern void flush_itimer_signals(void);
47984 49127
@@ -47987,18 +49130,7 @@ diff -urNp linux-2.6.38.2/include/linux/sched.h linux-2.6.38.2/include/linux/sch
47987 49130
47988 extern void daemonize(const char *, ...); 49131 extern void daemonize(const char *, ...);
47989 extern int allow_signal(int); 49132 extern int allow_signal(int);
47990@@ -2294,8 +2372,8 @@ static inline void unlock_task_sighand(s 49133@@ -2310,13 +2398,17 @@ static inline unsigned long *end_of_stac
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
48002 49134
48003 #endif 49135 #endif
48004 49136
@@ -48018,9 +49150,9 @@ diff -urNp linux-2.6.38.2/include/linux/sched.h linux-2.6.38.2/include/linux/sch
48018 extern void thread_info_cache_init(void); 49150 extern void thread_info_cache_init(void);
48019 49151
48020 #ifdef CONFIG_DEBUG_STACK_USAGE 49152 #ifdef CONFIG_DEBUG_STACK_USAGE
48021diff -urNp linux-2.6.38.2/include/linux/screen_info.h linux-2.6.38.2/include/linux/screen_info.h 49153diff -urNp linux-2.6.38.3/include/linux/screen_info.h linux-2.6.38.3/include/linux/screen_info.h
48022--- linux-2.6.38.2/include/linux/screen_info.h 2011-03-14 21:20:32.000000000 -0400 49154--- linux-2.6.38.3/include/linux/screen_info.h 2011-03-14 21:20:32.000000000 -0400
48023+++ linux-2.6.38.2/include/linux/screen_info.h 2011-03-21 18:31:35.000000000 -0400 49155+++ linux-2.6.38.3/include/linux/screen_info.h 2011-04-17 15:57:32.000000000 -0400
48024@@ -43,7 +43,8 @@ struct screen_info { 49156@@ -43,7 +43,8 @@ struct screen_info {
48025 __u16 pages; /* 0x32 */ 49157 __u16 pages; /* 0x32 */
48026 __u16 vesa_attributes; /* 0x34 */ 49158 __u16 vesa_attributes; /* 0x34 */
@@ -48031,9 +49163,9 @@ diff -urNp linux-2.6.38.2/include/linux/screen_info.h linux-2.6.38.2/include/lin
48031 } __attribute__((packed)); 49163 } __attribute__((packed));
48032 49164
48033 #define VIDEO_TYPE_MDA 0x10 /* Monochrome Text Display */ 49165 #define VIDEO_TYPE_MDA 0x10 /* Monochrome Text Display */
48034diff -urNp linux-2.6.38.2/include/linux/security.h linux-2.6.38.2/include/linux/security.h 49166diff -urNp linux-2.6.38.3/include/linux/security.h linux-2.6.38.3/include/linux/security.h
48035--- linux-2.6.38.2/include/linux/security.h 2011-03-14 21:20:32.000000000 -0400 49167--- linux-2.6.38.3/include/linux/security.h 2011-03-14 21:20:32.000000000 -0400
48036+++ linux-2.6.38.2/include/linux/security.h 2011-03-21 18:31:35.000000000 -0400 49168+++ linux-2.6.38.3/include/linux/security.h 2011-04-17 15:57:32.000000000 -0400
48037@@ -35,6 +35,7 @@ 49169@@ -35,6 +35,7 @@
48038 #include <linux/key.h> 49170 #include <linux/key.h>
48039 #include <linux/xfrm.h> 49171 #include <linux/xfrm.h>
@@ -48042,9 +49174,9 @@ diff -urNp linux-2.6.38.2/include/linux/security.h linux-2.6.38.2/include/linux/
48042 #include <net/flow.h> 49174 #include <net/flow.h>
48043 49175
48044 /* Maximum number of letters for an LSM name string */ 49176 /* Maximum number of letters for an LSM name string */
48045diff -urNp linux-2.6.38.2/include/linux/shm.h linux-2.6.38.2/include/linux/shm.h 49177diff -urNp linux-2.6.38.3/include/linux/shm.h linux-2.6.38.3/include/linux/shm.h
48046--- linux-2.6.38.2/include/linux/shm.h 2011-03-14 21:20:32.000000000 -0400 49178--- linux-2.6.38.3/include/linux/shm.h 2011-03-14 21:20:32.000000000 -0400
48047+++ linux-2.6.38.2/include/linux/shm.h 2011-03-21 18:31:35.000000000 -0400 49179+++ linux-2.6.38.3/include/linux/shm.h 2011-04-17 15:57:32.000000000 -0400
48048@@ -95,6 +95,10 @@ struct shmid_kernel /* private to the ke 49180@@ -95,6 +95,10 @@ struct shmid_kernel /* private to the ke
48049 pid_t shm_cprid; 49181 pid_t shm_cprid;
48050 pid_t shm_lprid; 49182 pid_t shm_lprid;
@@ -48056,9 +49188,9 @@ diff -urNp linux-2.6.38.2/include/linux/shm.h linux-2.6.38.2/include/linux/shm.h
48056 }; 49188 };
48057 49189
48058 /* shm_mode upper byte flags */ 49190 /* shm_mode upper byte flags */
48059diff -urNp linux-2.6.38.2/include/linux/skbuff.h linux-2.6.38.2/include/linux/skbuff.h 49191diff -urNp linux-2.6.38.3/include/linux/skbuff.h linux-2.6.38.3/include/linux/skbuff.h
48060--- linux-2.6.38.2/include/linux/skbuff.h 2011-03-14 21:20:32.000000000 -0400 49192--- linux-2.6.38.3/include/linux/skbuff.h 2011-03-14 21:20:32.000000000 -0400
48061+++ linux-2.6.38.2/include/linux/skbuff.h 2011-03-21 18:31:35.000000000 -0400 49193+++ linux-2.6.38.3/include/linux/skbuff.h 2011-04-17 15:57:32.000000000 -0400
48062@@ -589,7 +589,7 @@ static inline struct skb_shared_hwtstamp 49194@@ -589,7 +589,7 @@ static inline struct skb_shared_hwtstamp
48063 */ 49195 */
48064 static inline int skb_queue_empty(const struct sk_buff_head *list) 49196 static inline int skb_queue_empty(const struct sk_buff_head *list)
@@ -48086,10 +49218,10 @@ diff -urNp linux-2.6.38.2/include/linux/skbuff.h linux-2.6.38.2/include/linux/sk
48086 } 49218 }
48087 49219
48088 /** 49220 /**
48089diff -urNp linux-2.6.38.2/include/linux/slab.h linux-2.6.38.2/include/linux/slab.h 49221diff -urNp linux-2.6.38.3/include/linux/slab.h linux-2.6.38.3/include/linux/slab.h
48090--- linux-2.6.38.2/include/linux/slab.h 2011-03-14 21:20:32.000000000 -0400 49222--- linux-2.6.38.3/include/linux/slab.h 2011-03-14 21:20:32.000000000 -0400
48091+++ linux-2.6.38.2/include/linux/slab.h 2011-03-21 18:31:35.000000000 -0400 49223+++ linux-2.6.38.3/include/linux/slab.h 2011-04-17 15:57:32.000000000 -0400
48092@@ -11,6 +11,7 @@ 49224@@ -11,12 +11,20 @@
48093 49225
48094 #include <linux/gfp.h> 49226 #include <linux/gfp.h>
48095 #include <linux/types.h> 49227 #include <linux/types.h>
@@ -48097,7 +49229,20 @@ diff -urNp linux-2.6.38.2/include/linux/slab.h linux-2.6.38.2/include/linux/slab
48097 49229
48098 /* 49230 /*
48099 * Flags to pass to kmem_cache_create(). 49231 * Flags to pass to kmem_cache_create().
48100@@ -87,10 +88,13 @@ 49232 * The ones marked DEBUG are only valid if CONFIG_SLAB_DEBUG is set.
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 @@
48101 * ZERO_SIZE_PTR can be passed to kfree though in the same way that NULL can. 49246 * ZERO_SIZE_PTR can be passed to kfree though in the same way that NULL can.
48102 * Both make kfree a no-op. 49247 * Both make kfree a no-op.
48103 */ 49248 */
@@ -48114,7 +49259,7 @@ diff -urNp linux-2.6.38.2/include/linux/slab.h linux-2.6.38.2/include/linux/slab
48114 49259
48115 /* 49260 /*
48116 * struct kmem_cache related prototypes 49261 * struct kmem_cache related prototypes
48117@@ -142,6 +146,7 @@ void * __must_check krealloc(const void 49262@@ -142,6 +153,7 @@ void * __must_check krealloc(const void
48118 void kfree(const void *); 49263 void kfree(const void *);
48119 void kzfree(const void *); 49264 void kzfree(const void *);
48120 size_t ksize(const void *); 49265 size_t ksize(const void *);
@@ -48122,7 +49267,7 @@ diff -urNp linux-2.6.38.2/include/linux/slab.h linux-2.6.38.2/include/linux/slab
48122 49267
48123 /* 49268 /*
48124 * Allocator specific definitions. These are mainly used to establish optimized 49269 * Allocator specific definitions. These are mainly used to establish optimized
48125@@ -334,4 +339,37 @@ static inline void *kzalloc_node(size_t 49270@@ -334,4 +346,37 @@ static inline void *kzalloc_node(size_t
48126 49271
48127 void __init kmem_cache_init_late(void); 49272 void __init kmem_cache_init_late(void);
48128 49273
@@ -48160,9 +49305,9 @@ diff -urNp linux-2.6.38.2/include/linux/slab.h linux-2.6.38.2/include/linux/slab
48160+}) 49305+})
48161+ 49306+
48162 #endif /* _LINUX_SLAB_H */ 49307 #endif /* _LINUX_SLAB_H */
48163diff -urNp linux-2.6.38.2/include/linux/slub_def.h linux-2.6.38.2/include/linux/slub_def.h 49308diff -urNp linux-2.6.38.3/include/linux/slub_def.h linux-2.6.38.3/include/linux/slub_def.h
48164--- linux-2.6.38.2/include/linux/slub_def.h 2011-03-14 21:20:32.000000000 -0400 49309--- linux-2.6.38.3/include/linux/slub_def.h 2011-03-14 21:20:32.000000000 -0400
48165+++ linux-2.6.38.2/include/linux/slub_def.h 2011-03-21 18:31:35.000000000 -0400 49310+++ linux-2.6.38.3/include/linux/slub_def.h 2011-04-17 15:57:32.000000000 -0400
48166@@ -79,7 +79,7 @@ struct kmem_cache { 49311@@ -79,7 +79,7 @@ struct kmem_cache {
48167 struct kmem_cache_order_objects max; 49312 struct kmem_cache_order_objects max;
48168 struct kmem_cache_order_objects min; 49313 struct kmem_cache_order_objects min;
@@ -48172,9 +49317,9 @@ diff -urNp linux-2.6.38.2/include/linux/slub_def.h linux-2.6.38.2/include/linux/
48172 void (*ctor)(void *); 49317 void (*ctor)(void *);
48173 int inuse; /* Offset to metadata */ 49318 int inuse; /* Offset to metadata */
48174 int align; /* Alignment */ 49319 int align; /* Alignment */
48175diff -urNp linux-2.6.38.2/include/linux/sonet.h linux-2.6.38.2/include/linux/sonet.h 49320diff -urNp linux-2.6.38.3/include/linux/sonet.h linux-2.6.38.3/include/linux/sonet.h
48176--- linux-2.6.38.2/include/linux/sonet.h 2011-03-14 21:20:32.000000000 -0400 49321--- linux-2.6.38.3/include/linux/sonet.h 2011-03-14 21:20:32.000000000 -0400
48177+++ linux-2.6.38.2/include/linux/sonet.h 2011-03-21 18:31:35.000000000 -0400 49322+++ linux-2.6.38.3/include/linux/sonet.h 2011-04-17 15:57:32.000000000 -0400
48178@@ -61,7 +61,7 @@ struct sonet_stats { 49323@@ -61,7 +61,7 @@ struct sonet_stats {
48179 #include <asm/atomic.h> 49324 #include <asm/atomic.h>
48180 49325
@@ -48184,9 +49329,9 @@ diff -urNp linux-2.6.38.2/include/linux/sonet.h linux-2.6.38.2/include/linux/son
48184 __SONET_ITEMS 49329 __SONET_ITEMS
48185 #undef __HANDLE_ITEM 49330 #undef __HANDLE_ITEM
48186 }; 49331 };
48187diff -urNp linux-2.6.38.2/include/linux/sunrpc/clnt.h linux-2.6.38.2/include/linux/sunrpc/clnt.h 49332diff -urNp linux-2.6.38.3/include/linux/sunrpc/clnt.h linux-2.6.38.3/include/linux/sunrpc/clnt.h
48188--- linux-2.6.38.2/include/linux/sunrpc/clnt.h 2011-03-14 21:20:32.000000000 -0400 49333--- linux-2.6.38.3/include/linux/sunrpc/clnt.h 2011-03-14 21:20:32.000000000 -0400
48189+++ linux-2.6.38.2/include/linux/sunrpc/clnt.h 2011-03-21 18:31:35.000000000 -0400 49334+++ linux-2.6.38.3/include/linux/sunrpc/clnt.h 2011-04-17 15:57:32.000000000 -0400
48190@@ -168,9 +168,9 @@ static inline unsigned short rpc_get_por 49335@@ -168,9 +168,9 @@ static inline unsigned short rpc_get_por
48191 { 49336 {
48192 switch (sap->sa_family) { 49337 switch (sap->sa_family) {
@@ -48217,9 +49362,9 @@ diff -urNp linux-2.6.38.2/include/linux/sunrpc/clnt.h linux-2.6.38.2/include/lin
48217 } 49362 }
48218 49363
48219 #endif /* __KERNEL__ */ 49364 #endif /* __KERNEL__ */
48220diff -urNp linux-2.6.38.2/include/linux/suspend.h linux-2.6.38.2/include/linux/suspend.h 49365diff -urNp linux-2.6.38.3/include/linux/suspend.h linux-2.6.38.3/include/linux/suspend.h
48221--- linux-2.6.38.2/include/linux/suspend.h 2011-03-14 21:20:32.000000000 -0400 49366--- linux-2.6.38.3/include/linux/suspend.h 2011-03-14 21:20:32.000000000 -0400
48222+++ linux-2.6.38.2/include/linux/suspend.h 2011-03-21 18:31:35.000000000 -0400 49367+++ linux-2.6.38.3/include/linux/suspend.h 2011-04-17 15:57:32.000000000 -0400
48223@@ -106,15 +106,15 @@ typedef int __bitwise suspend_state_t; 49368@@ -106,15 +106,15 @@ typedef int __bitwise suspend_state_t;
48224 * which require special recovery actions in that situation. 49369 * which require special recovery actions in that situation.
48225 */ 49370 */
@@ -48272,9 +49417,9 @@ diff -urNp linux-2.6.38.2/include/linux/suspend.h linux-2.6.38.2/include/linux/s
48272 }; 49417 };
48273 49418
48274 #ifdef CONFIG_HIBERNATION 49419 #ifdef CONFIG_HIBERNATION
48275diff -urNp linux-2.6.38.2/include/linux/sysctl.h linux-2.6.38.2/include/linux/sysctl.h 49420diff -urNp linux-2.6.38.3/include/linux/sysctl.h linux-2.6.38.3/include/linux/sysctl.h
48276--- linux-2.6.38.2/include/linux/sysctl.h 2011-03-14 21:20:32.000000000 -0400 49421--- linux-2.6.38.3/include/linux/sysctl.h 2011-03-14 21:20:32.000000000 -0400
48277+++ linux-2.6.38.2/include/linux/sysctl.h 2011-03-21 18:31:35.000000000 -0400 49422+++ linux-2.6.38.3/include/linux/sysctl.h 2011-04-17 15:57:32.000000000 -0400
48278@@ -155,7 +155,11 @@ enum 49423@@ -155,7 +155,11 @@ enum
48279 KERN_PANIC_ON_NMI=76, /* int: whether we will panic on an unrecovered */ 49424 KERN_PANIC_ON_NMI=76, /* int: whether we will panic on an unrecovered */
48280 }; 49425 };
@@ -48297,9 +49442,9 @@ diff -urNp linux-2.6.38.2/include/linux/sysctl.h linux-2.6.38.2/include/linux/sy
48297 extern int proc_dointvec(struct ctl_table *, int, 49442 extern int proc_dointvec(struct ctl_table *, int,
48298 void __user *, size_t *, loff_t *); 49443 void __user *, size_t *, loff_t *);
48299 extern int proc_dointvec_minmax(struct ctl_table *, int, 49444 extern int proc_dointvec_minmax(struct ctl_table *, int,
48300diff -urNp linux-2.6.38.2/include/linux/sysfs.h linux-2.6.38.2/include/linux/sysfs.h 49445diff -urNp linux-2.6.38.3/include/linux/sysfs.h linux-2.6.38.3/include/linux/sysfs.h
48301--- linux-2.6.38.2/include/linux/sysfs.h 2011-03-14 21:20:32.000000000 -0400 49446--- linux-2.6.38.3/include/linux/sysfs.h 2011-03-14 21:20:32.000000000 -0400
48302+++ linux-2.6.38.2/include/linux/sysfs.h 2011-03-21 18:31:35.000000000 -0400 49447+++ linux-2.6.38.3/include/linux/sysfs.h 2011-04-17 15:57:32.000000000 -0400
48303@@ -110,8 +110,8 @@ struct bin_attribute { 49448@@ -110,8 +110,8 @@ struct bin_attribute {
48304 #define sysfs_bin_attr_init(bin_attr) sysfs_attr_init(&(bin_attr)->attr) 49449 #define sysfs_bin_attr_init(bin_attr) sysfs_attr_init(&(bin_attr)->attr)
48305 49450
@@ -48311,9 +49456,9 @@ diff -urNp linux-2.6.38.2/include/linux/sysfs.h linux-2.6.38.2/include/linux/sys
48311 }; 49456 };
48312 49457
48313 struct sysfs_dirent; 49458 struct sysfs_dirent;
48314diff -urNp linux-2.6.38.2/include/linux/tty.h linux-2.6.38.2/include/linux/tty.h 49459diff -urNp linux-2.6.38.3/include/linux/tty.h linux-2.6.38.3/include/linux/tty.h
48315--- linux-2.6.38.2/include/linux/tty.h 2011-03-14 21:20:32.000000000 -0400 49460--- linux-2.6.38.3/include/linux/tty.h 2011-03-14 21:20:32.000000000 -0400
48316+++ linux-2.6.38.2/include/linux/tty.h 2011-03-21 18:31:35.000000000 -0400 49461+++ linux-2.6.38.3/include/linux/tty.h 2011-04-17 15:57:32.000000000 -0400
48317@@ -13,6 +13,8 @@ 49462@@ -13,6 +13,8 @@
48318 #include <linux/tty_driver.h> 49463 #include <linux/tty_driver.h>
48319 #include <linux/tty_ldisc.h> 49464 #include <linux/tty_ldisc.h>
@@ -48350,9 +49495,9 @@ diff -urNp linux-2.6.38.2/include/linux/tty.h linux-2.6.38.2/include/linux/tty.h
48350 49495
48351 /* n_tty.c */ 49496 /* n_tty.c */
48352 extern struct tty_ldisc_ops tty_ldisc_N_TTY; 49497 extern struct tty_ldisc_ops tty_ldisc_N_TTY;
48353diff -urNp linux-2.6.38.2/include/linux/tty_ldisc.h linux-2.6.38.2/include/linux/tty_ldisc.h 49498diff -urNp linux-2.6.38.3/include/linux/tty_ldisc.h linux-2.6.38.3/include/linux/tty_ldisc.h
48354--- linux-2.6.38.2/include/linux/tty_ldisc.h 2011-03-14 21:20:32.000000000 -0400 49499--- linux-2.6.38.3/include/linux/tty_ldisc.h 2011-03-14 21:20:32.000000000 -0400
48355+++ linux-2.6.38.2/include/linux/tty_ldisc.h 2011-03-21 18:31:35.000000000 -0400 49500+++ linux-2.6.38.3/include/linux/tty_ldisc.h 2011-04-17 15:57:32.000000000 -0400
48356@@ -148,7 +148,7 @@ struct tty_ldisc_ops { 49501@@ -148,7 +148,7 @@ struct tty_ldisc_ops {
48357 49502
48358 struct module *owner; 49503 struct module *owner;
@@ -48362,9 +49507,9 @@ diff -urNp linux-2.6.38.2/include/linux/tty_ldisc.h linux-2.6.38.2/include/linux
48362 }; 49507 };
48363 49508
48364 struct tty_ldisc { 49509 struct tty_ldisc {
48365diff -urNp linux-2.6.38.2/include/linux/types.h linux-2.6.38.2/include/linux/types.h 49510diff -urNp linux-2.6.38.3/include/linux/types.h linux-2.6.38.3/include/linux/types.h
48366--- linux-2.6.38.2/include/linux/types.h 2011-03-14 21:20:32.000000000 -0400 49511--- linux-2.6.38.3/include/linux/types.h 2011-03-14 21:20:32.000000000 -0400
48367+++ linux-2.6.38.2/include/linux/types.h 2011-03-21 18:31:35.000000000 -0400 49512+++ linux-2.6.38.3/include/linux/types.h 2011-04-17 15:57:32.000000000 -0400
48368@@ -207,10 +207,26 @@ typedef struct { 49513@@ -207,10 +207,26 @@ typedef struct {
48369 int counter; 49514 int counter;
48370 } atomic_t; 49515 } atomic_t;
@@ -48392,9 +49537,9 @@ diff -urNp linux-2.6.38.2/include/linux/types.h linux-2.6.38.2/include/linux/typ
48392 #endif 49537 #endif
48393 49538
48394 struct list_head { 49539 struct list_head {
48395diff -urNp linux-2.6.38.2/include/linux/uaccess.h linux-2.6.38.2/include/linux/uaccess.h 49540diff -urNp linux-2.6.38.3/include/linux/uaccess.h linux-2.6.38.3/include/linux/uaccess.h
48396--- linux-2.6.38.2/include/linux/uaccess.h 2011-03-14 21:20:32.000000000 -0400 49541--- linux-2.6.38.3/include/linux/uaccess.h 2011-03-14 21:20:32.000000000 -0400
48397+++ linux-2.6.38.2/include/linux/uaccess.h 2011-03-21 18:31:35.000000000 -0400 49542+++ linux-2.6.38.3/include/linux/uaccess.h 2011-04-17 15:57:32.000000000 -0400
48398@@ -76,11 +76,11 @@ static inline unsigned long __copy_from_ 49543@@ -76,11 +76,11 @@ static inline unsigned long __copy_from_
48399 long ret; \ 49544 long ret; \
48400 mm_segment_t old_fs = get_fs(); \ 49545 mm_segment_t old_fs = get_fs(); \
@@ -48430,9 +49575,9 @@ diff -urNp linux-2.6.38.2/include/linux/uaccess.h linux-2.6.38.2/include/linux/u
48430+extern long notrace __probe_kernel_write(void *dst, const void *src, size_t size); 49575+extern long notrace __probe_kernel_write(void *dst, const void *src, size_t size);
48431 49576
48432 #endif /* __LINUX_UACCESS_H__ */ 49577 #endif /* __LINUX_UACCESS_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 49578diff -urNp linux-2.6.38.3/include/linux/unaligned/access_ok.h linux-2.6.38.3/include/linux/unaligned/access_ok.h
48434--- linux-2.6.38.2/include/linux/unaligned/access_ok.h 2011-03-14 21:20:32.000000000 -0400 49579--- linux-2.6.38.3/include/linux/unaligned/access_ok.h 2011-03-14 21:20:32.000000000 -0400
48435+++ linux-2.6.38.2/include/linux/unaligned/access_ok.h 2011-03-21 18:31:35.000000000 -0400 49580+++ linux-2.6.38.3/include/linux/unaligned/access_ok.h 2011-04-17 15:57:32.000000000 -0400
48436@@ -6,32 +6,32 @@ 49581@@ -6,32 +6,32 @@
48437 49582
48438 static inline u16 get_unaligned_le16(const void *p) 49583 static inline u16 get_unaligned_le16(const void *p)
@@ -48472,9 +49617,9 @@ diff -urNp linux-2.6.38.2/include/linux/unaligned/access_ok.h linux-2.6.38.2/inc
48472 } 49617 }
48473 49618
48474 static inline void put_unaligned_le16(u16 val, void *p) 49619 static inline void put_unaligned_le16(u16 val, void *p)
48475diff -urNp linux-2.6.38.2/include/linux/usb/hcd.h linux-2.6.38.2/include/linux/usb/hcd.h 49620diff -urNp linux-2.6.38.3/include/linux/usb/hcd.h linux-2.6.38.3/include/linux/usb/hcd.h
48476--- linux-2.6.38.2/include/linux/usb/hcd.h 2011-03-23 17:20:08.000000000 -0400 49621--- linux-2.6.38.3/include/linux/usb/hcd.h 2011-04-18 17:27:14.000000000 -0400
48477+++ linux-2.6.38.2/include/linux/usb/hcd.h 2011-03-23 17:21:51.000000000 -0400 49622+++ linux-2.6.38.3/include/linux/usb/hcd.h 2011-04-17 15:57:32.000000000 -0400
48478@@ -589,7 +589,7 @@ struct usb_mon_operations { 49623@@ -589,7 +589,7 @@ struct usb_mon_operations {
48479 /* void (*urb_unlink)(struct usb_bus *bus, struct urb *urb); */ 49624 /* void (*urb_unlink)(struct usb_bus *bus, struct urb *urb); */
48480 }; 49625 };
@@ -48493,9 +49638,9 @@ diff -urNp linux-2.6.38.2/include/linux/usb/hcd.h linux-2.6.38.2/include/linux/u
48493 void usb_mon_deregister(void); 49638 void usb_mon_deregister(void);
48494 49639
48495 #else 49640 #else
48496diff -urNp linux-2.6.38.2/include/linux/vmalloc.h linux-2.6.38.2/include/linux/vmalloc.h 49641diff -urNp linux-2.6.38.3/include/linux/vmalloc.h linux-2.6.38.3/include/linux/vmalloc.h
48497--- linux-2.6.38.2/include/linux/vmalloc.h 2011-03-14 21:20:32.000000000 -0400 49642--- linux-2.6.38.3/include/linux/vmalloc.h 2011-03-14 21:20:32.000000000 -0400
48498+++ linux-2.6.38.2/include/linux/vmalloc.h 2011-03-21 18:31:35.000000000 -0400 49643+++ linux-2.6.38.3/include/linux/vmalloc.h 2011-04-17 15:57:32.000000000 -0400
48499@@ -13,6 +13,11 @@ struct vm_area_struct; /* vma defining 49644@@ -13,6 +13,11 @@ struct vm_area_struct; /* vma defining
48500 #define VM_MAP 0x00000004 /* vmap()ed pages */ 49645 #define VM_MAP 0x00000004 /* vmap()ed pages */
48501 #define VM_USERMAP 0x00000008 /* suitable for remap_vmalloc_range */ 49646 #define VM_USERMAP 0x00000008 /* suitable for remap_vmalloc_range */
@@ -48612,9 +49757,9 @@ diff -urNp linux-2.6.38.2/include/linux/vmalloc.h linux-2.6.38.2/include/linux/v
48612+}) 49757+})
48613+ 49758+
48614 #endif /* _LINUX_VMALLOC_H */ 49759 #endif /* _LINUX_VMALLOC_H */
48615diff -urNp linux-2.6.38.2/include/linux/vmstat.h linux-2.6.38.2/include/linux/vmstat.h 49760diff -urNp linux-2.6.38.3/include/linux/vmstat.h linux-2.6.38.3/include/linux/vmstat.h
48616--- linux-2.6.38.2/include/linux/vmstat.h 2011-03-14 21:20:32.000000000 -0400 49761--- linux-2.6.38.3/include/linux/vmstat.h 2011-03-14 21:20:32.000000000 -0400
48617+++ linux-2.6.38.2/include/linux/vmstat.h 2011-03-21 18:31:35.000000000 -0400 49762+++ linux-2.6.38.3/include/linux/vmstat.h 2011-04-17 15:57:32.000000000 -0400
48618@@ -140,18 +140,18 @@ static inline void vm_events_fold_cpu(in 49763@@ -140,18 +140,18 @@ static inline void vm_events_fold_cpu(in
48619 /* 49764 /*
48620 * Zone based page accounting with per cpu differentials. 49765 * Zone based page accounting with per cpu differentials.
@@ -48678,9 +49823,9 @@ diff -urNp linux-2.6.38.2/include/linux/vmstat.h linux-2.6.38.2/include/linux/vm
48678 } 49823 }
48679 49824
48680 static inline void __dec_zone_page_state(struct page *page, 49825 static inline void __dec_zone_page_state(struct page *page,
48681diff -urNp linux-2.6.38.2/include/net/inetpeer.h linux-2.6.38.2/include/net/inetpeer.h 49826diff -urNp linux-2.6.38.3/include/net/inetpeer.h linux-2.6.38.3/include/net/inetpeer.h
48682--- linux-2.6.38.2/include/net/inetpeer.h 2011-03-14 21:20:32.000000000 -0400 49827--- linux-2.6.38.3/include/net/inetpeer.h 2011-03-14 21:20:32.000000000 -0400
48683+++ linux-2.6.38.2/include/net/inetpeer.h 2011-03-21 18:31:35.000000000 -0400 49828+++ linux-2.6.38.3/include/net/inetpeer.h 2011-04-17 15:57:32.000000000 -0400
48684@@ -38,8 +38,8 @@ struct inet_peer { 49829@@ -38,8 +38,8 @@ struct inet_peer {
48685 */ 49830 */
48686 union { 49831 union {
@@ -48701,9 +49846,9 @@ diff -urNp linux-2.6.38.2/include/net/inetpeer.h linux-2.6.38.2/include/net/inet
48701 } 49846 }
48702 49847
48703 #endif /* _NET_INETPEER_H */ 49848 #endif /* _NET_INETPEER_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 49849diff -urNp linux-2.6.38.3/include/net/irda/ircomm_tty.h linux-2.6.38.3/include/net/irda/ircomm_tty.h
48705--- linux-2.6.38.2/include/net/irda/ircomm_tty.h 2011-03-14 21:20:32.000000000 -0400 49850--- linux-2.6.38.3/include/net/irda/ircomm_tty.h 2011-03-14 21:20:32.000000000 -0400
48706+++ linux-2.6.38.2/include/net/irda/ircomm_tty.h 2011-03-21 18:31:35.000000000 -0400 49851+++ linux-2.6.38.3/include/net/irda/ircomm_tty.h 2011-04-17 15:57:32.000000000 -0400
48707@@ -35,6 +35,7 @@ 49852@@ -35,6 +35,7 @@
48708 #include <linux/termios.h> 49853 #include <linux/termios.h>
48709 #include <linux/timer.h> 49854 #include <linux/timer.h>
@@ -48723,9 +49868,9 @@ diff -urNp linux-2.6.38.2/include/net/irda/ircomm_tty.h linux-2.6.38.2/include/n
48723 49868
48724 /* Protect concurent access to : 49869 /* Protect concurent access to :
48725 * o self->open_count 49870 * o self->open_count
48726diff -urNp linux-2.6.38.2/include/net/neighbour.h linux-2.6.38.2/include/net/neighbour.h 49871diff -urNp linux-2.6.38.3/include/net/neighbour.h linux-2.6.38.3/include/net/neighbour.h
48727--- linux-2.6.38.2/include/net/neighbour.h 2011-03-14 21:20:32.000000000 -0400 49872--- linux-2.6.38.3/include/net/neighbour.h 2011-03-14 21:20:32.000000000 -0400
48728+++ linux-2.6.38.2/include/net/neighbour.h 2011-03-21 18:31:35.000000000 -0400 49873+++ linux-2.6.38.3/include/net/neighbour.h 2011-04-17 15:57:32.000000000 -0400
48729@@ -118,12 +118,12 @@ struct neighbour { 49874@@ -118,12 +118,12 @@ struct neighbour {
48730 49875
48731 struct neigh_ops { 49876 struct neigh_ops {
@@ -48745,9 +49890,9 @@ diff -urNp linux-2.6.38.2/include/net/neighbour.h linux-2.6.38.2/include/net/nei
48745 }; 49890 };
48746 49891
48747 struct pneigh_entry { 49892 struct pneigh_entry {
48748diff -urNp linux-2.6.38.2/include/net/netlink.h linux-2.6.38.2/include/net/netlink.h 49893diff -urNp linux-2.6.38.3/include/net/netlink.h linux-2.6.38.3/include/net/netlink.h
48749--- linux-2.6.38.2/include/net/netlink.h 2011-03-14 21:20:32.000000000 -0400 49894--- linux-2.6.38.3/include/net/netlink.h 2011-03-14 21:20:32.000000000 -0400
48750+++ linux-2.6.38.2/include/net/netlink.h 2011-03-21 18:31:35.000000000 -0400 49895+++ linux-2.6.38.3/include/net/netlink.h 2011-04-17 15:57:32.000000000 -0400
48751@@ -562,7 +562,7 @@ static inline void *nlmsg_get_pos(struct 49896@@ -562,7 +562,7 @@ static inline void *nlmsg_get_pos(struct
48752 static inline void nlmsg_trim(struct sk_buff *skb, const void *mark) 49897 static inline void nlmsg_trim(struct sk_buff *skb, const void *mark)
48753 { 49898 {
@@ -48757,9 +49902,9 @@ diff -urNp linux-2.6.38.2/include/net/netlink.h linux-2.6.38.2/include/net/netli
48757 } 49902 }
48758 49903
48759 /** 49904 /**
48760diff -urNp linux-2.6.38.2/include/net/sctp/sctp.h linux-2.6.38.2/include/net/sctp/sctp.h 49905diff -urNp linux-2.6.38.3/include/net/sctp/sctp.h linux-2.6.38.3/include/net/sctp/sctp.h
48761--- linux-2.6.38.2/include/net/sctp/sctp.h 2011-03-14 21:20:32.000000000 -0400 49906--- linux-2.6.38.3/include/net/sctp/sctp.h 2011-03-14 21:20:32.000000000 -0400
48762+++ linux-2.6.38.2/include/net/sctp/sctp.h 2011-03-21 18:31:35.000000000 -0400 49907+++ linux-2.6.38.3/include/net/sctp/sctp.h 2011-04-17 15:57:32.000000000 -0400
48763@@ -316,9 +316,9 @@ do { \ 49908@@ -316,9 +316,9 @@ do { \
48764 49909
48765 #else /* SCTP_DEBUG */ 49910 #else /* SCTP_DEBUG */
@@ -48773,9 +49918,9 @@ diff -urNp linux-2.6.38.2/include/net/sctp/sctp.h linux-2.6.38.2/include/net/sct
48773 #define SCTP_ENABLE_DEBUG 49918 #define SCTP_ENABLE_DEBUG
48774 #define SCTP_DISABLE_DEBUG 49919 #define SCTP_DISABLE_DEBUG
48775 #define SCTP_ASSERT(expr, str, func) 49920 #define SCTP_ASSERT(expr, str, func)
48776diff -urNp linux-2.6.38.2/include/net/tcp.h linux-2.6.38.2/include/net/tcp.h 49921diff -urNp linux-2.6.38.3/include/net/tcp.h linux-2.6.38.3/include/net/tcp.h
48777--- linux-2.6.38.2/include/net/tcp.h 2011-03-14 21:20:32.000000000 -0400 49922--- linux-2.6.38.3/include/net/tcp.h 2011-03-14 21:20:32.000000000 -0400
48778+++ linux-2.6.38.2/include/net/tcp.h 2011-03-21 18:31:35.000000000 -0400 49923+++ linux-2.6.38.3/include/net/tcp.h 2011-04-17 15:57:32.000000000 -0400
48779@@ -1382,7 +1382,7 @@ enum tcp_seq_states { 49924@@ -1382,7 +1382,7 @@ enum tcp_seq_states {
48780 struct tcp_seq_afinfo { 49925 struct tcp_seq_afinfo {
48781 char *name; 49926 char *name;
@@ -48785,9 +49930,9 @@ diff -urNp linux-2.6.38.2/include/net/tcp.h linux-2.6.38.2/include/net/tcp.h
48785 struct seq_operations seq_ops; 49930 struct seq_operations seq_ops;
48786 }; 49931 };
48787 49932
48788diff -urNp linux-2.6.38.2/include/net/udp.h linux-2.6.38.2/include/net/udp.h 49933diff -urNp linux-2.6.38.3/include/net/udp.h linux-2.6.38.3/include/net/udp.h
48789--- linux-2.6.38.2/include/net/udp.h 2011-03-14 21:20:32.000000000 -0400 49934--- linux-2.6.38.3/include/net/udp.h 2011-03-14 21:20:32.000000000 -0400
48790+++ linux-2.6.38.2/include/net/udp.h 2011-03-21 18:31:35.000000000 -0400 49935+++ linux-2.6.38.3/include/net/udp.h 2011-04-17 15:57:32.000000000 -0400
48791@@ -223,7 +223,7 @@ struct udp_seq_afinfo { 49936@@ -223,7 +223,7 @@ struct udp_seq_afinfo {
48792 char *name; 49937 char *name;
48793 sa_family_t family; 49938 sa_family_t family;
@@ -48797,9 +49942,9 @@ diff -urNp linux-2.6.38.2/include/net/udp.h linux-2.6.38.2/include/net/udp.h
48797 struct seq_operations seq_ops; 49942 struct seq_operations seq_ops;
48798 }; 49943 };
48799 49944
48800diff -urNp linux-2.6.38.2/include/sound/ac97_codec.h linux-2.6.38.2/include/sound/ac97_codec.h 49945diff -urNp linux-2.6.38.3/include/sound/ac97_codec.h linux-2.6.38.3/include/sound/ac97_codec.h
48801--- linux-2.6.38.2/include/sound/ac97_codec.h 2011-03-14 21:20:32.000000000 -0400 49946--- linux-2.6.38.3/include/sound/ac97_codec.h 2011-03-14 21:20:32.000000000 -0400
48802+++ linux-2.6.38.2/include/sound/ac97_codec.h 2011-03-21 18:31:35.000000000 -0400 49947+++ linux-2.6.38.3/include/sound/ac97_codec.h 2011-04-17 15:57:32.000000000 -0400
48803@@ -419,15 +419,15 @@ 49948@@ -419,15 +419,15 @@
48804 struct snd_ac97; 49949 struct snd_ac97;
48805 49950
@@ -48823,9 +49968,9 @@ diff -urNp linux-2.6.38.2/include/sound/ac97_codec.h linux-2.6.38.2/include/soun
48823 }; 49968 };
48824 49969
48825 struct snd_ac97_bus_ops { 49970 struct snd_ac97_bus_ops {
48826diff -urNp linux-2.6.38.2/include/trace/events/irq.h linux-2.6.38.2/include/trace/events/irq.h 49971diff -urNp linux-2.6.38.3/include/trace/events/irq.h linux-2.6.38.3/include/trace/events/irq.h
48827--- linux-2.6.38.2/include/trace/events/irq.h 2011-03-14 21:20:32.000000000 -0400 49972--- linux-2.6.38.3/include/trace/events/irq.h 2011-03-14 21:20:32.000000000 -0400
48828+++ linux-2.6.38.2/include/trace/events/irq.h 2011-03-21 18:31:35.000000000 -0400 49973+++ linux-2.6.38.3/include/trace/events/irq.h 2011-04-17 15:57:32.000000000 -0400
48829@@ -36,7 +36,7 @@ struct softirq_action; 49974@@ -36,7 +36,7 @@ struct softirq_action;
48830 */ 49975 */
48831 TRACE_EVENT(irq_handler_entry, 49976 TRACE_EVENT(irq_handler_entry,
@@ -48844,9 +49989,9 @@ diff -urNp linux-2.6.38.2/include/trace/events/irq.h linux-2.6.38.2/include/trac
48844 49989
48845 TP_ARGS(irq, action, ret), 49990 TP_ARGS(irq, action, ret),
48846 49991
48847diff -urNp linux-2.6.38.2/include/video/uvesafb.h linux-2.6.38.2/include/video/uvesafb.h 49992diff -urNp linux-2.6.38.3/include/video/uvesafb.h linux-2.6.38.3/include/video/uvesafb.h
48848--- linux-2.6.38.2/include/video/uvesafb.h 2011-03-14 21:20:32.000000000 -0400 49993--- linux-2.6.38.3/include/video/uvesafb.h 2011-03-14 21:20:32.000000000 -0400
48849+++ linux-2.6.38.2/include/video/uvesafb.h 2011-03-21 18:31:35.000000000 -0400 49994+++ linux-2.6.38.3/include/video/uvesafb.h 2011-04-17 15:57:32.000000000 -0400
48850@@ -177,6 +177,7 @@ struct uvesafb_par { 49995@@ -177,6 +177,7 @@ struct uvesafb_par {
48851 u8 ypan; /* 0 - nothing, 1 - ypan, 2 - ywrap */ 49996 u8 ypan; /* 0 - nothing, 1 - ypan, 2 - ywrap */
48852 u8 pmi_setpal; /* PMI for palette changes */ 49997 u8 pmi_setpal; /* PMI for palette changes */
@@ -48855,9 +50000,9 @@ diff -urNp linux-2.6.38.2/include/video/uvesafb.h linux-2.6.38.2/include/video/u
48855 void *pmi_start; 50000 void *pmi_start;
48856 void *pmi_pal; 50001 void *pmi_pal;
48857 u8 *vbe_state_orig; /* 50002 u8 *vbe_state_orig; /*
48858diff -urNp linux-2.6.38.2/init/do_mounts.c linux-2.6.38.2/init/do_mounts.c 50003diff -urNp linux-2.6.38.3/init/do_mounts.c linux-2.6.38.3/init/do_mounts.c
48859--- linux-2.6.38.2/init/do_mounts.c 2011-03-14 21:20:32.000000000 -0400 50004--- linux-2.6.38.3/init/do_mounts.c 2011-03-14 21:20:32.000000000 -0400
48860+++ linux-2.6.38.2/init/do_mounts.c 2011-03-21 18:31:35.000000000 -0400 50005+++ linux-2.6.38.3/init/do_mounts.c 2011-04-17 15:57:32.000000000 -0400
48861@@ -287,7 +287,7 @@ static void __init get_fs_names(char *pa 50006@@ -287,7 +287,7 @@ static void __init get_fs_names(char *pa
48862 50007
48863 static int __init do_mount_root(char *name, char *fs, int flags, void *data) 50008 static int __init do_mount_root(char *name, char *fs, int flags, void *data)
@@ -48897,9 +50042,9 @@ diff -urNp linux-2.6.38.2/init/do_mounts.c linux-2.6.38.2/init/do_mounts.c
48897+ sys_mount((__force char __user *)".", (__force char __user *)"/", NULL, MS_MOVE, NULL); 50042+ sys_mount((__force char __user *)".", (__force char __user *)"/", NULL, MS_MOVE, NULL);
48898 sys_chroot((const char __user __force *)"."); 50043 sys_chroot((const char __user __force *)".");
48899 } 50044 }
48900diff -urNp linux-2.6.38.2/init/do_mounts.h linux-2.6.38.2/init/do_mounts.h 50045diff -urNp linux-2.6.38.3/init/do_mounts.h linux-2.6.38.3/init/do_mounts.h
48901--- linux-2.6.38.2/init/do_mounts.h 2011-03-14 21:20:32.000000000 -0400 50046--- linux-2.6.38.3/init/do_mounts.h 2011-03-14 21:20:32.000000000 -0400
48902+++ linux-2.6.38.2/init/do_mounts.h 2011-03-21 18:31:35.000000000 -0400 50047+++ linux-2.6.38.3/init/do_mounts.h 2011-04-17 15:57:32.000000000 -0400
48903@@ -15,15 +15,15 @@ extern int root_mountflags; 50048@@ -15,15 +15,15 @@ extern int root_mountflags;
48904 50049
48905 static inline int create_dev(char *name, dev_t dev) 50050 static inline int create_dev(char *name, dev_t dev)
@@ -48919,9 +50064,9 @@ diff -urNp linux-2.6.38.2/init/do_mounts.h linux-2.6.38.2/init/do_mounts.h
48919 return 0; 50064 return 0;
48920 if (!S_ISBLK(stat.st_mode)) 50065 if (!S_ISBLK(stat.st_mode))
48921 return 0; 50066 return 0;
48922diff -urNp linux-2.6.38.2/init/do_mounts_initrd.c linux-2.6.38.2/init/do_mounts_initrd.c 50067diff -urNp linux-2.6.38.3/init/do_mounts_initrd.c linux-2.6.38.3/init/do_mounts_initrd.c
48923--- linux-2.6.38.2/init/do_mounts_initrd.c 2011-03-14 21:20:32.000000000 -0400 50068--- linux-2.6.38.3/init/do_mounts_initrd.c 2011-03-14 21:20:32.000000000 -0400
48924+++ linux-2.6.38.2/init/do_mounts_initrd.c 2011-03-21 18:31:35.000000000 -0400 50069+++ linux-2.6.38.3/init/do_mounts_initrd.c 2011-04-17 15:57:32.000000000 -0400
48925@@ -44,13 +44,13 @@ static void __init handle_initrd(void) 50070@@ -44,13 +44,13 @@ static void __init handle_initrd(void)
48926 create_dev("/dev/root.old", Root_RAM0); 50071 create_dev("/dev/root.old", Root_RAM0);
48927 /* mount initrd on rootfs' /root */ 50072 /* mount initrd on rootfs' /root */
@@ -48996,9 +50141,9 @@ diff -urNp linux-2.6.38.2/init/do_mounts_initrd.c linux-2.6.38.2/init/do_mounts_
48996+ sys_unlink((__force const char __user *)"/initrd.image"); 50141+ sys_unlink((__force const char __user *)"/initrd.image");
48997 return 0; 50142 return 0;
48998 } 50143 }
48999diff -urNp linux-2.6.38.2/init/do_mounts_md.c linux-2.6.38.2/init/do_mounts_md.c 50144diff -urNp linux-2.6.38.3/init/do_mounts_md.c linux-2.6.38.3/init/do_mounts_md.c
49000--- linux-2.6.38.2/init/do_mounts_md.c 2011-03-14 21:20:32.000000000 -0400 50145--- linux-2.6.38.3/init/do_mounts_md.c 2011-03-14 21:20:32.000000000 -0400
49001+++ linux-2.6.38.2/init/do_mounts_md.c 2011-03-21 18:31:35.000000000 -0400 50146+++ linux-2.6.38.3/init/do_mounts_md.c 2011-04-17 15:57:32.000000000 -0400
49002@@ -170,7 +170,7 @@ static void __init md_setup_drive(void) 50147@@ -170,7 +170,7 @@ static void __init md_setup_drive(void)
49003 partitioned ? "_d" : "", minor, 50148 partitioned ? "_d" : "", minor,
49004 md_setup_args[ent].device_names); 50149 md_setup_args[ent].device_names);
@@ -49017,9 +50162,9 @@ diff -urNp linux-2.6.38.2/init/do_mounts_md.c linux-2.6.38.2/init/do_mounts_md.c
49017 sys_ioctl(fd, BLKRRPART, 0); 50162 sys_ioctl(fd, BLKRRPART, 0);
49018 } 50163 }
49019 sys_close(fd); 50164 sys_close(fd);
49020diff -urNp linux-2.6.38.2/init/initramfs.c linux-2.6.38.2/init/initramfs.c 50165diff -urNp linux-2.6.38.3/init/initramfs.c linux-2.6.38.3/init/initramfs.c
49021--- linux-2.6.38.2/init/initramfs.c 2011-03-14 21:20:32.000000000 -0400 50166--- linux-2.6.38.3/init/initramfs.c 2011-03-14 21:20:32.000000000 -0400
49022+++ linux-2.6.38.2/init/initramfs.c 2011-03-21 18:31:35.000000000 -0400 50167+++ linux-2.6.38.3/init/initramfs.c 2011-04-17 15:57:32.000000000 -0400
49023@@ -74,7 +74,7 @@ static void __init free_hash(void) 50168@@ -74,7 +74,7 @@ static void __init free_hash(void)
49024 } 50169 }
49025 } 50170 }
@@ -49128,9 +50273,9 @@ diff -urNp linux-2.6.38.2/init/initramfs.c linux-2.6.38.2/init/initramfs.c
49128 state = SkipIt; 50273 state = SkipIt;
49129 next_state = Reset; 50274 next_state = Reset;
49130 return 0; 50275 return 0;
49131diff -urNp linux-2.6.38.2/init/Kconfig linux-2.6.38.2/init/Kconfig 50276diff -urNp linux-2.6.38.3/init/Kconfig linux-2.6.38.3/init/Kconfig
49132--- linux-2.6.38.2/init/Kconfig 2011-03-14 21:20:32.000000000 -0400 50277--- linux-2.6.38.3/init/Kconfig 2011-03-14 21:20:32.000000000 -0400
49133+++ linux-2.6.38.2/init/Kconfig 2011-03-21 18:31:35.000000000 -0400 50278+++ linux-2.6.38.3/init/Kconfig 2011-04-17 15:57:32.000000000 -0400
49134@@ -1185,7 +1185,7 @@ config SLUB_DEBUG 50279@@ -1185,7 +1185,7 @@ config SLUB_DEBUG
49135 50280
49136 config COMPAT_BRK 50281 config COMPAT_BRK
@@ -49140,9 +50285,9 @@ diff -urNp linux-2.6.38.2/init/Kconfig linux-2.6.38.2/init/Kconfig
49140 help 50285 help
49141 Randomizing heap placement makes heap exploits harder, but it 50286 Randomizing heap placement makes heap exploits harder, but it
49142 also breaks ancient binaries (including anything libc5 based). 50287 also breaks ancient binaries (including anything libc5 based).
49143diff -urNp linux-2.6.38.2/init/main.c linux-2.6.38.2/init/main.c 50288diff -urNp linux-2.6.38.3/init/main.c linux-2.6.38.3/init/main.c
49144--- linux-2.6.38.2/init/main.c 2011-03-14 21:20:32.000000000 -0400 50289--- linux-2.6.38.3/init/main.c 2011-03-14 21:20:32.000000000 -0400
49145+++ linux-2.6.38.2/init/main.c 2011-03-21 18:31:35.000000000 -0400 50290+++ linux-2.6.38.3/init/main.c 2011-04-17 15:57:32.000000000 -0400
49146@@ -96,6 +96,8 @@ static inline void mark_rodata_ro(void) 50291@@ -96,6 +96,8 @@ static inline void mark_rodata_ro(void)
49147 extern void tc_init(void); 50292 extern void tc_init(void);
49148 #endif 50293 #endif
@@ -49252,9 +50397,9 @@ diff -urNp linux-2.6.38.2/init/main.c linux-2.6.38.2/init/main.c
49252 /* 50397 /*
49253 * Ok, we have completed the initial bootup, and 50398 * Ok, we have completed the initial bootup, and
49254 * we're essentially up and running. Get rid of the 50399 * we're essentially up and running. Get rid of the
49255diff -urNp linux-2.6.38.2/ipc/mqueue.c linux-2.6.38.2/ipc/mqueue.c 50400diff -urNp linux-2.6.38.3/ipc/mqueue.c linux-2.6.38.3/ipc/mqueue.c
49256--- linux-2.6.38.2/ipc/mqueue.c 2011-03-14 21:20:32.000000000 -0400 50401--- linux-2.6.38.3/ipc/mqueue.c 2011-03-14 21:20:32.000000000 -0400
49257+++ linux-2.6.38.2/ipc/mqueue.c 2011-03-21 18:31:35.000000000 -0400 50402+++ linux-2.6.38.3/ipc/mqueue.c 2011-04-17 15:57:32.000000000 -0400
49258@@ -154,6 +154,7 @@ static struct inode *mqueue_get_inode(st 50403@@ -154,6 +154,7 @@ static struct inode *mqueue_get_inode(st
49259 mq_bytes = (mq_msg_tblsz + 50404 mq_bytes = (mq_msg_tblsz +
49260 (info->attr.mq_maxmsg * info->attr.mq_msgsize)); 50405 (info->attr.mq_maxmsg * info->attr.mq_msgsize));
@@ -49263,9 +50408,9 @@ diff -urNp linux-2.6.38.2/ipc/mqueue.c linux-2.6.38.2/ipc/mqueue.c
49263 spin_lock(&mq_lock); 50408 spin_lock(&mq_lock);
49264 if (u->mq_bytes + mq_bytes < u->mq_bytes || 50409 if (u->mq_bytes + mq_bytes < u->mq_bytes ||
49265 u->mq_bytes + mq_bytes > 50410 u->mq_bytes + mq_bytes >
49266diff -urNp linux-2.6.38.2/ipc/shm.c linux-2.6.38.2/ipc/shm.c 50411diff -urNp linux-2.6.38.3/ipc/shm.c linux-2.6.38.3/ipc/shm.c
49267--- linux-2.6.38.2/ipc/shm.c 2011-03-14 21:20:32.000000000 -0400 50412--- linux-2.6.38.3/ipc/shm.c 2011-03-14 21:20:32.000000000 -0400
49268+++ linux-2.6.38.2/ipc/shm.c 2011-03-21 18:31:35.000000000 -0400 50413+++ linux-2.6.38.3/ipc/shm.c 2011-04-17 15:57:32.000000000 -0400
49269@@ -69,6 +69,14 @@ static void shm_destroy (struct ipc_name 50414@@ -69,6 +69,14 @@ static void shm_destroy (struct ipc_name
49270 static int sysvipc_shm_proc_show(struct seq_file *s, void *it); 50415 static int sysvipc_shm_proc_show(struct seq_file *s, void *it);
49271 #endif 50416 #endif
@@ -49327,9 +50472,9 @@ diff -urNp linux-2.6.38.2/ipc/shm.c linux-2.6.38.2/ipc/shm.c
49327 size = i_size_read(path.dentry->d_inode); 50472 size = i_size_read(path.dentry->d_inode);
49328 shm_unlock(shp); 50473 shm_unlock(shp);
49329 50474
49330diff -urNp linux-2.6.38.2/kernel/acct.c linux-2.6.38.2/kernel/acct.c 50475diff -urNp linux-2.6.38.3/kernel/acct.c linux-2.6.38.3/kernel/acct.c
49331--- linux-2.6.38.2/kernel/acct.c 2011-03-14 21:20:32.000000000 -0400 50476--- linux-2.6.38.3/kernel/acct.c 2011-03-14 21:20:32.000000000 -0400
49332+++ linux-2.6.38.2/kernel/acct.c 2011-03-21 18:31:35.000000000 -0400 50477+++ linux-2.6.38.3/kernel/acct.c 2011-04-17 15:57:32.000000000 -0400
49333@@ -570,7 +570,7 @@ static void do_acct_process(struct bsd_a 50478@@ -570,7 +570,7 @@ static void do_acct_process(struct bsd_a
49334 */ 50479 */
49335 flim = current->signal->rlim[RLIMIT_FSIZE].rlim_cur; 50480 flim = current->signal->rlim[RLIMIT_FSIZE].rlim_cur;
@@ -49339,9 +50484,9 @@ diff -urNp linux-2.6.38.2/kernel/acct.c linux-2.6.38.2/kernel/acct.c
49339 sizeof(acct_t), &file->f_pos); 50484 sizeof(acct_t), &file->f_pos);
49340 current->signal->rlim[RLIMIT_FSIZE].rlim_cur = flim; 50485 current->signal->rlim[RLIMIT_FSIZE].rlim_cur = flim;
49341 set_fs(fs); 50486 set_fs(fs);
49342diff -urNp linux-2.6.38.2/kernel/capability.c linux-2.6.38.2/kernel/capability.c 50487diff -urNp linux-2.6.38.3/kernel/capability.c linux-2.6.38.3/kernel/capability.c
49343--- linux-2.6.38.2/kernel/capability.c 2011-03-14 21:20:32.000000000 -0400 50488--- linux-2.6.38.3/kernel/capability.c 2011-03-14 21:20:32.000000000 -0400
49344+++ linux-2.6.38.2/kernel/capability.c 2011-03-21 18:31:35.000000000 -0400 50489+++ linux-2.6.38.3/kernel/capability.c 2011-04-17 15:57:32.000000000 -0400
49345@@ -205,6 +205,9 @@ SYSCALL_DEFINE2(capget, cap_user_header_ 50490@@ -205,6 +205,9 @@ SYSCALL_DEFINE2(capget, cap_user_header_
49346 * before modification is attempted and the application 50491 * before modification is attempted and the application
49347 * fails. 50492 * fails.
@@ -49380,9 +50525,9 @@ diff -urNp linux-2.6.38.2/kernel/capability.c linux-2.6.38.2/kernel/capability.c
49380+ 50525+
49381 EXPORT_SYMBOL(capable); 50526 EXPORT_SYMBOL(capable);
49382+EXPORT_SYMBOL(capable_nolog); 50527+EXPORT_SYMBOL(capable_nolog);
49383diff -urNp linux-2.6.38.2/kernel/compat.c linux-2.6.38.2/kernel/compat.c 50528diff -urNp linux-2.6.38.3/kernel/compat.c linux-2.6.38.3/kernel/compat.c
49384--- linux-2.6.38.2/kernel/compat.c 2011-03-14 21:20:32.000000000 -0400 50529--- linux-2.6.38.3/kernel/compat.c 2011-03-14 21:20:32.000000000 -0400
49385+++ linux-2.6.38.2/kernel/compat.c 2011-03-21 18:31:35.000000000 -0400 50530+++ linux-2.6.38.3/kernel/compat.c 2011-04-17 15:57:32.000000000 -0400
49386@@ -13,6 +13,7 @@ 50531@@ -13,6 +13,7 @@
49387 50532
49388 #include <linux/linkage.h> 50533 #include <linux/linkage.h>
@@ -49391,9 +50536,9 @@ diff -urNp linux-2.6.38.2/kernel/compat.c linux-2.6.38.2/kernel/compat.c
49391 #include <linux/errno.h> 50536 #include <linux/errno.h>
49392 #include <linux/time.h> 50537 #include <linux/time.h>
49393 #include <linux/signal.h> 50538 #include <linux/signal.h>
49394diff -urNp linux-2.6.38.2/kernel/configs.c linux-2.6.38.2/kernel/configs.c 50539diff -urNp linux-2.6.38.3/kernel/configs.c linux-2.6.38.3/kernel/configs.c
49395--- linux-2.6.38.2/kernel/configs.c 2011-03-14 21:20:32.000000000 -0400 50540--- linux-2.6.38.3/kernel/configs.c 2011-03-14 21:20:32.000000000 -0400
49396+++ linux-2.6.38.2/kernel/configs.c 2011-03-21 18:31:35.000000000 -0400 50541+++ linux-2.6.38.3/kernel/configs.c 2011-04-17 15:57:32.000000000 -0400
49397@@ -74,8 +74,19 @@ static int __init ikconfig_init(void) 50542@@ -74,8 +74,19 @@ static int __init ikconfig_init(void)
49398 struct proc_dir_entry *entry; 50543 struct proc_dir_entry *entry;
49399 50544
@@ -49414,9 +50559,9 @@ diff -urNp linux-2.6.38.2/kernel/configs.c linux-2.6.38.2/kernel/configs.c
49414 if (!entry) 50559 if (!entry)
49415 return -ENOMEM; 50560 return -ENOMEM;
49416 50561
49417diff -urNp linux-2.6.38.2/kernel/cred.c linux-2.6.38.2/kernel/cred.c 50562diff -urNp linux-2.6.38.3/kernel/cred.c linux-2.6.38.3/kernel/cred.c
49418--- linux-2.6.38.2/kernel/cred.c 2011-03-14 21:20:32.000000000 -0400 50563--- linux-2.6.38.3/kernel/cred.c 2011-03-14 21:20:32.000000000 -0400
49419+++ linux-2.6.38.2/kernel/cred.c 2011-03-21 18:31:35.000000000 -0400 50564+++ linux-2.6.38.3/kernel/cred.c 2011-04-17 15:57:32.000000000 -0400
49420@@ -483,6 +483,8 @@ int commit_creds(struct cred *new) 50565@@ -483,6 +483,8 @@ int commit_creds(struct cred *new)
49421 50566
49422 get_cred(new); /* we will require a ref for the subj creds too */ 50567 get_cred(new); /* we will require a ref for the subj creds too */
@@ -49426,9 +50571,9 @@ diff -urNp linux-2.6.38.2/kernel/cred.c linux-2.6.38.2/kernel/cred.c
49426 /* dumpability changes */ 50571 /* dumpability changes */
49427 if (old->euid != new->euid || 50572 if (old->euid != new->euid ||
49428 old->egid != new->egid || 50573 old->egid != new->egid ||
49429diff -urNp linux-2.6.38.2/kernel/debug/debug_core.c linux-2.6.38.2/kernel/debug/debug_core.c 50574diff -urNp linux-2.6.38.3/kernel/debug/debug_core.c linux-2.6.38.3/kernel/debug/debug_core.c
49430--- linux-2.6.38.2/kernel/debug/debug_core.c 2011-03-14 21:20:32.000000000 -0400 50575--- linux-2.6.38.3/kernel/debug/debug_core.c 2011-03-14 21:20:32.000000000 -0400
49431+++ linux-2.6.38.2/kernel/debug/debug_core.c 2011-03-21 18:31:35.000000000 -0400 50576+++ linux-2.6.38.3/kernel/debug/debug_core.c 2011-04-17 15:57:32.000000000 -0400
49432@@ -72,7 +72,7 @@ int kgdb_io_module_registered; 50577@@ -72,7 +72,7 @@ int kgdb_io_module_registered;
49433 /* Guard for recursive entry */ 50578 /* Guard for recursive entry */
49434 static int exception_level; 50579 static int exception_level;
@@ -49456,9 +50601,9 @@ diff -urNp linux-2.6.38.2/kernel/debug/debug_core.c linux-2.6.38.2/kernel/debug/
49456 { 50601 {
49457 BUG_ON(kgdb_connected); 50602 BUG_ON(kgdb_connected);
49458 50603
49459diff -urNp linux-2.6.38.2/kernel/debug/kdb/kdb_main.c linux-2.6.38.2/kernel/debug/kdb/kdb_main.c 50604diff -urNp linux-2.6.38.3/kernel/debug/kdb/kdb_main.c linux-2.6.38.3/kernel/debug/kdb/kdb_main.c
49460--- linux-2.6.38.2/kernel/debug/kdb/kdb_main.c 2011-03-14 21:20:32.000000000 -0400 50605--- linux-2.6.38.3/kernel/debug/kdb/kdb_main.c 2011-03-14 21:20:32.000000000 -0400
49461+++ linux-2.6.38.2/kernel/debug/kdb/kdb_main.c 2011-03-21 18:31:35.000000000 -0400 50606+++ linux-2.6.38.3/kernel/debug/kdb/kdb_main.c 2011-04-17 15:57:32.000000000 -0400
49462@@ -1980,7 +1980,7 @@ static int kdb_lsmod(int argc, const cha 50607@@ -1980,7 +1980,7 @@ static int kdb_lsmod(int argc, const cha
49463 list_for_each_entry(mod, kdb_modules, list) { 50608 list_for_each_entry(mod, kdb_modules, list) {
49464 50609
@@ -49477,9 +50622,9 @@ diff -urNp linux-2.6.38.2/kernel/debug/kdb/kdb_main.c linux-2.6.38.2/kernel/debu
49477 50622
49478 #ifdef CONFIG_MODULE_UNLOAD 50623 #ifdef CONFIG_MODULE_UNLOAD
49479 { 50624 {
49480diff -urNp linux-2.6.38.2/kernel/exit.c linux-2.6.38.2/kernel/exit.c 50625diff -urNp linux-2.6.38.3/kernel/exit.c linux-2.6.38.3/kernel/exit.c
49481--- linux-2.6.38.2/kernel/exit.c 2011-03-14 21:20:32.000000000 -0400 50626--- linux-2.6.38.3/kernel/exit.c 2011-03-14 21:20:32.000000000 -0400
49482+++ linux-2.6.38.2/kernel/exit.c 2011-03-21 18:31:35.000000000 -0400 50627+++ linux-2.6.38.3/kernel/exit.c 2011-04-17 15:57:32.000000000 -0400
49483@@ -57,6 +57,10 @@ 50628@@ -57,6 +57,10 @@
49484 #include <asm/pgtable.h> 50629 #include <asm/pgtable.h>
49485 #include <asm/mmu_context.h> 50630 #include <asm/mmu_context.h>
@@ -49599,9 +50744,9 @@ diff -urNp linux-2.6.38.2/kernel/exit.c linux-2.6.38.2/kernel/exit.c
49599 exit_mm(tsk); 50744 exit_mm(tsk);
49600 50745
49601 if (group_dead) 50746 if (group_dead)
49602diff -urNp linux-2.6.38.2/kernel/fork.c linux-2.6.38.2/kernel/fork.c 50747diff -urNp linux-2.6.38.3/kernel/fork.c linux-2.6.38.3/kernel/fork.c
49603--- linux-2.6.38.2/kernel/fork.c 2011-03-14 21:20:32.000000000 -0400 50748--- linux-2.6.38.3/kernel/fork.c 2011-03-14 21:20:32.000000000 -0400
49604+++ linux-2.6.38.2/kernel/fork.c 2011-03-21 18:31:35.000000000 -0400 50749+++ linux-2.6.38.3/kernel/fork.c 2011-04-17 15:57:32.000000000 -0400
49605@@ -280,7 +280,7 @@ static struct task_struct *dup_task_stru 50750@@ -280,7 +280,7 @@ static struct task_struct *dup_task_stru
49606 *stackend = STACK_END_MAGIC; /* for overflow detection */ 50751 *stackend = STACK_END_MAGIC; /* for overflow detection */
49607 50752
@@ -49898,9 +51043,9 @@ diff -urNp linux-2.6.38.2/kernel/fork.c linux-2.6.38.2/kernel/fork.c
49898 new_fs = NULL; 51043 new_fs = NULL;
49899 else 51044 else
49900 new_fs = fs; 51045 new_fs = fs;
49901diff -urNp linux-2.6.38.2/kernel/futex.c linux-2.6.38.2/kernel/futex.c 51046diff -urNp linux-2.6.38.3/kernel/futex.c linux-2.6.38.3/kernel/futex.c
49902--- linux-2.6.38.2/kernel/futex.c 2011-03-14 21:20:32.000000000 -0400 51047--- linux-2.6.38.3/kernel/futex.c 2011-03-14 21:20:32.000000000 -0400
49903+++ linux-2.6.38.2/kernel/futex.c 2011-03-21 18:31:35.000000000 -0400 51048+++ linux-2.6.38.3/kernel/futex.c 2011-04-17 15:57:32.000000000 -0400
49904@@ -54,6 +54,7 @@ 51049@@ -54,6 +54,7 @@
49905 #include <linux/mount.h> 51050 #include <linux/mount.h>
49906 #include <linux/pagemap.h> 51051 #include <linux/pagemap.h>
@@ -49967,9 +51112,9 @@ diff -urNp linux-2.6.38.2/kernel/futex.c linux-2.6.38.2/kernel/futex.c
49967 if (curval == -EFAULT) 51112 if (curval == -EFAULT)
49968 futex_cmpxchg_enabled = 1; 51113 futex_cmpxchg_enabled = 1;
49969 51114
49970diff -urNp linux-2.6.38.2/kernel/futex_compat.c linux-2.6.38.2/kernel/futex_compat.c 51115diff -urNp linux-2.6.38.3/kernel/futex_compat.c linux-2.6.38.3/kernel/futex_compat.c
49971--- linux-2.6.38.2/kernel/futex_compat.c 2011-03-14 21:20:32.000000000 -0400 51116--- linux-2.6.38.3/kernel/futex_compat.c 2011-03-14 21:20:32.000000000 -0400
49972+++ linux-2.6.38.2/kernel/futex_compat.c 2011-03-21 18:31:35.000000000 -0400 51117+++ linux-2.6.38.3/kernel/futex_compat.c 2011-04-17 15:57:32.000000000 -0400
49973@@ -10,6 +10,7 @@ 51118@@ -10,6 +10,7 @@
49974 #include <linux/compat.h> 51119 #include <linux/compat.h>
49975 #include <linux/nsproxy.h> 51120 #include <linux/nsproxy.h>
@@ -50007,9 +51152,9 @@ diff -urNp linux-2.6.38.2/kernel/futex_compat.c linux-2.6.38.2/kernel/futex_comp
50007 head = p->compat_robust_list; 51152 head = p->compat_robust_list;
50008 rcu_read_unlock(); 51153 rcu_read_unlock();
50009 } 51154 }
50010diff -urNp linux-2.6.38.2/kernel/gcov/base.c linux-2.6.38.2/kernel/gcov/base.c 51155diff -urNp linux-2.6.38.3/kernel/gcov/base.c linux-2.6.38.3/kernel/gcov/base.c
50011--- linux-2.6.38.2/kernel/gcov/base.c 2011-03-14 21:20:32.000000000 -0400 51156--- linux-2.6.38.3/kernel/gcov/base.c 2011-03-14 21:20:32.000000000 -0400
50012+++ linux-2.6.38.2/kernel/gcov/base.c 2011-03-21 18:31:35.000000000 -0400 51157+++ linux-2.6.38.3/kernel/gcov/base.c 2011-04-17 15:57:32.000000000 -0400
50013@@ -102,11 +102,6 @@ void gcov_enable_events(void) 51158@@ -102,11 +102,6 @@ void gcov_enable_events(void)
50014 } 51159 }
50015 51160
@@ -50031,9 +51176,9 @@ diff -urNp linux-2.6.38.2/kernel/gcov/base.c linux-2.6.38.2/kernel/gcov/base.c
50031 if (prev) 51176 if (prev)
50032 prev->next = info->next; 51177 prev->next = info->next;
50033 else 51178 else
50034diff -urNp linux-2.6.38.2/kernel/hrtimer.c linux-2.6.38.2/kernel/hrtimer.c 51179diff -urNp linux-2.6.38.3/kernel/hrtimer.c linux-2.6.38.3/kernel/hrtimer.c
50035--- linux-2.6.38.2/kernel/hrtimer.c 2011-03-14 21:20:32.000000000 -0400 51180--- linux-2.6.38.3/kernel/hrtimer.c 2011-03-14 21:20:32.000000000 -0400
50036+++ linux-2.6.38.2/kernel/hrtimer.c 2011-03-21 18:31:35.000000000 -0400 51181+++ linux-2.6.38.3/kernel/hrtimer.c 2011-04-17 15:57:32.000000000 -0400
50037@@ -1371,7 +1371,7 @@ void hrtimer_peek_ahead_timers(void) 51182@@ -1371,7 +1371,7 @@ void hrtimer_peek_ahead_timers(void)
50038 local_irq_restore(flags); 51183 local_irq_restore(flags);
50039 } 51184 }
@@ -50043,9 +51188,9 @@ diff -urNp linux-2.6.38.2/kernel/hrtimer.c linux-2.6.38.2/kernel/hrtimer.c
50043 { 51188 {
50044 hrtimer_peek_ahead_timers(); 51189 hrtimer_peek_ahead_timers();
50045 } 51190 }
50046diff -urNp linux-2.6.38.2/kernel/jump_label.c linux-2.6.38.2/kernel/jump_label.c 51191diff -urNp linux-2.6.38.3/kernel/jump_label.c linux-2.6.38.3/kernel/jump_label.c
50047--- linux-2.6.38.2/kernel/jump_label.c 2011-03-14 21:20:32.000000000 -0400 51192--- linux-2.6.38.3/kernel/jump_label.c 2011-03-14 21:20:32.000000000 -0400
50048+++ linux-2.6.38.2/kernel/jump_label.c 2011-03-21 18:31:35.000000000 -0400 51193+++ linux-2.6.38.3/kernel/jump_label.c 2011-04-17 15:57:32.000000000 -0400
50049@@ -49,6 +49,17 @@ void jump_label_unlock(void) 51194@@ -49,6 +49,17 @@ void jump_label_unlock(void)
50050 mutex_unlock(&jump_label_mutex); 51195 mutex_unlock(&jump_label_mutex);
50051 } 51196 }
@@ -50086,9 +51231,9 @@ diff -urNp linux-2.6.38.2/kernel/jump_label.c linux-2.6.38.2/kernel/jump_label.c
50086 iter++; 51231 iter++;
50087 } 51232 }
50088 } 51233 }
50089diff -urNp linux-2.6.38.2/kernel/kallsyms.c linux-2.6.38.2/kernel/kallsyms.c 51234diff -urNp linux-2.6.38.3/kernel/kallsyms.c linux-2.6.38.3/kernel/kallsyms.c
50090--- linux-2.6.38.2/kernel/kallsyms.c 2011-03-14 21:20:32.000000000 -0400 51235--- linux-2.6.38.3/kernel/kallsyms.c 2011-03-14 21:20:32.000000000 -0400
50091+++ linux-2.6.38.2/kernel/kallsyms.c 2011-03-21 18:31:35.000000000 -0400 51236+++ linux-2.6.38.3/kernel/kallsyms.c 2011-04-17 15:57:32.000000000 -0400
50092@@ -11,6 +11,9 @@ 51237@@ -11,6 +11,9 @@
50093 * Changed the compression method from stem compression to "table lookup" 51238 * Changed the compression method from stem compression to "table lookup"
50094 * compression (see scripts/kallsyms.c for a more complete description) 51239 * compression (see scripts/kallsyms.c for a more complete description)
@@ -50191,31 +51336,108 @@ diff -urNp linux-2.6.38.2/kernel/kallsyms.c linux-2.6.38.2/kernel/kallsyms.c
50191 if (!iter) 51336 if (!iter)
50192 return -ENOMEM; 51337 return -ENOMEM;
50193 reset_iter(iter, 0); 51338 reset_iter(iter, 0);
50194diff -urNp linux-2.6.38.2/kernel/kmod.c linux-2.6.38.2/kernel/kmod.c 51339diff -urNp linux-2.6.38.3/kernel/kmod.c linux-2.6.38.3/kernel/kmod.c
50195--- linux-2.6.38.2/kernel/kmod.c 2011-03-14 21:20:32.000000000 -0400 51340--- linux-2.6.38.3/kernel/kmod.c 2011-03-14 21:20:32.000000000 -0400
50196+++ linux-2.6.38.2/kernel/kmod.c 2011-03-26 13:28:34.000000000 -0400 51341+++ linux-2.6.38.3/kernel/kmod.c 2011-04-17 15:57:32.000000000 -0400
50197@@ -90,6 +90,18 @@ int __request_module(bool wait, const ch 51342@@ -65,13 +65,12 @@ char modprobe_path[KMOD_PATH_LEN] = "/sb
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
50198 if (ret) 51370 if (ret)
50199 return ret; 51371 return ret;
50200 51372
50201+#ifdef CONFIG_GRKERNSEC_MODHARDEN 51373+#ifdef CONFIG_GRKERNSEC_MODHARDEN
50202+ /* we could do a tighter check here, but some distros 51374+ if (!current_uid()) {
50203+ are taking it upon themselves to remove CAP_SYS_MODULE 51375+ /* hack to workaround consolekit/udisks stupidity */
50204+ from even root-running apps which cause modules to be 51376+ read_lock(&tasklist_lock);
50205+ auto-loaded 51377+ if (!strcmp(current->comm, "mount") &&
50206+ */ 51378+ current->real_parent && !strncmp(current->real_parent->comm, "udisk", 5)) {
50207+ if (current_uid()) { 51379+ read_unlock(&tasklist_lock);
50208+ gr_log_nonroot_mod_load(module_name); 51380+ printk(KERN_ALERT "grsec: denied attempt to auto-load fs module %.64s by udisks\n", module_name);
50209+ return -EPERM; 51381+ return -EPERM;
51382+ }
51383+ read_unlock(&tasklist_lock);
50210+ } 51384+ }
50211+#endif 51385+#endif
50212+ 51386+
50213 /* If modprobe needs a service that is in a module, we get a recursive 51387 /* If modprobe needs a service that is in a module, we get a recursive
50214 * loop. Limit the number of running kmod threads to max_threads/2 or 51388 * loop. Limit the number of running kmod threads to max_threads/2 or
50215 * MAX_KMOD_CONCURRENT, whichever is the smaller. A cleaner method 51389 * MAX_KMOD_CONCURRENT, whichever is the smaller. A cleaner method
50216diff -urNp linux-2.6.38.2/kernel/kprobes.c linux-2.6.38.2/kernel/kprobes.c 51390@@ -123,6 +134,47 @@ int __request_module(bool wait, const ch
50217--- linux-2.6.38.2/kernel/kprobes.c 2011-03-14 21:20:32.000000000 -0400 51391 atomic_dec(&kmod_concurrent);
50218+++ linux-2.6.38.2/kernel/kprobes.c 2011-03-21 18:31:35.000000000 -0400 51392 return ret;
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
50219@@ -185,7 +185,7 @@ static kprobe_opcode_t __kprobes *__get_ 51441@@ -185,7 +185,7 @@ static kprobe_opcode_t __kprobes *__get_
50220 * kernel image and loaded module images reside. This is required 51442 * kernel image and loaded module images reside. This is required
50221 * so x86_64 can correctly handle the %rip-relative fixups. 51443 * so x86_64 can correctly handle the %rip-relative fixups.
@@ -50252,9 +51474,9 @@ diff -urNp linux-2.6.38.2/kernel/kprobes.c linux-2.6.38.2/kernel/kprobes.c
50252 51474
50253 head = &kprobe_table[i]; 51475 head = &kprobe_table[i];
50254 preempt_disable(); 51476 preempt_disable();
50255diff -urNp linux-2.6.38.2/kernel/lockdep.c linux-2.6.38.2/kernel/lockdep.c 51477diff -urNp linux-2.6.38.3/kernel/lockdep.c linux-2.6.38.3/kernel/lockdep.c
50256--- linux-2.6.38.2/kernel/lockdep.c 2011-03-14 21:20:32.000000000 -0400 51478--- linux-2.6.38.3/kernel/lockdep.c 2011-03-14 21:20:32.000000000 -0400
50257+++ linux-2.6.38.2/kernel/lockdep.c 2011-03-21 18:31:35.000000000 -0400 51479+++ linux-2.6.38.3/kernel/lockdep.c 2011-04-17 15:57:32.000000000 -0400
50258@@ -571,6 +571,10 @@ static int static_obj(void *obj) 51480@@ -571,6 +571,10 @@ static int static_obj(void *obj)
50259 end = (unsigned long) &_end, 51481 end = (unsigned long) &_end,
50260 addr = (unsigned long) obj; 51482 addr = (unsigned long) obj;
@@ -50283,9 +51505,9 @@ diff -urNp linux-2.6.38.2/kernel/lockdep.c linux-2.6.38.2/kernel/lockdep.c
50283 if (very_verbose(class)) { 51505 if (very_verbose(class)) {
50284 printk("\nacquire class [%p] %s", class->key, class->name); 51506 printk("\nacquire class [%p] %s", class->key, class->name);
50285 if (class->name_version > 1) 51507 if (class->name_version > 1)
50286diff -urNp linux-2.6.38.2/kernel/lockdep_proc.c linux-2.6.38.2/kernel/lockdep_proc.c 51508diff -urNp linux-2.6.38.3/kernel/lockdep_proc.c linux-2.6.38.3/kernel/lockdep_proc.c
50287--- linux-2.6.38.2/kernel/lockdep_proc.c 2011-03-14 21:20:32.000000000 -0400 51509--- linux-2.6.38.3/kernel/lockdep_proc.c 2011-03-14 21:20:32.000000000 -0400
50288+++ linux-2.6.38.2/kernel/lockdep_proc.c 2011-03-21 18:31:35.000000000 -0400 51510+++ linux-2.6.38.3/kernel/lockdep_proc.c 2011-04-17 15:57:32.000000000 -0400
50289@@ -39,7 +39,7 @@ static void l_stop(struct seq_file *m, v 51511@@ -39,7 +39,7 @@ static void l_stop(struct seq_file *m, v
50290 51512
50291 static void print_name(struct seq_file *m, struct lock_class *class) 51513 static void print_name(struct seq_file *m, struct lock_class *class)
@@ -50295,10 +51517,18 @@ diff -urNp linux-2.6.38.2/kernel/lockdep_proc.c linux-2.6.38.2/kernel/lockdep_pr
50295 const char *name = class->name; 51517 const char *name = class->name;
50296 51518
50297 if (!name) { 51519 if (!name) {
50298diff -urNp linux-2.6.38.2/kernel/module.c linux-2.6.38.2/kernel/module.c 51520diff -urNp linux-2.6.38.3/kernel/module.c linux-2.6.38.3/kernel/module.c
50299--- linux-2.6.38.2/kernel/module.c 2011-03-14 21:20:32.000000000 -0400 51521--- linux-2.6.38.3/kernel/module.c 2011-03-14 21:20:32.000000000 -0400
50300+++ linux-2.6.38.2/kernel/module.c 2011-03-21 18:31:35.000000000 -0400 51522+++ linux-2.6.38.3/kernel/module.c 2011-04-17 16:05:04.000000000 -0400
50301@@ -118,7 +118,8 @@ static BLOCKING_NOTIFIER_HEAD(module_not 51523@@ -57,6 +57,7 @@
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
50302 51532
50303 /* Bounds of module allocation, for speeding __module_address. 51533 /* Bounds of module allocation, for speeding __module_address.
50304 * Protected by module_mutex. */ 51534 * Protected by module_mutex. */
@@ -50308,7 +51538,7 @@ diff -urNp linux-2.6.38.2/kernel/module.c linux-2.6.38.2/kernel/module.c
50308 51538
50309 int register_module_notifier(struct notifier_block * nb) 51539 int register_module_notifier(struct notifier_block * nb)
50310 { 51540 {
50311@@ -282,7 +283,7 @@ bool each_symbol(bool (*fn)(const struct 51541@@ -282,7 +284,7 @@ bool each_symbol(bool (*fn)(const struct
50312 return true; 51542 return true;
50313 51543
50314 list_for_each_entry_rcu(mod, &modules, list) { 51544 list_for_each_entry_rcu(mod, &modules, list) {
@@ -50317,7 +51547,7 @@ diff -urNp linux-2.6.38.2/kernel/module.c linux-2.6.38.2/kernel/module.c
50317 { mod->syms, mod->syms + mod->num_syms, mod->crcs, 51547 { mod->syms, mod->syms + mod->num_syms, mod->crcs,
50318 NOT_GPL_ONLY, false }, 51548 NOT_GPL_ONLY, false },
50319 { mod->gpl_syms, mod->gpl_syms + mod->num_gpl_syms, 51549 { mod->gpl_syms, mod->gpl_syms + mod->num_gpl_syms,
50320@@ -304,7 +305,7 @@ bool each_symbol(bool (*fn)(const struct 51550@@ -304,7 +306,7 @@ bool each_symbol(bool (*fn)(const struct
50321 #endif 51551 #endif
50322 }; 51552 };
50323 51553
@@ -50326,7 +51556,7 @@ diff -urNp linux-2.6.38.2/kernel/module.c linux-2.6.38.2/kernel/module.c
50326 return true; 51556 return true;
50327 } 51557 }
50328 return false; 51558 return false;
50329@@ -415,7 +416,7 @@ static inline void __percpu *mod_percpu( 51559@@ -415,7 +417,7 @@ static inline void __percpu *mod_percpu(
50330 static int percpu_modalloc(struct module *mod, 51560 static int percpu_modalloc(struct module *mod,
50331 unsigned long size, unsigned long align) 51561 unsigned long size, unsigned long align)
50332 { 51562 {
@@ -50335,7 +51565,7 @@ diff -urNp linux-2.6.38.2/kernel/module.c linux-2.6.38.2/kernel/module.c
50335 printk(KERN_WARNING "%s: per-cpu alignment %li > %li\n", 51565 printk(KERN_WARNING "%s: per-cpu alignment %li > %li\n",
50336 mod->name, align, PAGE_SIZE); 51566 mod->name, align, PAGE_SIZE);
50337 align = PAGE_SIZE; 51567 align = PAGE_SIZE;
50338@@ -1143,7 +1144,7 @@ resolve_symbol_wait(struct module *mod, 51568@@ -1143,7 +1145,7 @@ resolve_symbol_wait(struct module *mod,
50339 */ 51569 */
50340 #ifdef CONFIG_SYSFS 51570 #ifdef CONFIG_SYSFS
50341 51571
@@ -50344,7 +51574,7 @@ diff -urNp linux-2.6.38.2/kernel/module.c linux-2.6.38.2/kernel/module.c
50344 static inline bool sect_empty(const Elf_Shdr *sect) 51574 static inline bool sect_empty(const Elf_Shdr *sect)
50345 { 51575 {
50346 return !(sect->sh_flags & SHF_ALLOC) || sect->sh_size == 0; 51576 return !(sect->sh_flags & SHF_ALLOC) || sect->sh_size == 0;
50347@@ -1612,17 +1613,17 @@ void unset_section_ro_nx(struct module * 51577@@ -1612,17 +1614,17 @@ void unset_section_ro_nx(struct module *
50348 { 51578 {
50349 unsigned long total_pages; 51579 unsigned long total_pages;
50350 51580
@@ -50370,7 +51600,7 @@ diff -urNp linux-2.6.38.2/kernel/module.c linux-2.6.38.2/kernel/module.c
50370 } 51600 }
50371 } 51601 }
50372 51602
50373@@ -1633,14 +1634,14 @@ void set_all_modules_text_rw() 51603@@ -1633,14 +1635,14 @@ void set_all_modules_text_rw()
50374 51604
50375 mutex_lock(&module_mutex); 51605 mutex_lock(&module_mutex);
50376 list_for_each_entry_rcu(mod, &modules, list) { 51606 list_for_each_entry_rcu(mod, &modules, list) {
@@ -50391,7 +51621,7 @@ diff -urNp linux-2.6.38.2/kernel/module.c linux-2.6.38.2/kernel/module.c
50391 set_memory_rw); 51621 set_memory_rw);
50392 } 51622 }
50393 } 51623 }
50394@@ -1654,14 +1655,14 @@ void set_all_modules_text_ro() 51624@@ -1654,14 +1656,14 @@ void set_all_modules_text_ro()
50395 51625
50396 mutex_lock(&module_mutex); 51626 mutex_lock(&module_mutex);
50397 list_for_each_entry_rcu(mod, &modules, list) { 51627 list_for_each_entry_rcu(mod, &modules, list) {
@@ -50412,7 +51642,7 @@ diff -urNp linux-2.6.38.2/kernel/module.c linux-2.6.38.2/kernel/module.c
50412 set_memory_ro); 51642 set_memory_ro);
50413 } 51643 }
50414 } 51644 }
50415@@ -1696,17 +1697,20 @@ static void free_module(struct module *m 51645@@ -1696,17 +1698,20 @@ static void free_module(struct module *m
50416 destroy_params(mod->kp, mod->num_kp); 51646 destroy_params(mod->kp, mod->num_kp);
50417 51647
50418 /* This may be NULL, but that's OK */ 51648 /* This may be NULL, but that's OK */
@@ -50438,7 +51668,33 @@ diff -urNp linux-2.6.38.2/kernel/module.c linux-2.6.38.2/kernel/module.c
50438 51668
50439 #ifdef CONFIG_MPU 51669 #ifdef CONFIG_MPU
50440 update_protections(current->mm); 51670 update_protections(current->mm);
50441@@ -1799,7 +1803,9 @@ static int simplify_symbols(struct modul 51671@@ -1775,10 +1780,25 @@ 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
50442 ksym = resolve_symbol_wait(mod, info, name); 51698 ksym = resolve_symbol_wait(mod, info, name);
50443 /* Ok if resolved. */ 51699 /* Ok if resolved. */
50444 if (ksym && !IS_ERR(ksym)) { 51700 if (ksym && !IS_ERR(ksym)) {
@@ -50448,7 +51704,7 @@ diff -urNp linux-2.6.38.2/kernel/module.c linux-2.6.38.2/kernel/module.c
50448 break; 51704 break;
50449 } 51705 }
50450 51706
50451@@ -1818,7 +1824,9 @@ static int simplify_symbols(struct modul 51707@@ -1818,11 +1840,20 @@ static int simplify_symbols(struct modul
50452 secbase = (unsigned long)mod_percpu(mod); 51708 secbase = (unsigned long)mod_percpu(mod);
50453 else 51709 else
50454 secbase = info->sechdrs[sym[i].st_shndx].sh_addr; 51710 secbase = info->sechdrs[sym[i].st_shndx].sh_addr;
@@ -50458,7 +51714,18 @@ diff -urNp linux-2.6.38.2/kernel/module.c linux-2.6.38.2/kernel/module.c
50458 break; 51714 break;
50459 } 51715 }
50460 } 51716 }
50461@@ -1906,22 +1914,12 @@ static void layout_sections(struct modul 51717
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
50462 || s->sh_entsize != ~0UL 51729 || s->sh_entsize != ~0UL
50463 || strstarts(sname, ".init")) 51730 || strstarts(sname, ".init"))
50464 continue; 51731 continue;
@@ -50485,7 +51752,7 @@ diff -urNp linux-2.6.38.2/kernel/module.c linux-2.6.38.2/kernel/module.c
50485 } 51752 }
50486 51753
50487 DEBUGP("Init section allocation order:\n"); 51754 DEBUGP("Init section allocation order:\n");
50488@@ -1935,23 +1933,13 @@ static void layout_sections(struct modul 51755@@ -1935,23 +1956,13 @@ static void layout_sections(struct modul
50489 || s->sh_entsize != ~0UL 51756 || s->sh_entsize != ~0UL
50490 || !strstarts(sname, ".init")) 51757 || !strstarts(sname, ".init"))
50491 continue; 51758 continue;
@@ -50514,7 +51781,7 @@ diff -urNp linux-2.6.38.2/kernel/module.c linux-2.6.38.2/kernel/module.c
50514 } 51781 }
50515 } 51782 }
50516 51783
50517@@ -2119,7 +2107,7 @@ static void layout_symtab(struct module 51784@@ -2119,7 +2130,7 @@ static void layout_symtab(struct module
50518 51785
50519 /* Put symbol section at end of init part of module. */ 51786 /* Put symbol section at end of init part of module. */
50520 symsect->sh_flags |= SHF_ALLOC; 51787 symsect->sh_flags |= SHF_ALLOC;
@@ -50523,7 +51790,7 @@ diff -urNp linux-2.6.38.2/kernel/module.c linux-2.6.38.2/kernel/module.c
50523 info->index.sym) | INIT_OFFSET_MASK; 51790 info->index.sym) | INIT_OFFSET_MASK;
50524 DEBUGP("\t%s\n", info->secstrings + symsect->sh_name); 51791 DEBUGP("\t%s\n", info->secstrings + symsect->sh_name);
50525 51792
50526@@ -2136,19 +2124,19 @@ static void layout_symtab(struct module 51793@@ -2136,19 +2147,19 @@ static void layout_symtab(struct module
50527 } 51794 }
50528 51795
50529 /* Append room for core symbols at end of core part. */ 51796 /* Append room for core symbols at end of core part. */
@@ -50548,7 +51815,7 @@ diff -urNp linux-2.6.38.2/kernel/module.c linux-2.6.38.2/kernel/module.c
50548 } 51815 }
50549 51816
50550 static void add_kallsyms(struct module *mod, const struct load_info *info) 51817 static void add_kallsyms(struct module *mod, const struct load_info *info)
50551@@ -2164,11 +2152,13 @@ static void add_kallsyms(struct module * 51818@@ -2164,11 +2175,13 @@ static void add_kallsyms(struct module *
50552 /* Make sure we get permanent strtab: don't use info->strtab. */ 51819 /* Make sure we get permanent strtab: don't use info->strtab. */
50553 mod->strtab = (void *)info->sechdrs[info->index.str].sh_addr; 51820 mod->strtab = (void *)info->sechdrs[info->index.str].sh_addr;
50554 51821
@@ -50563,7 +51830,7 @@ diff -urNp linux-2.6.38.2/kernel/module.c linux-2.6.38.2/kernel/module.c
50563 src = mod->symtab; 51830 src = mod->symtab;
50564 *dst = *src; 51831 *dst = *src;
50565 for (ndst = i = 1; i < mod->num_symtab; ++i, ++src) { 51832 for (ndst = i = 1; i < mod->num_symtab; ++i, ++src) {
50566@@ -2181,10 +2171,12 @@ static void add_kallsyms(struct module * 51833@@ -2181,10 +2194,12 @@ static void add_kallsyms(struct module *
50567 } 51834 }
50568 mod->core_num_syms = ndst; 51835 mod->core_num_syms = ndst;
50569 51836
@@ -50577,7 +51844,7 @@ diff -urNp linux-2.6.38.2/kernel/module.c linux-2.6.38.2/kernel/module.c
50577 } 51844 }
50578 #else 51845 #else
50579 static inline void layout_symtab(struct module *mod, struct load_info *info) 51846 static inline void layout_symtab(struct module *mod, struct load_info *info)
50580@@ -2213,17 +2205,33 @@ static void dynamic_debug_remove(struct 51847@@ -2213,17 +2228,33 @@ static void dynamic_debug_remove(struct
50581 ddebug_remove_module(debug->modname); 51848 ddebug_remove_module(debug->modname);
50582 } 51849 }
50583 51850
@@ -50616,7 +51883,7 @@ diff -urNp linux-2.6.38.2/kernel/module.c linux-2.6.38.2/kernel/module.c
50616 mutex_unlock(&module_mutex); 51883 mutex_unlock(&module_mutex);
50617 } 51884 }
50618 return ret; 51885 return ret;
50619@@ -2516,7 +2524,7 @@ static int move_module(struct module *mo 51886@@ -2516,7 +2547,7 @@ static int move_module(struct module *mo
50620 void *ptr; 51887 void *ptr;
50621 51888
50622 /* Do the allocs. */ 51889 /* Do the allocs. */
@@ -50625,7 +51892,7 @@ diff -urNp linux-2.6.38.2/kernel/module.c linux-2.6.38.2/kernel/module.c
50625 /* 51892 /*
50626 * The pointer to this block is stored in the module structure 51893 * The pointer to this block is stored in the module structure
50627 * which is inside the block. Just mark it as not being a 51894 * which is inside the block. Just mark it as not being a
50628@@ -2526,23 +2534,50 @@ static int move_module(struct module *mo 51895@@ -2526,23 +2557,50 @@ static int move_module(struct module *mo
50629 if (!ptr) 51896 if (!ptr)
50630 return -ENOMEM; 51897 return -ENOMEM;
50631 51898
@@ -50684,7 +51951,7 @@ diff -urNp linux-2.6.38.2/kernel/module.c linux-2.6.38.2/kernel/module.c
50684 51951
50685 /* Transfer each section which specifies SHF_ALLOC */ 51952 /* Transfer each section which specifies SHF_ALLOC */
50686 DEBUGP("final section addresses:\n"); 51953 DEBUGP("final section addresses:\n");
50687@@ -2553,16 +2588,45 @@ static int move_module(struct module *mo 51954@@ -2553,16 +2611,45 @@ static int move_module(struct module *mo
50688 if (!(shdr->sh_flags & SHF_ALLOC)) 51955 if (!(shdr->sh_flags & SHF_ALLOC))
50689 continue; 51956 continue;
50690 51957
@@ -50737,7 +52004,7 @@ diff -urNp linux-2.6.38.2/kernel/module.c linux-2.6.38.2/kernel/module.c
50737 DEBUGP("\t0x%lx %s\n", 52004 DEBUGP("\t0x%lx %s\n",
50738 shdr->sh_addr, info->secstrings + shdr->sh_name); 52005 shdr->sh_addr, info->secstrings + shdr->sh_name);
50739 } 52006 }
50740@@ -2613,12 +2677,12 @@ static void flush_module_icache(const st 52007@@ -2613,12 +2700,12 @@ static void flush_module_icache(const st
50741 * Do it before processing of module parameters, so the module 52008 * Do it before processing of module parameters, so the module
50742 * can provide parameter accessor functions of its own. 52009 * can provide parameter accessor functions of its own.
50743 */ 52010 */
@@ -50756,7 +52023,7 @@ diff -urNp linux-2.6.38.2/kernel/module.c linux-2.6.38.2/kernel/module.c
50756 52023
50757 set_fs(old_fs); 52024 set_fs(old_fs);
50758 } 52025 }
50759@@ -2690,8 +2754,10 @@ static void module_deallocate(struct mod 52026@@ -2690,8 +2777,10 @@ static void module_deallocate(struct mod
50760 { 52027 {
50761 kfree(info->strmap); 52028 kfree(info->strmap);
50762 percpu_modfree(mod); 52029 percpu_modfree(mod);
@@ -50769,7 +52036,73 @@ diff -urNp linux-2.6.38.2/kernel/module.c linux-2.6.38.2/kernel/module.c
50769 } 52036 }
50770 52037
50771 static int post_relocation(struct module *mod, const struct load_info *info) 52038 static int post_relocation(struct module *mod, const struct load_info *info)
50772@@ -2877,16 +2943,16 @@ SYSCALL_DEFINE3(init_module, void __user 52039@@ -2748,9 +2837,38 @@ static struct module *load_module(void _
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
50773 MODULE_STATE_COMING, mod); 52106 MODULE_STATE_COMING, mod);
50774 52107
50775 /* Set RO and NX regions for core */ 52108 /* Set RO and NX regions for core */
@@ -50794,7 +52127,7 @@ diff -urNp linux-2.6.38.2/kernel/module.c linux-2.6.38.2/kernel/module.c
50794 52127
50795 do_mod_ctors(mod); 52128 do_mod_ctors(mod);
50796 /* Start the module */ 52129 /* Start the module */
50797@@ -2931,11 +2997,13 @@ SYSCALL_DEFINE3(init_module, void __user 52130@@ -2931,11 +3041,13 @@ SYSCALL_DEFINE3(init_module, void __user
50798 mod->symtab = mod->core_symtab; 52131 mod->symtab = mod->core_symtab;
50799 mod->strtab = mod->core_strtab; 52132 mod->strtab = mod->core_strtab;
50800 #endif 52133 #endif
@@ -50813,7 +52146,7 @@ diff -urNp linux-2.6.38.2/kernel/module.c linux-2.6.38.2/kernel/module.c
50813 mutex_unlock(&module_mutex); 52146 mutex_unlock(&module_mutex);
50814 52147
50815 return 0; 52148 return 0;
50816@@ -2966,10 +3034,16 @@ static const char *get_ksymbol(struct mo 52149@@ -2966,10 +3078,16 @@ static const char *get_ksymbol(struct mo
50817 unsigned long nextval; 52150 unsigned long nextval;
50818 52151
50819 /* At worse, next value is at end of module */ 52152 /* At worse, next value is at end of module */
@@ -50833,7 +52166,7 @@ diff -urNp linux-2.6.38.2/kernel/module.c linux-2.6.38.2/kernel/module.c
50833 52166
50834 /* Scan for closest preceeding symbol, and next symbol. (ELF 52167 /* Scan for closest preceeding symbol, and next symbol. (ELF
50835 starts real symbols at 1). */ 52168 starts real symbols at 1). */
50836@@ -3215,7 +3289,7 @@ static int m_show(struct seq_file *m, vo 52169@@ -3215,7 +3333,7 @@ static int m_show(struct seq_file *m, vo
50837 char buf[8]; 52170 char buf[8];
50838 52171
50839 seq_printf(m, "%s %u", 52172 seq_printf(m, "%s %u",
@@ -50842,7 +52175,7 @@ diff -urNp linux-2.6.38.2/kernel/module.c linux-2.6.38.2/kernel/module.c
50842 print_unload_info(m, mod); 52175 print_unload_info(m, mod);
50843 52176
50844 /* Informative for users. */ 52177 /* Informative for users. */
50845@@ -3224,7 +3298,7 @@ static int m_show(struct seq_file *m, vo 52178@@ -3224,7 +3342,7 @@ static int m_show(struct seq_file *m, vo
50846 mod->state == MODULE_STATE_COMING ? "Loading": 52179 mod->state == MODULE_STATE_COMING ? "Loading":
50847 "Live"); 52180 "Live");
50848 /* Used by oprofile and other similar tools. */ 52181 /* Used by oprofile and other similar tools. */
@@ -50851,7 +52184,7 @@ diff -urNp linux-2.6.38.2/kernel/module.c linux-2.6.38.2/kernel/module.c
50851 52184
50852 /* Taints info */ 52185 /* Taints info */
50853 if (mod->taints) 52186 if (mod->taints)
50854@@ -3260,7 +3334,17 @@ static const struct file_operations proc 52187@@ -3260,7 +3378,17 @@ static const struct file_operations proc
50855 52188
50856 static int __init proc_modules_init(void) 52189 static int __init proc_modules_init(void)
50857 { 52190 {
@@ -50869,7 +52202,7 @@ diff -urNp linux-2.6.38.2/kernel/module.c linux-2.6.38.2/kernel/module.c
50869 return 0; 52202 return 0;
50870 } 52203 }
50871 module_init(proc_modules_init); 52204 module_init(proc_modules_init);
50872@@ -3319,12 +3403,12 @@ struct module *__module_address(unsigned 52205@@ -3319,12 +3447,12 @@ struct module *__module_address(unsigned
50873 { 52206 {
50874 struct module *mod; 52207 struct module *mod;
50875 52208
@@ -50885,7 +52218,7 @@ diff -urNp linux-2.6.38.2/kernel/module.c linux-2.6.38.2/kernel/module.c
50885 return mod; 52218 return mod;
50886 return NULL; 52219 return NULL;
50887 } 52220 }
50888@@ -3358,11 +3442,20 @@ bool is_module_text_address(unsigned lon 52221@@ -3358,11 +3486,20 @@ bool is_module_text_address(unsigned lon
50889 */ 52222 */
50890 struct module *__module_text_address(unsigned long addr) 52223 struct module *__module_text_address(unsigned long addr)
50891 { 52224 {
@@ -50909,9 +52242,124 @@ diff -urNp linux-2.6.38.2/kernel/module.c linux-2.6.38.2/kernel/module.c
50909 mod = NULL; 52242 mod = NULL;
50910 } 52243 }
50911 return mod; 52244 return mod;
50912diff -urNp linux-2.6.38.2/kernel/panic.c linux-2.6.38.2/kernel/panic.c 52245diff -urNp linux-2.6.38.3/kernel/mutex.c linux-2.6.38.3/kernel/mutex.c
50913--- linux-2.6.38.2/kernel/panic.c 2011-03-14 21:20:32.000000000 -0400 52246--- linux-2.6.38.3/kernel/mutex.c 2011-03-14 21:20:32.000000000 -0400
50914+++ linux-2.6.38.2/kernel/panic.c 2011-03-21 18:31:35.000000000 -0400 52247+++ linux-2.6.38.3/kernel/mutex.c 2011-04-17 16:24:38.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
50915@@ -369,7 +369,7 @@ static void warn_slowpath_common(const c 52363@@ -369,7 +369,7 @@ static void warn_slowpath_common(const c
50916 const char *board; 52364 const char *board;
50917 52365
@@ -50931,9 +52379,9 @@ diff -urNp linux-2.6.38.2/kernel/panic.c linux-2.6.38.2/kernel/panic.c
50931 __builtin_return_address(0)); 52379 __builtin_return_address(0));
50932 } 52380 }
50933 EXPORT_SYMBOL(__stack_chk_fail); 52381 EXPORT_SYMBOL(__stack_chk_fail);
50934diff -urNp linux-2.6.38.2/kernel/pid.c linux-2.6.38.2/kernel/pid.c 52382diff -urNp linux-2.6.38.3/kernel/pid.c linux-2.6.38.3/kernel/pid.c
50935--- linux-2.6.38.2/kernel/pid.c 2011-03-14 21:20:32.000000000 -0400 52383--- linux-2.6.38.3/kernel/pid.c 2011-03-14 21:20:32.000000000 -0400
50936+++ linux-2.6.38.2/kernel/pid.c 2011-03-21 18:31:35.000000000 -0400 52384+++ linux-2.6.38.3/kernel/pid.c 2011-04-18 19:22:06.000000000 -0400
50937@@ -33,6 +33,7 @@ 52385@@ -33,6 +33,7 @@
50938 #include <linux/rculist.h> 52386 #include <linux/rculist.h>
50939 #include <linux/bootmem.h> 52387 #include <linux/bootmem.h>
@@ -50951,7 +52399,23 @@ diff -urNp linux-2.6.38.2/kernel/pid.c linux-2.6.38.2/kernel/pid.c
50951 52399
50952 int pid_max_min = RESERVED_PIDS + 1; 52400 int pid_max_min = RESERVED_PIDS + 1;
50953 int pid_max_max = PID_MAX_LIMIT; 52401 int pid_max_max = PID_MAX_LIMIT;
50954@@ -416,8 +417,15 @@ EXPORT_SYMBOL(pid_task); 52402@@ -217,11 +218,14 @@ static int alloc_pidmap(struct pid_names
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);
50955 */ 52419 */
50956 struct task_struct *find_task_by_pid_ns(pid_t nr, struct pid_namespace *ns) 52420 struct task_struct *find_task_by_pid_ns(pid_t nr, struct pid_namespace *ns)
50957 { 52421 {
@@ -50968,9 +52432,9 @@ diff -urNp linux-2.6.38.2/kernel/pid.c linux-2.6.38.2/kernel/pid.c
50968 } 52432 }
50969 52433
50970 struct task_struct *find_task_by_vpid(pid_t vnr) 52434 struct task_struct *find_task_by_vpid(pid_t vnr)
50971diff -urNp linux-2.6.38.2/kernel/posix-cpu-timers.c linux-2.6.38.2/kernel/posix-cpu-timers.c 52435diff -urNp linux-2.6.38.3/kernel/posix-cpu-timers.c linux-2.6.38.3/kernel/posix-cpu-timers.c
50972--- linux-2.6.38.2/kernel/posix-cpu-timers.c 2011-03-14 21:20:32.000000000 -0400 52436--- linux-2.6.38.3/kernel/posix-cpu-timers.c 2011-03-14 21:20:32.000000000 -0400
50973+++ linux-2.6.38.2/kernel/posix-cpu-timers.c 2011-03-21 18:31:35.000000000 -0400 52437+++ linux-2.6.38.3/kernel/posix-cpu-timers.c 2011-04-17 15:57:32.000000000 -0400
50974@@ -6,6 +6,7 @@ 52438@@ -6,6 +6,7 @@
50975 #include <linux/posix-timers.h> 52439 #include <linux/posix-timers.h>
50976 #include <linux/errno.h> 52440 #include <linux/errno.h>
@@ -50979,9 +52443,9 @@ diff -urNp linux-2.6.38.2/kernel/posix-cpu-timers.c linux-2.6.38.2/kernel/posix-
50979 #include <asm/uaccess.h> 52443 #include <asm/uaccess.h>
50980 #include <linux/kernel_stat.h> 52444 #include <linux/kernel_stat.h>
50981 #include <trace/events/timer.h> 52445 #include <trace/events/timer.h>
50982diff -urNp linux-2.6.38.2/kernel/posix-timers.c linux-2.6.38.2/kernel/posix-timers.c 52446diff -urNp linux-2.6.38.3/kernel/posix-timers.c linux-2.6.38.3/kernel/posix-timers.c
50983--- linux-2.6.38.2/kernel/posix-timers.c 2011-03-14 21:20:32.000000000 -0400 52447--- linux-2.6.38.3/kernel/posix-timers.c 2011-03-14 21:20:32.000000000 -0400
50984+++ linux-2.6.38.2/kernel/posix-timers.c 2011-03-21 18:31:35.000000000 -0400 52448+++ linux-2.6.38.3/kernel/posix-timers.c 2011-04-17 15:57:33.000000000 -0400
50985@@ -42,6 +42,7 @@ 52449@@ -42,6 +42,7 @@
50986 #include <linux/compiler.h> 52450 #include <linux/compiler.h>
50987 #include <linux/idr.h> 52451 #include <linux/idr.h>
@@ -51004,9 +52468,9 @@ diff -urNp linux-2.6.38.2/kernel/posix-timers.c linux-2.6.38.2/kernel/posix-time
51004 return CLOCK_DISPATCH(which_clock, clock_set, (which_clock, &new_tp)); 52468 return CLOCK_DISPATCH(which_clock, clock_set, (which_clock, &new_tp));
51005 } 52469 }
51006 52470
51007diff -urNp linux-2.6.38.2/kernel/power/poweroff.c linux-2.6.38.2/kernel/power/poweroff.c 52471diff -urNp linux-2.6.38.3/kernel/power/poweroff.c linux-2.6.38.3/kernel/power/poweroff.c
51008--- linux-2.6.38.2/kernel/power/poweroff.c 2011-03-14 21:20:32.000000000 -0400 52472--- linux-2.6.38.3/kernel/power/poweroff.c 2011-03-14 21:20:32.000000000 -0400
51009+++ linux-2.6.38.2/kernel/power/poweroff.c 2011-03-21 18:31:35.000000000 -0400 52473+++ linux-2.6.38.3/kernel/power/poweroff.c 2011-04-17 15:57:33.000000000 -0400
51010@@ -37,7 +37,7 @@ static struct sysrq_key_op sysrq_powerof 52474@@ -37,7 +37,7 @@ static struct sysrq_key_op sysrq_powerof
51011 .enable_mask = SYSRQ_ENABLE_BOOT, 52475 .enable_mask = SYSRQ_ENABLE_BOOT,
51012 }; 52476 };
@@ -51016,9 +52480,9 @@ diff -urNp linux-2.6.38.2/kernel/power/poweroff.c linux-2.6.38.2/kernel/power/po
51016 { 52480 {
51017 register_sysrq_key('o', &sysrq_poweroff_op); 52481 register_sysrq_key('o', &sysrq_poweroff_op);
51018 return 0; 52482 return 0;
51019diff -urNp linux-2.6.38.2/kernel/power/process.c linux-2.6.38.2/kernel/power/process.c 52483diff -urNp linux-2.6.38.3/kernel/power/process.c linux-2.6.38.3/kernel/power/process.c
51020--- linux-2.6.38.2/kernel/power/process.c 2011-03-14 21:20:32.000000000 -0400 52484--- linux-2.6.38.3/kernel/power/process.c 2011-03-14 21:20:32.000000000 -0400
51021+++ linux-2.6.38.2/kernel/power/process.c 2011-03-21 18:31:35.000000000 -0400 52485+++ linux-2.6.38.3/kernel/power/process.c 2011-04-17 15:57:33.000000000 -0400
51022@@ -41,6 +41,7 @@ static int try_to_freeze_tasks(bool sig_ 52486@@ -41,6 +41,7 @@ static int try_to_freeze_tasks(bool sig_
51023 u64 elapsed_csecs64; 52487 u64 elapsed_csecs64;
51024 unsigned int elapsed_csecs; 52488 unsigned int elapsed_csecs;
@@ -51061,9 +52525,9 @@ diff -urNp linux-2.6.38.2/kernel/power/process.c linux-2.6.38.2/kernel/power/pro
51061 break; 52525 break;
51062 52526
51063 if (pm_wakeup_pending()) { 52527 if (pm_wakeup_pending()) {
51064diff -urNp linux-2.6.38.2/kernel/printk.c linux-2.6.38.2/kernel/printk.c 52528diff -urNp linux-2.6.38.3/kernel/printk.c linux-2.6.38.3/kernel/printk.c
51065--- linux-2.6.38.2/kernel/printk.c 2011-03-14 21:20:32.000000000 -0400 52529--- linux-2.6.38.3/kernel/printk.c 2011-03-14 21:20:32.000000000 -0400
51066+++ linux-2.6.38.2/kernel/printk.c 2011-03-23 22:30:08.000000000 -0400 52530+++ linux-2.6.38.3/kernel/printk.c 2011-04-17 15:57:33.000000000 -0400
51067@@ -279,12 +279,17 @@ static int check_syslog_permissions(int 52531@@ -279,12 +279,17 @@ static int check_syslog_permissions(int
51068 if (from_file && type != SYSLOG_ACTION_OPEN) 52532 if (from_file && type != SYSLOG_ACTION_OPEN)
51069 return 0; 52533 return 0;
@@ -51083,9 +52547,9 @@ diff -urNp linux-2.6.38.2/kernel/printk.c linux-2.6.38.2/kernel/printk.c
51083 "but no CAP_SYSLOG (deprecated).\n"); 52547 "but no CAP_SYSLOG (deprecated).\n");
51084 return 0; 52548 return 0;
51085 } 52549 }
51086diff -urNp linux-2.6.38.2/kernel/ptrace.c linux-2.6.38.2/kernel/ptrace.c 52550diff -urNp linux-2.6.38.3/kernel/ptrace.c linux-2.6.38.3/kernel/ptrace.c
51087--- linux-2.6.38.2/kernel/ptrace.c 2011-03-14 21:20:32.000000000 -0400 52551--- linux-2.6.38.3/kernel/ptrace.c 2011-03-14 21:20:32.000000000 -0400
51088+++ linux-2.6.38.2/kernel/ptrace.c 2011-03-26 11:42:34.000000000 -0400 52552+++ linux-2.6.38.3/kernel/ptrace.c 2011-04-17 15:57:33.000000000 -0400
51089@@ -116,7 +116,8 @@ int ptrace_check_attach(struct task_stru 52553@@ -116,7 +116,8 @@ int ptrace_check_attach(struct task_stru
51090 return ret; 52554 return ret;
51091 } 52555 }
@@ -51227,9 +52691,9 @@ diff -urNp linux-2.6.38.2/kernel/ptrace.c linux-2.6.38.2/kernel/ptrace.c
51227 goto out_put_task_struct; 52691 goto out_put_task_struct;
51228 } 52692 }
51229 52693
51230diff -urNp linux-2.6.38.2/kernel/rcutree.c linux-2.6.38.2/kernel/rcutree.c 52694diff -urNp linux-2.6.38.3/kernel/rcutree.c linux-2.6.38.3/kernel/rcutree.c
51231--- linux-2.6.38.2/kernel/rcutree.c 2011-03-14 21:20:32.000000000 -0400 52695--- linux-2.6.38.3/kernel/rcutree.c 2011-03-14 21:20:32.000000000 -0400
51232+++ linux-2.6.38.2/kernel/rcutree.c 2011-03-21 18:31:35.000000000 -0400 52696+++ linux-2.6.38.3/kernel/rcutree.c 2011-04-17 15:57:33.000000000 -0400
51233@@ -1389,7 +1389,7 @@ __rcu_process_callbacks(struct rcu_state 52697@@ -1389,7 +1389,7 @@ __rcu_process_callbacks(struct rcu_state
51234 /* 52698 /*
51235 * Do softirq processing for the current CPU. 52699 * Do softirq processing for the current CPU.
@@ -51239,9 +52703,9 @@ diff -urNp linux-2.6.38.2/kernel/rcutree.c linux-2.6.38.2/kernel/rcutree.c
51239 { 52703 {
51240 /* 52704 /*
51241 * Memory references from any prior RCU read-side critical sections 52705 * Memory references from any prior RCU read-side critical sections
51242diff -urNp linux-2.6.38.2/kernel/rcutree_plugin.h linux-2.6.38.2/kernel/rcutree_plugin.h 52706diff -urNp linux-2.6.38.3/kernel/rcutree_plugin.h linux-2.6.38.3/kernel/rcutree_plugin.h
51243--- linux-2.6.38.2/kernel/rcutree_plugin.h 2011-03-14 21:20:32.000000000 -0400 52707--- linux-2.6.38.3/kernel/rcutree_plugin.h 2011-03-14 21:20:32.000000000 -0400
51244+++ linux-2.6.38.2/kernel/rcutree_plugin.h 2011-03-21 18:31:35.000000000 -0400 52708+++ linux-2.6.38.3/kernel/rcutree_plugin.h 2011-04-17 15:57:33.000000000 -0400
51245@@ -730,7 +730,7 @@ void synchronize_rcu_expedited(void) 52709@@ -730,7 +730,7 @@ void synchronize_rcu_expedited(void)
51246 52710
51247 /* Clean up and exit. */ 52711 /* Clean up and exit. */
@@ -51251,9 +52715,9 @@ diff -urNp linux-2.6.38.2/kernel/rcutree_plugin.h linux-2.6.38.2/kernel/rcutree_
51251 unlock_mb_ret: 52715 unlock_mb_ret:
51252 mutex_unlock(&sync_rcu_preempt_exp_mutex); 52716 mutex_unlock(&sync_rcu_preempt_exp_mutex);
51253 mb_ret: 52717 mb_ret:
51254diff -urNp linux-2.6.38.2/kernel/resource.c linux-2.6.38.2/kernel/resource.c 52718diff -urNp linux-2.6.38.3/kernel/resource.c linux-2.6.38.3/kernel/resource.c
51255--- linux-2.6.38.2/kernel/resource.c 2011-03-14 21:20:32.000000000 -0400 52719--- linux-2.6.38.3/kernel/resource.c 2011-03-14 21:20:32.000000000 -0400
51256+++ linux-2.6.38.2/kernel/resource.c 2011-03-21 18:31:35.000000000 -0400 52720+++ linux-2.6.38.3/kernel/resource.c 2011-04-17 15:57:33.000000000 -0400
51257@@ -133,8 +133,18 @@ static const struct file_operations proc 52721@@ -133,8 +133,18 @@ static const struct file_operations proc
51258 52722
51259 static int __init ioresources_init(void) 52723 static int __init ioresources_init(void)
@@ -51273,9 +52737,9 @@ diff -urNp linux-2.6.38.2/kernel/resource.c linux-2.6.38.2/kernel/resource.c
51273 return 0; 52737 return 0;
51274 } 52738 }
51275 __initcall(ioresources_init); 52739 __initcall(ioresources_init);
51276diff -urNp linux-2.6.38.2/kernel/rtmutex.c linux-2.6.38.2/kernel/rtmutex.c 52740diff -urNp linux-2.6.38.3/kernel/rtmutex.c linux-2.6.38.3/kernel/rtmutex.c
51277--- linux-2.6.38.2/kernel/rtmutex.c 2011-03-14 21:20:32.000000000 -0400 52741--- linux-2.6.38.3/kernel/rtmutex.c 2011-03-14 21:20:32.000000000 -0400
51278+++ linux-2.6.38.2/kernel/rtmutex.c 2011-03-21 18:31:35.000000000 -0400 52742+++ linux-2.6.38.3/kernel/rtmutex.c 2011-04-17 15:57:33.000000000 -0400
51279@@ -511,7 +511,7 @@ static void wakeup_next_waiter(struct rt 52743@@ -511,7 +511,7 @@ static void wakeup_next_waiter(struct rt
51280 */ 52744 */
51281 raw_spin_lock_irqsave(&pendowner->pi_lock, flags); 52745 raw_spin_lock_irqsave(&pendowner->pi_lock, flags);
@@ -51285,9 +52749,40 @@ diff -urNp linux-2.6.38.2/kernel/rtmutex.c linux-2.6.38.2/kernel/rtmutex.c
51285 WARN_ON(pendowner->pi_blocked_on != waiter); 52749 WARN_ON(pendowner->pi_blocked_on != waiter);
51286 WARN_ON(pendowner->pi_blocked_on->lock != lock); 52750 WARN_ON(pendowner->pi_blocked_on->lock != lock);
51287 52751
51288diff -urNp linux-2.6.38.2/kernel/sched.c linux-2.6.38.2/kernel/sched.c 52752diff -urNp linux-2.6.38.3/kernel/sched.c linux-2.6.38.3/kernel/sched.c
51289--- linux-2.6.38.2/kernel/sched.c 2011-03-23 17:20:08.000000000 -0400 52753--- linux-2.6.38.3/kernel/sched.c 2011-04-18 17:27:14.000000000 -0400
51290+++ linux-2.6.38.2/kernel/sched.c 2011-03-23 17:21:51.000000000 -0400 52754+++ linux-2.6.38.3/kernel/sched.c 2011-04-17 16:29:21.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();
51291@@ -4638,6 +4638,8 @@ int can_nice(const struct task_struct *p 52786@@ -4638,6 +4638,8 @@ int can_nice(const struct task_struct *p
51292 /* convert nice value [19,-20] to rlimit style value [1,40] */ 52787 /* convert nice value [19,-20] to rlimit style value [1,40] */
51293 int nice_rlim = 20 - nice; 52788 int nice_rlim = 20 - nice;
@@ -51324,9 +52819,9 @@ diff -urNp linux-2.6.38.2/kernel/sched.c linux-2.6.38.2/kernel/sched.c
51324 52819
51325 if (cpu != group_first_cpu(sd->groups)) 52820 if (cpu != group_first_cpu(sd->groups))
51326 return; 52821 return;
51327diff -urNp linux-2.6.38.2/kernel/sched_fair.c linux-2.6.38.2/kernel/sched_fair.c 52822diff -urNp linux-2.6.38.3/kernel/sched_fair.c linux-2.6.38.3/kernel/sched_fair.c
51328--- linux-2.6.38.2/kernel/sched_fair.c 2011-03-14 21:20:32.000000000 -0400 52823--- linux-2.6.38.3/kernel/sched_fair.c 2011-03-14 21:20:32.000000000 -0400
51329+++ linux-2.6.38.2/kernel/sched_fair.c 2011-03-21 18:31:35.000000000 -0400 52824+++ linux-2.6.38.3/kernel/sched_fair.c 2011-04-17 15:57:33.000000000 -0400
51330@@ -3960,7 +3960,7 @@ static void nohz_idle_balance(int this_c 52825@@ -3960,7 +3960,7 @@ static void nohz_idle_balance(int this_c
51331 * run_rebalance_domains is triggered when needed from the scheduler tick. 52826 * run_rebalance_domains is triggered when needed from the scheduler tick.
51332 * Also triggered for nohz idle balancing (with nohz_balancing_kick set). 52827 * Also triggered for nohz idle balancing (with nohz_balancing_kick set).
@@ -51336,9 +52831,9 @@ diff -urNp linux-2.6.38.2/kernel/sched_fair.c linux-2.6.38.2/kernel/sched_fair.c
51336 { 52831 {
51337 int this_cpu = smp_processor_id(); 52832 int this_cpu = smp_processor_id();
51338 struct rq *this_rq = cpu_rq(this_cpu); 52833 struct rq *this_rq = cpu_rq(this_cpu);
51339diff -urNp linux-2.6.38.2/kernel/signal.c linux-2.6.38.2/kernel/signal.c 52834diff -urNp linux-2.6.38.3/kernel/signal.c linux-2.6.38.3/kernel/signal.c
51340--- linux-2.6.38.2/kernel/signal.c 2011-03-28 17:42:40.000000000 -0400 52835--- linux-2.6.38.3/kernel/signal.c 2011-04-18 17:27:18.000000000 -0400
51341+++ linux-2.6.38.2/kernel/signal.c 2011-03-28 17:42:53.000000000 -0400 52836+++ linux-2.6.38.3/kernel/signal.c 2011-04-17 16:53:48.000000000 -0400
51342@@ -45,12 +45,12 @@ static struct kmem_cache *sigqueue_cache 52837@@ -45,12 +45,12 @@ static struct kmem_cache *sigqueue_cache
51343 52838
51344 int print_fatal_signals __read_mostly; 52839 int print_fatal_signals __read_mostly;
@@ -51441,9 +52936,9 @@ diff -urNp linux-2.6.38.2/kernel/signal.c linux-2.6.38.2/kernel/signal.c
51441 52936
51442 return ret; 52937 return ret;
51443 } 52938 }
51444diff -urNp linux-2.6.38.2/kernel/smp.c linux-2.6.38.2/kernel/smp.c 52939diff -urNp linux-2.6.38.3/kernel/smp.c linux-2.6.38.3/kernel/smp.c
51445--- linux-2.6.38.2/kernel/smp.c 2011-03-23 17:20:08.000000000 -0400 52940--- linux-2.6.38.3/kernel/smp.c 2011-04-18 17:27:14.000000000 -0400
51446+++ linux-2.6.38.2/kernel/smp.c 2011-03-26 20:50:44.000000000 -0400 52941+++ linux-2.6.38.3/kernel/smp.c 2011-04-17 15:57:33.000000000 -0400
51447@@ -583,22 +583,22 @@ int smp_call_function(smp_call_func_t fu 52942@@ -583,22 +583,22 @@ int smp_call_function(smp_call_func_t fu
51448 } 52943 }
51449 EXPORT_SYMBOL(smp_call_function); 52944 EXPORT_SYMBOL(smp_call_function);
@@ -51471,9 +52966,9 @@ diff -urNp linux-2.6.38.2/kernel/smp.c linux-2.6.38.2/kernel/smp.c
51471 { 52966 {
51472 raw_spin_unlock_irq(&call_function.lock); 52967 raw_spin_unlock_irq(&call_function.lock);
51473 } 52968 }
51474diff -urNp linux-2.6.38.2/kernel/softirq.c linux-2.6.38.2/kernel/softirq.c 52969diff -urNp linux-2.6.38.3/kernel/softirq.c linux-2.6.38.3/kernel/softirq.c
51475--- linux-2.6.38.2/kernel/softirq.c 2011-03-14 21:20:32.000000000 -0400 52970--- linux-2.6.38.3/kernel/softirq.c 2011-03-14 21:20:32.000000000 -0400
51476+++ linux-2.6.38.2/kernel/softirq.c 2011-03-21 18:31:35.000000000 -0400 52971+++ linux-2.6.38.3/kernel/softirq.c 2011-04-17 15:57:33.000000000 -0400
51477@@ -56,7 +56,7 @@ static struct softirq_action softirq_vec 52972@@ -56,7 +56,7 @@ static struct softirq_action softirq_vec
51478 52973
51479 static DEFINE_PER_CPU(struct task_struct *, ksoftirqd); 52974 static DEFINE_PER_CPU(struct task_struct *, ksoftirqd);
@@ -51528,9 +53023,9 @@ diff -urNp linux-2.6.38.2/kernel/softirq.c linux-2.6.38.2/kernel/softirq.c
51528 { 53023 {
51529 struct tasklet_struct *list; 53024 struct tasklet_struct *list;
51530 53025
51531diff -urNp linux-2.6.38.2/kernel/sys.c linux-2.6.38.2/kernel/sys.c 53026diff -urNp linux-2.6.38.3/kernel/sys.c linux-2.6.38.3/kernel/sys.c
51532--- linux-2.6.38.2/kernel/sys.c 2011-03-14 21:20:32.000000000 -0400 53027--- linux-2.6.38.3/kernel/sys.c 2011-03-14 21:20:32.000000000 -0400
51533+++ linux-2.6.38.2/kernel/sys.c 2011-03-21 18:31:35.000000000 -0400 53028+++ linux-2.6.38.3/kernel/sys.c 2011-04-17 15:57:33.000000000 -0400
51534@@ -136,6 +136,12 @@ static int set_one_prio(struct task_stru 53029@@ -136,6 +136,12 @@ static int set_one_prio(struct task_stru
51535 error = -EACCES; 53030 error = -EACCES;
51536 goto out; 53031 goto out;
@@ -51652,9 +53147,9 @@ diff -urNp linux-2.6.38.2/kernel/sys.c linux-2.6.38.2/kernel/sys.c
51652 error = -EINVAL; 53147 error = -EINVAL;
51653 break; 53148 break;
51654 } 53149 }
51655diff -urNp linux-2.6.38.2/kernel/sysctl.c linux-2.6.38.2/kernel/sysctl.c 53150diff -urNp linux-2.6.38.3/kernel/sysctl.c linux-2.6.38.3/kernel/sysctl.c
51656--- linux-2.6.38.2/kernel/sysctl.c 2011-03-28 17:42:40.000000000 -0400 53151--- linux-2.6.38.3/kernel/sysctl.c 2011-04-18 17:27:16.000000000 -0400
51657+++ linux-2.6.38.2/kernel/sysctl.c 2011-03-28 17:49:17.000000000 -0400 53152+++ linux-2.6.38.3/kernel/sysctl.c 2011-04-17 15:57:33.000000000 -0400
51658@@ -84,6 +84,13 @@ 53153@@ -84,6 +84,13 @@
51659 53154
51660 53155
@@ -51843,9 +53338,9 @@ diff -urNp linux-2.6.38.2/kernel/sysctl.c linux-2.6.38.2/kernel/sysctl.c
51843 EXPORT_SYMBOL(proc_doulongvec_minmax); 53338 EXPORT_SYMBOL(proc_doulongvec_minmax);
51844 EXPORT_SYMBOL(proc_doulongvec_ms_jiffies_minmax); 53339 EXPORT_SYMBOL(proc_doulongvec_ms_jiffies_minmax);
51845 EXPORT_SYMBOL(register_sysctl_table); 53340 EXPORT_SYMBOL(register_sysctl_table);
51846diff -urNp linux-2.6.38.2/kernel/sysctl_check.c linux-2.6.38.2/kernel/sysctl_check.c 53341diff -urNp linux-2.6.38.3/kernel/sysctl_check.c linux-2.6.38.3/kernel/sysctl_check.c
51847--- linux-2.6.38.2/kernel/sysctl_check.c 2011-03-14 21:20:32.000000000 -0400 53342--- linux-2.6.38.3/kernel/sysctl_check.c 2011-03-14 21:20:32.000000000 -0400
51848+++ linux-2.6.38.2/kernel/sysctl_check.c 2011-03-21 18:31:35.000000000 -0400 53343+++ linux-2.6.38.3/kernel/sysctl_check.c 2011-04-17 15:57:33.000000000 -0400
51849@@ -131,6 +131,7 @@ int sysctl_check_table(struct nsproxy *n 53344@@ -131,6 +131,7 @@ int sysctl_check_table(struct nsproxy *n
51850 set_fail(&fail, table, "Directory with extra2"); 53345 set_fail(&fail, table, "Directory with extra2");
51851 } else { 53346 } else {
@@ -51854,9 +53349,9 @@ diff -urNp linux-2.6.38.2/kernel/sysctl_check.c linux-2.6.38.2/kernel/sysctl_che
51854 (table->proc_handler == proc_dointvec) || 53349 (table->proc_handler == proc_dointvec) ||
51855 (table->proc_handler == proc_dointvec_minmax) || 53350 (table->proc_handler == proc_dointvec_minmax) ||
51856 (table->proc_handler == proc_dointvec_jiffies) || 53351 (table->proc_handler == proc_dointvec_jiffies) ||
51857diff -urNp linux-2.6.38.2/kernel/taskstats.c linux-2.6.38.2/kernel/taskstats.c 53352diff -urNp linux-2.6.38.3/kernel/taskstats.c linux-2.6.38.3/kernel/taskstats.c
51858--- linux-2.6.38.2/kernel/taskstats.c 2011-03-14 21:20:32.000000000 -0400 53353--- linux-2.6.38.3/kernel/taskstats.c 2011-03-14 21:20:32.000000000 -0400
51859+++ linux-2.6.38.2/kernel/taskstats.c 2011-03-21 18:31:35.000000000 -0400 53354+++ linux-2.6.38.3/kernel/taskstats.c 2011-04-17 15:57:33.000000000 -0400
51860@@ -27,9 +27,12 @@ 53355@@ -27,9 +27,12 @@
51861 #include <linux/cgroup.h> 53356 #include <linux/cgroup.h>
51862 #include <linux/fs.h> 53357 #include <linux/fs.h>
@@ -51880,9 +53375,9 @@ diff -urNp linux-2.6.38.2/kernel/taskstats.c linux-2.6.38.2/kernel/taskstats.c
51880 if (info->attrs[TASKSTATS_CMD_ATTR_REGISTER_CPUMASK]) 53375 if (info->attrs[TASKSTATS_CMD_ATTR_REGISTER_CPUMASK])
51881 return cmd_attr_register_cpumask(info); 53376 return cmd_attr_register_cpumask(info);
51882 else if (info->attrs[TASKSTATS_CMD_ATTR_DEREGISTER_CPUMASK]) 53377 else if (info->attrs[TASKSTATS_CMD_ATTR_DEREGISTER_CPUMASK])
51883diff -urNp linux-2.6.38.2/kernel/time/tick-broadcast.c linux-2.6.38.2/kernel/time/tick-broadcast.c 53378diff -urNp linux-2.6.38.3/kernel/time/tick-broadcast.c linux-2.6.38.3/kernel/time/tick-broadcast.c
51884--- linux-2.6.38.2/kernel/time/tick-broadcast.c 2011-03-14 21:20:32.000000000 -0400 53379--- linux-2.6.38.3/kernel/time/tick-broadcast.c 2011-03-14 21:20:32.000000000 -0400
51885+++ linux-2.6.38.2/kernel/time/tick-broadcast.c 2011-03-21 18:31:35.000000000 -0400 53380+++ linux-2.6.38.3/kernel/time/tick-broadcast.c 2011-04-17 15:57:33.000000000 -0400
51886@@ -116,7 +116,7 @@ int tick_device_uses_broadcast(struct cl 53381@@ -116,7 +116,7 @@ int tick_device_uses_broadcast(struct cl
51887 * then clear the broadcast bit. 53382 * then clear the broadcast bit.
51888 */ 53383 */
@@ -51892,9 +53387,9 @@ diff -urNp linux-2.6.38.2/kernel/time/tick-broadcast.c linux-2.6.38.2/kernel/tim
51892 53387
51893 cpumask_clear_cpu(cpu, tick_get_broadcast_mask()); 53388 cpumask_clear_cpu(cpu, tick_get_broadcast_mask());
51894 tick_broadcast_clear_oneshot(cpu); 53389 tick_broadcast_clear_oneshot(cpu);
51895diff -urNp linux-2.6.38.2/kernel/time/timekeeping.c linux-2.6.38.2/kernel/time/timekeeping.c 53390diff -urNp linux-2.6.38.3/kernel/time/timekeeping.c linux-2.6.38.3/kernel/time/timekeeping.c
51896--- linux-2.6.38.2/kernel/time/timekeeping.c 2011-03-14 21:20:32.000000000 -0400 53391--- linux-2.6.38.3/kernel/time/timekeeping.c 2011-03-14 21:20:32.000000000 -0400
51897+++ linux-2.6.38.2/kernel/time/timekeeping.c 2011-03-21 18:31:35.000000000 -0400 53392+++ linux-2.6.38.3/kernel/time/timekeeping.c 2011-04-17 15:57:33.000000000 -0400
51898@@ -14,6 +14,7 @@ 53393@@ -14,6 +14,7 @@
51899 #include <linux/init.h> 53394 #include <linux/init.h>
51900 #include <linux/mm.h> 53395 #include <linux/mm.h>
@@ -51912,9 +53407,9 @@ diff -urNp linux-2.6.38.2/kernel/time/timekeeping.c linux-2.6.38.2/kernel/time/t
51912 write_seqlock_irqsave(&xtime_lock, flags); 53407 write_seqlock_irqsave(&xtime_lock, flags);
51913 53408
51914 timekeeping_forward_now(); 53409 timekeeping_forward_now();
51915diff -urNp linux-2.6.38.2/kernel/time/timer_list.c linux-2.6.38.2/kernel/time/timer_list.c 53410diff -urNp linux-2.6.38.3/kernel/time/timer_list.c linux-2.6.38.3/kernel/time/timer_list.c
51916--- linux-2.6.38.2/kernel/time/timer_list.c 2011-03-14 21:20:32.000000000 -0400 53411--- linux-2.6.38.3/kernel/time/timer_list.c 2011-03-14 21:20:32.000000000 -0400
51917+++ linux-2.6.38.2/kernel/time/timer_list.c 2011-03-21 18:31:35.000000000 -0400 53412+++ linux-2.6.38.3/kernel/time/timer_list.c 2011-04-17 15:57:33.000000000 -0400
51918@@ -38,12 +38,16 @@ DECLARE_PER_CPU(struct hrtimer_cpu_base, 53413@@ -38,12 +38,16 @@ DECLARE_PER_CPU(struct hrtimer_cpu_base,
51919 53414
51920 static void print_name_offset(struct seq_file *m, void *sym) 53415 static void print_name_offset(struct seq_file *m, void *sym)
@@ -51956,9 +53451,9 @@ diff -urNp linux-2.6.38.2/kernel/time/timer_list.c linux-2.6.38.2/kernel/time/ti
51956 if (!pe) 53451 if (!pe)
51957 return -ENOMEM; 53452 return -ENOMEM;
51958 return 0; 53453 return 0;
51959diff -urNp linux-2.6.38.2/kernel/time/timer_stats.c linux-2.6.38.2/kernel/time/timer_stats.c 53454diff -urNp linux-2.6.38.3/kernel/time/timer_stats.c linux-2.6.38.3/kernel/time/timer_stats.c
51960--- linux-2.6.38.2/kernel/time/timer_stats.c 2011-03-14 21:20:32.000000000 -0400 53455--- linux-2.6.38.3/kernel/time/timer_stats.c 2011-03-14 21:20:32.000000000 -0400
51961+++ linux-2.6.38.2/kernel/time/timer_stats.c 2011-03-21 18:31:35.000000000 -0400 53456+++ linux-2.6.38.3/kernel/time/timer_stats.c 2011-04-17 15:57:33.000000000 -0400
51962@@ -269,12 +269,16 @@ void timer_stats_update_stats(void *time 53457@@ -269,12 +269,16 @@ void timer_stats_update_stats(void *time
51963 53458
51964 static void print_name_offset(struct seq_file *m, unsigned long addr) 53459 static void print_name_offset(struct seq_file *m, unsigned long addr)
@@ -51988,9 +53483,9 @@ diff -urNp linux-2.6.38.2/kernel/time/timer_stats.c linux-2.6.38.2/kernel/time/t
51988 if (!pe) 53483 if (!pe)
51989 return -ENOMEM; 53484 return -ENOMEM;
51990 return 0; 53485 return 0;
51991diff -urNp linux-2.6.38.2/kernel/time.c linux-2.6.38.2/kernel/time.c 53486diff -urNp linux-2.6.38.3/kernel/time.c linux-2.6.38.3/kernel/time.c
51992--- linux-2.6.38.2/kernel/time.c 2011-03-14 21:20:32.000000000 -0400 53487--- linux-2.6.38.3/kernel/time.c 2011-03-14 21:20:32.000000000 -0400
51993+++ linux-2.6.38.2/kernel/time.c 2011-03-21 18:31:35.000000000 -0400 53488+++ linux-2.6.38.3/kernel/time.c 2011-04-17 15:57:33.000000000 -0400
51994@@ -163,6 +163,11 @@ int do_sys_settimeofday(struct timespec 53489@@ -163,6 +163,11 @@ int do_sys_settimeofday(struct timespec
51995 return error; 53490 return error;
51996 53491
@@ -52003,9 +53498,9 @@ diff -urNp linux-2.6.38.2/kernel/time.c linux-2.6.38.2/kernel/time.c
52003 /* SMP safe, global irq locking makes it work. */ 53498 /* SMP safe, global irq locking makes it work. */
52004 sys_tz = *tz; 53499 sys_tz = *tz;
52005 update_vsyscall_tz(); 53500 update_vsyscall_tz();
52006diff -urNp linux-2.6.38.2/kernel/timer.c linux-2.6.38.2/kernel/timer.c 53501diff -urNp linux-2.6.38.3/kernel/timer.c linux-2.6.38.3/kernel/timer.c
52007--- linux-2.6.38.2/kernel/timer.c 2011-03-14 21:20:32.000000000 -0400 53502--- linux-2.6.38.3/kernel/timer.c 2011-03-14 21:20:32.000000000 -0400
52008+++ linux-2.6.38.2/kernel/timer.c 2011-03-21 18:31:35.000000000 -0400 53503+++ linux-2.6.38.3/kernel/timer.c 2011-04-17 15:57:33.000000000 -0400
52009@@ -1276,7 +1276,7 @@ void update_process_times(int user_tick) 53504@@ -1276,7 +1276,7 @@ void update_process_times(int user_tick)
52010 /* 53505 /*
52011 * This function runs timers and the timer-tq in bottom half context. 53506 * This function runs timers and the timer-tq in bottom half context.
@@ -52015,9 +53510,9 @@ diff -urNp linux-2.6.38.2/kernel/timer.c linux-2.6.38.2/kernel/timer.c
52015 { 53510 {
52016 struct tvec_base *base = __this_cpu_read(tvec_bases); 53511 struct tvec_base *base = __this_cpu_read(tvec_bases);
52017 53512
52018diff -urNp linux-2.6.38.2/kernel/trace/ftrace.c linux-2.6.38.2/kernel/trace/ftrace.c 53513diff -urNp linux-2.6.38.3/kernel/trace/ftrace.c linux-2.6.38.3/kernel/trace/ftrace.c
52019--- linux-2.6.38.2/kernel/trace/ftrace.c 2011-03-23 17:20:08.000000000 -0400 53514--- linux-2.6.38.3/kernel/trace/ftrace.c 2011-04-18 17:27:14.000000000 -0400
52020+++ linux-2.6.38.2/kernel/trace/ftrace.c 2011-03-23 17:21:51.000000000 -0400 53515+++ linux-2.6.38.3/kernel/trace/ftrace.c 2011-04-17 15:57:33.000000000 -0400
52021@@ -1107,13 +1107,18 @@ ftrace_code_disable(struct module *mod, 53516@@ -1107,13 +1107,18 @@ ftrace_code_disable(struct module *mod,
52022 53517
52023 ip = rec->ip; 53518 ip = rec->ip;
@@ -52039,9 +53534,9 @@ diff -urNp linux-2.6.38.2/kernel/trace/ftrace.c linux-2.6.38.2/kernel/trace/ftra
52039 } 53534 }
52040 53535
52041 /* 53536 /*
52042diff -urNp linux-2.6.38.2/kernel/trace/ring_buffer.c linux-2.6.38.2/kernel/trace/ring_buffer.c 53537diff -urNp linux-2.6.38.3/kernel/trace/ring_buffer.c linux-2.6.38.3/kernel/trace/ring_buffer.c
52043--- linux-2.6.38.2/kernel/trace/ring_buffer.c 2011-03-14 21:20:32.000000000 -0400 53538--- linux-2.6.38.3/kernel/trace/ring_buffer.c 2011-03-14 21:20:32.000000000 -0400
52044+++ linux-2.6.38.2/kernel/trace/ring_buffer.c 2011-03-21 18:31:35.000000000 -0400 53539+++ linux-2.6.38.3/kernel/trace/ring_buffer.c 2011-04-17 15:57:33.000000000 -0400
52045@@ -669,7 +669,7 @@ static struct list_head *rb_list_head(st 53540@@ -669,7 +669,7 @@ static struct list_head *rb_list_head(st
52046 * the reader page). But if the next page is a header page, 53541 * the reader page). But if the next page is a header page,
52047 * its flags will be non zero. 53542 * its flags will be non zero.
@@ -52051,9 +53546,9 @@ diff -urNp linux-2.6.38.2/kernel/trace/ring_buffer.c linux-2.6.38.2/kernel/trace
52051 rb_is_head_page(struct ring_buffer_per_cpu *cpu_buffer, 53546 rb_is_head_page(struct ring_buffer_per_cpu *cpu_buffer,
52052 struct buffer_page *page, struct list_head *list) 53547 struct buffer_page *page, struct list_head *list)
52053 { 53548 {
52054diff -urNp linux-2.6.38.2/kernel/trace/trace.c linux-2.6.38.2/kernel/trace/trace.c 53549diff -urNp linux-2.6.38.3/kernel/trace/trace.c linux-2.6.38.3/kernel/trace/trace.c
52055--- linux-2.6.38.2/kernel/trace/trace.c 2011-03-14 21:20:32.000000000 -0400 53550--- linux-2.6.38.3/kernel/trace/trace.c 2011-03-14 21:20:32.000000000 -0400
52056+++ linux-2.6.38.2/kernel/trace/trace.c 2011-03-21 18:31:35.000000000 -0400 53551+++ linux-2.6.38.3/kernel/trace/trace.c 2011-04-17 15:57:33.000000000 -0400
52057@@ -3967,10 +3967,9 @@ static const struct file_operations trac 53552@@ -3967,10 +3967,9 @@ static const struct file_operations trac
52058 }; 53553 };
52059 #endif 53554 #endif
@@ -52078,9 +53573,9 @@ diff -urNp linux-2.6.38.2/kernel/trace/trace.c linux-2.6.38.2/kernel/trace/trace
52078 static int once; 53573 static int once;
52079 struct dentry *d_tracer; 53574 struct dentry *d_tracer;
52080 53575
52081diff -urNp linux-2.6.38.2/kernel/trace/trace_events.c linux-2.6.38.2/kernel/trace/trace_events.c 53576diff -urNp linux-2.6.38.3/kernel/trace/trace_events.c linux-2.6.38.3/kernel/trace/trace_events.c
52082--- linux-2.6.38.2/kernel/trace/trace_events.c 2011-03-14 21:20:32.000000000 -0400 53577--- linux-2.6.38.3/kernel/trace/trace_events.c 2011-03-14 21:20:32.000000000 -0400
52083+++ linux-2.6.38.2/kernel/trace/trace_events.c 2011-03-21 18:31:35.000000000 -0400 53578+++ linux-2.6.38.3/kernel/trace/trace_events.c 2011-04-17 15:57:33.000000000 -0400
52084@@ -1240,10 +1240,10 @@ static LIST_HEAD(ftrace_module_file_list 53579@@ -1240,10 +1240,10 @@ static LIST_HEAD(ftrace_module_file_list
52085 struct ftrace_module_file_ops { 53580 struct ftrace_module_file_ops {
52086 struct list_head list; 53581 struct list_head list;
@@ -52096,9 +53591,9 @@ diff -urNp linux-2.6.38.2/kernel/trace/trace_events.c linux-2.6.38.2/kernel/trac
52096 }; 53591 };
52097 53592
52098 static struct ftrace_module_file_ops * 53593 static struct ftrace_module_file_ops *
52099diff -urNp linux-2.6.38.2/kernel/trace/trace_output.c linux-2.6.38.2/kernel/trace/trace_output.c 53594diff -urNp linux-2.6.38.3/kernel/trace/trace_output.c linux-2.6.38.3/kernel/trace/trace_output.c
52100--- linux-2.6.38.2/kernel/trace/trace_output.c 2011-03-14 21:20:32.000000000 -0400 53595--- linux-2.6.38.3/kernel/trace/trace_output.c 2011-03-14 21:20:32.000000000 -0400
52101+++ linux-2.6.38.2/kernel/trace/trace_output.c 2011-03-21 18:31:35.000000000 -0400 53596+++ linux-2.6.38.3/kernel/trace/trace_output.c 2011-04-17 15:57:33.000000000 -0400
52102@@ -278,7 +278,7 @@ int trace_seq_path(struct trace_seq *s, 53597@@ -278,7 +278,7 @@ int trace_seq_path(struct trace_seq *s,
52103 53598
52104 p = d_path(path, s->buffer + s->len, PAGE_SIZE - s->len); 53599 p = d_path(path, s->buffer + s->len, PAGE_SIZE - s->len);
@@ -52108,9 +53603,9 @@ diff -urNp linux-2.6.38.2/kernel/trace/trace_output.c linux-2.6.38.2/kernel/trac
52108 if (p) { 53603 if (p) {
52109 s->len = p - s->buffer; 53604 s->len = p - s->buffer;
52110 return 1; 53605 return 1;
52111diff -urNp linux-2.6.38.2/kernel/trace/trace_stack.c linux-2.6.38.2/kernel/trace/trace_stack.c 53606diff -urNp linux-2.6.38.3/kernel/trace/trace_stack.c linux-2.6.38.3/kernel/trace/trace_stack.c
52112--- linux-2.6.38.2/kernel/trace/trace_stack.c 2011-03-14 21:20:32.000000000 -0400 53607--- linux-2.6.38.3/kernel/trace/trace_stack.c 2011-03-14 21:20:32.000000000 -0400
52113+++ linux-2.6.38.2/kernel/trace/trace_stack.c 2011-03-21 18:31:35.000000000 -0400 53608+++ linux-2.6.38.3/kernel/trace/trace_stack.c 2011-04-17 15:57:33.000000000 -0400
52114@@ -50,7 +50,7 @@ static inline void check_stack(void) 53609@@ -50,7 +50,7 @@ static inline void check_stack(void)
52115 return; 53610 return;
52116 53611
@@ -52120,9 +53615,39 @@ diff -urNp linux-2.6.38.2/kernel/trace/trace_stack.c linux-2.6.38.2/kernel/trace
52120 return; 53615 return;
52121 53616
52122 local_irq_save(flags); 53617 local_irq_save(flags);
52123diff -urNp linux-2.6.38.2/lib/bug.c linux-2.6.38.2/lib/bug.c 53618diff -urNp linux-2.6.38.3/kernel/trace/trace_workqueue.c linux-2.6.38.3/kernel/trace/trace_workqueue.c
52124--- linux-2.6.38.2/lib/bug.c 2011-03-14 21:20:32.000000000 -0400 53619--- linux-2.6.38.3/kernel/trace/trace_workqueue.c 2011-03-14 21:20:32.000000000 -0400
52125+++ linux-2.6.38.2/lib/bug.c 2011-03-21 18:31:35.000000000 -0400 53620+++ linux-2.6.38.3/kernel/trace/trace_workqueue.c 2011-04-17 15:57:33.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
52126@@ -133,6 +133,8 @@ enum bug_trap_type report_bug(unsigned l 53651@@ -133,6 +133,8 @@ enum bug_trap_type report_bug(unsigned l
52127 return BUG_TRAP_TYPE_NONE; 53652 return BUG_TRAP_TYPE_NONE;
52128 53653
@@ -52132,9 +53657,9 @@ diff -urNp linux-2.6.38.2/lib/bug.c linux-2.6.38.2/lib/bug.c
52132 53657
52133 file = NULL; 53658 file = NULL;
52134 line = 0; 53659 line = 0;
52135diff -urNp linux-2.6.38.2/lib/debugobjects.c linux-2.6.38.2/lib/debugobjects.c 53660diff -urNp linux-2.6.38.3/lib/debugobjects.c linux-2.6.38.3/lib/debugobjects.c
52136--- linux-2.6.38.2/lib/debugobjects.c 2011-03-14 21:20:32.000000000 -0400 53661--- linux-2.6.38.3/lib/debugobjects.c 2011-03-14 21:20:32.000000000 -0400
52137+++ linux-2.6.38.2/lib/debugobjects.c 2011-03-21 18:31:35.000000000 -0400 53662+++ linux-2.6.38.3/lib/debugobjects.c 2011-04-17 15:57:33.000000000 -0400
52138@@ -281,7 +281,7 @@ static void debug_object_is_on_stack(voi 53663@@ -281,7 +281,7 @@ static void debug_object_is_on_stack(voi
52139 if (limit > 4) 53664 if (limit > 4)
52140 return; 53665 return;
@@ -52144,9 +53669,9 @@ diff -urNp linux-2.6.38.2/lib/debugobjects.c linux-2.6.38.2/lib/debugobjects.c
52144 if (is_on_stack == onstack) 53669 if (is_on_stack == onstack)
52145 return; 53670 return;
52146 53671
52147diff -urNp linux-2.6.38.2/lib/dma-debug.c linux-2.6.38.2/lib/dma-debug.c 53672diff -urNp linux-2.6.38.3/lib/dma-debug.c linux-2.6.38.3/lib/dma-debug.c
52148--- linux-2.6.38.2/lib/dma-debug.c 2011-03-14 21:20:32.000000000 -0400 53673--- linux-2.6.38.3/lib/dma-debug.c 2011-03-14 21:20:32.000000000 -0400
52149+++ linux-2.6.38.2/lib/dma-debug.c 2011-03-21 18:31:35.000000000 -0400 53674+++ linux-2.6.38.3/lib/dma-debug.c 2011-04-17 15:57:33.000000000 -0400
52150@@ -862,7 +862,7 @@ out: 53675@@ -862,7 +862,7 @@ out:
52151 53676
52152 static void check_for_stack(struct device *dev, void *addr) 53677 static void check_for_stack(struct device *dev, void *addr)
@@ -52156,9 +53681,9 @@ diff -urNp linux-2.6.38.2/lib/dma-debug.c linux-2.6.38.2/lib/dma-debug.c
52156 err_printk(dev, NULL, "DMA-API: device driver maps memory from" 53681 err_printk(dev, NULL, "DMA-API: device driver maps memory from"
52157 "stack [addr=%p]\n", addr); 53682 "stack [addr=%p]\n", addr);
52158 } 53683 }
52159diff -urNp linux-2.6.38.2/lib/inflate.c linux-2.6.38.2/lib/inflate.c 53684diff -urNp linux-2.6.38.3/lib/inflate.c linux-2.6.38.3/lib/inflate.c
52160--- linux-2.6.38.2/lib/inflate.c 2011-03-14 21:20:32.000000000 -0400 53685--- linux-2.6.38.3/lib/inflate.c 2011-03-14 21:20:32.000000000 -0400
52161+++ linux-2.6.38.2/lib/inflate.c 2011-03-21 18:31:35.000000000 -0400 53686+++ linux-2.6.38.3/lib/inflate.c 2011-04-17 15:57:33.000000000 -0400
52162@@ -269,7 +269,7 @@ static void free(void *where) 53687@@ -269,7 +269,7 @@ static void free(void *where)
52163 malloc_ptr = free_mem_ptr; 53688 malloc_ptr = free_mem_ptr;
52164 } 53689 }
@@ -52168,9 +53693,9 @@ diff -urNp linux-2.6.38.2/lib/inflate.c linux-2.6.38.2/lib/inflate.c
52168 #define free(a) kfree(a) 53693 #define free(a) kfree(a)
52169 #endif 53694 #endif
52170 53695
52171diff -urNp linux-2.6.38.2/lib/Kconfig.debug linux-2.6.38.2/lib/Kconfig.debug 53696diff -urNp linux-2.6.38.3/lib/Kconfig.debug linux-2.6.38.3/lib/Kconfig.debug
52172--- linux-2.6.38.2/lib/Kconfig.debug 2011-03-14 21:20:32.000000000 -0400 53697--- linux-2.6.38.3/lib/Kconfig.debug 2011-03-14 21:20:32.000000000 -0400
52173+++ linux-2.6.38.2/lib/Kconfig.debug 2011-03-21 18:31:35.000000000 -0400 53698+++ linux-2.6.38.3/lib/Kconfig.debug 2011-04-17 15:57:33.000000000 -0400
52174@@ -1066,6 +1066,7 @@ config LATENCYTOP 53699@@ -1066,6 +1066,7 @@ config LATENCYTOP
52175 depends on DEBUG_KERNEL 53700 depends on DEBUG_KERNEL
52176 depends on STACKTRACE_SUPPORT 53701 depends on STACKTRACE_SUPPORT
@@ -52179,9 +53704,9 @@ diff -urNp linux-2.6.38.2/lib/Kconfig.debug linux-2.6.38.2/lib/Kconfig.debug
52179 select FRAME_POINTER if !MIPS && !PPC && !S390 && !MICROBLAZE 53704 select FRAME_POINTER if !MIPS && !PPC && !S390 && !MICROBLAZE
52180 select KALLSYMS 53705 select KALLSYMS
52181 select KALLSYMS_ALL 53706 select KALLSYMS_ALL
52182diff -urNp linux-2.6.38.2/lib/kref.c linux-2.6.38.2/lib/kref.c 53707diff -urNp linux-2.6.38.3/lib/kref.c linux-2.6.38.3/lib/kref.c
52183--- linux-2.6.38.2/lib/kref.c 2011-03-14 21:20:32.000000000 -0400 53708--- linux-2.6.38.3/lib/kref.c 2011-03-14 21:20:32.000000000 -0400
52184+++ linux-2.6.38.2/lib/kref.c 2011-03-21 18:31:35.000000000 -0400 53709+++ linux-2.6.38.3/lib/kref.c 2011-04-17 15:57:33.000000000 -0400
52185@@ -52,7 +52,7 @@ void kref_get(struct kref *kref) 53710@@ -52,7 +52,7 @@ void kref_get(struct kref *kref)
52186 */ 53711 */
52187 int kref_put(struct kref *kref, void (*release)(struct kref *kref)) 53712 int kref_put(struct kref *kref, void (*release)(struct kref *kref))
@@ -52191,9 +53716,9 @@ diff -urNp linux-2.6.38.2/lib/kref.c linux-2.6.38.2/lib/kref.c
52191 WARN_ON(release == (void (*)(struct kref *))kfree); 53716 WARN_ON(release == (void (*)(struct kref *))kfree);
52192 53717
52193 if (atomic_dec_and_test(&kref->refcount)) { 53718 if (atomic_dec_and_test(&kref->refcount)) {
52194diff -urNp linux-2.6.38.2/lib/radix-tree.c linux-2.6.38.2/lib/radix-tree.c 53719diff -urNp linux-2.6.38.3/lib/radix-tree.c linux-2.6.38.3/lib/radix-tree.c
52195--- linux-2.6.38.2/lib/radix-tree.c 2011-03-14 21:20:32.000000000 -0400 53720--- linux-2.6.38.3/lib/radix-tree.c 2011-03-14 21:20:32.000000000 -0400
52196+++ linux-2.6.38.2/lib/radix-tree.c 2011-03-21 18:31:35.000000000 -0400 53721+++ linux-2.6.38.3/lib/radix-tree.c 2011-04-17 15:57:33.000000000 -0400
52197@@ -80,7 +80,7 @@ struct radix_tree_preload { 53722@@ -80,7 +80,7 @@ struct radix_tree_preload {
52198 int nr; 53723 int nr;
52199 struct radix_tree_node *nodes[RADIX_TREE_MAX_PATH]; 53724 struct radix_tree_node *nodes[RADIX_TREE_MAX_PATH];
@@ -52203,9 +53728,9 @@ diff -urNp linux-2.6.38.2/lib/radix-tree.c linux-2.6.38.2/lib/radix-tree.c
52203 53728
52204 static inline void *ptr_to_indirect(void *ptr) 53729 static inline void *ptr_to_indirect(void *ptr)
52205 { 53730 {
52206diff -urNp linux-2.6.38.2/lib/vsprintf.c linux-2.6.38.2/lib/vsprintf.c 53731diff -urNp linux-2.6.38.3/lib/vsprintf.c linux-2.6.38.3/lib/vsprintf.c
52207--- linux-2.6.38.2/lib/vsprintf.c 2011-03-14 21:20:32.000000000 -0400 53732--- linux-2.6.38.3/lib/vsprintf.c 2011-03-14 21:20:32.000000000 -0400
52208+++ linux-2.6.38.2/lib/vsprintf.c 2011-03-21 18:31:35.000000000 -0400 53733+++ linux-2.6.38.3/lib/vsprintf.c 2011-04-17 15:57:33.000000000 -0400
52209@@ -16,6 +16,9 @@ 53734@@ -16,6 +16,9 @@
52210 * - scnprintf and vscnprintf 53735 * - scnprintf and vscnprintf
52211 */ 53736 */
@@ -52299,14 +53824,14 @@ diff -urNp linux-2.6.38.2/lib/vsprintf.c linux-2.6.38.2/lib/vsprintf.c
52299 break; 53824 break;
52300 } 53825 }
52301 53826
52302diff -urNp linux-2.6.38.2/localversion-grsec linux-2.6.38.2/localversion-grsec 53827diff -urNp linux-2.6.38.3/localversion-grsec linux-2.6.38.3/localversion-grsec
52303--- linux-2.6.38.2/localversion-grsec 1969-12-31 19:00:00.000000000 -0500 53828--- linux-2.6.38.3/localversion-grsec 1969-12-31 19:00:00.000000000 -0500
52304+++ linux-2.6.38.2/localversion-grsec 2011-03-21 18:31:35.000000000 -0400 53829+++ linux-2.6.38.3/localversion-grsec 2011-04-17 15:57:33.000000000 -0400
52305@@ -0,0 +1 @@ 53830@@ -0,0 +1 @@
52306+-grsec 53831+-grsec
52307diff -urNp linux-2.6.38.2/Makefile linux-2.6.38.2/Makefile 53832diff -urNp linux-2.6.38.3/Makefile linux-2.6.38.3/Makefile
52308--- linux-2.6.38.2/Makefile 2011-03-28 17:42:40.000000000 -0400 53833--- linux-2.6.38.3/Makefile 2011-04-18 17:27:18.000000000 -0400
52309+++ linux-2.6.38.2/Makefile 2011-03-28 17:42:53.000000000 -0400 53834+++ linux-2.6.38.3/Makefile 2011-04-17 16:53:16.000000000 -0400
52310@@ -233,8 +233,8 @@ CONFIG_SHELL := $(shell if [ -x "$$BASH" 53835@@ -233,8 +233,8 @@ CONFIG_SHELL := $(shell if [ -x "$$BASH"
52311 53836
52312 HOSTCC = gcc 53837 HOSTCC = gcc
@@ -52327,9 +53852,9 @@ diff -urNp linux-2.6.38.2/Makefile linux-2.6.38.2/Makefile
52327 53852
52328 vmlinux-dirs := $(patsubst %/,%,$(filter %/, $(init-y) $(init-m) \ 53853 vmlinux-dirs := $(patsubst %/,%,$(filter %/, $(init-y) $(init-m) \
52329 $(core-y) $(core-m) $(drivers-y) $(drivers-m) \ 53854 $(core-y) $(core-m) $(drivers-y) $(drivers-m) \
52330diff -urNp linux-2.6.38.2/mm/bootmem.c linux-2.6.38.2/mm/bootmem.c 53855diff -urNp linux-2.6.38.3/mm/bootmem.c linux-2.6.38.3/mm/bootmem.c
52331--- linux-2.6.38.2/mm/bootmem.c 2011-03-14 21:20:32.000000000 -0400 53856--- linux-2.6.38.3/mm/bootmem.c 2011-03-14 21:20:32.000000000 -0400
52332+++ linux-2.6.38.2/mm/bootmem.c 2011-03-21 18:31:35.000000000 -0400 53857+++ linux-2.6.38.3/mm/bootmem.c 2011-04-17 15:57:33.000000000 -0400
52333@@ -201,19 +201,30 @@ static void __init __free_pages_memory(u 53858@@ -201,19 +201,30 @@ static void __init __free_pages_memory(u
52334 unsigned long __init free_all_memory_core_early(int nodeid) 53859 unsigned long __init free_all_memory_core_early(int nodeid)
52335 { 53860 {
@@ -52363,9 +53888,9 @@ diff -urNp linux-2.6.38.2/mm/bootmem.c linux-2.6.38.2/mm/bootmem.c
52363 53888
52364 return count; 53889 return count;
52365 } 53890 }
52366diff -urNp linux-2.6.38.2/mm/filemap.c linux-2.6.38.2/mm/filemap.c 53891diff -urNp linux-2.6.38.3/mm/filemap.c linux-2.6.38.3/mm/filemap.c
52367--- linux-2.6.38.2/mm/filemap.c 2011-03-14 21:20:32.000000000 -0400 53892--- linux-2.6.38.3/mm/filemap.c 2011-03-14 21:20:32.000000000 -0400
52368+++ linux-2.6.38.2/mm/filemap.c 2011-03-21 18:31:35.000000000 -0400 53893+++ linux-2.6.38.3/mm/filemap.c 2011-04-17 15:57:33.000000000 -0400
52369@@ -1664,7 +1664,7 @@ int generic_file_mmap(struct file * file 53894@@ -1664,7 +1664,7 @@ int generic_file_mmap(struct file * file
52370 struct address_space *mapping = file->f_mapping; 53895 struct address_space *mapping = file->f_mapping;
52371 53896
@@ -52383,9 +53908,9 @@ diff -urNp linux-2.6.38.2/mm/filemap.c linux-2.6.38.2/mm/filemap.c
52383 if (*pos >= limit) { 53908 if (*pos >= limit) {
52384 send_sig(SIGXFSZ, current, 0); 53909 send_sig(SIGXFSZ, current, 0);
52385 return -EFBIG; 53910 return -EFBIG;
52386diff -urNp linux-2.6.38.2/mm/fremap.c linux-2.6.38.2/mm/fremap.c 53911diff -urNp linux-2.6.38.3/mm/fremap.c linux-2.6.38.3/mm/fremap.c
52387--- linux-2.6.38.2/mm/fremap.c 2011-03-14 21:20:32.000000000 -0400 53912--- linux-2.6.38.3/mm/fremap.c 2011-03-14 21:20:32.000000000 -0400
52388+++ linux-2.6.38.2/mm/fremap.c 2011-03-21 18:31:35.000000000 -0400 53913+++ linux-2.6.38.3/mm/fremap.c 2011-04-17 15:57:33.000000000 -0400
52389@@ -156,6 +156,11 @@ SYSCALL_DEFINE5(remap_file_pages, unsign 53914@@ -156,6 +156,11 @@ SYSCALL_DEFINE5(remap_file_pages, unsign
52390 retry: 53915 retry:
52391 vma = find_vma(mm, start); 53916 vma = find_vma(mm, start);
@@ -52407,9 +53932,9 @@ diff -urNp linux-2.6.38.2/mm/fremap.c linux-2.6.38.2/mm/fremap.c
52407 munlock_vma_pages_range(vma, start, start + size); 53932 munlock_vma_pages_range(vma, start, start + size);
52408 vma->vm_flags = saved_flags; 53933 vma->vm_flags = saved_flags;
52409 } 53934 }
52410diff -urNp linux-2.6.38.2/mm/highmem.c linux-2.6.38.2/mm/highmem.c 53935diff -urNp linux-2.6.38.3/mm/highmem.c linux-2.6.38.3/mm/highmem.c
52411--- linux-2.6.38.2/mm/highmem.c 2011-03-14 21:20:32.000000000 -0400 53936--- linux-2.6.38.3/mm/highmem.c 2011-03-14 21:20:32.000000000 -0400
52412+++ linux-2.6.38.2/mm/highmem.c 2011-03-21 18:31:35.000000000 -0400 53937+++ linux-2.6.38.3/mm/highmem.c 2011-04-17 15:57:33.000000000 -0400
52413@@ -125,9 +125,10 @@ static void flush_all_zero_pkmaps(void) 53938@@ -125,9 +125,10 @@ static void flush_all_zero_pkmaps(void)
52414 * So no dangers, even with speculative execution. 53939 * So no dangers, even with speculative execution.
52415 */ 53940 */
@@ -52435,9 +53960,9 @@ diff -urNp linux-2.6.38.2/mm/highmem.c linux-2.6.38.2/mm/highmem.c
52435 pkmap_count[last_pkmap_nr] = 1; 53960 pkmap_count[last_pkmap_nr] = 1;
52436 set_page_address(page, (void *)vaddr); 53961 set_page_address(page, (void *)vaddr);
52437 53962
52438diff -urNp linux-2.6.38.2/mm/hugetlb.c linux-2.6.38.2/mm/hugetlb.c 53963diff -urNp linux-2.6.38.3/mm/hugetlb.c linux-2.6.38.3/mm/hugetlb.c
52439--- linux-2.6.38.2/mm/hugetlb.c 2011-03-14 21:20:32.000000000 -0400 53964--- linux-2.6.38.3/mm/hugetlb.c 2011-03-14 21:20:32.000000000 -0400
52440+++ linux-2.6.38.2/mm/hugetlb.c 2011-03-21 18:31:35.000000000 -0400 53965+++ linux-2.6.38.3/mm/hugetlb.c 2011-04-17 15:57:33.000000000 -0400
52441@@ -2333,6 +2333,27 @@ static int unmap_ref_private(struct mm_s 53966@@ -2333,6 +2333,27 @@ static int unmap_ref_private(struct mm_s
52442 return 1; 53967 return 1;
52443 } 53968 }
@@ -52527,9 +54052,9 @@ diff -urNp linux-2.6.38.2/mm/hugetlb.c linux-2.6.38.2/mm/hugetlb.c
52527 ptep = huge_pte_alloc(mm, address, huge_page_size(h)); 54052 ptep = huge_pte_alloc(mm, address, huge_page_size(h));
52528 if (!ptep) 54053 if (!ptep)
52529 return VM_FAULT_OOM; 54054 return VM_FAULT_OOM;
52530diff -urNp linux-2.6.38.2/mm/Kconfig linux-2.6.38.2/mm/Kconfig 54055diff -urNp linux-2.6.38.3/mm/Kconfig linux-2.6.38.3/mm/Kconfig
52531--- linux-2.6.38.2/mm/Kconfig 2011-03-14 21:20:32.000000000 -0400 54056--- linux-2.6.38.3/mm/Kconfig 2011-03-14 21:20:32.000000000 -0400
52532+++ linux-2.6.38.2/mm/Kconfig 2011-03-21 18:31:35.000000000 -0400 54057+++ linux-2.6.38.3/mm/Kconfig 2011-04-17 15:57:33.000000000 -0400
52533@@ -240,7 +240,7 @@ config KSM 54058@@ -240,7 +240,7 @@ config KSM
52534 config DEFAULT_MMAP_MIN_ADDR 54059 config DEFAULT_MMAP_MIN_ADDR
52535 int "Low address space to protect from user allocation" 54060 int "Low address space to protect from user allocation"
@@ -52539,9 +54064,9 @@ diff -urNp linux-2.6.38.2/mm/Kconfig linux-2.6.38.2/mm/Kconfig
52539 help 54064 help
52540 This is the portion of low virtual memory which should be protected 54065 This is the portion of low virtual memory which should be protected
52541 from userspace allocation. Keeping a user from writing to low pages 54066 from userspace allocation. Keeping a user from writing to low pages
52542diff -urNp linux-2.6.38.2/mm/kmemleak.c linux-2.6.38.2/mm/kmemleak.c 54067diff -urNp linux-2.6.38.3/mm/kmemleak.c linux-2.6.38.3/mm/kmemleak.c
52543--- linux-2.6.38.2/mm/kmemleak.c 2011-03-14 21:20:32.000000000 -0400 54068--- linux-2.6.38.3/mm/kmemleak.c 2011-03-14 21:20:32.000000000 -0400
52544+++ linux-2.6.38.2/mm/kmemleak.c 2011-03-21 18:31:35.000000000 -0400 54069+++ linux-2.6.38.3/mm/kmemleak.c 2011-04-17 15:57:33.000000000 -0400
52545@@ -357,7 +357,7 @@ static void print_unreferenced(struct se 54070@@ -357,7 +357,7 @@ static void print_unreferenced(struct se
52546 54071
52547 for (i = 0; i < object->trace_len; i++) { 54072 for (i = 0; i < object->trace_len; i++) {
@@ -52551,9 +54076,9 @@ diff -urNp linux-2.6.38.2/mm/kmemleak.c linux-2.6.38.2/mm/kmemleak.c
52551 } 54076 }
52552 } 54077 }
52553 54078
52554diff -urNp linux-2.6.38.2/mm/maccess.c linux-2.6.38.2/mm/maccess.c 54079diff -urNp linux-2.6.38.3/mm/maccess.c linux-2.6.38.3/mm/maccess.c
52555--- linux-2.6.38.2/mm/maccess.c 2011-03-14 21:20:32.000000000 -0400 54080--- linux-2.6.38.3/mm/maccess.c 2011-03-14 21:20:32.000000000 -0400
52556+++ linux-2.6.38.2/mm/maccess.c 2011-03-21 18:31:35.000000000 -0400 54081+++ linux-2.6.38.3/mm/maccess.c 2011-04-17 15:57:33.000000000 -0400
52557@@ -15,10 +15,10 @@ 54082@@ -15,10 +15,10 @@
52558 * happens, handle that and return -EFAULT. 54083 * happens, handle that and return -EFAULT.
52559 */ 54084 */
@@ -52580,9 +54105,9 @@ diff -urNp linux-2.6.38.2/mm/maccess.c linux-2.6.38.2/mm/maccess.c
52580 { 54105 {
52581 long ret; 54106 long ret;
52582 mm_segment_t old_fs = get_fs(); 54107 mm_segment_t old_fs = get_fs();
52583diff -urNp linux-2.6.38.2/mm/madvise.c linux-2.6.38.2/mm/madvise.c 54108diff -urNp linux-2.6.38.3/mm/madvise.c linux-2.6.38.3/mm/madvise.c
52584--- linux-2.6.38.2/mm/madvise.c 2011-03-14 21:20:32.000000000 -0400 54109--- linux-2.6.38.3/mm/madvise.c 2011-03-14 21:20:32.000000000 -0400
52585+++ linux-2.6.38.2/mm/madvise.c 2011-03-21 18:31:35.000000000 -0400 54110+++ linux-2.6.38.3/mm/madvise.c 2011-04-17 15:57:33.000000000 -0400
52586@@ -45,6 +45,10 @@ static long madvise_behavior(struct vm_a 54111@@ -45,6 +45,10 @@ static long madvise_behavior(struct vm_a
52587 pgoff_t pgoff; 54112 pgoff_t pgoff;
52588 unsigned long new_flags = vma->vm_flags; 54113 unsigned long new_flags = vma->vm_flags;
@@ -52659,9 +54184,9 @@ diff -urNp linux-2.6.38.2/mm/madvise.c linux-2.6.38.2/mm/madvise.c
52659 error = 0; 54184 error = 0;
52660 if (end == start) 54185 if (end == start)
52661 goto out; 54186 goto out;
52662diff -urNp linux-2.6.38.2/mm/memory.c linux-2.6.38.2/mm/memory.c 54187diff -urNp linux-2.6.38.3/mm/memory.c linux-2.6.38.3/mm/memory.c
52663--- linux-2.6.38.2/mm/memory.c 2011-03-14 21:20:32.000000000 -0400 54188--- linux-2.6.38.3/mm/memory.c 2011-03-14 21:20:32.000000000 -0400
52664+++ linux-2.6.38.2/mm/memory.c 2011-03-21 18:31:35.000000000 -0400 54189+++ linux-2.6.38.3/mm/memory.c 2011-04-17 15:57:33.000000000 -0400
52665@@ -259,8 +259,12 @@ static inline void free_pmd_range(struct 54190@@ -259,8 +259,12 @@ static inline void free_pmd_range(struct
52666 return; 54191 return;
52667 54192
@@ -53191,9 +54716,9 @@ diff -urNp linux-2.6.38.2/mm/memory.c linux-2.6.38.2/mm/memory.c
53191 /* 54716 /*
53192 * Make sure the vDSO gets into every core dump. 54717 * Make sure the vDSO gets into every core dump.
53193 * Dumping its contents makes post-mortem fully interpretable later 54718 * Dumping its contents makes post-mortem fully interpretable later
53194diff -urNp linux-2.6.38.2/mm/memory-failure.c linux-2.6.38.2/mm/memory-failure.c 54719diff -urNp linux-2.6.38.3/mm/memory-failure.c linux-2.6.38.3/mm/memory-failure.c
53195--- linux-2.6.38.2/mm/memory-failure.c 2011-03-14 21:20:32.000000000 -0400 54720--- linux-2.6.38.3/mm/memory-failure.c 2011-03-14 21:20:32.000000000 -0400
53196+++ linux-2.6.38.2/mm/memory-failure.c 2011-03-21 18:31:35.000000000 -0400 54721+++ linux-2.6.38.3/mm/memory-failure.c 2011-04-17 15:57:33.000000000 -0400
53197@@ -58,7 +58,7 @@ int sysctl_memory_failure_early_kill __r 54722@@ -58,7 +58,7 @@ int sysctl_memory_failure_early_kill __r
53198 54723
53199 int sysctl_memory_failure_recovery __read_mostly = 1; 54724 int sysctl_memory_failure_recovery __read_mostly = 1;
@@ -53266,9 +54791,9 @@ diff -urNp linux-2.6.38.2/mm/memory-failure.c linux-2.6.38.2/mm/memory-failure.c
53266 SetPageHWPoison(page); 54791 SetPageHWPoison(page);
53267 /* keep elevated page count for bad page */ 54792 /* keep elevated page count for bad page */
53268 return ret; 54793 return ret;
53269diff -urNp linux-2.6.38.2/mm/mempolicy.c linux-2.6.38.2/mm/mempolicy.c 54794diff -urNp linux-2.6.38.3/mm/mempolicy.c linux-2.6.38.3/mm/mempolicy.c
53270--- linux-2.6.38.2/mm/mempolicy.c 2011-03-14 21:20:32.000000000 -0400 54795--- linux-2.6.38.3/mm/mempolicy.c 2011-03-14 21:20:32.000000000 -0400
53271+++ linux-2.6.38.2/mm/mempolicy.c 2011-03-21 18:31:35.000000000 -0400 54796+++ linux-2.6.38.3/mm/mempolicy.c 2011-04-17 15:57:33.000000000 -0400
53272@@ -643,6 +643,10 @@ static int mbind_range(struct mm_struct 54797@@ -643,6 +643,10 @@ static int mbind_range(struct mm_struct
53273 unsigned long vmstart; 54798 unsigned long vmstart;
53274 unsigned long vmend; 54799 unsigned long vmend;
@@ -53349,9 +54874,9 @@ diff -urNp linux-2.6.38.2/mm/mempolicy.c linux-2.6.38.2/mm/mempolicy.c
53349 } else if (vma->vm_start <= mm->brk && vma->vm_end >= mm->start_brk) { 54874 } else if (vma->vm_start <= mm->brk && vma->vm_end >= mm->start_brk) {
53350 seq_printf(m, " heap"); 54875 seq_printf(m, " heap");
53351 } else if (vma->vm_start <= mm->start_stack && 54876 } else if (vma->vm_start <= mm->start_stack &&
53352diff -urNp linux-2.6.38.2/mm/migrate.c linux-2.6.38.2/mm/migrate.c 54877diff -urNp linux-2.6.38.3/mm/migrate.c linux-2.6.38.3/mm/migrate.c
53353--- linux-2.6.38.2/mm/migrate.c 2011-03-14 21:20:32.000000000 -0400 54878--- linux-2.6.38.3/mm/migrate.c 2011-03-14 21:20:32.000000000 -0400
53354+++ linux-2.6.38.2/mm/migrate.c 2011-03-21 18:31:35.000000000 -0400 54879+++ linux-2.6.38.3/mm/migrate.c 2011-04-17 15:57:33.000000000 -0400
53355@@ -1299,6 +1299,14 @@ SYSCALL_DEFINE6(move_pages, pid_t, pid, 54880@@ -1299,6 +1299,14 @@ SYSCALL_DEFINE6(move_pages, pid_t, pid,
53356 if (!mm) 54881 if (!mm)
53357 return -EINVAL; 54882 return -EINVAL;
@@ -53377,9 +54902,9 @@ diff -urNp linux-2.6.38.2/mm/migrate.c linux-2.6.38.2/mm/migrate.c
53377 rcu_read_unlock(); 54902 rcu_read_unlock();
53378 err = -EPERM; 54903 err = -EPERM;
53379 goto out; 54904 goto out;
53380diff -urNp linux-2.6.38.2/mm/mlock.c linux-2.6.38.2/mm/mlock.c 54905diff -urNp linux-2.6.38.3/mm/mlock.c linux-2.6.38.3/mm/mlock.c
53381--- linux-2.6.38.2/mm/mlock.c 2011-03-14 21:20:32.000000000 -0400 54906--- linux-2.6.38.3/mm/mlock.c 2011-03-14 21:20:32.000000000 -0400
53382+++ linux-2.6.38.2/mm/mlock.c 2011-03-21 18:31:35.000000000 -0400 54907+++ linux-2.6.38.3/mm/mlock.c 2011-04-17 15:57:33.000000000 -0400
53383@@ -13,6 +13,7 @@ 54908@@ -13,6 +13,7 @@
53384 #include <linux/pagemap.h> 54909 #include <linux/pagemap.h>
53385 #include <linux/mempolicy.h> 54910 #include <linux/mempolicy.h>
@@ -53481,9 +55006,9 @@ diff -urNp linux-2.6.38.2/mm/mlock.c linux-2.6.38.2/mm/mlock.c
53481 if (!(flags & MCL_CURRENT) || (current->mm->total_vm <= lock_limit) || 55006 if (!(flags & MCL_CURRENT) || (current->mm->total_vm <= lock_limit) ||
53482 capable(CAP_IPC_LOCK)) 55007 capable(CAP_IPC_LOCK))
53483 ret = do_mlockall(flags); 55008 ret = do_mlockall(flags);
53484diff -urNp linux-2.6.38.2/mm/mmap.c linux-2.6.38.2/mm/mmap.c 55009diff -urNp linux-2.6.38.3/mm/mmap.c linux-2.6.38.3/mm/mmap.c
53485--- linux-2.6.38.2/mm/mmap.c 2011-03-14 21:20:32.000000000 -0400 55010--- linux-2.6.38.3/mm/mmap.c 2011-03-14 21:20:32.000000000 -0400
53486+++ linux-2.6.38.2/mm/mmap.c 2011-03-21 23:47:41.000000000 -0400 55011+++ linux-2.6.38.3/mm/mmap.c 2011-04-17 15:57:33.000000000 -0400
53487@@ -46,6 +46,16 @@ 55012@@ -46,6 +46,16 @@
53488 #define arch_rebalance_pgtables(addr, len) (addr) 55013 #define arch_rebalance_pgtables(addr, len) (addr)
53489 #endif 55014 #endif
@@ -54744,9 +56269,9 @@ diff -urNp linux-2.6.38.2/mm/mmap.c linux-2.6.38.2/mm/mmap.c
54744 vma->vm_flags = vm_flags | mm->def_flags | VM_DONTEXPAND; 56269 vma->vm_flags = vm_flags | mm->def_flags | VM_DONTEXPAND;
54745 vma->vm_page_prot = vm_get_page_prot(vma->vm_flags); 56270 vma->vm_page_prot = vm_get_page_prot(vma->vm_flags);
54746 56271
54747diff -urNp linux-2.6.38.2/mm/mprotect.c linux-2.6.38.2/mm/mprotect.c 56272diff -urNp linux-2.6.38.3/mm/mprotect.c linux-2.6.38.3/mm/mprotect.c
54748--- linux-2.6.38.2/mm/mprotect.c 2011-03-14 21:20:32.000000000 -0400 56273--- linux-2.6.38.3/mm/mprotect.c 2011-03-14 21:20:32.000000000 -0400
54749+++ linux-2.6.38.2/mm/mprotect.c 2011-03-21 18:31:35.000000000 -0400 56274+++ linux-2.6.38.3/mm/mprotect.c 2011-04-17 15:57:33.000000000 -0400
54750@@ -23,10 +23,16 @@ 56275@@ -23,10 +23,16 @@
54751 #include <linux/mmu_notifier.h> 56276 #include <linux/mmu_notifier.h>
54752 #include <linux/migrate.h> 56277 #include <linux/migrate.h>
@@ -54973,9 +56498,9 @@ diff -urNp linux-2.6.38.2/mm/mprotect.c linux-2.6.38.2/mm/mprotect.c
54973 nstart = tmp; 56498 nstart = tmp;
54974 56499
54975 if (nstart < prev->vm_end) 56500 if (nstart < prev->vm_end)
54976diff -urNp linux-2.6.38.2/mm/mremap.c linux-2.6.38.2/mm/mremap.c 56501diff -urNp linux-2.6.38.3/mm/mremap.c linux-2.6.38.3/mm/mremap.c
54977--- linux-2.6.38.2/mm/mremap.c 2011-03-14 21:20:32.000000000 -0400 56502--- linux-2.6.38.3/mm/mremap.c 2011-04-18 17:27:18.000000000 -0400
54978+++ linux-2.6.38.2/mm/mremap.c 2011-03-21 18:31:35.000000000 -0400 56503+++ linux-2.6.38.3/mm/mremap.c 2011-04-17 16:53:48.000000000 -0400
54979@@ -114,6 +114,12 @@ static void move_ptes(struct vm_area_str 56504@@ -114,6 +114,12 @@ static void move_ptes(struct vm_area_str
54980 continue; 56505 continue;
54981 pte = ptep_clear_flush(vma, old_addr, old_pte); 56506 pte = ptep_clear_flush(vma, old_addr, old_pte);
@@ -55001,7 +56526,7 @@ diff -urNp linux-2.6.38.2/mm/mremap.c linux-2.6.38.2/mm/mremap.c
55001 /* We can't remap across vm area boundaries */ 56526 /* We can't remap across vm area boundaries */
55002 if (old_len > vma->vm_end - addr) 56527 if (old_len > vma->vm_end - addr)
55003 goto Efault; 56528 goto Efault;
55004@@ -322,20 +333,25 @@ static unsigned long mremap_to(unsigned 56529@@ -329,20 +340,25 @@ static unsigned long mremap_to(unsigned
55005 unsigned long ret = -EINVAL; 56530 unsigned long ret = -EINVAL;
55006 unsigned long charged = 0; 56531 unsigned long charged = 0;
55007 unsigned long map_flags; 56532 unsigned long map_flags;
@@ -55032,7 +56557,7 @@ diff -urNp linux-2.6.38.2/mm/mremap.c linux-2.6.38.2/mm/mremap.c
55032 goto out; 56557 goto out;
55033 56558
55034 ret = security_file_mmap(NULL, 0, 0, 0, new_addr, 1); 56559 ret = security_file_mmap(NULL, 0, 0, 0, new_addr, 1);
55035@@ -407,6 +423,7 @@ unsigned long do_mremap(unsigned long ad 56560@@ -414,6 +430,7 @@ unsigned long do_mremap(unsigned long ad
55036 struct vm_area_struct *vma; 56561 struct vm_area_struct *vma;
55037 unsigned long ret = -EINVAL; 56562 unsigned long ret = -EINVAL;
55038 unsigned long charged = 0; 56563 unsigned long charged = 0;
@@ -55040,7 +56565,7 @@ diff -urNp linux-2.6.38.2/mm/mremap.c linux-2.6.38.2/mm/mremap.c
55040 56565
55041 if (flags & ~(MREMAP_FIXED | MREMAP_MAYMOVE)) 56566 if (flags & ~(MREMAP_FIXED | MREMAP_MAYMOVE))
55042 goto out; 56567 goto out;
55043@@ -425,6 +442,17 @@ unsigned long do_mremap(unsigned long ad 56568@@ -432,6 +449,17 @@ unsigned long do_mremap(unsigned long ad
55044 if (!new_len) 56569 if (!new_len)
55045 goto out; 56570 goto out;
55046 56571
@@ -55058,7 +56583,7 @@ diff -urNp linux-2.6.38.2/mm/mremap.c linux-2.6.38.2/mm/mremap.c
55058 if (flags & MREMAP_FIXED) { 56583 if (flags & MREMAP_FIXED) {
55059 if (flags & MREMAP_MAYMOVE) 56584 if (flags & MREMAP_MAYMOVE)
55060 ret = mremap_to(addr, old_len, new_addr, new_len); 56585 ret = mremap_to(addr, old_len, new_addr, new_len);
55061@@ -474,6 +502,7 @@ unsigned long do_mremap(unsigned long ad 56586@@ -481,6 +509,7 @@ unsigned long do_mremap(unsigned long ad
55062 addr + new_len); 56587 addr + new_len);
55063 } 56588 }
55064 ret = addr; 56589 ret = addr;
@@ -55066,7 +56591,7 @@ diff -urNp linux-2.6.38.2/mm/mremap.c linux-2.6.38.2/mm/mremap.c
55066 goto out; 56591 goto out;
55067 } 56592 }
55068 } 56593 }
55069@@ -500,7 +529,13 @@ unsigned long do_mremap(unsigned long ad 56594@@ -507,7 +536,13 @@ unsigned long do_mremap(unsigned long ad
55070 ret = security_file_mmap(NULL, 0, 0, 0, new_addr, 1); 56595 ret = security_file_mmap(NULL, 0, 0, 0, new_addr, 1);
55071 if (ret) 56596 if (ret)
55072 goto out; 56597 goto out;
@@ -55080,9 +56605,9 @@ diff -urNp linux-2.6.38.2/mm/mremap.c linux-2.6.38.2/mm/mremap.c
55080 } 56605 }
55081 out: 56606 out:
55082 if (ret & ~PAGE_MASK) 56607 if (ret & ~PAGE_MASK)
55083diff -urNp linux-2.6.38.2/mm/nommu.c linux-2.6.38.2/mm/nommu.c 56608diff -urNp linux-2.6.38.3/mm/nommu.c linux-2.6.38.3/mm/nommu.c
55084--- linux-2.6.38.2/mm/nommu.c 2011-03-14 21:20:32.000000000 -0400 56609--- linux-2.6.38.3/mm/nommu.c 2011-03-14 21:20:32.000000000 -0400
55085+++ linux-2.6.38.2/mm/nommu.c 2011-03-21 18:31:35.000000000 -0400 56610+++ linux-2.6.38.3/mm/nommu.c 2011-04-17 15:57:33.000000000 -0400
55086@@ -63,7 +63,6 @@ int sysctl_overcommit_memory = OVERCOMMI 56611@@ -63,7 +63,6 @@ int sysctl_overcommit_memory = OVERCOMMI
55087 int sysctl_overcommit_ratio = 50; /* default is 50% */ 56612 int sysctl_overcommit_ratio = 50; /* default is 50% */
55088 int sysctl_max_map_count = DEFAULT_MAX_MAP_COUNT; 56613 int sysctl_max_map_count = DEFAULT_MAX_MAP_COUNT;
@@ -55115,9 +56640,9 @@ diff -urNp linux-2.6.38.2/mm/nommu.c linux-2.6.38.2/mm/nommu.c
55115 *region = *vma->vm_region; 56640 *region = *vma->vm_region;
55116 new->vm_region = region; 56641 new->vm_region = region;
55117 56642
55118diff -urNp linux-2.6.38.2/mm/page_alloc.c linux-2.6.38.2/mm/page_alloc.c 56643diff -urNp linux-2.6.38.3/mm/page_alloc.c linux-2.6.38.3/mm/page_alloc.c
55119--- linux-2.6.38.2/mm/page_alloc.c 2011-03-28 17:42:40.000000000 -0400 56644--- linux-2.6.38.3/mm/page_alloc.c 2011-04-18 17:27:16.000000000 -0400
55120+++ linux-2.6.38.2/mm/page_alloc.c 2011-03-28 17:42:53.000000000 -0400 56645+++ linux-2.6.38.3/mm/page_alloc.c 2011-04-17 15:57:33.000000000 -0400
55121@@ -644,6 +644,10 @@ static bool free_pages_prepare(struct pa 56646@@ -644,6 +644,10 @@ static bool free_pages_prepare(struct pa
55122 int i; 56647 int i;
55123 int bad = 0; 56648 int bad = 0;
@@ -55153,9 +56678,9 @@ diff -urNp linux-2.6.38.2/mm/page_alloc.c linux-2.6.38.2/mm/page_alloc.c
55153 56678
55154 if (order && (gfp_flags & __GFP_COMP)) 56679 if (order && (gfp_flags & __GFP_COMP))
55155 prep_compound_page(page, order); 56680 prep_compound_page(page, order);
55156diff -urNp linux-2.6.38.2/mm/percpu.c linux-2.6.38.2/mm/percpu.c 56681diff -urNp linux-2.6.38.3/mm/percpu.c linux-2.6.38.3/mm/percpu.c
55157--- linux-2.6.38.2/mm/percpu.c 2011-03-14 21:20:32.000000000 -0400 56682--- linux-2.6.38.3/mm/percpu.c 2011-03-14 21:20:32.000000000 -0400
55158+++ linux-2.6.38.2/mm/percpu.c 2011-03-21 18:31:35.000000000 -0400 56683+++ linux-2.6.38.3/mm/percpu.c 2011-04-17 15:57:33.000000000 -0400
55159@@ -121,7 +121,7 @@ static unsigned int pcpu_first_unit_cpu 56684@@ -121,7 +121,7 @@ static unsigned int pcpu_first_unit_cpu
55160 static unsigned int pcpu_last_unit_cpu __read_mostly; 56685 static unsigned int pcpu_last_unit_cpu __read_mostly;
55161 56686
@@ -55165,9 +56690,9 @@ diff -urNp linux-2.6.38.2/mm/percpu.c linux-2.6.38.2/mm/percpu.c
55165 EXPORT_SYMBOL_GPL(pcpu_base_addr); 56690 EXPORT_SYMBOL_GPL(pcpu_base_addr);
55166 56691
55167 static const int *pcpu_unit_map __read_mostly; /* cpu -> unit */ 56692 static const int *pcpu_unit_map __read_mostly; /* cpu -> unit */
55168diff -urNp linux-2.6.38.2/mm/rmap.c linux-2.6.38.2/mm/rmap.c 56693diff -urNp linux-2.6.38.3/mm/rmap.c linux-2.6.38.3/mm/rmap.c
55169--- linux-2.6.38.2/mm/rmap.c 2011-03-14 21:20:32.000000000 -0400 56694--- linux-2.6.38.3/mm/rmap.c 2011-03-14 21:20:32.000000000 -0400
55170+++ linux-2.6.38.2/mm/rmap.c 2011-03-21 18:31:35.000000000 -0400 56695+++ linux-2.6.38.3/mm/rmap.c 2011-04-17 15:57:33.000000000 -0400
55171@@ -117,6 +117,10 @@ int anon_vma_prepare(struct vm_area_stru 56696@@ -117,6 +117,10 @@ int anon_vma_prepare(struct vm_area_stru
55172 struct anon_vma *anon_vma = vma->anon_vma; 56697 struct anon_vma *anon_vma = vma->anon_vma;
55173 struct anon_vma_chain *avc; 56698 struct anon_vma_chain *avc;
@@ -55257,9 +56782,9 @@ diff -urNp linux-2.6.38.2/mm/rmap.c linux-2.6.38.2/mm/rmap.c
55257 { 56782 {
55258 struct anon_vma_chain *avc; 56783 struct anon_vma_chain *avc;
55259 struct anon_vma *anon_vma; 56784 struct anon_vma *anon_vma;
55260diff -urNp linux-2.6.38.2/mm/shmem.c linux-2.6.38.2/mm/shmem.c 56785diff -urNp linux-2.6.38.3/mm/shmem.c linux-2.6.38.3/mm/shmem.c
55261--- linux-2.6.38.2/mm/shmem.c 2011-03-28 17:42:40.000000000 -0400 56786--- linux-2.6.38.3/mm/shmem.c 2011-04-18 17:27:16.000000000 -0400
55262+++ linux-2.6.38.2/mm/shmem.c 2011-03-28 17:42:53.000000000 -0400 56787+++ linux-2.6.38.3/mm/shmem.c 2011-04-18 22:03:12.000000000 -0400
55263@@ -31,7 +31,7 @@ 56788@@ -31,7 +31,7 @@
55264 #include <linux/percpu_counter.h> 56789 #include <linux/percpu_counter.h>
55265 #include <linux/swap.h> 56790 #include <linux/swap.h>
@@ -55278,9 +56803,36 @@ diff -urNp linux-2.6.38.2/mm/shmem.c linux-2.6.38.2/mm/shmem.c
55278 if (entry->val) { 56803 if (entry->val) {
55279 /* 56804 /*
55280 * The more uptodate page coming down from a stacked 56805 * The more uptodate page coming down from a stacked
55281diff -urNp linux-2.6.38.2/mm/slab.c linux-2.6.38.2/mm/slab.c 56806@@ -1995,7 +1997,7 @@ static int shmem_symlink(struct inode *d
55282--- linux-2.6.38.2/mm/slab.c 2011-03-28 17:42:40.000000000 -0400 56807
55283+++ linux-2.6.38.2/mm/slab.c 2011-03-28 17:42:53.000000000 -0400 56808 info = SHMEM_I(inode);
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 | \
55284@@ -284,7 +284,7 @@ struct kmem_list3 { 56836@@ -284,7 +284,7 @@ struct kmem_list3 {
55285 * Need this for bootstrapping a per node allocator. 56837 * Need this for bootstrapping a per node allocator.
55286 */ 56838 */
@@ -55317,6 +56869,33 @@ diff -urNp linux-2.6.38.2/mm/slab.c linux-2.6.38.2/mm/slab.c
55317 56869
55318 /* internal cache of cache description objs */ 56870 /* internal cache of cache description objs */
55319 static struct kmem_cache cache_cache = { 56871 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
55320@@ -4535,15 +4535,66 @@ static const struct file_operations proc 56899@@ -4535,15 +4535,66 @@ static const struct file_operations proc
55321 56900
55322 static int __init slab_proc_init(void) 56901 static int __init slab_proc_init(void)
@@ -55342,9 +56921,9 @@ diff -urNp linux-2.6.38.2/mm/slab.c linux-2.6.38.2/mm/slab.c
55342+{ 56921+{
55343+ 56922+
55344+#ifdef CONFIG_PAX_USERCOPY 56923+#ifdef CONFIG_PAX_USERCOPY
55345+ struct kmem_cache *cachep;
55346+ struct slab *slabp;
55347+ struct page *page; 56924+ struct page *page;
56925+ struct kmem_cache *cachep = NULL;
56926+ struct slab *slabp;
55348+ unsigned int objnr; 56927+ unsigned int objnr;
55349+ unsigned long offset; 56928+ unsigned long offset;
55350+ 56929+
@@ -55366,6 +56945,9 @@ diff -urNp linux-2.6.38.2/mm/slab.c linux-2.6.38.2/mm/slab.c
55366+ } 56945+ }
55367+ 56946+
55368+ cachep = page_get_cache(page); 56947+ cachep = page_get_cache(page);
56948+ if (!(cachep->flags & SLAB_USERCOPY))
56949+ goto report;
56950+
55369+ slabp = page_get_slab(page); 56951+ slabp = page_get_slab(page);
55370+ objnr = obj_to_index(cachep, slabp, ptr); 56952+ objnr = obj_to_index(cachep, slabp, ptr);
55371+ BUG_ON(objnr >= cachep->num); 56953+ BUG_ON(objnr >= cachep->num);
@@ -55374,10 +56956,7 @@ diff -urNp linux-2.6.38.2/mm/slab.c linux-2.6.38.2/mm/slab.c
55374+ return; 56956+ return;
55375+ 56957+
55376+report: 56958+report:
55377+ if (to) 56959+ pax_report_usercopy(ptr, n, to, cachep ? cachep->name : NULL);
55378+ pax_report_leak_to_user(ptr, n);
55379+ else
55380+ pax_report_overflow_from_user(ptr, n);
55381+#endif 56960+#endif
55382+ 56961+
55383+} 56962+}
@@ -55386,9 +56965,9 @@ diff -urNp linux-2.6.38.2/mm/slab.c linux-2.6.38.2/mm/slab.c
55386 /** 56965 /**
55387 * ksize - get the actual amount of memory allocated for a given object 56966 * ksize - get the actual amount of memory allocated for a given object
55388 * @objp: Pointer to the object 56967 * @objp: Pointer to the object
55389diff -urNp linux-2.6.38.2/mm/slob.c linux-2.6.38.2/mm/slob.c 56968diff -urNp linux-2.6.38.3/mm/slob.c linux-2.6.38.3/mm/slob.c
55390--- linux-2.6.38.2/mm/slob.c 2011-03-14 21:20:32.000000000 -0400 56969--- linux-2.6.38.3/mm/slob.c 2011-03-14 21:20:32.000000000 -0400
55391+++ linux-2.6.38.2/mm/slob.c 2011-03-21 18:31:35.000000000 -0400 56970+++ linux-2.6.38.3/mm/slob.c 2011-04-17 15:57:33.000000000 -0400
55392@@ -29,7 +29,7 @@ 56971@@ -29,7 +29,7 @@
55393 * If kmalloc is asked for objects of PAGE_SIZE or larger, it calls 56972 * If kmalloc is asked for objects of PAGE_SIZE or larger, it calls
55394 * alloc_pages() directly, allocating compound pages so the page order 56973 * alloc_pages() directly, allocating compound pages so the page order
@@ -55534,7 +57113,7 @@ diff -urNp linux-2.6.38.2/mm/slob.c linux-2.6.38.2/mm/slob.c
55534 EXPORT_SYMBOL(__kmalloc_node); 57113 EXPORT_SYMBOL(__kmalloc_node);
55535 57114
55536 void kfree(const void *block) 57115 void kfree(const void *block)
55537@@ -531,13 +543,84 @@ void kfree(const void *block) 57116@@ -531,13 +543,81 @@ void kfree(const void *block)
55538 sp = slob_page(block); 57117 sp = slob_page(block);
55539 if (is_slob_page(sp)) { 57118 if (is_slob_page(sp)) {
55540 int align = max(ARCH_KMALLOC_MINALIGN, ARCH_SLAB_MINALIGN); 57119 int align = max(ARCH_KMALLOC_MINALIGN, ARCH_SLAB_MINALIGN);
@@ -55610,10 +57189,7 @@ diff -urNp linux-2.6.38.2/mm/slob.c linux-2.6.38.2/mm/slob.c
55610+ } 57189+ }
55611+ 57190+
55612+report: 57191+report:
55613+ if (to) 57192+ pax_report_usercopy(ptr, n, to, NULL);
55614+ pax_report_leak_to_user(ptr, n);
55615+ else
55616+ pax_report_overflow_from_user(ptr, n);
55617+#endif 57193+#endif
55618+ 57194+
55619+} 57195+}
@@ -55622,7 +57198,7 @@ diff -urNp linux-2.6.38.2/mm/slob.c linux-2.6.38.2/mm/slob.c
55622 /* can't use ksize for kmem_cache_alloc memory, only kmalloc */ 57198 /* can't use ksize for kmem_cache_alloc memory, only kmalloc */
55623 size_t ksize(const void *block) 57199 size_t ksize(const void *block)
55624 { 57200 {
55625@@ -550,10 +633,10 @@ size_t ksize(const void *block) 57201@@ -550,10 +630,10 @@ size_t ksize(const void *block)
55626 sp = slob_page(block); 57202 sp = slob_page(block);
55627 if (is_slob_page(sp)) { 57203 if (is_slob_page(sp)) {
55628 int align = max(ARCH_KMALLOC_MINALIGN, ARCH_SLAB_MINALIGN); 57204 int align = max(ARCH_KMALLOC_MINALIGN, ARCH_SLAB_MINALIGN);
@@ -55636,7 +57212,7 @@ diff -urNp linux-2.6.38.2/mm/slob.c linux-2.6.38.2/mm/slob.c
55636 } 57212 }
55637 EXPORT_SYMBOL(ksize); 57213 EXPORT_SYMBOL(ksize);
55638 57214
55639@@ -608,17 +691,25 @@ void *kmem_cache_alloc_node(struct kmem_ 57215@@ -608,17 +688,25 @@ void *kmem_cache_alloc_node(struct kmem_
55640 { 57216 {
55641 void *b; 57217 void *b;
55642 57218
@@ -55662,7 +57238,7 @@ diff -urNp linux-2.6.38.2/mm/slob.c linux-2.6.38.2/mm/slob.c
55662 57238
55663 if (c->ctor) 57239 if (c->ctor)
55664 c->ctor(b); 57240 c->ctor(b);
55665@@ -630,10 +721,16 @@ EXPORT_SYMBOL(kmem_cache_alloc_node); 57241@@ -630,10 +718,16 @@ EXPORT_SYMBOL(kmem_cache_alloc_node);
55666 57242
55667 static void __kmem_cache_free(void *b, int size) 57243 static void __kmem_cache_free(void *b, int size)
55668 { 57244 {
@@ -55681,7 +57257,7 @@ diff -urNp linux-2.6.38.2/mm/slob.c linux-2.6.38.2/mm/slob.c
55681 } 57257 }
55682 57258
55683 static void kmem_rcu_free(struct rcu_head *head) 57259 static void kmem_rcu_free(struct rcu_head *head)
55684@@ -646,14 +743,23 @@ static void kmem_rcu_free(struct rcu_hea 57260@@ -646,14 +740,23 @@ static void kmem_rcu_free(struct rcu_hea
55685 57261
55686 void kmem_cache_free(struct kmem_cache *c, void *b) 57262 void kmem_cache_free(struct kmem_cache *c, void *b)
55687 { 57263 {
@@ -55708,9 +57284,9 @@ diff -urNp linux-2.6.38.2/mm/slob.c linux-2.6.38.2/mm/slob.c
55708 } 57284 }
55709 57285
55710 trace_kmem_cache_free(_RET_IP_, b); 57286 trace_kmem_cache_free(_RET_IP_, b);
55711diff -urNp linux-2.6.38.2/mm/slub.c linux-2.6.38.2/mm/slub.c 57287diff -urNp linux-2.6.38.3/mm/slub.c linux-2.6.38.3/mm/slub.c
55712--- linux-2.6.38.2/mm/slub.c 2011-03-14 21:20:32.000000000 -0400 57288--- linux-2.6.38.3/mm/slub.c 2011-03-14 21:20:32.000000000 -0400
55713+++ linux-2.6.38.2/mm/slub.c 2011-03-21 18:31:35.000000000 -0400 57289+++ linux-2.6.38.3/mm/slub.c 2011-04-17 15:57:33.000000000 -0400
55714@@ -390,7 +390,7 @@ static void print_track(const char *s, s 57290@@ -390,7 +390,7 @@ static void print_track(const char *s, s
55715 if (!t->addr) 57291 if (!t->addr)
55716 return; 57292 return;
@@ -55766,7 +57342,7 @@ diff -urNp linux-2.6.38.2/mm/slub.c linux-2.6.38.2/mm/slub.c
55766+ 57342+
55767+#ifdef CONFIG_PAX_USERCOPY 57343+#ifdef CONFIG_PAX_USERCOPY
55768+ struct page *page; 57344+ struct page *page;
55769+ struct kmem_cache *s; 57345+ struct kmem_cache *s = NULL;
55770+ unsigned long offset; 57346+ unsigned long offset;
55771+ 57347+
55772+ if (!n) 57348+ if (!n)
@@ -55787,15 +57363,15 @@ diff -urNp linux-2.6.38.2/mm/slub.c linux-2.6.38.2/mm/slub.c
55787+ } 57363+ }
55788+ 57364+
55789+ s = page->slab; 57365+ s = page->slab;
57366+ if (!(s->flags & SLAB_USERCOPY))
57367+ goto report;
57368+
55790+ offset = (ptr - page_address(page)) % s->size; 57369+ offset = (ptr - page_address(page)) % s->size;
55791+ if (offset <= s->objsize && n <= s->objsize - offset) 57370+ if (offset <= s->objsize && n <= s->objsize - offset)
55792+ return; 57371+ return;
55793+ 57372+
55794+report: 57373+report:
55795+ if (to) 57374+ pax_report_usercopy(ptr, n, to, s ? s->name : NULL);
55796+ pax_report_leak_to_user(ptr, n);
55797+ else
55798+ pax_report_overflow_from_user(ptr, n);
55799+#endif 57375+#endif
55800+ 57376+
55801+} 57377+}
@@ -55813,6 +57389,27 @@ diff -urNp linux-2.6.38.2/mm/slub.c linux-2.6.38.2/mm/slub.c
55813 57389
55814 for_each_node_state(node, N_NORMAL_MEMORY) { 57390 for_each_node_state(node, N_NORMAL_MEMORY) {
55815 struct kmem_cache_node *n = get_node(s, node); 57391 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
55816@@ -3153,7 +3194,7 @@ static int slab_unmergeable(struct kmem_ 57413@@ -3153,7 +3194,7 @@ static int slab_unmergeable(struct kmem_
55817 /* 57414 /*
55818 * We may have set a slab to be unmergeable during bootstrap. 57415 * We may have set a slab to be unmergeable during bootstrap.
@@ -55864,9 +57461,9 @@ diff -urNp linux-2.6.38.2/mm/slub.c linux-2.6.38.2/mm/slub.c
55864 return 0; 57461 return 0;
55865 } 57462 }
55866 module_init(slab_proc_init); 57463 module_init(slab_proc_init);
55867diff -urNp linux-2.6.38.2/mm/util.c linux-2.6.38.2/mm/util.c 57464diff -urNp linux-2.6.38.3/mm/util.c linux-2.6.38.3/mm/util.c
55868--- linux-2.6.38.2/mm/util.c 2011-03-14 21:20:32.000000000 -0400 57465--- linux-2.6.38.3/mm/util.c 2011-03-14 21:20:32.000000000 -0400
55869+++ linux-2.6.38.2/mm/util.c 2011-03-21 18:31:35.000000000 -0400 57466+++ linux-2.6.38.3/mm/util.c 2011-04-17 15:57:33.000000000 -0400
55870@@ -219,6 +219,12 @@ EXPORT_SYMBOL(strndup_user); 57467@@ -219,6 +219,12 @@ EXPORT_SYMBOL(strndup_user);
55871 void arch_pick_mmap_layout(struct mm_struct *mm) 57468 void arch_pick_mmap_layout(struct mm_struct *mm)
55872 { 57469 {
@@ -55880,9 +57477,9 @@ diff -urNp linux-2.6.38.2/mm/util.c linux-2.6.38.2/mm/util.c
55880 mm->get_unmapped_area = arch_get_unmapped_area; 57477 mm->get_unmapped_area = arch_get_unmapped_area;
55881 mm->unmap_area = arch_unmap_area; 57478 mm->unmap_area = arch_unmap_area;
55882 } 57479 }
55883diff -urNp linux-2.6.38.2/mm/vmalloc.c linux-2.6.38.2/mm/vmalloc.c 57480diff -urNp linux-2.6.38.3/mm/vmalloc.c linux-2.6.38.3/mm/vmalloc.c
55884--- linux-2.6.38.2/mm/vmalloc.c 2011-03-14 21:20:32.000000000 -0400 57481--- linux-2.6.38.3/mm/vmalloc.c 2011-03-14 21:20:32.000000000 -0400
55885+++ linux-2.6.38.2/mm/vmalloc.c 2011-03-21 18:31:35.000000000 -0400 57482+++ linux-2.6.38.3/mm/vmalloc.c 2011-04-17 15:57:33.000000000 -0400
55886@@ -39,8 +39,19 @@ static void vunmap_pte_range(pmd_t *pmd, 57483@@ -39,8 +39,19 @@ static void vunmap_pte_range(pmd_t *pmd,
55887 57484
55888 pte = pte_offset_kernel(pmd, addr); 57485 pte = pte_offset_kernel(pmd, addr);
@@ -56115,9 +57712,9 @@ diff -urNp linux-2.6.38.2/mm/vmalloc.c linux-2.6.38.2/mm/vmalloc.c
56115 if ((PAGE_SIZE-1) & (unsigned long)addr) 57712 if ((PAGE_SIZE-1) & (unsigned long)addr)
56116 return -EINVAL; 57713 return -EINVAL;
56117 57714
56118diff -urNp linux-2.6.38.2/mm/vmstat.c linux-2.6.38.2/mm/vmstat.c 57715diff -urNp linux-2.6.38.3/mm/vmstat.c linux-2.6.38.3/mm/vmstat.c
56119--- linux-2.6.38.2/mm/vmstat.c 2011-03-14 21:20:32.000000000 -0400 57716--- linux-2.6.38.3/mm/vmstat.c 2011-03-14 21:20:32.000000000 -0400
56120+++ linux-2.6.38.2/mm/vmstat.c 2011-03-21 18:31:35.000000000 -0400 57717+++ linux-2.6.38.3/mm/vmstat.c 2011-04-17 15:57:33.000000000 -0400
56121@@ -78,7 +78,7 @@ void vm_events_fold_cpu(int cpu) 57718@@ -78,7 +78,7 @@ void vm_events_fold_cpu(int cpu)
56122 * 57719 *
56123 * vm_stat contains the global counters 57720 * vm_stat contains the global counters
@@ -56170,9 +57767,9 @@ diff -urNp linux-2.6.38.2/mm/vmstat.c linux-2.6.38.2/mm/vmstat.c
56170 #endif 57767 #endif
56171 return 0; 57768 return 0;
56172 } 57769 }
56173diff -urNp linux-2.6.38.2/net/8021q/vlan.c linux-2.6.38.2/net/8021q/vlan.c 57770diff -urNp linux-2.6.38.3/net/8021q/vlan.c linux-2.6.38.3/net/8021q/vlan.c
56174--- linux-2.6.38.2/net/8021q/vlan.c 2011-03-14 21:20:32.000000000 -0400 57771--- linux-2.6.38.3/net/8021q/vlan.c 2011-03-14 21:20:32.000000000 -0400
56175+++ linux-2.6.38.2/net/8021q/vlan.c 2011-03-21 18:31:35.000000000 -0400 57772+++ linux-2.6.38.3/net/8021q/vlan.c 2011-04-17 15:57:33.000000000 -0400
56176@@ -589,8 +589,7 @@ static int vlan_ioctl_handler(struct net 57773@@ -589,8 +589,7 @@ static int vlan_ioctl_handler(struct net
56177 err = -EPERM; 57774 err = -EPERM;
56178 if (!capable(CAP_NET_ADMIN)) 57775 if (!capable(CAP_NET_ADMIN))
@@ -56183,9 +57780,9 @@ diff -urNp linux-2.6.38.2/net/8021q/vlan.c linux-2.6.38.2/net/8021q/vlan.c
56183 struct vlan_net *vn; 57780 struct vlan_net *vn;
56184 57781
56185 vn = net_generic(net, vlan_net_id); 57782 vn = net_generic(net, vlan_net_id);
56186diff -urNp linux-2.6.38.2/net/atm/atm_misc.c linux-2.6.38.2/net/atm/atm_misc.c 57783diff -urNp linux-2.6.38.3/net/atm/atm_misc.c linux-2.6.38.3/net/atm/atm_misc.c
56187--- linux-2.6.38.2/net/atm/atm_misc.c 2011-03-14 21:20:32.000000000 -0400 57784--- linux-2.6.38.3/net/atm/atm_misc.c 2011-03-14 21:20:32.000000000 -0400
56188+++ linux-2.6.38.2/net/atm/atm_misc.c 2011-03-21 18:31:35.000000000 -0400 57785+++ linux-2.6.38.3/net/atm/atm_misc.c 2011-04-17 15:57:33.000000000 -0400
56189@@ -17,7 +17,7 @@ int atm_charge(struct atm_vcc *vcc, int 57786@@ -17,7 +17,7 @@ int atm_charge(struct atm_vcc *vcc, int
56190 if (atomic_read(&sk_atm(vcc)->sk_rmem_alloc) <= sk_atm(vcc)->sk_rcvbuf) 57787 if (atomic_read(&sk_atm(vcc)->sk_rmem_alloc) <= sk_atm(vcc)->sk_rcvbuf)
56191 return 1; 57788 return 1;
@@ -56222,9 +57819,9 @@ diff -urNp linux-2.6.38.2/net/atm/atm_misc.c linux-2.6.38.2/net/atm/atm_misc.c
56222 __SONET_ITEMS 57819 __SONET_ITEMS
56223 #undef __HANDLE_ITEM 57820 #undef __HANDLE_ITEM
56224 } 57821 }
56225diff -urNp linux-2.6.38.2/net/atm/proc.c linux-2.6.38.2/net/atm/proc.c 57822diff -urNp linux-2.6.38.3/net/atm/proc.c linux-2.6.38.3/net/atm/proc.c
56226--- linux-2.6.38.2/net/atm/proc.c 2011-03-14 21:20:32.000000000 -0400 57823--- linux-2.6.38.3/net/atm/proc.c 2011-03-14 21:20:32.000000000 -0400
56227+++ linux-2.6.38.2/net/atm/proc.c 2011-03-21 18:31:35.000000000 -0400 57824+++ linux-2.6.38.3/net/atm/proc.c 2011-04-17 15:57:33.000000000 -0400
56228@@ -45,9 +45,9 @@ static void add_stats(struct seq_file *s 57825@@ -45,9 +45,9 @@ static void add_stats(struct seq_file *s
56229 const struct k_atm_aal_stats *stats) 57826 const struct k_atm_aal_stats *stats)
56230 { 57827 {
@@ -56263,9 +57860,9 @@ diff -urNp linux-2.6.38.2/net/atm/proc.c linux-2.6.38.2/net/atm/proc.c
56263 else 57860 else
56264 seq_printf(seq, "%3d %3d %5d ", 57861 seq_printf(seq, "%3d %3d %5d ",
56265 vcc->dev->number, vcc->vpi, vcc->vci); 57862 vcc->dev->number, vcc->vpi, vcc->vci);
56266diff -urNp linux-2.6.38.2/net/atm/resources.c linux-2.6.38.2/net/atm/resources.c 57863diff -urNp linux-2.6.38.3/net/atm/resources.c linux-2.6.38.3/net/atm/resources.c
56267--- linux-2.6.38.2/net/atm/resources.c 2011-03-14 21:20:32.000000000 -0400 57864--- linux-2.6.38.3/net/atm/resources.c 2011-03-14 21:20:32.000000000 -0400
56268+++ linux-2.6.38.2/net/atm/resources.c 2011-03-21 18:31:35.000000000 -0400 57865+++ linux-2.6.38.3/net/atm/resources.c 2011-04-17 15:57:33.000000000 -0400
56269@@ -160,7 +160,7 @@ EXPORT_SYMBOL(atm_dev_deregister); 57866@@ -160,7 +160,7 @@ EXPORT_SYMBOL(atm_dev_deregister);
56270 static void copy_aal_stats(struct k_atm_aal_stats *from, 57867 static void copy_aal_stats(struct k_atm_aal_stats *from,
56271 struct atm_aal_stats *to) 57868 struct atm_aal_stats *to)
@@ -56284,31 +57881,9 @@ diff -urNp linux-2.6.38.2/net/atm/resources.c linux-2.6.38.2/net/atm/resources.c
56284 __AAL_STAT_ITEMS 57881 __AAL_STAT_ITEMS
56285 #undef __HANDLE_ITEM 57882 #undef __HANDLE_ITEM
56286 } 57883 }
56287diff -urNp linux-2.6.38.2/net/bluetooth/bnep/sock.c linux-2.6.38.2/net/bluetooth/bnep/sock.c 57884diff -urNp linux-2.6.38.3/net/bridge/br_multicast.c linux-2.6.38.3/net/bridge/br_multicast.c
56288--- linux-2.6.38.2/net/bluetooth/bnep/sock.c 2011-03-14 21:20:32.000000000 -0400 57885--- linux-2.6.38.3/net/bridge/br_multicast.c 2011-03-14 21:20:32.000000000 -0400
56289+++ linux-2.6.38.2/net/bluetooth/bnep/sock.c 2011-03-21 18:31:35.000000000 -0400 57886+++ linux-2.6.38.3/net/bridge/br_multicast.c 2011-04-17 15:57:33.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
56312@@ -1482,7 +1482,7 @@ static int br_multicast_ipv6_rcv(struct 57887@@ -1482,7 +1482,7 @@ static int br_multicast_ipv6_rcv(struct
56313 nexthdr = ip6h->nexthdr; 57888 nexthdr = ip6h->nexthdr;
56314 offset = ipv6_skip_exthdr(skb, sizeof(*ip6h), &nexthdr); 57889 offset = ipv6_skip_exthdr(skb, sizeof(*ip6h), &nexthdr);
@@ -56318,19 +57893,10 @@ diff -urNp linux-2.6.38.2/net/bridge/br_multicast.c linux-2.6.38.2/net/bridge/br
56318 return 0; 57893 return 0;
56319 57894
56320 /* Okay, we found ICMPv6 header */ 57895 /* Okay, we found ICMPv6 header */
56321diff -urNp linux-2.6.38.2/net/bridge/netfilter/ebtables.c linux-2.6.38.2/net/bridge/netfilter/ebtables.c 57896diff -urNp linux-2.6.38.3/net/bridge/netfilter/ebtables.c linux-2.6.38.3/net/bridge/netfilter/ebtables.c
56322--- linux-2.6.38.2/net/bridge/netfilter/ebtables.c 2011-03-14 21:20:32.000000000 -0400 57897--- linux-2.6.38.3/net/bridge/netfilter/ebtables.c 2011-04-18 17:27:18.000000000 -0400
56323+++ linux-2.6.38.2/net/bridge/netfilter/ebtables.c 2011-03-21 18:31:35.000000000 -0400 57898+++ linux-2.6.38.3/net/bridge/netfilter/ebtables.c 2011-04-17 17:00:29.000000000 -0400
56324@@ -1107,6 +1107,8 @@ static int do_replace(struct net *net, c 57899@@ -1512,7 +1512,7 @@ static int do_ebt_get_ctl(struct sock *s
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
56334 tmp.valid_hooks = t->table->valid_hooks; 57900 tmp.valid_hooks = t->table->valid_hooks;
56335 } 57901 }
56336 mutex_unlock(&ebt_mutex); 57902 mutex_unlock(&ebt_mutex);
@@ -56339,9 +57905,9 @@ diff -urNp linux-2.6.38.2/net/bridge/netfilter/ebtables.c linux-2.6.38.2/net/bri
56339 BUGPRINT("c2u Didn't work\n"); 57905 BUGPRINT("c2u Didn't work\n");
56340 ret = -EFAULT; 57906 ret = -EFAULT;
56341 break; 57907 break;
56342diff -urNp linux-2.6.38.2/net/can/bcm.c linux-2.6.38.2/net/can/bcm.c 57908diff -urNp linux-2.6.38.3/net/can/bcm.c linux-2.6.38.3/net/can/bcm.c
56343--- linux-2.6.38.2/net/can/bcm.c 2011-03-14 21:20:32.000000000 -0400 57909--- linux-2.6.38.3/net/can/bcm.c 2011-03-14 21:20:32.000000000 -0400
56344+++ linux-2.6.38.2/net/can/bcm.c 2011-03-21 18:31:35.000000000 -0400 57910+++ linux-2.6.38.3/net/can/bcm.c 2011-04-17 15:57:33.000000000 -0400
56345@@ -165,9 +165,15 @@ static int bcm_proc_show(struct seq_file 57911@@ -165,9 +165,15 @@ static int bcm_proc_show(struct seq_file
56346 struct bcm_sock *bo = bcm_sk(sk); 57912 struct bcm_sock *bo = bcm_sk(sk);
56347 struct bcm_op *op; 57913 struct bcm_op *op;
@@ -56358,19 +57924,25 @@ diff -urNp linux-2.6.38.2/net/can/bcm.c linux-2.6.38.2/net/can/bcm.c
56358 seq_printf(m, " / dropped %lu", bo->dropped_usr_msgs); 57924 seq_printf(m, " / dropped %lu", bo->dropped_usr_msgs);
56359 seq_printf(m, " / bound %s", bcm_proc_getifname(ifname, bo->ifindex)); 57925 seq_printf(m, " / bound %s", bcm_proc_getifname(ifname, bo->ifindex));
56360 seq_printf(m, " <<<\n"); 57926 seq_printf(m, " <<<\n");
56361diff -urNp linux-2.6.38.2/net/core/dev.c linux-2.6.38.2/net/core/dev.c 57927diff -urNp linux-2.6.38.3/net/core/dev.c linux-2.6.38.3/net/core/dev.c
56362--- linux-2.6.38.2/net/core/dev.c 2011-03-14 21:20:32.000000000 -0400 57928--- linux-2.6.38.3/net/core/dev.c 2011-03-14 21:20:32.000000000 -0400
56363+++ linux-2.6.38.2/net/core/dev.c 2011-03-21 18:31:35.000000000 -0400 57929+++ linux-2.6.38.3/net/core/dev.c 2011-04-17 15:57:33.000000000 -0400
56364@@ -1124,7 +1124,7 @@ void dev_load(struct net *net, const cha 57930@@ -1124,10 +1124,14 @@ void dev_load(struct net *net, const cha
56365 if (no_module && capable(CAP_NET_ADMIN)) 57931 if (no_module && capable(CAP_NET_ADMIN))
56366 no_module = request_module("netdev-%s", name); 57932 no_module = request_module("netdev-%s", name);
56367 if (no_module && capable(CAP_SYS_MODULE)) { 57933 if (no_module && capable(CAP_SYS_MODULE)) {
56368- if (!request_module("%s", name)) 57934+#ifdef CONFIG_GRKERNSEC_MODHARDEN
56369+ if (!request_module("%s", name)) 57935+ ___request_module(true, "grsec_modharden_netdev", "%s", name);
57936+#else
57937 if (!request_module("%s", name))
56370 pr_err("Loading kernel module for a network device " 57938 pr_err("Loading kernel module for a network device "
56371 "with CAP_SYS_MODULE (deprecated). Use CAP_NET_ADMIN and alias netdev-%s " 57939 "with CAP_SYS_MODULE (deprecated). Use CAP_NET_ADMIN and alias netdev-%s "
56372 "instead\n", name); 57940 "instead\n", name);
56373@@ -2787,7 +2787,7 @@ int netif_rx_ni(struct sk_buff *skb) 57941+#endif
57942 }
57943 }
57944 EXPORT_SYMBOL(dev_load);
57945@@ -2787,7 +2791,7 @@ int netif_rx_ni(struct sk_buff *skb)
56374 } 57946 }
56375 EXPORT_SYMBOL(netif_rx_ni); 57947 EXPORT_SYMBOL(netif_rx_ni);
56376 57948
@@ -56379,7 +57951,7 @@ diff -urNp linux-2.6.38.2/net/core/dev.c linux-2.6.38.2/net/core/dev.c
56379 { 57951 {
56380 struct softnet_data *sd = &__get_cpu_var(softnet_data); 57952 struct softnet_data *sd = &__get_cpu_var(softnet_data);
56381 57953
56382@@ -3697,7 +3697,7 @@ void netif_napi_del(struct napi_struct * 57954@@ -3697,7 +3701,7 @@ void netif_napi_del(struct napi_struct *
56383 } 57955 }
56384 EXPORT_SYMBOL(netif_napi_del); 57956 EXPORT_SYMBOL(netif_napi_del);
56385 57957
@@ -56388,9 +57960,9 @@ diff -urNp linux-2.6.38.2/net/core/dev.c linux-2.6.38.2/net/core/dev.c
56388 { 57960 {
56389 struct softnet_data *sd = &__get_cpu_var(softnet_data); 57961 struct softnet_data *sd = &__get_cpu_var(softnet_data);
56390 unsigned long time_limit = jiffies + 2; 57962 unsigned long time_limit = jiffies + 2;
56391diff -urNp linux-2.6.38.2/net/core/sock.c linux-2.6.38.2/net/core/sock.c 57963diff -urNp linux-2.6.38.3/net/core/sock.c linux-2.6.38.3/net/core/sock.c
56392--- linux-2.6.38.2/net/core/sock.c 2011-03-14 21:20:32.000000000 -0400 57964--- linux-2.6.38.3/net/core/sock.c 2011-03-14 21:20:32.000000000 -0400
56393+++ linux-2.6.38.2/net/core/sock.c 2011-03-21 18:31:35.000000000 -0400 57965+++ linux-2.6.38.3/net/core/sock.c 2011-04-17 15:57:33.000000000 -0400
56394@@ -934,7 +934,7 @@ int sock_getsockopt(struct socket *sock, 57966@@ -934,7 +934,7 @@ int sock_getsockopt(struct socket *sock,
56395 return -ENOTCONN; 57967 return -ENOTCONN;
56396 if (lv < len) 57968 if (lv < len)
@@ -56409,9 +57981,9 @@ diff -urNp linux-2.6.38.2/net/core/sock.c linux-2.6.38.2/net/core/sock.c
56409 return -EFAULT; 57981 return -EFAULT;
56410 lenout: 57982 lenout:
56411 if (put_user(len, optlen)) 57983 if (put_user(len, optlen))
56412diff -urNp linux-2.6.38.2/net/dccp/ccids/ccid3.c linux-2.6.38.2/net/dccp/ccids/ccid3.c 57984diff -urNp linux-2.6.38.3/net/dccp/ccids/ccid3.c linux-2.6.38.3/net/dccp/ccids/ccid3.c
56413--- linux-2.6.38.2/net/dccp/ccids/ccid3.c 2011-03-14 21:20:32.000000000 -0400 57985--- linux-2.6.38.3/net/dccp/ccids/ccid3.c 2011-03-14 21:20:32.000000000 -0400
56414+++ linux-2.6.38.2/net/dccp/ccids/ccid3.c 2011-03-21 18:31:35.000000000 -0400 57986+++ linux-2.6.38.3/net/dccp/ccids/ccid3.c 2011-04-17 15:57:33.000000000 -0400
56415@@ -41,7 +41,7 @@ 57987@@ -41,7 +41,7 @@
56416 static int ccid3_debug; 57988 static int ccid3_debug;
56417 #define ccid3_pr_debug(format, a...) DCCP_PR_DEBUG(ccid3_debug, format, ##a) 57989 #define ccid3_pr_debug(format, a...) DCCP_PR_DEBUG(ccid3_debug, format, ##a)
@@ -56421,9 +57993,9 @@ diff -urNp linux-2.6.38.2/net/dccp/ccids/ccid3.c linux-2.6.38.2/net/dccp/ccids/c
56421 #endif 57993 #endif
56422 57994
56423 /* 57995 /*
56424diff -urNp linux-2.6.38.2/net/dccp/dccp.h linux-2.6.38.2/net/dccp/dccp.h 57996diff -urNp linux-2.6.38.3/net/dccp/dccp.h linux-2.6.38.3/net/dccp/dccp.h
56425--- linux-2.6.38.2/net/dccp/dccp.h 2011-03-14 21:20:32.000000000 -0400 57997--- linux-2.6.38.3/net/dccp/dccp.h 2011-03-14 21:20:32.000000000 -0400
56426+++ linux-2.6.38.2/net/dccp/dccp.h 2011-03-21 18:31:35.000000000 -0400 57998+++ linux-2.6.38.3/net/dccp/dccp.h 2011-04-17 15:57:33.000000000 -0400
56427@@ -44,9 +44,9 @@ extern int dccp_debug; 57999@@ -44,9 +44,9 @@ extern int dccp_debug;
56428 #define dccp_pr_debug_cat(format, a...) DCCP_PRINTK(dccp_debug, format, ##a) 58000 #define dccp_pr_debug_cat(format, a...) DCCP_PRINTK(dccp_debug, format, ##a)
56429 #define dccp_debug(fmt, a...) dccp_pr_debug_cat(KERN_DEBUG fmt, ##a) 58001 #define dccp_debug(fmt, a...) dccp_pr_debug_cat(KERN_DEBUG fmt, ##a)
@@ -56437,9 +58009,9 @@ diff -urNp linux-2.6.38.2/net/dccp/dccp.h linux-2.6.38.2/net/dccp/dccp.h
56437 #endif 58009 #endif
56438 58010
56439 extern struct inet_hashinfo dccp_hashinfo; 58011 extern struct inet_hashinfo dccp_hashinfo;
56440diff -urNp linux-2.6.38.2/net/decnet/sysctl_net_decnet.c linux-2.6.38.2/net/decnet/sysctl_net_decnet.c 58012diff -urNp linux-2.6.38.3/net/decnet/sysctl_net_decnet.c linux-2.6.38.3/net/decnet/sysctl_net_decnet.c
56441--- linux-2.6.38.2/net/decnet/sysctl_net_decnet.c 2011-03-14 21:20:32.000000000 -0400 58013--- linux-2.6.38.3/net/decnet/sysctl_net_decnet.c 2011-03-14 21:20:32.000000000 -0400
56442+++ linux-2.6.38.2/net/decnet/sysctl_net_decnet.c 2011-03-21 18:31:35.000000000 -0400 58014+++ linux-2.6.38.3/net/decnet/sysctl_net_decnet.c 2011-04-17 15:57:33.000000000 -0400
56443@@ -173,7 +173,7 @@ static int dn_node_address_handler(ctl_t 58015@@ -173,7 +173,7 @@ static int dn_node_address_handler(ctl_t
56444 58016
56445 if (len > *lenp) len = *lenp; 58017 if (len > *lenp) len = *lenp;
@@ -56458,9 +58030,9 @@ diff -urNp linux-2.6.38.2/net/decnet/sysctl_net_decnet.c linux-2.6.38.2/net/decn
56458 return -EFAULT; 58030 return -EFAULT;
56459 58031
56460 *lenp = len; 58032 *lenp = len;
56461diff -urNp linux-2.6.38.2/net/econet/Kconfig linux-2.6.38.2/net/econet/Kconfig 58033diff -urNp linux-2.6.38.3/net/econet/Kconfig linux-2.6.38.3/net/econet/Kconfig
56462--- linux-2.6.38.2/net/econet/Kconfig 2011-03-14 21:20:32.000000000 -0400 58034--- linux-2.6.38.3/net/econet/Kconfig 2011-03-14 21:20:32.000000000 -0400
56463+++ linux-2.6.38.2/net/econet/Kconfig 2011-03-21 18:31:35.000000000 -0400 58035+++ linux-2.6.38.3/net/econet/Kconfig 2011-04-17 15:57:33.000000000 -0400
56464@@ -4,7 +4,7 @@ 58036@@ -4,7 +4,7 @@
56465 58037
56466 config ECONET 58038 config ECONET
@@ -56470,9 +58042,9 @@ diff -urNp linux-2.6.38.2/net/econet/Kconfig linux-2.6.38.2/net/econet/Kconfig
56470 ---help--- 58042 ---help---
56471 Econet is a fairly old and slow networking protocol mainly used by 58043 Econet is a fairly old and slow networking protocol mainly used by
56472 Acorn computers to access file and print servers. It uses native 58044 Acorn computers to access file and print servers. It uses native
56473diff -urNp linux-2.6.38.2/net/ipv4/inet_diag.c linux-2.6.38.2/net/ipv4/inet_diag.c 58045diff -urNp linux-2.6.38.3/net/ipv4/inet_diag.c linux-2.6.38.3/net/ipv4/inet_diag.c
56474--- linux-2.6.38.2/net/ipv4/inet_diag.c 2011-03-14 21:20:32.000000000 -0400 58046--- linux-2.6.38.3/net/ipv4/inet_diag.c 2011-03-14 21:20:32.000000000 -0400
56475+++ linux-2.6.38.2/net/ipv4/inet_diag.c 2011-03-21 18:31:35.000000000 -0400 58047+++ linux-2.6.38.3/net/ipv4/inet_diag.c 2011-04-17 15:57:33.000000000 -0400
56476@@ -114,8 +114,14 @@ static int inet_csk_diag_fill(struct soc 58048@@ -114,8 +114,14 @@ static int inet_csk_diag_fill(struct soc
56477 r->idiag_retrans = 0; 58049 r->idiag_retrans = 0;
56478 58050
@@ -56534,9 +58106,9 @@ diff -urNp linux-2.6.38.2/net/ipv4/inet_diag.c linux-2.6.38.2/net/ipv4/inet_diag
56534 58106
56535 tmo = req->expires - jiffies; 58107 tmo = req->expires - jiffies;
56536 if (tmo < 0) 58108 if (tmo < 0)
56537diff -urNp linux-2.6.38.2/net/ipv4/inet_hashtables.c linux-2.6.38.2/net/ipv4/inet_hashtables.c 58109diff -urNp linux-2.6.38.3/net/ipv4/inet_hashtables.c linux-2.6.38.3/net/ipv4/inet_hashtables.c
56538--- linux-2.6.38.2/net/ipv4/inet_hashtables.c 2011-03-14 21:20:32.000000000 -0400 58110--- linux-2.6.38.3/net/ipv4/inet_hashtables.c 2011-03-14 21:20:32.000000000 -0400
56539+++ linux-2.6.38.2/net/ipv4/inet_hashtables.c 2011-03-21 18:31:35.000000000 -0400 58111+++ linux-2.6.38.3/net/ipv4/inet_hashtables.c 2011-04-17 15:57:33.000000000 -0400
56540@@ -18,11 +18,14 @@ 58112@@ -18,11 +18,14 @@
56541 #include <linux/sched.h> 58113 #include <linux/sched.h>
56542 #include <linux/slab.h> 58114 #include <linux/slab.h>
@@ -56561,9 +58133,9 @@ diff -urNp linux-2.6.38.2/net/ipv4/inet_hashtables.c linux-2.6.38.2/net/ipv4/ine
56561 if (tw) { 58133 if (tw) {
56562 inet_twsk_deschedule(tw, death_row); 58134 inet_twsk_deschedule(tw, death_row);
56563 while (twrefcnt) { 58135 while (twrefcnt) {
56564diff -urNp linux-2.6.38.2/net/ipv4/inetpeer.c linux-2.6.38.2/net/ipv4/inetpeer.c 58136diff -urNp linux-2.6.38.3/net/ipv4/inetpeer.c linux-2.6.38.3/net/ipv4/inetpeer.c
56565--- linux-2.6.38.2/net/ipv4/inetpeer.c 2011-03-14 21:20:32.000000000 -0400 58137--- linux-2.6.38.3/net/ipv4/inetpeer.c 2011-03-14 21:20:32.000000000 -0400
56566+++ linux-2.6.38.2/net/ipv4/inetpeer.c 2011-03-21 18:31:35.000000000 -0400 58138+++ linux-2.6.38.3/net/ipv4/inetpeer.c 2011-04-17 15:57:33.000000000 -0400
56567@@ -509,8 +509,8 @@ struct inet_peer *inet_getpeer(struct in 58139@@ -509,8 +509,8 @@ struct inet_peer *inet_getpeer(struct in
56568 if (p) { 58140 if (p) {
56569 p->daddr = *daddr; 58141 p->daddr = *daddr;
@@ -56575,9 +58147,9 @@ diff -urNp linux-2.6.38.2/net/ipv4/inetpeer.c linux-2.6.38.2/net/ipv4/inetpeer.c
56575 p->tcp_ts_stamp = 0; 58147 p->tcp_ts_stamp = 0;
56576 INIT_LIST_HEAD(&p->unused); 58148 INIT_LIST_HEAD(&p->unused);
56577 58149
56578diff -urNp linux-2.6.38.2/net/ipv4/ip_fragment.c linux-2.6.38.2/net/ipv4/ip_fragment.c 58150diff -urNp linux-2.6.38.3/net/ipv4/ip_fragment.c linux-2.6.38.3/net/ipv4/ip_fragment.c
56579--- linux-2.6.38.2/net/ipv4/ip_fragment.c 2011-03-14 21:20:32.000000000 -0400 58151--- linux-2.6.38.3/net/ipv4/ip_fragment.c 2011-03-14 21:20:32.000000000 -0400
56580+++ linux-2.6.38.2/net/ipv4/ip_fragment.c 2011-03-21 18:31:35.000000000 -0400 58152+++ linux-2.6.38.3/net/ipv4/ip_fragment.c 2011-04-17 15:57:33.000000000 -0400
56581@@ -298,7 +298,7 @@ static inline int ip_frag_too_far(struct 58153@@ -298,7 +298,7 @@ static inline int ip_frag_too_far(struct
56582 return 0; 58154 return 0;
56583 58155
@@ -56587,9 +58159,9 @@ diff -urNp linux-2.6.38.2/net/ipv4/ip_fragment.c linux-2.6.38.2/net/ipv4/ip_frag
56587 qp->rid = end; 58159 qp->rid = end;
56588 58160
56589 rc = qp->q.fragments && (end - start) > max; 58161 rc = qp->q.fragments && (end - start) > max;
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 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
56591--- linux-2.6.38.2/net/ipv4/netfilter/nf_nat_snmp_basic.c 2011-03-14 21:20:32.000000000 -0400 58163--- linux-2.6.38.3/net/ipv4/netfilter/nf_nat_snmp_basic.c 2011-03-14 21:20:32.000000000 -0400
56592+++ linux-2.6.38.2/net/ipv4/netfilter/nf_nat_snmp_basic.c 2011-03-21 18:31:35.000000000 -0400 58164+++ linux-2.6.38.3/net/ipv4/netfilter/nf_nat_snmp_basic.c 2011-04-17 15:57:33.000000000 -0400
56593@@ -398,7 +398,7 @@ static unsigned char asn1_octets_decode( 58165@@ -398,7 +398,7 @@ static unsigned char asn1_octets_decode(
56594 58166
56595 *len = 0; 58167 *len = 0;
@@ -56599,9 +58171,44 @@ diff -urNp linux-2.6.38.2/net/ipv4/netfilter/nf_nat_snmp_basic.c linux-2.6.38.2/
56599 if (*octets == NULL) { 58171 if (*octets == NULL) {
56600 if (net_ratelimit()) 58172 if (net_ratelimit())
56601 pr_notice("OOM in bsalg (%d)\n", __LINE__); 58173 pr_notice("OOM in bsalg (%d)\n", __LINE__);
56602diff -urNp linux-2.6.38.2/net/ipv4/route.c linux-2.6.38.2/net/ipv4/route.c 58174diff -urNp linux-2.6.38.3/net/ipv4/raw.c linux-2.6.38.3/net/ipv4/raw.c
56603--- linux-2.6.38.2/net/ipv4/route.c 2011-03-14 21:20:32.000000000 -0400 58175--- linux-2.6.38.3/net/ipv4/raw.c 2011-03-14 21:20:32.000000000 -0400
56604+++ linux-2.6.38.2/net/ipv4/route.c 2011-03-21 18:31:35.000000000 -0400 58176+++ linux-2.6.38.3/net/ipv4/raw.c 2011-04-17 15:57:33.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
56605@@ -2857,7 +2857,7 @@ static int rt_fill_info(struct net *net, 58212@@ -2857,7 +2857,7 @@ static int rt_fill_info(struct net *net,
56606 expires = rt->dst.expires ? rt->dst.expires - jiffies : 0; 58213 expires = rt->dst.expires ? rt->dst.expires - jiffies : 0;
56607 if (rt->peer) { 58214 if (rt->peer) {
@@ -56611,9 +58218,9 @@ diff -urNp linux-2.6.38.2/net/ipv4/route.c linux-2.6.38.2/net/ipv4/route.c
56611 if (rt->peer->tcp_ts_stamp) { 58218 if (rt->peer->tcp_ts_stamp) {
56612 ts = rt->peer->tcp_ts; 58219 ts = rt->peer->tcp_ts;
56613 tsage = get_seconds() - rt->peer->tcp_ts_stamp; 58220 tsage = get_seconds() - rt->peer->tcp_ts_stamp;
56614diff -urNp linux-2.6.38.2/net/ipv4/tcp_ipv4.c linux-2.6.38.2/net/ipv4/tcp_ipv4.c 58221diff -urNp linux-2.6.38.3/net/ipv4/tcp_ipv4.c linux-2.6.38.3/net/ipv4/tcp_ipv4.c
56615--- linux-2.6.38.2/net/ipv4/tcp_ipv4.c 2011-03-14 21:20:32.000000000 -0400 58222--- linux-2.6.38.3/net/ipv4/tcp_ipv4.c 2011-03-14 21:20:32.000000000 -0400
56616+++ linux-2.6.38.2/net/ipv4/tcp_ipv4.c 2011-03-21 18:31:35.000000000 -0400 58223+++ linux-2.6.38.3/net/ipv4/tcp_ipv4.c 2011-04-17 15:57:33.000000000 -0400
56617@@ -86,6 +86,9 @@ int sysctl_tcp_tw_reuse __read_mostly; 58224@@ -86,6 +86,9 @@ int sysctl_tcp_tw_reuse __read_mostly;
56618 int sysctl_tcp_low_latency __read_mostly; 58225 int sysctl_tcp_low_latency __read_mostly;
56619 EXPORT_SYMBOL(sysctl_tcp_low_latency); 58226 EXPORT_SYMBOL(sysctl_tcp_low_latency);
@@ -56709,9 +58316,9 @@ diff -urNp linux-2.6.38.2/net/ipv4/tcp_ipv4.c linux-2.6.38.2/net/ipv4/tcp_ipv4.c
56709 } 58316 }
56710 58317
56711 #define TMPSZ 150 58318 #define TMPSZ 150
56712diff -urNp linux-2.6.38.2/net/ipv4/tcp_minisocks.c linux-2.6.38.2/net/ipv4/tcp_minisocks.c 58319diff -urNp linux-2.6.38.3/net/ipv4/tcp_minisocks.c linux-2.6.38.3/net/ipv4/tcp_minisocks.c
56713--- linux-2.6.38.2/net/ipv4/tcp_minisocks.c 2011-03-14 21:20:32.000000000 -0400 58320--- linux-2.6.38.3/net/ipv4/tcp_minisocks.c 2011-03-14 21:20:32.000000000 -0400
56714+++ linux-2.6.38.2/net/ipv4/tcp_minisocks.c 2011-03-21 18:31:35.000000000 -0400 58321+++ linux-2.6.38.3/net/ipv4/tcp_minisocks.c 2011-04-17 15:57:33.000000000 -0400
56715@@ -27,6 +27,10 @@ 58322@@ -27,6 +27,10 @@
56716 #include <net/inet_common.h> 58323 #include <net/inet_common.h>
56717 #include <net/xfrm.h> 58324 #include <net/xfrm.h>
@@ -56734,9 +58341,9 @@ diff -urNp linux-2.6.38.2/net/ipv4/tcp_minisocks.c linux-2.6.38.2/net/ipv4/tcp_m
56734 if (!(flg & TCP_FLAG_RST)) 58341 if (!(flg & TCP_FLAG_RST))
56735 req->rsk_ops->send_reset(sk, skb); 58342 req->rsk_ops->send_reset(sk, skb);
56736 58343
56737diff -urNp linux-2.6.38.2/net/ipv4/tcp_probe.c linux-2.6.38.2/net/ipv4/tcp_probe.c 58344diff -urNp linux-2.6.38.3/net/ipv4/tcp_probe.c linux-2.6.38.3/net/ipv4/tcp_probe.c
56738--- linux-2.6.38.2/net/ipv4/tcp_probe.c 2011-03-14 21:20:32.000000000 -0400 58345--- linux-2.6.38.3/net/ipv4/tcp_probe.c 2011-03-14 21:20:32.000000000 -0400
56739+++ linux-2.6.38.2/net/ipv4/tcp_probe.c 2011-03-21 18:31:35.000000000 -0400 58346+++ linux-2.6.38.3/net/ipv4/tcp_probe.c 2011-04-17 15:57:33.000000000 -0400
56740@@ -202,7 +202,7 @@ static ssize_t tcpprobe_read(struct file 58347@@ -202,7 +202,7 @@ static ssize_t tcpprobe_read(struct file
56741 if (cnt + width >= len) 58348 if (cnt + width >= len)
56742 break; 58349 break;
@@ -56746,9 +58353,9 @@ diff -urNp linux-2.6.38.2/net/ipv4/tcp_probe.c linux-2.6.38.2/net/ipv4/tcp_probe
56746 return -EFAULT; 58353 return -EFAULT;
56747 cnt += width; 58354 cnt += width;
56748 } 58355 }
56749diff -urNp linux-2.6.38.2/net/ipv4/tcp_timer.c linux-2.6.38.2/net/ipv4/tcp_timer.c 58356diff -urNp linux-2.6.38.3/net/ipv4/tcp_timer.c linux-2.6.38.3/net/ipv4/tcp_timer.c
56750--- linux-2.6.38.2/net/ipv4/tcp_timer.c 2011-03-14 21:20:32.000000000 -0400 58357--- linux-2.6.38.3/net/ipv4/tcp_timer.c 2011-03-14 21:20:32.000000000 -0400
56751+++ linux-2.6.38.2/net/ipv4/tcp_timer.c 2011-03-21 18:31:35.000000000 -0400 58358+++ linux-2.6.38.3/net/ipv4/tcp_timer.c 2011-04-17 15:57:33.000000000 -0400
56752@@ -22,6 +22,10 @@ 58359@@ -22,6 +22,10 @@
56753 #include <linux/gfp.h> 58360 #include <linux/gfp.h>
56754 #include <net/tcp.h> 58361 #include <net/tcp.h>
@@ -56774,9 +58381,9 @@ diff -urNp linux-2.6.38.2/net/ipv4/tcp_timer.c linux-2.6.38.2/net/ipv4/tcp_timer
56774 if (retransmits_timed_out(sk, retry_until, 58381 if (retransmits_timed_out(sk, retry_until,
56775 syn_set ? 0 : icsk->icsk_user_timeout, syn_set)) { 58382 syn_set ? 0 : icsk->icsk_user_timeout, syn_set)) {
56776 /* Has it gone just too far? */ 58383 /* Has it gone just too far? */
56777diff -urNp linux-2.6.38.2/net/ipv4/udp.c linux-2.6.38.2/net/ipv4/udp.c 58384diff -urNp linux-2.6.38.3/net/ipv4/udp.c linux-2.6.38.3/net/ipv4/udp.c
56778--- linux-2.6.38.2/net/ipv4/udp.c 2011-03-14 21:20:32.000000000 -0400 58385--- linux-2.6.38.3/net/ipv4/udp.c 2011-03-14 21:20:32.000000000 -0400
56779+++ linux-2.6.38.2/net/ipv4/udp.c 2011-03-21 18:31:35.000000000 -0400 58386+++ linux-2.6.38.3/net/ipv4/udp.c 2011-04-17 15:57:33.000000000 -0400
56780@@ -86,6 +86,7 @@ 58387@@ -86,6 +86,7 @@
56781 #include <linux/types.h> 58388 #include <linux/types.h>
56782 #include <linux/fcntl.h> 58389 #include <linux/fcntl.h>
@@ -56860,9 +58467,9 @@ diff -urNp linux-2.6.38.2/net/ipv4/udp.c linux-2.6.38.2/net/ipv4/udp.c
56860 atomic_read(&sp->sk_drops), len); 58467 atomic_read(&sp->sk_drops), len);
56861 } 58468 }
56862 58469
56863diff -urNp linux-2.6.38.2/net/ipv6/exthdrs.c linux-2.6.38.2/net/ipv6/exthdrs.c 58470diff -urNp linux-2.6.38.3/net/ipv6/exthdrs.c linux-2.6.38.3/net/ipv6/exthdrs.c
56864--- linux-2.6.38.2/net/ipv6/exthdrs.c 2011-03-14 21:20:32.000000000 -0400 58471--- linux-2.6.38.3/net/ipv6/exthdrs.c 2011-03-14 21:20:32.000000000 -0400
56865+++ linux-2.6.38.2/net/ipv6/exthdrs.c 2011-03-21 18:31:35.000000000 -0400 58472+++ linux-2.6.38.3/net/ipv6/exthdrs.c 2011-04-17 15:57:33.000000000 -0400
56866@@ -634,7 +634,7 @@ static struct tlvtype_proc tlvprochopopt 58473@@ -634,7 +634,7 @@ static struct tlvtype_proc tlvprochopopt
56867 .type = IPV6_TLV_JUMBO, 58474 .type = IPV6_TLV_JUMBO,
56868 .func = ipv6_hop_jumbo, 58475 .func = ipv6_hop_jumbo,
@@ -56872,9 +58479,9 @@ diff -urNp linux-2.6.38.2/net/ipv6/exthdrs.c linux-2.6.38.2/net/ipv6/exthdrs.c
56872 }; 58479 };
56873 58480
56874 int ipv6_parse_hopopts(struct sk_buff *skb) 58481 int ipv6_parse_hopopts(struct sk_buff *skb)
56875diff -urNp linux-2.6.38.2/net/ipv6/raw.c linux-2.6.38.2/net/ipv6/raw.c 58482diff -urNp linux-2.6.38.3/net/ipv6/raw.c linux-2.6.38.3/net/ipv6/raw.c
56876--- linux-2.6.38.2/net/ipv6/raw.c 2011-03-14 21:20:32.000000000 -0400 58483--- linux-2.6.38.3/net/ipv6/raw.c 2011-03-14 21:20:32.000000000 -0400
56877+++ linux-2.6.38.2/net/ipv6/raw.c 2011-03-21 18:31:35.000000000 -0400 58484+++ linux-2.6.38.3/net/ipv6/raw.c 2011-04-17 15:57:33.000000000 -0400
56878@@ -602,7 +602,7 @@ out: 58485@@ -602,7 +602,7 @@ out:
56879 return err; 58486 return err;
56880 } 58487 }
@@ -56884,7 +58491,42 @@ diff -urNp linux-2.6.38.2/net/ipv6/raw.c linux-2.6.38.2/net/ipv6/raw.c
56884 struct flowi *fl, struct dst_entry **dstp, 58491 struct flowi *fl, struct dst_entry **dstp,
56885 unsigned int flags) 58492 unsigned int flags)
56886 { 58493 {
56887@@ -1262,7 +1262,13 @@ static void raw6_sock_seq_show(struct se 58494@@ -919,12 +919,15 @@ do_confirm:
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
56888 0, 0L, 0, 58530 0, 0L, 0,
56889 sock_i_uid(sp), 0, 58531 sock_i_uid(sp), 0,
56890 sock_i_ino(sp), 58532 sock_i_ino(sp),
@@ -56899,9 +58541,9 @@ diff -urNp linux-2.6.38.2/net/ipv6/raw.c linux-2.6.38.2/net/ipv6/raw.c
56899 } 58541 }
56900 58542
56901 static int raw6_seq_show(struct seq_file *seq, void *v) 58543 static int raw6_seq_show(struct seq_file *seq, void *v)
56902diff -urNp linux-2.6.38.2/net/ipv6/tcp_ipv6.c linux-2.6.38.2/net/ipv6/tcp_ipv6.c 58544diff -urNp linux-2.6.38.3/net/ipv6/tcp_ipv6.c linux-2.6.38.3/net/ipv6/tcp_ipv6.c
56903--- linux-2.6.38.2/net/ipv6/tcp_ipv6.c 2011-03-14 21:20:32.000000000 -0400 58545--- linux-2.6.38.3/net/ipv6/tcp_ipv6.c 2011-03-14 21:20:32.000000000 -0400
56904+++ linux-2.6.38.2/net/ipv6/tcp_ipv6.c 2011-03-21 18:31:35.000000000 -0400 58546+++ linux-2.6.38.3/net/ipv6/tcp_ipv6.c 2011-04-17 15:57:33.000000000 -0400
56905@@ -92,6 +92,10 @@ static struct tcp_md5sig_key *tcp_v6_md5 58547@@ -92,6 +92,10 @@ static struct tcp_md5sig_key *tcp_v6_md5
56906 } 58548 }
56907 #endif 58549 #endif
@@ -57001,9 +58643,9 @@ diff -urNp linux-2.6.38.2/net/ipv6/tcp_ipv6.c linux-2.6.38.2/net/ipv6/tcp_ipv6.c
57001 } 58643 }
57002 58644
57003 static int tcp6_seq_show(struct seq_file *seq, void *v) 58645 static int tcp6_seq_show(struct seq_file *seq, void *v)
57004diff -urNp linux-2.6.38.2/net/ipv6/udp.c linux-2.6.38.2/net/ipv6/udp.c 58646diff -urNp linux-2.6.38.3/net/ipv6/udp.c linux-2.6.38.3/net/ipv6/udp.c
57005--- linux-2.6.38.2/net/ipv6/udp.c 2011-03-14 21:20:32.000000000 -0400 58647--- linux-2.6.38.3/net/ipv6/udp.c 2011-03-14 21:20:32.000000000 -0400
57006+++ linux-2.6.38.2/net/ipv6/udp.c 2011-03-21 18:31:35.000000000 -0400 58648+++ linux-2.6.38.3/net/ipv6/udp.c 2011-04-17 15:57:33.000000000 -0400
57007@@ -50,6 +50,10 @@ 58649@@ -50,6 +50,10 @@
57008 #include <linux/seq_file.h> 58650 #include <linux/seq_file.h>
57009 #include "udp_impl.h" 58651 #include "udp_impl.h"
@@ -57039,9 +58681,9 @@ diff -urNp linux-2.6.38.2/net/ipv6/udp.c linux-2.6.38.2/net/ipv6/udp.c
57039 atomic_read(&sp->sk_drops)); 58681 atomic_read(&sp->sk_drops));
57040 } 58682 }
57041 58683
57042diff -urNp linux-2.6.38.2/net/irda/ircomm/ircomm_tty.c linux-2.6.38.2/net/irda/ircomm/ircomm_tty.c 58684diff -urNp linux-2.6.38.3/net/irda/ircomm/ircomm_tty.c linux-2.6.38.3/net/irda/ircomm/ircomm_tty.c
57043--- linux-2.6.38.2/net/irda/ircomm/ircomm_tty.c 2011-03-14 21:20:32.000000000 -0400 58685--- linux-2.6.38.3/net/irda/ircomm/ircomm_tty.c 2011-03-14 21:20:32.000000000 -0400
57044+++ linux-2.6.38.2/net/irda/ircomm/ircomm_tty.c 2011-03-21 18:31:35.000000000 -0400 58686+++ linux-2.6.38.3/net/irda/ircomm/ircomm_tty.c 2011-04-17 15:57:33.000000000 -0400
57045@@ -281,16 +281,16 @@ static int ircomm_tty_block_til_ready(st 58687@@ -281,16 +281,16 @@ static int ircomm_tty_block_til_ready(st
57046 add_wait_queue(&self->open_wait, &wait); 58688 add_wait_queue(&self->open_wait, &wait);
57047 58689
@@ -57164,9 +58806,9 @@ diff -urNp linux-2.6.38.2/net/irda/ircomm/ircomm_tty.c linux-2.6.38.2/net/irda/i
57164 seq_printf(m, "Max data size: %d\n", self->max_data_size); 58806 seq_printf(m, "Max data size: %d\n", self->max_data_size);
57165 seq_printf(m, "Max header size: %d\n", self->max_header_size); 58807 seq_printf(m, "Max header size: %d\n", self->max_header_size);
57166 58808
57167diff -urNp linux-2.6.38.2/net/key/af_key.c linux-2.6.38.2/net/key/af_key.c 58809diff -urNp linux-2.6.38.3/net/key/af_key.c linux-2.6.38.3/net/key/af_key.c
57168--- linux-2.6.38.2/net/key/af_key.c 2011-03-14 21:20:32.000000000 -0400 58810--- linux-2.6.38.3/net/key/af_key.c 2011-03-14 21:20:32.000000000 -0400
57169+++ linux-2.6.38.2/net/key/af_key.c 2011-03-21 18:31:35.000000000 -0400 58811+++ linux-2.6.38.3/net/key/af_key.c 2011-04-17 15:57:33.000000000 -0400
57170@@ -3644,7 +3644,11 @@ static int pfkey_seq_show(struct seq_fil 58812@@ -3644,7 +3644,11 @@ static int pfkey_seq_show(struct seq_fil
57171 seq_printf(f ,"sk RefCnt Rmem Wmem User Inode\n"); 58813 seq_printf(f ,"sk RefCnt Rmem Wmem User Inode\n");
57172 else 58814 else
@@ -57179,9 +58821,32 @@ diff -urNp linux-2.6.38.2/net/key/af_key.c linux-2.6.38.2/net/key/af_key.c
57179 atomic_read(&s->sk_refcnt), 58821 atomic_read(&s->sk_refcnt),
57180 sk_rmem_alloc_get(s), 58822 sk_rmem_alloc_get(s),
57181 sk_wmem_alloc_get(s), 58823 sk_wmem_alloc_get(s),
57182diff -urNp linux-2.6.38.2/net/mac80211/ieee80211_i.h linux-2.6.38.2/net/mac80211/ieee80211_i.h 58824diff -urNp linux-2.6.38.3/net/mac80211/cfg.c linux-2.6.38.3/net/mac80211/cfg.c
57183--- linux-2.6.38.2/net/mac80211/ieee80211_i.h 2011-03-14 21:20:32.000000000 -0400 58825--- linux-2.6.38.3/net/mac80211/cfg.c 2011-03-14 21:20:32.000000000 -0400
57184+++ linux-2.6.38.2/net/mac80211/ieee80211_i.h 2011-03-21 18:31:35.000000000 -0400 58826+++ linux-2.6.38.3/net/mac80211/cfg.c 2011-04-17 15:57:33.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
57185@@ -27,6 +27,7 @@ 58850@@ -27,6 +27,7 @@
57186 #include <net/ieee80211_radiotap.h> 58851 #include <net/ieee80211_radiotap.h>
57187 #include <net/cfg80211.h> 58852 #include <net/cfg80211.h>
@@ -57199,9 +58864,9 @@ diff -urNp linux-2.6.38.2/net/mac80211/ieee80211_i.h linux-2.6.38.2/net/mac80211
57199 int monitors, cooked_mntrs; 58864 int monitors, cooked_mntrs;
57200 /* number of interfaces with corresponding FIF_ flags */ 58865 /* number of interfaces with corresponding FIF_ flags */
57201 int fif_fcsfail, fif_plcpfail, fif_control, fif_other_bss, fif_pspoll, 58866 int fif_fcsfail, fif_plcpfail, fif_control, fif_other_bss, fif_pspoll,
57202diff -urNp linux-2.6.38.2/net/mac80211/iface.c linux-2.6.38.2/net/mac80211/iface.c 58867diff -urNp linux-2.6.38.3/net/mac80211/iface.c linux-2.6.38.3/net/mac80211/iface.c
57203--- linux-2.6.38.2/net/mac80211/iface.c 2011-03-14 21:20:32.000000000 -0400 58868--- linux-2.6.38.3/net/mac80211/iface.c 2011-03-14 21:20:32.000000000 -0400
57204+++ linux-2.6.38.2/net/mac80211/iface.c 2011-03-21 18:31:35.000000000 -0400 58869+++ linux-2.6.38.3/net/mac80211/iface.c 2011-04-17 15:57:33.000000000 -0400
57205@@ -211,7 +211,7 @@ static int ieee80211_do_open(struct net_ 58870@@ -211,7 +211,7 @@ static int ieee80211_do_open(struct net_
57206 break; 58871 break;
57207 } 58872 }
@@ -57256,9 +58921,9 @@ diff -urNp linux-2.6.38.2/net/mac80211/iface.c linux-2.6.38.2/net/mac80211/iface
57256 if (local->ops->napi_poll) 58921 if (local->ops->napi_poll)
57257 napi_disable(&local->napi); 58922 napi_disable(&local->napi);
57258 ieee80211_clear_tx_pending(local); 58923 ieee80211_clear_tx_pending(local);
57259diff -urNp linux-2.6.38.2/net/mac80211/main.c linux-2.6.38.2/net/mac80211/main.c 58924diff -urNp linux-2.6.38.3/net/mac80211/main.c linux-2.6.38.3/net/mac80211/main.c
57260--- linux-2.6.38.2/net/mac80211/main.c 2011-03-14 21:20:32.000000000 -0400 58925--- linux-2.6.38.3/net/mac80211/main.c 2011-03-14 21:20:32.000000000 -0400
57261+++ linux-2.6.38.2/net/mac80211/main.c 2011-03-21 18:31:35.000000000 -0400 58926+++ linux-2.6.38.3/net/mac80211/main.c 2011-04-17 15:57:33.000000000 -0400
57262@@ -161,7 +161,7 @@ int ieee80211_hw_config(struct ieee80211 58927@@ -161,7 +161,7 @@ int ieee80211_hw_config(struct ieee80211
57263 local->hw.conf.power_level = power; 58928 local->hw.conf.power_level = power;
57264 } 58929 }
@@ -57268,9 +58933,9 @@ diff -urNp linux-2.6.38.2/net/mac80211/main.c linux-2.6.38.2/net/mac80211/main.c
57268 ret = drv_config(local, changed); 58933 ret = drv_config(local, changed);
57269 /* 58934 /*
57270 * Goal: 58935 * Goal:
57271diff -urNp linux-2.6.38.2/net/mac80211/pm.c linux-2.6.38.2/net/mac80211/pm.c 58936diff -urNp linux-2.6.38.3/net/mac80211/pm.c linux-2.6.38.3/net/mac80211/pm.c
57272--- linux-2.6.38.2/net/mac80211/pm.c 2011-03-14 21:20:32.000000000 -0400 58937--- linux-2.6.38.3/net/mac80211/pm.c 2011-03-14 21:20:32.000000000 -0400
57273+++ linux-2.6.38.2/net/mac80211/pm.c 2011-03-21 18:31:35.000000000 -0400 58938+++ linux-2.6.38.3/net/mac80211/pm.c 2011-04-17 15:57:33.000000000 -0400
57274@@ -95,7 +95,7 @@ int __ieee80211_suspend(struct ieee80211 58939@@ -95,7 +95,7 @@ int __ieee80211_suspend(struct ieee80211
57275 } 58940 }
57276 58941
@@ -57280,9 +58945,9 @@ diff -urNp linux-2.6.38.2/net/mac80211/pm.c linux-2.6.38.2/net/mac80211/pm.c
57280 ieee80211_stop_device(local); 58945 ieee80211_stop_device(local);
57281 58946
57282 local->suspended = true; 58947 local->suspended = true;
57283diff -urNp linux-2.6.38.2/net/mac80211/rate.c linux-2.6.38.2/net/mac80211/rate.c 58948diff -urNp linux-2.6.38.3/net/mac80211/rate.c linux-2.6.38.3/net/mac80211/rate.c
57284--- linux-2.6.38.2/net/mac80211/rate.c 2011-03-14 21:20:32.000000000 -0400 58949--- linux-2.6.38.3/net/mac80211/rate.c 2011-03-14 21:20:32.000000000 -0400
57285+++ linux-2.6.38.2/net/mac80211/rate.c 2011-03-21 18:31:35.000000000 -0400 58950+++ linux-2.6.38.3/net/mac80211/rate.c 2011-04-17 15:57:33.000000000 -0400
57286@@ -371,7 +371,7 @@ int ieee80211_init_rate_ctrl_alg(struct 58951@@ -371,7 +371,7 @@ int ieee80211_init_rate_ctrl_alg(struct
57287 58952
57288 ASSERT_RTNL(); 58953 ASSERT_RTNL();
@@ -57292,9 +58957,9 @@ diff -urNp linux-2.6.38.2/net/mac80211/rate.c linux-2.6.38.2/net/mac80211/rate.c
57292 return -EBUSY; 58957 return -EBUSY;
57293 58958
57294 if (local->hw.flags & IEEE80211_HW_HAS_RATE_CONTROL) { 58959 if (local->hw.flags & IEEE80211_HW_HAS_RATE_CONTROL) {
57295diff -urNp linux-2.6.38.2/net/mac80211/rc80211_pid_debugfs.c linux-2.6.38.2/net/mac80211/rc80211_pid_debugfs.c 58960diff -urNp linux-2.6.38.3/net/mac80211/rc80211_pid_debugfs.c linux-2.6.38.3/net/mac80211/rc80211_pid_debugfs.c
57296--- linux-2.6.38.2/net/mac80211/rc80211_pid_debugfs.c 2011-03-14 21:20:32.000000000 -0400 58961--- linux-2.6.38.3/net/mac80211/rc80211_pid_debugfs.c 2011-03-14 21:20:32.000000000 -0400
57297+++ linux-2.6.38.2/net/mac80211/rc80211_pid_debugfs.c 2011-03-21 18:31:35.000000000 -0400 58962+++ linux-2.6.38.3/net/mac80211/rc80211_pid_debugfs.c 2011-04-17 15:57:33.000000000 -0400
57298@@ -192,7 +192,7 @@ static ssize_t rate_control_pid_events_r 58963@@ -192,7 +192,7 @@ static ssize_t rate_control_pid_events_r
57299 58964
57300 spin_unlock_irqrestore(&events->lock, status); 58965 spin_unlock_irqrestore(&events->lock, status);
@@ -57304,9 +58969,9 @@ diff -urNp linux-2.6.38.2/net/mac80211/rc80211_pid_debugfs.c linux-2.6.38.2/net/
57304 return -EFAULT; 58969 return -EFAULT;
57305 58970
57306 return p; 58971 return p;
57307diff -urNp linux-2.6.38.2/net/mac80211/tx.c linux-2.6.38.2/net/mac80211/tx.c 58972diff -urNp linux-2.6.38.3/net/mac80211/tx.c linux-2.6.38.3/net/mac80211/tx.c
57308--- linux-2.6.38.2/net/mac80211/tx.c 2011-03-14 21:20:32.000000000 -0400 58973--- linux-2.6.38.3/net/mac80211/tx.c 2011-03-14 21:20:32.000000000 -0400
57309+++ linux-2.6.38.2/net/mac80211/tx.c 2011-03-21 18:31:35.000000000 -0400 58974+++ linux-2.6.38.3/net/mac80211/tx.c 2011-04-17 15:57:33.000000000 -0400
57310@@ -173,7 +173,7 @@ static __le16 ieee80211_duration(struct 58975@@ -173,7 +173,7 @@ static __le16 ieee80211_duration(struct
57311 return cpu_to_le16(dur); 58976 return cpu_to_le16(dur);
57312 } 58977 }
@@ -57316,9 +58981,9 @@ diff -urNp linux-2.6.38.2/net/mac80211/tx.c linux-2.6.38.2/net/mac80211/tx.c
57316 struct net_device *dev) 58981 struct net_device *dev)
57317 { 58982 {
57318 return local == wdev_priv(dev->ieee80211_ptr); 58983 return local == wdev_priv(dev->ieee80211_ptr);
57319diff -urNp linux-2.6.38.2/net/mac80211/util.c linux-2.6.38.2/net/mac80211/util.c 58984diff -urNp linux-2.6.38.3/net/mac80211/util.c linux-2.6.38.3/net/mac80211/util.c
57320--- linux-2.6.38.2/net/mac80211/util.c 2011-03-14 21:20:32.000000000 -0400 58985--- linux-2.6.38.3/net/mac80211/util.c 2011-03-14 21:20:32.000000000 -0400
57321+++ linux-2.6.38.2/net/mac80211/util.c 2011-03-21 18:31:35.000000000 -0400 58986+++ linux-2.6.38.3/net/mac80211/util.c 2011-04-17 15:57:33.000000000 -0400
57322@@ -1135,7 +1135,7 @@ int ieee80211_reconfig(struct ieee80211_ 58987@@ -1135,7 +1135,7 @@ int ieee80211_reconfig(struct ieee80211_
57323 local->resuming = true; 58988 local->resuming = true;
57324 58989
@@ -57328,9 +58993,9 @@ diff -urNp linux-2.6.38.2/net/mac80211/util.c linux-2.6.38.2/net/mac80211/util.c
57328 /* 58993 /*
57329 * Upon resume hardware can sometimes be goofy due to 58994 * Upon resume hardware can sometimes be goofy due to
57330 * various platform / driver / bus issues, so restarting 58995 * various platform / driver / bus issues, so restarting
57331diff -urNp linux-2.6.38.2/net/netfilter/Kconfig linux-2.6.38.2/net/netfilter/Kconfig 58996diff -urNp linux-2.6.38.3/net/netfilter/Kconfig linux-2.6.38.3/net/netfilter/Kconfig
57332--- linux-2.6.38.2/net/netfilter/Kconfig 2011-03-14 21:20:32.000000000 -0400 58997--- linux-2.6.38.3/net/netfilter/Kconfig 2011-03-14 21:20:32.000000000 -0400
57333+++ linux-2.6.38.2/net/netfilter/Kconfig 2011-03-21 18:31:35.000000000 -0400 58998+++ linux-2.6.38.3/net/netfilter/Kconfig 2011-04-17 15:57:33.000000000 -0400
57334@@ -709,6 +709,16 @@ config NETFILTER_XT_MATCH_ESP 58999@@ -709,6 +709,16 @@ config NETFILTER_XT_MATCH_ESP
57335 59000
57336 To compile it as a module, choose M here. If unsure, say N. 59001 To compile it as a module, choose M here. If unsure, say N.
@@ -57348,9 +59013,9 @@ diff -urNp linux-2.6.38.2/net/netfilter/Kconfig linux-2.6.38.2/net/netfilter/Kco
57348 config NETFILTER_XT_MATCH_HASHLIMIT 59013 config NETFILTER_XT_MATCH_HASHLIMIT
57349 tristate '"hashlimit" match support' 59014 tristate '"hashlimit" match support'
57350 depends on (IP6_NF_IPTABLES || IP6_NF_IPTABLES=n) 59015 depends on (IP6_NF_IPTABLES || IP6_NF_IPTABLES=n)
57351diff -urNp linux-2.6.38.2/net/netfilter/Makefile linux-2.6.38.2/net/netfilter/Makefile 59016diff -urNp linux-2.6.38.3/net/netfilter/Makefile linux-2.6.38.3/net/netfilter/Makefile
57352--- linux-2.6.38.2/net/netfilter/Makefile 2011-03-14 21:20:32.000000000 -0400 59017--- linux-2.6.38.3/net/netfilter/Makefile 2011-03-14 21:20:32.000000000 -0400
57353+++ linux-2.6.38.2/net/netfilter/Makefile 2011-03-21 18:31:35.000000000 -0400 59018+++ linux-2.6.38.3/net/netfilter/Makefile 2011-04-17 15:57:33.000000000 -0400
57354@@ -74,6 +74,7 @@ obj-$(CONFIG_NETFILTER_XT_MATCH_CPU) += 59019@@ -74,6 +74,7 @@ obj-$(CONFIG_NETFILTER_XT_MATCH_CPU) +=
57355 obj-$(CONFIG_NETFILTER_XT_MATCH_DCCP) += xt_dccp.o 59020 obj-$(CONFIG_NETFILTER_XT_MATCH_DCCP) += xt_dccp.o
57356 obj-$(CONFIG_NETFILTER_XT_MATCH_DSCP) += xt_dscp.o 59021 obj-$(CONFIG_NETFILTER_XT_MATCH_DSCP) += xt_dscp.o
@@ -57359,9 +59024,9 @@ diff -urNp linux-2.6.38.2/net/netfilter/Makefile linux-2.6.38.2/net/netfilter/Ma
57359 obj-$(CONFIG_NETFILTER_XT_MATCH_HASHLIMIT) += xt_hashlimit.o 59024 obj-$(CONFIG_NETFILTER_XT_MATCH_HASHLIMIT) += xt_hashlimit.o
57360 obj-$(CONFIG_NETFILTER_XT_MATCH_HELPER) += xt_helper.o 59025 obj-$(CONFIG_NETFILTER_XT_MATCH_HELPER) += xt_helper.o
57361 obj-$(CONFIG_NETFILTER_XT_MATCH_HL) += xt_hl.o 59026 obj-$(CONFIG_NETFILTER_XT_MATCH_HL) += xt_hl.o
57362diff -urNp linux-2.6.38.2/net/netfilter/nf_conntrack_netlink.c linux-2.6.38.2/net/netfilter/nf_conntrack_netlink.c 59027diff -urNp linux-2.6.38.3/net/netfilter/nf_conntrack_netlink.c linux-2.6.38.3/net/netfilter/nf_conntrack_netlink.c
57363--- linux-2.6.38.2/net/netfilter/nf_conntrack_netlink.c 2011-03-14 21:20:32.000000000 -0400 59028--- linux-2.6.38.3/net/netfilter/nf_conntrack_netlink.c 2011-03-14 21:20:32.000000000 -0400
57364+++ linux-2.6.38.2/net/netfilter/nf_conntrack_netlink.c 2011-03-21 18:31:35.000000000 -0400 59029+++ linux-2.6.38.3/net/netfilter/nf_conntrack_netlink.c 2011-04-17 15:57:33.000000000 -0400
57365@@ -761,7 +761,7 @@ static const struct nla_policy tuple_nla 59030@@ -761,7 +761,7 @@ static const struct nla_policy tuple_nla
57366 static int 59031 static int
57367 ctnetlink_parse_tuple(const struct nlattr * const cda[], 59032 ctnetlink_parse_tuple(const struct nlattr * const cda[],
@@ -57371,9 +59036,9 @@ diff -urNp linux-2.6.38.2/net/netfilter/nf_conntrack_netlink.c linux-2.6.38.2/ne
57371 { 59036 {
57372 struct nlattr *tb[CTA_TUPLE_MAX+1]; 59037 struct nlattr *tb[CTA_TUPLE_MAX+1];
57373 int err; 59038 int err;
57374diff -urNp linux-2.6.38.2/net/netfilter/xt_gradm.c linux-2.6.38.2/net/netfilter/xt_gradm.c 59039diff -urNp linux-2.6.38.3/net/netfilter/xt_gradm.c linux-2.6.38.3/net/netfilter/xt_gradm.c
57375--- linux-2.6.38.2/net/netfilter/xt_gradm.c 1969-12-31 19:00:00.000000000 -0500 59040--- linux-2.6.38.3/net/netfilter/xt_gradm.c 1969-12-31 19:00:00.000000000 -0500
57376+++ linux-2.6.38.2/net/netfilter/xt_gradm.c 2011-03-21 18:31:35.000000000 -0400 59041+++ linux-2.6.38.3/net/netfilter/xt_gradm.c 2011-04-17 15:57:33.000000000 -0400
57377@@ -0,0 +1,51 @@ 59042@@ -0,0 +1,51 @@
57378+/* 59043+/*
57379+ * gradm match for netfilter 59044+ * gradm match for netfilter
@@ -57426,9 +59091,9 @@ diff -urNp linux-2.6.38.2/net/netfilter/xt_gradm.c linux-2.6.38.2/net/netfilter/
57426+MODULE_LICENSE("GPL"); 59091+MODULE_LICENSE("GPL");
57427+MODULE_ALIAS("ipt_gradm"); 59092+MODULE_ALIAS("ipt_gradm");
57428+MODULE_ALIAS("ip6t_gradm"); 59093+MODULE_ALIAS("ip6t_gradm");
57429diff -urNp linux-2.6.38.2/net/netlink/af_netlink.c linux-2.6.38.2/net/netlink/af_netlink.c 59094diff -urNp linux-2.6.38.3/net/netlink/af_netlink.c linux-2.6.38.3/net/netlink/af_netlink.c
57430--- linux-2.6.38.2/net/netlink/af_netlink.c 2011-03-14 21:20:32.000000000 -0400 59095--- linux-2.6.38.3/net/netlink/af_netlink.c 2011-03-14 21:20:32.000000000 -0400
57431+++ linux-2.6.38.2/net/netlink/af_netlink.c 2011-03-21 18:31:35.000000000 -0400 59096+++ linux-2.6.38.3/net/netlink/af_netlink.c 2011-04-17 15:57:33.000000000 -0400
57432@@ -2001,13 +2001,21 @@ static int netlink_seq_show(struct seq_f 59097@@ -2001,13 +2001,21 @@ static int netlink_seq_show(struct seq_f
57433 struct netlink_sock *nlk = nlk_sk(s); 59098 struct netlink_sock *nlk = nlk_sk(s);
57434 59099
@@ -57451,9 +59116,9 @@ diff -urNp linux-2.6.38.2/net/netlink/af_netlink.c linux-2.6.38.2/net/netlink/af
57451 atomic_read(&s->sk_refcnt), 59116 atomic_read(&s->sk_refcnt),
57452 atomic_read(&s->sk_drops), 59117 atomic_read(&s->sk_drops),
57453 sock_i_ino(s) 59118 sock_i_ino(s)
57454diff -urNp linux-2.6.38.2/net/netrom/af_netrom.c linux-2.6.38.2/net/netrom/af_netrom.c 59119diff -urNp linux-2.6.38.3/net/netrom/af_netrom.c linux-2.6.38.3/net/netrom/af_netrom.c
57455--- linux-2.6.38.2/net/netrom/af_netrom.c 2011-03-14 21:20:32.000000000 -0400 59120--- linux-2.6.38.3/net/netrom/af_netrom.c 2011-03-14 21:20:32.000000000 -0400
57456+++ linux-2.6.38.2/net/netrom/af_netrom.c 2011-03-21 18:31:35.000000000 -0400 59121+++ linux-2.6.38.3/net/netrom/af_netrom.c 2011-04-17 15:57:33.000000000 -0400
57457@@ -840,6 +840,7 @@ static int nr_getname(struct socket *soc 59122@@ -840,6 +840,7 @@ static int nr_getname(struct socket *soc
57458 struct sock *sk = sock->sk; 59123 struct sock *sk = sock->sk;
57459 struct nr_sock *nr = nr_sk(sk); 59124 struct nr_sock *nr = nr_sk(sk);
@@ -57470,9 +59135,9 @@ diff -urNp linux-2.6.38.2/net/netrom/af_netrom.c linux-2.6.38.2/net/netrom/af_ne
57470 sax->fsa_ax25.sax25_call = nr->source_addr; 59135 sax->fsa_ax25.sax25_call = nr->source_addr;
57471 *uaddr_len = sizeof(struct sockaddr_ax25); 59136 *uaddr_len = sizeof(struct sockaddr_ax25);
57472 } 59137 }
57473diff -urNp linux-2.6.38.2/net/packet/af_packet.c linux-2.6.38.2/net/packet/af_packet.c 59138diff -urNp linux-2.6.38.3/net/packet/af_packet.c linux-2.6.38.3/net/packet/af_packet.c
57474--- linux-2.6.38.2/net/packet/af_packet.c 2011-03-14 21:20:32.000000000 -0400 59139--- linux-2.6.38.3/net/packet/af_packet.c 2011-03-14 21:20:32.000000000 -0400
57475+++ linux-2.6.38.2/net/packet/af_packet.c 2011-03-21 18:31:35.000000000 -0400 59140+++ linux-2.6.38.3/net/packet/af_packet.c 2011-04-17 15:57:33.000000000 -0400
57476@@ -2134,7 +2134,7 @@ static int packet_getsockopt(struct sock 59141@@ -2134,7 +2134,7 @@ static int packet_getsockopt(struct sock
57477 case PACKET_HDRLEN: 59142 case PACKET_HDRLEN:
57478 if (len > sizeof(int)) 59143 if (len > sizeof(int))
@@ -57503,9 +59168,9 @@ diff -urNp linux-2.6.38.2/net/packet/af_packet.c linux-2.6.38.2/net/packet/af_pa
57503 atomic_read(&s->sk_refcnt), 59168 atomic_read(&s->sk_refcnt),
57504 s->sk_type, 59169 s->sk_type,
57505 ntohs(po->num), 59170 ntohs(po->num),
57506diff -urNp linux-2.6.38.2/net/phonet/af_phonet.c linux-2.6.38.2/net/phonet/af_phonet.c 59171diff -urNp linux-2.6.38.3/net/phonet/af_phonet.c linux-2.6.38.3/net/phonet/af_phonet.c
57507--- linux-2.6.38.2/net/phonet/af_phonet.c 2011-03-14 21:20:32.000000000 -0400 59172--- linux-2.6.38.3/net/phonet/af_phonet.c 2011-03-14 21:20:32.000000000 -0400
57508+++ linux-2.6.38.2/net/phonet/af_phonet.c 2011-03-21 18:31:35.000000000 -0400 59173+++ linux-2.6.38.3/net/phonet/af_phonet.c 2011-04-17 15:57:33.000000000 -0400
57509@@ -41,7 +41,7 @@ static struct phonet_protocol *phonet_pr 59174@@ -41,7 +41,7 @@ static struct phonet_protocol *phonet_pr
57510 { 59175 {
57511 struct phonet_protocol *pp; 59176 struct phonet_protocol *pp;
@@ -57524,9 +59189,9 @@ diff -urNp linux-2.6.38.2/net/phonet/af_phonet.c linux-2.6.38.2/net/phonet/af_ph
57524 return -EINVAL; 59189 return -EINVAL;
57525 59190
57526 err = proto_register(pp->prot, 1); 59191 err = proto_register(pp->prot, 1);
57527diff -urNp linux-2.6.38.2/net/phonet/socket.c linux-2.6.38.2/net/phonet/socket.c 59192diff -urNp linux-2.6.38.3/net/phonet/socket.c linux-2.6.38.3/net/phonet/socket.c
57528--- linux-2.6.38.2/net/phonet/socket.c 2011-03-14 21:20:32.000000000 -0400 59193--- linux-2.6.38.3/net/phonet/socket.c 2011-03-14 21:20:32.000000000 -0400
57529+++ linux-2.6.38.2/net/phonet/socket.c 2011-03-21 18:31:35.000000000 -0400 59194+++ linux-2.6.38.3/net/phonet/socket.c 2011-04-17 15:57:33.000000000 -0400
57530@@ -637,7 +637,12 @@ static int pn_sock_seq_show(struct seq_f 59195@@ -637,7 +637,12 @@ static int pn_sock_seq_show(struct seq_f
57531 sk->sk_state, 59196 sk->sk_state,
57532 sk_wmem_alloc_get(sk), sk_rmem_alloc_get(sk), 59197 sk_wmem_alloc_get(sk), sk_rmem_alloc_get(sk),
@@ -57541,9 +59206,9 @@ diff -urNp linux-2.6.38.2/net/phonet/socket.c linux-2.6.38.2/net/phonet/socket.c
57541 atomic_read(&sk->sk_drops), &len); 59206 atomic_read(&sk->sk_drops), &len);
57542 } 59207 }
57543 seq_printf(seq, "%*s\n", 127 - len, ""); 59208 seq_printf(seq, "%*s\n", 127 - len, "");
57544diff -urNp linux-2.6.38.2/net/sctp/proc.c linux-2.6.38.2/net/sctp/proc.c 59209diff -urNp linux-2.6.38.3/net/sctp/proc.c linux-2.6.38.3/net/sctp/proc.c
57545--- linux-2.6.38.2/net/sctp/proc.c 2011-03-14 21:20:32.000000000 -0400 59210--- linux-2.6.38.3/net/sctp/proc.c 2011-03-14 21:20:32.000000000 -0400
57546+++ linux-2.6.38.2/net/sctp/proc.c 2011-03-21 18:31:35.000000000 -0400 59211+++ linux-2.6.38.3/net/sctp/proc.c 2011-04-17 15:57:33.000000000 -0400
57547@@ -212,7 +212,12 @@ static int sctp_eps_seq_show(struct seq_ 59212@@ -212,7 +212,12 @@ static int sctp_eps_seq_show(struct seq_
57548 sctp_for_each_hentry(epb, node, &head->chain) { 59213 sctp_for_each_hentry(epb, node, &head->chain) {
57549 ep = sctp_ep(epb); 59214 ep = sctp_ep(epb);
@@ -57572,9 +59237,9 @@ diff -urNp linux-2.6.38.2/net/sctp/proc.c linux-2.6.38.2/net/sctp/proc.c
57572 assoc->state, hash, 59237 assoc->state, hash,
57573 assoc->assoc_id, 59238 assoc->assoc_id,
57574 assoc->sndbuf_used, 59239 assoc->sndbuf_used,
57575diff -urNp linux-2.6.38.2/net/sctp/socket.c linux-2.6.38.2/net/sctp/socket.c 59240diff -urNp linux-2.6.38.3/net/sctp/socket.c linux-2.6.38.3/net/sctp/socket.c
57576--- linux-2.6.38.2/net/sctp/socket.c 2011-03-14 21:20:32.000000000 -0400 59241--- linux-2.6.38.3/net/sctp/socket.c 2011-03-14 21:20:32.000000000 -0400
57577+++ linux-2.6.38.2/net/sctp/socket.c 2011-03-21 18:31:35.000000000 -0400 59242+++ linux-2.6.38.3/net/sctp/socket.c 2011-04-17 15:57:33.000000000 -0400
57578@@ -1496,7 +1496,7 @@ SCTP_STATIC int sctp_sendmsg(struct kioc 59243@@ -1496,7 +1496,7 @@ SCTP_STATIC int sctp_sendmsg(struct kioc
57579 struct sctp_sndrcvinfo *sinfo; 59244 struct sctp_sndrcvinfo *sinfo;
57580 struct sctp_initmsg *sinit; 59245 struct sctp_initmsg *sinit;
@@ -57593,9 +59258,9 @@ diff -urNp linux-2.6.38.2/net/sctp/socket.c linux-2.6.38.2/net/sctp/socket.c
57593 return -EFAULT; 59258 return -EFAULT;
57594 to += addrlen; 59259 to += addrlen;
57595 cnt++; 59260 cnt++;
57596diff -urNp linux-2.6.38.2/net/socket.c linux-2.6.38.2/net/socket.c 59261diff -urNp linux-2.6.38.3/net/socket.c linux-2.6.38.3/net/socket.c
57597--- linux-2.6.38.2/net/socket.c 2011-03-28 17:42:40.000000000 -0400 59262--- linux-2.6.38.3/net/socket.c 2011-04-18 17:27:16.000000000 -0400
57598+++ linux-2.6.38.2/net/socket.c 2011-03-28 17:42:53.000000000 -0400 59263+++ linux-2.6.38.3/net/socket.c 2011-04-17 15:57:33.000000000 -0400
57599@@ -88,6 +88,7 @@ 59264@@ -88,6 +88,7 @@
57600 #include <linux/nsproxy.h> 59265 #include <linux/nsproxy.h>
57601 #include <linux/magic.h> 59266 #include <linux/magic.h>
@@ -57746,9 +59411,9 @@ diff -urNp linux-2.6.38.2/net/socket.c linux-2.6.38.2/net/socket.c
57746 err = 59411 err =
57747 security_socket_connect(sock, (struct sockaddr *)&address, addrlen); 59412 security_socket_connect(sock, (struct sockaddr *)&address, addrlen);
57748 if (err) 59413 if (err)
57749diff -urNp linux-2.6.38.2/net/sunrpc/sched.c linux-2.6.38.2/net/sunrpc/sched.c 59414diff -urNp linux-2.6.38.3/net/sunrpc/sched.c linux-2.6.38.3/net/sunrpc/sched.c
57750--- linux-2.6.38.2/net/sunrpc/sched.c 2011-03-23 17:20:08.000000000 -0400 59415--- linux-2.6.38.3/net/sunrpc/sched.c 2011-04-18 17:27:14.000000000 -0400
57751+++ linux-2.6.38.2/net/sunrpc/sched.c 2011-03-23 17:21:51.000000000 -0400 59416+++ linux-2.6.38.3/net/sunrpc/sched.c 2011-04-17 15:57:33.000000000 -0400
57752@@ -234,9 +234,9 @@ static int rpc_wait_bit_killable(void *w 59417@@ -234,9 +234,9 @@ static int rpc_wait_bit_killable(void *w
57753 #ifdef RPC_DEBUG 59418 #ifdef RPC_DEBUG
57754 static void rpc_task_set_debuginfo(struct rpc_task *task) 59419 static void rpc_task_set_debuginfo(struct rpc_task *task)
@@ -57761,9 +59426,9 @@ diff -urNp linux-2.6.38.2/net/sunrpc/sched.c linux-2.6.38.2/net/sunrpc/sched.c
57761 } 59426 }
57762 #else 59427 #else
57763 static inline void rpc_task_set_debuginfo(struct rpc_task *task) 59428 static inline void rpc_task_set_debuginfo(struct rpc_task *task)
57764diff -urNp linux-2.6.38.2/net/sunrpc/xprtrdma/svc_rdma.c linux-2.6.38.2/net/sunrpc/xprtrdma/svc_rdma.c 59429diff -urNp linux-2.6.38.3/net/sunrpc/xprtrdma/svc_rdma.c linux-2.6.38.3/net/sunrpc/xprtrdma/svc_rdma.c
57765--- linux-2.6.38.2/net/sunrpc/xprtrdma/svc_rdma.c 2011-03-14 21:20:32.000000000 -0400 59430--- linux-2.6.38.3/net/sunrpc/xprtrdma/svc_rdma.c 2011-03-14 21:20:32.000000000 -0400
57766+++ linux-2.6.38.2/net/sunrpc/xprtrdma/svc_rdma.c 2011-03-21 18:31:35.000000000 -0400 59431+++ linux-2.6.38.3/net/sunrpc/xprtrdma/svc_rdma.c 2011-04-17 15:57:33.000000000 -0400
57767@@ -109,7 +109,7 @@ static int read_reset_stat(ctl_table *ta 59432@@ -109,7 +109,7 @@ static int read_reset_stat(ctl_table *ta
57768 len -= *ppos; 59433 len -= *ppos;
57769 if (len > *lenp) 59434 if (len > *lenp)
@@ -57773,9 +59438,9 @@ diff -urNp linux-2.6.38.2/net/sunrpc/xprtrdma/svc_rdma.c linux-2.6.38.2/net/sunr
57773 return -EFAULT; 59438 return -EFAULT;
57774 *lenp = len; 59439 *lenp = len;
57775 *ppos += len; 59440 *ppos += len;
57776diff -urNp linux-2.6.38.2/net/sysctl_net.c linux-2.6.38.2/net/sysctl_net.c 59441diff -urNp linux-2.6.38.3/net/sysctl_net.c linux-2.6.38.3/net/sysctl_net.c
57777--- linux-2.6.38.2/net/sysctl_net.c 2011-03-14 21:20:32.000000000 -0400 59442--- linux-2.6.38.3/net/sysctl_net.c 2011-03-14 21:20:32.000000000 -0400
57778+++ linux-2.6.38.2/net/sysctl_net.c 2011-03-21 18:31:35.000000000 -0400 59443+++ linux-2.6.38.3/net/sysctl_net.c 2011-04-17 15:57:33.000000000 -0400
57779@@ -46,7 +46,7 @@ static int net_ctl_permissions(struct ct 59444@@ -46,7 +46,7 @@ static int net_ctl_permissions(struct ct
57780 struct ctl_table *table) 59445 struct ctl_table *table)
57781 { 59446 {
@@ -57785,9 +59450,9 @@ diff -urNp linux-2.6.38.2/net/sysctl_net.c linux-2.6.38.2/net/sysctl_net.c
57785 int mode = (table->mode >> 6) & 7; 59450 int mode = (table->mode >> 6) & 7;
57786 return (mode << 6) | (mode << 3) | mode; 59451 return (mode << 6) | (mode << 3) | mode;
57787 } 59452 }
57788diff -urNp linux-2.6.38.2/net/tipc/socket.c linux-2.6.38.2/net/tipc/socket.c 59453diff -urNp linux-2.6.38.3/net/tipc/socket.c linux-2.6.38.3/net/tipc/socket.c
57789--- linux-2.6.38.2/net/tipc/socket.c 2011-03-14 21:20:32.000000000 -0400 59454--- linux-2.6.38.3/net/tipc/socket.c 2011-03-14 21:20:32.000000000 -0400
57790+++ linux-2.6.38.2/net/tipc/socket.c 2011-03-21 18:31:35.000000000 -0400 59455+++ linux-2.6.38.3/net/tipc/socket.c 2011-04-17 15:57:33.000000000 -0400
57791@@ -1447,8 +1447,9 @@ static int connect(struct socket *sock, 59456@@ -1447,8 +1447,9 @@ static int connect(struct socket *sock,
57792 } else { 59457 } else {
57793 if (res == 0) 59458 if (res == 0)
@@ -57800,9 +59465,9 @@ diff -urNp linux-2.6.38.2/net/tipc/socket.c linux-2.6.38.2/net/tipc/socket.c
57800 sock->state = SS_DISCONNECTING; 59465 sock->state = SS_DISCONNECTING;
57801 } 59466 }
57802 59467
57803diff -urNp linux-2.6.38.2/net/unix/af_unix.c linux-2.6.38.2/net/unix/af_unix.c 59468diff -urNp linux-2.6.38.3/net/unix/af_unix.c linux-2.6.38.3/net/unix/af_unix.c
57804--- linux-2.6.38.2/net/unix/af_unix.c 2011-03-14 21:20:32.000000000 -0400 59469--- linux-2.6.38.3/net/unix/af_unix.c 2011-03-14 21:20:32.000000000 -0400
57805+++ linux-2.6.38.2/net/unix/af_unix.c 2011-03-21 18:31:35.000000000 -0400 59470+++ linux-2.6.38.3/net/unix/af_unix.c 2011-04-17 15:57:33.000000000 -0400
57806@@ -765,6 +765,12 @@ static struct sock *unix_find_other(stru 59471@@ -765,6 +765,12 @@ static struct sock *unix_find_other(stru
57807 err = -ECONNREFUSED; 59472 err = -ECONNREFUSED;
57808 if (!S_ISSOCK(inode->i_mode)) 59473 if (!S_ISSOCK(inode->i_mode))
@@ -57873,9 +59538,9 @@ diff -urNp linux-2.6.38.2/net/unix/af_unix.c linux-2.6.38.2/net/unix/af_unix.c
57873 atomic_read(&s->sk_refcnt), 59538 atomic_read(&s->sk_refcnt),
57874 0, 59539 0,
57875 s->sk_state == TCP_LISTEN ? __SO_ACCEPTCON : 0, 59540 s->sk_state == TCP_LISTEN ? __SO_ACCEPTCON : 0,
57876diff -urNp linux-2.6.38.2/net/wireless/reg.c linux-2.6.38.2/net/wireless/reg.c 59541diff -urNp linux-2.6.38.3/net/wireless/reg.c linux-2.6.38.3/net/wireless/reg.c
57877--- linux-2.6.38.2/net/wireless/reg.c 2011-03-14 21:20:32.000000000 -0400 59542--- linux-2.6.38.3/net/wireless/reg.c 2011-03-14 21:20:32.000000000 -0400
57878+++ linux-2.6.38.2/net/wireless/reg.c 2011-03-21 18:31:35.000000000 -0400 59543+++ linux-2.6.38.3/net/wireless/reg.c 2011-04-17 15:57:33.000000000 -0400
57879@@ -54,7 +54,7 @@ 59544@@ -54,7 +54,7 @@
57880 printk(KERN_DEBUG pr_fmt(format), ##args); \ 59545 printk(KERN_DEBUG pr_fmt(format), ##args); \
57881 } while (0) 59546 } while (0)
@@ -57885,9 +59550,9 @@ diff -urNp linux-2.6.38.2/net/wireless/reg.c linux-2.6.38.2/net/wireless/reg.c
57885 #endif 59550 #endif
57886 59551
57887 /* Receipt of information from last regulatory request */ 59552 /* Receipt of information from last regulatory request */
57888diff -urNp linux-2.6.38.2/net/wireless/wext-core.c linux-2.6.38.2/net/wireless/wext-core.c 59553diff -urNp linux-2.6.38.3/net/wireless/wext-core.c linux-2.6.38.3/net/wireless/wext-core.c
57889--- linux-2.6.38.2/net/wireless/wext-core.c 2011-03-14 21:20:32.000000000 -0400 59554--- linux-2.6.38.3/net/wireless/wext-core.c 2011-03-14 21:20:32.000000000 -0400
57890+++ linux-2.6.38.2/net/wireless/wext-core.c 2011-03-21 18:31:35.000000000 -0400 59555+++ linux-2.6.38.3/net/wireless/wext-core.c 2011-04-17 15:57:33.000000000 -0400
57891@@ -746,8 +746,7 @@ static int ioctl_standard_iw_point(struc 59556@@ -746,8 +746,7 @@ static int ioctl_standard_iw_point(struc
57892 */ 59557 */
57893 59558
@@ -57921,9 +59586,9 @@ diff -urNp linux-2.6.38.2/net/wireless/wext-core.c linux-2.6.38.2/net/wireless/w
57921 err = handler(dev, info, (union iwreq_data *) iwp, extra); 59586 err = handler(dev, info, (union iwreq_data *) iwp, extra);
57922 59587
57923 iwp->length += essid_compat; 59588 iwp->length += essid_compat;
57924diff -urNp linux-2.6.38.2/net/x25/x25_facilities.c linux-2.6.38.2/net/x25/x25_facilities.c 59589diff -urNp linux-2.6.38.3/net/x25/x25_facilities.c linux-2.6.38.3/net/x25/x25_facilities.c
57925--- linux-2.6.38.2/net/x25/x25_facilities.c 2011-03-14 21:20:32.000000000 -0400 59590--- linux-2.6.38.3/net/x25/x25_facilities.c 2011-03-14 21:20:32.000000000 -0400
57926+++ linux-2.6.38.2/net/x25/x25_facilities.c 2011-03-21 18:31:35.000000000 -0400 59591+++ linux-2.6.38.3/net/x25/x25_facilities.c 2011-04-17 15:57:33.000000000 -0400
57927@@ -167,7 +167,8 @@ int x25_parse_facilities(struct sk_buff 59592@@ -167,7 +167,8 @@ int x25_parse_facilities(struct sk_buff
57928 break; 59593 break;
57929 default: 59594 default:
@@ -57934,9 +59599,9 @@ diff -urNp linux-2.6.38.2/net/x25/x25_facilities.c linux-2.6.38.2/net/x25/x25_fa
57934 break; 59599 break;
57935 } 59600 }
57936 len -= p[1] + 2; 59601 len -= p[1] + 2;
57937diff -urNp linux-2.6.38.2/net/xfrm/xfrm_policy.c linux-2.6.38.2/net/xfrm/xfrm_policy.c 59602diff -urNp linux-2.6.38.3/net/xfrm/xfrm_policy.c linux-2.6.38.3/net/xfrm/xfrm_policy.c
57938--- linux-2.6.38.2/net/xfrm/xfrm_policy.c 2011-03-14 21:20:32.000000000 -0400 59603--- linux-2.6.38.3/net/xfrm/xfrm_policy.c 2011-03-14 21:20:32.000000000 -0400
57939+++ linux-2.6.38.2/net/xfrm/xfrm_policy.c 2011-03-21 18:31:35.000000000 -0400 59604+++ linux-2.6.38.3/net/xfrm/xfrm_policy.c 2011-04-17 15:57:33.000000000 -0400
57940@@ -1507,7 +1507,7 @@ free_dst: 59605@@ -1507,7 +1507,7 @@ free_dst:
57941 goto out; 59606 goto out;
57942 } 59607 }
@@ -57964,9 +59629,9 @@ diff -urNp linux-2.6.38.2/net/xfrm/xfrm_policy.c linux-2.6.38.2/net/xfrm/xfrm_po
57964 xfrm_dst_update_origin(struct dst_entry *dst, struct flowi *fl) 59629 xfrm_dst_update_origin(struct dst_entry *dst, struct flowi *fl)
57965 { 59630 {
57966 #ifdef CONFIG_XFRM_SUB_POLICY 59631 #ifdef CONFIG_XFRM_SUB_POLICY
57967diff -urNp linux-2.6.38.2/scripts/basic/fixdep.c linux-2.6.38.2/scripts/basic/fixdep.c 59632diff -urNp linux-2.6.38.3/scripts/basic/fixdep.c linux-2.6.38.3/scripts/basic/fixdep.c
57968--- linux-2.6.38.2/scripts/basic/fixdep.c 2011-03-14 21:20:32.000000000 -0400 59633--- linux-2.6.38.3/scripts/basic/fixdep.c 2011-03-14 21:20:32.000000000 -0400
57969+++ linux-2.6.38.2/scripts/basic/fixdep.c 2011-03-21 18:31:35.000000000 -0400 59634+++ linux-2.6.38.3/scripts/basic/fixdep.c 2011-04-17 15:57:33.000000000 -0400
57970@@ -235,9 +235,9 @@ static void use_config(const char *m, in 59635@@ -235,9 +235,9 @@ static void use_config(const char *m, in
57971 59636
57972 static void parse_config_file(const char *map, size_t len) 59637 static void parse_config_file(const char *map, size_t len)
@@ -57988,9 +59653,9 @@ diff -urNp linux-2.6.38.2/scripts/basic/fixdep.c linux-2.6.38.2/scripts/basic/fi
57988 59653
57989 if (*p != INT_CONF) { 59654 if (*p != INT_CONF) {
57990 fprintf(stderr, "fixdep: sizeof(int) != 4 or wrong endianess? %#x\n", 59655 fprintf(stderr, "fixdep: sizeof(int) != 4 or wrong endianess? %#x\n",
57991diff -urNp linux-2.6.38.2/scripts/kallsyms.c linux-2.6.38.2/scripts/kallsyms.c 59656diff -urNp linux-2.6.38.3/scripts/kallsyms.c linux-2.6.38.3/scripts/kallsyms.c
57992--- linux-2.6.38.2/scripts/kallsyms.c 2011-03-14 21:20:32.000000000 -0400 59657--- linux-2.6.38.3/scripts/kallsyms.c 2011-03-14 21:20:32.000000000 -0400
57993+++ linux-2.6.38.2/scripts/kallsyms.c 2011-03-21 18:31:35.000000000 -0400 59658+++ linux-2.6.38.3/scripts/kallsyms.c 2011-04-17 15:57:33.000000000 -0400
57994@@ -43,10 +43,10 @@ struct text_range { 59659@@ -43,10 +43,10 @@ struct text_range {
57995 59660
57996 static unsigned long long _text; 59661 static unsigned long long _text;
@@ -58006,9 +59671,9 @@ diff -urNp linux-2.6.38.2/scripts/kallsyms.c linux-2.6.38.2/scripts/kallsyms.c
58006 }; 59671 };
58007 #define text_range_text (&text_ranges[0]) 59672 #define text_range_text (&text_ranges[0])
58008 #define text_range_inittext (&text_ranges[1]) 59673 #define text_range_inittext (&text_ranges[1])
58009diff -urNp linux-2.6.38.2/scripts/mod/file2alias.c linux-2.6.38.2/scripts/mod/file2alias.c 59674diff -urNp linux-2.6.38.3/scripts/mod/file2alias.c linux-2.6.38.3/scripts/mod/file2alias.c
58010--- linux-2.6.38.2/scripts/mod/file2alias.c 2011-03-14 21:20:32.000000000 -0400 59675--- linux-2.6.38.3/scripts/mod/file2alias.c 2011-03-14 21:20:32.000000000 -0400
58011+++ linux-2.6.38.2/scripts/mod/file2alias.c 2011-03-21 18:31:35.000000000 -0400 59676+++ linux-2.6.38.3/scripts/mod/file2alias.c 2011-04-17 15:57:33.000000000 -0400
58012@@ -72,7 +72,7 @@ static void device_id_check(const char * 59677@@ -72,7 +72,7 @@ static void device_id_check(const char *
58013 unsigned long size, unsigned long id_size, 59678 unsigned long size, unsigned long id_size,
58014 void *symval) 59679 void *symval)
@@ -58063,9 +59728,9 @@ diff -urNp linux-2.6.38.2/scripts/mod/file2alias.c linux-2.6.38.2/scripts/mod/fi
58063 59728
58064 sprintf(alias, "dmi*"); 59729 sprintf(alias, "dmi*");
58065 59730
58066diff -urNp linux-2.6.38.2/scripts/mod/modpost.c linux-2.6.38.2/scripts/mod/modpost.c 59731diff -urNp linux-2.6.38.3/scripts/mod/modpost.c linux-2.6.38.3/scripts/mod/modpost.c
58067--- linux-2.6.38.2/scripts/mod/modpost.c 2011-03-14 21:20:32.000000000 -0400 59732--- linux-2.6.38.3/scripts/mod/modpost.c 2011-03-14 21:20:32.000000000 -0400
58068+++ linux-2.6.38.2/scripts/mod/modpost.c 2011-03-21 18:31:35.000000000 -0400 59733+++ linux-2.6.38.3/scripts/mod/modpost.c 2011-04-17 15:57:33.000000000 -0400
58069@@ -896,6 +896,7 @@ enum mismatch { 59734@@ -896,6 +896,7 @@ enum mismatch {
58070 ANY_INIT_TO_ANY_EXIT, 59735 ANY_INIT_TO_ANY_EXIT,
58071 ANY_EXIT_TO_ANY_INIT, 59736 ANY_EXIT_TO_ANY_INIT,
@@ -58133,9 +59798,9 @@ diff -urNp linux-2.6.38.2/scripts/mod/modpost.c linux-2.6.38.2/scripts/mod/modpo
58133 goto close_write; 59798 goto close_write;
58134 59799
58135 tmp = NOFAIL(malloc(b->pos)); 59800 tmp = NOFAIL(malloc(b->pos));
58136diff -urNp linux-2.6.38.2/scripts/mod/modpost.h linux-2.6.38.2/scripts/mod/modpost.h 59801diff -urNp linux-2.6.38.3/scripts/mod/modpost.h linux-2.6.38.3/scripts/mod/modpost.h
58137--- linux-2.6.38.2/scripts/mod/modpost.h 2011-03-14 21:20:32.000000000 -0400 59802--- linux-2.6.38.3/scripts/mod/modpost.h 2011-03-14 21:20:32.000000000 -0400
58138+++ linux-2.6.38.2/scripts/mod/modpost.h 2011-03-21 18:31:35.000000000 -0400 59803+++ linux-2.6.38.3/scripts/mod/modpost.h 2011-04-17 15:57:33.000000000 -0400
58139@@ -92,15 +92,15 @@ void *do_nofail(void *ptr, const char *e 59804@@ -92,15 +92,15 @@ void *do_nofail(void *ptr, const char *e
58140 59805
58141 struct buffer { 59806 struct buffer {
@@ -58155,9 +59820,9 @@ diff -urNp linux-2.6.38.2/scripts/mod/modpost.h linux-2.6.38.2/scripts/mod/modpo
58155 59820
58156 struct module { 59821 struct module {
58157 struct module *next; 59822 struct module *next;
58158diff -urNp linux-2.6.38.2/scripts/mod/sumversion.c linux-2.6.38.2/scripts/mod/sumversion.c 59823diff -urNp linux-2.6.38.3/scripts/mod/sumversion.c linux-2.6.38.3/scripts/mod/sumversion.c
58159--- linux-2.6.38.2/scripts/mod/sumversion.c 2011-03-14 21:20:32.000000000 -0400 59824--- linux-2.6.38.3/scripts/mod/sumversion.c 2011-03-14 21:20:32.000000000 -0400
58160+++ linux-2.6.38.2/scripts/mod/sumversion.c 2011-03-21 18:31:35.000000000 -0400 59825+++ linux-2.6.38.3/scripts/mod/sumversion.c 2011-04-17 15:57:33.000000000 -0400
58161@@ -470,7 +470,7 @@ static void write_version(const char *fi 59826@@ -470,7 +470,7 @@ static void write_version(const char *fi
58162 goto out; 59827 goto out;
58163 } 59828 }
@@ -58167,9 +59832,9 @@ diff -urNp linux-2.6.38.2/scripts/mod/sumversion.c linux-2.6.38.2/scripts/mod/su
58167 warn("writing sum in %s failed: %s\n", 59832 warn("writing sum in %s failed: %s\n",
58168 filename, strerror(errno)); 59833 filename, strerror(errno));
58169 goto out; 59834 goto out;
58170diff -urNp linux-2.6.38.2/scripts/pnmtologo.c linux-2.6.38.2/scripts/pnmtologo.c 59835diff -urNp linux-2.6.38.3/scripts/pnmtologo.c linux-2.6.38.3/scripts/pnmtologo.c
58171--- linux-2.6.38.2/scripts/pnmtologo.c 2011-03-14 21:20:32.000000000 -0400 59836--- linux-2.6.38.3/scripts/pnmtologo.c 2011-03-14 21:20:32.000000000 -0400
58172+++ linux-2.6.38.2/scripts/pnmtologo.c 2011-03-21 18:31:35.000000000 -0400 59837+++ linux-2.6.38.3/scripts/pnmtologo.c 2011-04-17 15:57:33.000000000 -0400
58173@@ -237,14 +237,14 @@ static void write_header(void) 59838@@ -237,14 +237,14 @@ static void write_header(void)
58174 fprintf(out, " * Linux logo %s\n", logoname); 59839 fprintf(out, " * Linux logo %s\n", logoname);
58175 fputs(" */\n\n", out); 59840 fputs(" */\n\n", out);
@@ -58196,9 +59861,9 @@ diff -urNp linux-2.6.38.2/scripts/pnmtologo.c linux-2.6.38.2/scripts/pnmtologo.c
58196 logoname); 59861 logoname);
58197 write_hex_cnt = 0; 59862 write_hex_cnt = 0;
58198 for (i = 0; i < logo_clutsize; i++) { 59863 for (i = 0; i < logo_clutsize; i++) {
58199diff -urNp linux-2.6.38.2/security/apparmor/lsm.c linux-2.6.38.2/security/apparmor/lsm.c 59864diff -urNp linux-2.6.38.3/security/apparmor/lsm.c linux-2.6.38.3/security/apparmor/lsm.c
58200--- linux-2.6.38.2/security/apparmor/lsm.c 2011-03-14 21:20:32.000000000 -0400 59865--- linux-2.6.38.3/security/apparmor/lsm.c 2011-03-14 21:20:32.000000000 -0400
58201+++ linux-2.6.38.2/security/apparmor/lsm.c 2011-03-21 18:31:35.000000000 -0400 59866+++ linux-2.6.38.3/security/apparmor/lsm.c 2011-04-17 15:57:33.000000000 -0400
58202@@ -619,7 +619,7 @@ static int apparmor_task_setrlimit(struc 59867@@ -619,7 +619,7 @@ static int apparmor_task_setrlimit(struc
58203 return error; 59868 return error;
58204 } 59869 }
@@ -58208,9 +59873,9 @@ diff -urNp linux-2.6.38.2/security/apparmor/lsm.c linux-2.6.38.2/security/apparm
58208 .name = "apparmor", 59873 .name = "apparmor",
58209 59874
58210 .ptrace_access_check = apparmor_ptrace_access_check, 59875 .ptrace_access_check = apparmor_ptrace_access_check,
58211diff -urNp linux-2.6.38.2/security/commoncap.c linux-2.6.38.2/security/commoncap.c 59876diff -urNp linux-2.6.38.3/security/commoncap.c linux-2.6.38.3/security/commoncap.c
58212--- linux-2.6.38.2/security/commoncap.c 2011-03-14 21:20:32.000000000 -0400 59877--- linux-2.6.38.3/security/commoncap.c 2011-03-14 21:20:32.000000000 -0400
58213+++ linux-2.6.38.2/security/commoncap.c 2011-03-21 18:31:35.000000000 -0400 59878+++ linux-2.6.38.3/security/commoncap.c 2011-04-17 15:57:33.000000000 -0400
58214@@ -27,6 +27,7 @@ 59879@@ -27,6 +27,7 @@
58215 #include <linux/sched.h> 59880 #include <linux/sched.h>
58216 #include <linux/prctl.h> 59881 #include <linux/prctl.h>
@@ -58242,9 +59907,9 @@ diff -urNp linux-2.6.38.2/security/commoncap.c linux-2.6.38.2/security/commoncap
58242 if (cred->uid != 0) { 59907 if (cred->uid != 0) {
58243 if (bprm->cap_effective) 59908 if (bprm->cap_effective)
58244 return 1; 59909 return 1;
58245diff -urNp linux-2.6.38.2/security/integrity/ima/ima_api.c linux-2.6.38.2/security/integrity/ima/ima_api.c 59910diff -urNp linux-2.6.38.3/security/integrity/ima/ima_api.c linux-2.6.38.3/security/integrity/ima/ima_api.c
58246--- linux-2.6.38.2/security/integrity/ima/ima_api.c 2011-03-14 21:20:32.000000000 -0400 59911--- linux-2.6.38.3/security/integrity/ima/ima_api.c 2011-03-14 21:20:32.000000000 -0400
58247+++ linux-2.6.38.2/security/integrity/ima/ima_api.c 2011-03-21 18:31:35.000000000 -0400 59912+++ linux-2.6.38.3/security/integrity/ima/ima_api.c 2011-04-17 15:57:33.000000000 -0400
58248@@ -75,7 +75,7 @@ void ima_add_violation(struct inode *ino 59913@@ -75,7 +75,7 @@ void ima_add_violation(struct inode *ino
58249 int result; 59914 int result;
58250 59915
@@ -58254,9 +59919,9 @@ diff -urNp linux-2.6.38.2/security/integrity/ima/ima_api.c linux-2.6.38.2/securi
58254 59919
58255 entry = kmalloc(sizeof(*entry), GFP_KERNEL); 59920 entry = kmalloc(sizeof(*entry), GFP_KERNEL);
58256 if (!entry) { 59921 if (!entry) {
58257diff -urNp linux-2.6.38.2/security/integrity/ima/ima_fs.c linux-2.6.38.2/security/integrity/ima/ima_fs.c 59922diff -urNp linux-2.6.38.3/security/integrity/ima/ima_fs.c linux-2.6.38.3/security/integrity/ima/ima_fs.c
58258--- linux-2.6.38.2/security/integrity/ima/ima_fs.c 2011-03-14 21:20:32.000000000 -0400 59923--- linux-2.6.38.3/security/integrity/ima/ima_fs.c 2011-03-14 21:20:32.000000000 -0400
58259+++ linux-2.6.38.2/security/integrity/ima/ima_fs.c 2011-03-21 18:31:35.000000000 -0400 59924+++ linux-2.6.38.3/security/integrity/ima/ima_fs.c 2011-04-17 15:57:33.000000000 -0400
58260@@ -28,12 +28,12 @@ 59925@@ -28,12 +28,12 @@
58261 static int valid_policy = 1; 59926 static int valid_policy = 1;
58262 #define TMPBUFLEN 12 59927 #define TMPBUFLEN 12
@@ -58272,9 +59937,9 @@ diff -urNp linux-2.6.38.2/security/integrity/ima/ima_fs.c linux-2.6.38.2/securit
58272 return simple_read_from_buffer(buf, count, ppos, tmpbuf, len); 59937 return simple_read_from_buffer(buf, count, ppos, tmpbuf, len);
58273 } 59938 }
58274 59939
58275diff -urNp linux-2.6.38.2/security/integrity/ima/ima.h linux-2.6.38.2/security/integrity/ima/ima.h 59940diff -urNp linux-2.6.38.3/security/integrity/ima/ima.h linux-2.6.38.3/security/integrity/ima/ima.h
58276--- linux-2.6.38.2/security/integrity/ima/ima.h 2011-03-14 21:20:32.000000000 -0400 59941--- linux-2.6.38.3/security/integrity/ima/ima.h 2011-03-14 21:20:32.000000000 -0400
58277+++ linux-2.6.38.2/security/integrity/ima/ima.h 2011-03-21 18:31:35.000000000 -0400 59942+++ linux-2.6.38.3/security/integrity/ima/ima.h 2011-04-17 15:57:33.000000000 -0400
58278@@ -85,8 +85,8 @@ void ima_add_violation(struct inode *ino 59943@@ -85,8 +85,8 @@ void ima_add_violation(struct inode *ino
58279 extern spinlock_t ima_queue_lock; 59944 extern spinlock_t ima_queue_lock;
58280 59945
@@ -58286,9 +59951,9 @@ diff -urNp linux-2.6.38.2/security/integrity/ima/ima.h linux-2.6.38.2/security/i
58286 struct hlist_head queue[IMA_MEASURE_HTABLE_SIZE]; 59951 struct hlist_head queue[IMA_MEASURE_HTABLE_SIZE];
58287 }; 59952 };
58288 extern struct ima_h_table ima_htable; 59953 extern struct ima_h_table ima_htable;
58289diff -urNp linux-2.6.38.2/security/integrity/ima/ima_queue.c linux-2.6.38.2/security/integrity/ima/ima_queue.c 59954diff -urNp linux-2.6.38.3/security/integrity/ima/ima_queue.c linux-2.6.38.3/security/integrity/ima/ima_queue.c
58290--- linux-2.6.38.2/security/integrity/ima/ima_queue.c 2011-03-14 21:20:32.000000000 -0400 59955--- linux-2.6.38.3/security/integrity/ima/ima_queue.c 2011-03-14 21:20:32.000000000 -0400
58291+++ linux-2.6.38.2/security/integrity/ima/ima_queue.c 2011-03-21 18:31:35.000000000 -0400 59956+++ linux-2.6.38.3/security/integrity/ima/ima_queue.c 2011-04-17 15:57:33.000000000 -0400
58292@@ -79,7 +79,7 @@ static int ima_add_digest_entry(struct i 59957@@ -79,7 +79,7 @@ static int ima_add_digest_entry(struct i
58293 INIT_LIST_HEAD(&qe->later); 59958 INIT_LIST_HEAD(&qe->later);
58294 list_add_tail_rcu(&qe->later, &ima_measurements); 59959 list_add_tail_rcu(&qe->later, &ima_measurements);
@@ -58298,9 +59963,9 @@ diff -urNp linux-2.6.38.2/security/integrity/ima/ima_queue.c linux-2.6.38.2/secu
58298 key = ima_hash_key(entry->digest); 59963 key = ima_hash_key(entry->digest);
58299 hlist_add_head_rcu(&qe->hnext, &ima_htable.queue[key]); 59964 hlist_add_head_rcu(&qe->hnext, &ima_htable.queue[key]);
58300 return 0; 59965 return 0;
58301diff -urNp linux-2.6.38.2/security/Kconfig linux-2.6.38.2/security/Kconfig 59966diff -urNp linux-2.6.38.3/security/Kconfig linux-2.6.38.3/security/Kconfig
58302--- linux-2.6.38.2/security/Kconfig 2011-03-14 21:20:32.000000000 -0400 59967--- linux-2.6.38.3/security/Kconfig 2011-03-14 21:20:32.000000000 -0400
58303+++ linux-2.6.38.2/security/Kconfig 2011-03-21 18:31:35.000000000 -0400 59968+++ linux-2.6.38.3/security/Kconfig 2011-04-17 15:57:33.000000000 -0400
58304@@ -4,6 +4,527 @@ 59969@@ -4,6 +4,527 @@
58305 59970
58306 menu "Security options" 59971 menu "Security options"
@@ -58360,10 +60025,6 @@ diff -urNp linux-2.6.38.2/security/Kconfig linux-2.6.38.2/security/Kconfig
58360+ know about the non-standard use of the ELF header) therefore it 60025+ know about the non-standard use of the ELF header) therefore it
58361+ has been deprecated in favour of PT_PAX_FLAGS support. 60026+ has been deprecated in favour of PT_PAX_FLAGS support.
58362+ 60027+
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+
58367+ Note that if you enable PT_PAX_FLAGS marking support as well, 60028+ Note that if you enable PT_PAX_FLAGS marking support as well,
58368+ the PT_PAX_FLAG marks will override the legacy EI_PAX marks. 60029+ the PT_PAX_FLAG marks will override the legacy EI_PAX marks.
58369+ 60030+
@@ -58378,9 +60039,8 @@ diff -urNp linux-2.6.38.2/security/Kconfig linux-2.6.38.2/security/Kconfig
58378+ integrated into the toolchain (the binutils patch is available 60039+ integrated into the toolchain (the binutils patch is available
58379+ from http://pax.grsecurity.net). 60040+ from http://pax.grsecurity.net).
58380+ 60041+
58381+ If you have applications not marked by the PT_PAX_FLAGS ELF 60042+ If your toolchain does not support PT_PAX_FLAGS markings,
58382+ program header then you MUST enable the EI_PAX marking support 60043+ you can create one in most cases with 'paxctl -C'.
58383+ otherwise they will not get any protection.
58384+ 60044+
58385+ Note that if you enable the legacy EI_PAX marking support as well, 60045+ Note that if you enable the legacy EI_PAX marking support as well,
58386+ the EI_PAX marks will be overridden by the PT_PAX_FLAGS marks. 60046+ the EI_PAX marks will be overridden by the PT_PAX_FLAGS marks.
@@ -58689,7 +60349,7 @@ diff -urNp linux-2.6.38.2/security/Kconfig linux-2.6.38.2/security/Kconfig
58689+ 60349+
58690+config PAX_RANDKSTACK 60350+config PAX_RANDKSTACK
58691+ bool "Randomize kernel stack base" 60351+ bool "Randomize kernel stack base"
58692+ depends on PAX_ASLR && X86_TSC && X86_32 60352+ depends on PAX_ASLR && X86_TSC && X86
58693+ help 60353+ help
58694+ By saying Y here the kernel will randomize every task's kernel 60354+ By saying Y here the kernel will randomize every task's kernel
58695+ stack on every system call. This will not only force an attacker 60355+ stack on every system call. This will not only force an attacker
@@ -58799,9 +60459,9 @@ diff -urNp linux-2.6.38.2/security/Kconfig linux-2.6.38.2/security/Kconfig
58799+ this feature. 60459+ this feature.
58800+ 60460+
58801+config PAX_USERCOPY 60461+config PAX_USERCOPY
58802+ bool "Bounds check heap object copies between kernel and userland" 60462+ bool "Harden heap object copies between kernel and userland"
58803+ depends on X86 || PPC || SPARC 60463+ depends on X86 || PPC || SPARC
58804+ depends on GRKERNSEC && (SLAB || SLUB || SLOB) 60464+ depends on GRKERNSEC && (SLAB || SLUB)
58805+ help 60465+ help
58806+ By saying Y here the kernel will enforce the size of heap objects 60466+ By saying Y here the kernel will enforce the size of heap objects
58807+ when they are copied in either direction between the kernel and 60467+ when they are copied in either direction between the kernel and
@@ -58812,8 +60472,13 @@ diff -urNp linux-2.6.38.2/security/Kconfig linux-2.6.38.2/security/Kconfig
58812+ object is otherwise fully initialized) and prevents kernel heap 60472+ object is otherwise fully initialized) and prevents kernel heap
58813+ overflows during userland to kernel copies. 60473+ overflows during userland to kernel copies.
58814+ 60474+
58815+ Note that the current implementation provides the strictest checks 60475+ Note that the current implementation provides the strictest bounds
58816+ for the SLUB allocator. 60476+ checks 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.
58817+ 60482+
58818+ If frame pointers are enabled on x86, this option will also restrict 60483+ If frame pointers are enabled on x86, this option will also restrict
58819+ copies into and out of the kernel stack to local variables within a 60484+ copies into and out of the kernel stack to local variables within a
@@ -58838,9 +60503,31 @@ diff -urNp linux-2.6.38.2/security/Kconfig linux-2.6.38.2/security/Kconfig
58838 help 60503 help
58839 This is the portion of low virtual memory which should be protected 60504 This is the portion of low virtual memory which should be protected
58840 from userspace allocation. Keeping a user from writing to low pages 60505 from userspace allocation. Keeping a user from writing to low pages
58841diff -urNp linux-2.6.38.2/security/min_addr.c linux-2.6.38.2/security/min_addr.c 60506diff -urNp linux-2.6.38.3/security/keys/keyring.c linux-2.6.38.3/security/keys/keyring.c
58842--- linux-2.6.38.2/security/min_addr.c 2011-03-14 21:20:32.000000000 -0400 60507--- linux-2.6.38.3/security/keys/keyring.c 2011-03-14 21:20:32.000000000 -0400
58843+++ linux-2.6.38.2/security/min_addr.c 2011-03-21 18:31:35.000000000 -0400 60508+++ linux-2.6.38.3/security/keys/keyring.c 2011-04-18 22:03:12.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
58844@@ -14,6 +14,7 @@ unsigned long dac_mmap_min_addr = CONFIG 60531@@ -14,6 +14,7 @@ unsigned long dac_mmap_min_addr = CONFIG
58845 */ 60532 */
58846 static void update_mmap_min_addr(void) 60533 static void update_mmap_min_addr(void)
@@ -58857,9 +60544,9 @@ diff -urNp linux-2.6.38.2/security/min_addr.c linux-2.6.38.2/security/min_addr.c
58857 } 60544 }
58858 60545
58859 /* 60546 /*
58860diff -urNp linux-2.6.38.2/security/security.c linux-2.6.38.2/security/security.c 60547diff -urNp linux-2.6.38.3/security/security.c linux-2.6.38.3/security/security.c
58861--- linux-2.6.38.2/security/security.c 2011-03-14 21:20:32.000000000 -0400 60548--- linux-2.6.38.3/security/security.c 2011-03-14 21:20:32.000000000 -0400
58862+++ linux-2.6.38.2/security/security.c 2011-03-21 18:31:35.000000000 -0400 60549+++ linux-2.6.38.3/security/security.c 2011-04-17 15:57:33.000000000 -0400
58863@@ -25,8 +25,8 @@ static __initdata char chosen_lsm[SECURI 60550@@ -25,8 +25,8 @@ static __initdata char chosen_lsm[SECURI
58864 /* things that live in capability.c */ 60551 /* things that live in capability.c */
58865 extern void __init security_fixup_ops(struct security_operations *ops); 60552 extern void __init security_fixup_ops(struct security_operations *ops);
@@ -58881,9 +60568,9 @@ diff -urNp linux-2.6.38.2/security/security.c linux-2.6.38.2/security/security.c
58881 } 60568 }
58882 60569
58883 /* Save user chosen LSM */ 60570 /* Save user chosen LSM */
58884diff -urNp linux-2.6.38.2/security/selinux/hooks.c linux-2.6.38.2/security/selinux/hooks.c 60571diff -urNp linux-2.6.38.3/security/selinux/hooks.c linux-2.6.38.3/security/selinux/hooks.c
58885--- linux-2.6.38.2/security/selinux/hooks.c 2011-03-14 21:20:32.000000000 -0400 60572--- linux-2.6.38.3/security/selinux/hooks.c 2011-03-14 21:20:32.000000000 -0400
58886+++ linux-2.6.38.2/security/selinux/hooks.c 2011-03-21 18:31:35.000000000 -0400 60573+++ linux-2.6.38.3/security/selinux/hooks.c 2011-04-17 15:57:33.000000000 -0400
58887@@ -90,7 +90,6 @@ 60574@@ -90,7 +90,6 @@
58888 #define NUM_SEL_MNT_OPTS 5 60575 #define NUM_SEL_MNT_OPTS 5
58889 60576
@@ -58901,9 +60588,9 @@ diff -urNp linux-2.6.38.2/security/selinux/hooks.c linux-2.6.38.2/security/selin
58901 .name = "selinux", 60588 .name = "selinux",
58902 60589
58903 .ptrace_access_check = selinux_ptrace_access_check, 60590 .ptrace_access_check = selinux_ptrace_access_check,
58904diff -urNp linux-2.6.38.2/security/smack/smack_lsm.c linux-2.6.38.2/security/smack/smack_lsm.c 60591diff -urNp linux-2.6.38.3/security/smack/smack_lsm.c linux-2.6.38.3/security/smack/smack_lsm.c
58905--- linux-2.6.38.2/security/smack/smack_lsm.c 2011-03-14 21:20:32.000000000 -0400 60592--- linux-2.6.38.3/security/smack/smack_lsm.c 2011-03-14 21:20:32.000000000 -0400
58906+++ linux-2.6.38.2/security/smack/smack_lsm.c 2011-03-21 18:31:35.000000000 -0400 60593+++ linux-2.6.38.3/security/smack/smack_lsm.c 2011-04-17 15:57:33.000000000 -0400
58907@@ -3179,7 +3179,7 @@ static int smack_inode_getsecctx(struct 60594@@ -3179,7 +3179,7 @@ static int smack_inode_getsecctx(struct
58908 return 0; 60595 return 0;
58909 } 60596 }
@@ -58913,9 +60600,9 @@ diff -urNp linux-2.6.38.2/security/smack/smack_lsm.c linux-2.6.38.2/security/sma
58913 .name = "smack", 60600 .name = "smack",
58914 60601
58915 .ptrace_access_check = smack_ptrace_access_check, 60602 .ptrace_access_check = smack_ptrace_access_check,
58916diff -urNp linux-2.6.38.2/security/tomoyo/tomoyo.c linux-2.6.38.2/security/tomoyo/tomoyo.c 60603diff -urNp linux-2.6.38.3/security/tomoyo/tomoyo.c linux-2.6.38.3/security/tomoyo/tomoyo.c
58917--- linux-2.6.38.2/security/tomoyo/tomoyo.c 2011-03-14 21:20:32.000000000 -0400 60604--- linux-2.6.38.3/security/tomoyo/tomoyo.c 2011-03-14 21:20:32.000000000 -0400
58918+++ linux-2.6.38.2/security/tomoyo/tomoyo.c 2011-03-21 18:31:35.000000000 -0400 60605+++ linux-2.6.38.3/security/tomoyo/tomoyo.c 2011-04-17 15:57:33.000000000 -0400
58919@@ -240,7 +240,7 @@ static int tomoyo_sb_pivotroot(struct pa 60606@@ -240,7 +240,7 @@ static int tomoyo_sb_pivotroot(struct pa
58920 * tomoyo_security_ops is a "struct security_operations" which is used for 60607 * tomoyo_security_ops is a "struct security_operations" which is used for
58921 * registering TOMOYO. 60608 * registering TOMOYO.
@@ -58925,9 +60612,9 @@ diff -urNp linux-2.6.38.2/security/tomoyo/tomoyo.c linux-2.6.38.2/security/tomoy
58925 .name = "tomoyo", 60612 .name = "tomoyo",
58926 .cred_alloc_blank = tomoyo_cred_alloc_blank, 60613 .cred_alloc_blank = tomoyo_cred_alloc_blank,
58927 .cred_prepare = tomoyo_cred_prepare, 60614 .cred_prepare = tomoyo_cred_prepare,
58928diff -urNp linux-2.6.38.2/sound/aoa/codecs/onyx.c linux-2.6.38.2/sound/aoa/codecs/onyx.c 60615diff -urNp linux-2.6.38.3/sound/aoa/codecs/onyx.c linux-2.6.38.3/sound/aoa/codecs/onyx.c
58929--- linux-2.6.38.2/sound/aoa/codecs/onyx.c 2011-03-14 21:20:32.000000000 -0400 60616--- linux-2.6.38.3/sound/aoa/codecs/onyx.c 2011-03-14 21:20:32.000000000 -0400
58930+++ linux-2.6.38.2/sound/aoa/codecs/onyx.c 2011-03-21 18:31:35.000000000 -0400 60617+++ linux-2.6.38.3/sound/aoa/codecs/onyx.c 2011-04-17 15:57:33.000000000 -0400
58931@@ -54,7 +54,7 @@ struct onyx { 60618@@ -54,7 +54,7 @@ struct onyx {
58932 spdif_locked:1, 60619 spdif_locked:1,
58933 analog_locked:1, 60620 analog_locked:1,
@@ -58956,9 +60643,9 @@ diff -urNp linux-2.6.38.2/sound/aoa/codecs/onyx.c linux-2.6.38.2/sound/aoa/codec
58956 onyx->spdif_locked = onyx->analog_locked = 0; 60643 onyx->spdif_locked = onyx->analog_locked = 0;
58957 mutex_unlock(&onyx->mutex); 60644 mutex_unlock(&onyx->mutex);
58958 60645
58959diff -urNp linux-2.6.38.2/sound/aoa/codecs/onyx.h linux-2.6.38.2/sound/aoa/codecs/onyx.h 60646diff -urNp linux-2.6.38.3/sound/aoa/codecs/onyx.h linux-2.6.38.3/sound/aoa/codecs/onyx.h
58960--- linux-2.6.38.2/sound/aoa/codecs/onyx.h 2011-03-14 21:20:32.000000000 -0400 60647--- linux-2.6.38.3/sound/aoa/codecs/onyx.h 2011-03-14 21:20:32.000000000 -0400
58961+++ linux-2.6.38.2/sound/aoa/codecs/onyx.h 2011-03-21 18:31:35.000000000 -0400 60648+++ linux-2.6.38.3/sound/aoa/codecs/onyx.h 2011-04-17 15:57:33.000000000 -0400
58962@@ -11,6 +11,7 @@ 60649@@ -11,6 +11,7 @@
58963 #include <linux/i2c.h> 60650 #include <linux/i2c.h>
58964 #include <asm/pmac_low_i2c.h> 60651 #include <asm/pmac_low_i2c.h>
@@ -58967,9 +60654,9 @@ diff -urNp linux-2.6.38.2/sound/aoa/codecs/onyx.h linux-2.6.38.2/sound/aoa/codec
58967 60654
58968 /* PCM3052 register definitions */ 60655 /* PCM3052 register definitions */
58969 60656
58970diff -urNp linux-2.6.38.2/sound/core/oss/pcm_oss.c linux-2.6.38.2/sound/core/oss/pcm_oss.c 60657diff -urNp linux-2.6.38.3/sound/core/oss/pcm_oss.c linux-2.6.38.3/sound/core/oss/pcm_oss.c
58971--- linux-2.6.38.2/sound/core/oss/pcm_oss.c 2011-03-14 21:20:32.000000000 -0400 60658--- linux-2.6.38.3/sound/core/oss/pcm_oss.c 2011-03-14 21:20:32.000000000 -0400
58972+++ linux-2.6.38.2/sound/core/oss/pcm_oss.c 2011-03-21 18:31:35.000000000 -0400 60659+++ linux-2.6.38.3/sound/core/oss/pcm_oss.c 2011-04-17 15:57:33.000000000 -0400
58973@@ -2971,8 +2971,8 @@ static void snd_pcm_oss_proc_done(struct 60660@@ -2971,8 +2971,8 @@ static void snd_pcm_oss_proc_done(struct
58974 } 60661 }
58975 } 60662 }
@@ -58981,9 +60668,9 @@ diff -urNp linux-2.6.38.2/sound/core/oss/pcm_oss.c linux-2.6.38.2/sound/core/oss
58981 #endif /* CONFIG_SND_VERBOSE_PROCFS */ 60668 #endif /* CONFIG_SND_VERBOSE_PROCFS */
58982 60669
58983 /* 60670 /*
58984diff -urNp linux-2.6.38.2/sound/core/seq/seq_lock.h linux-2.6.38.2/sound/core/seq/seq_lock.h 60671diff -urNp linux-2.6.38.3/sound/core/seq/seq_lock.h linux-2.6.38.3/sound/core/seq/seq_lock.h
58985--- linux-2.6.38.2/sound/core/seq/seq_lock.h 2011-03-14 21:20:32.000000000 -0400 60672--- linux-2.6.38.3/sound/core/seq/seq_lock.h 2011-03-14 21:20:32.000000000 -0400
58986+++ linux-2.6.38.2/sound/core/seq/seq_lock.h 2011-03-21 18:31:35.000000000 -0400 60673+++ linux-2.6.38.3/sound/core/seq/seq_lock.h 2011-04-17 15:57:33.000000000 -0400
58987@@ -23,10 +23,10 @@ void snd_use_lock_sync_helper(snd_use_lo 60674@@ -23,10 +23,10 @@ void snd_use_lock_sync_helper(snd_use_lo
58988 #else /* SMP || CONFIG_SND_DEBUG */ 60675 #else /* SMP || CONFIG_SND_DEBUG */
58989 60676
@@ -58999,9 +60686,9 @@ diff -urNp linux-2.6.38.2/sound/core/seq/seq_lock.h linux-2.6.38.2/sound/core/se
58999 60686
59000 #endif /* SMP || CONFIG_SND_DEBUG */ 60687 #endif /* SMP || CONFIG_SND_DEBUG */
59001 60688
59002diff -urNp linux-2.6.38.2/sound/drivers/mts64.c linux-2.6.38.2/sound/drivers/mts64.c 60689diff -urNp linux-2.6.38.3/sound/drivers/mts64.c linux-2.6.38.3/sound/drivers/mts64.c
59003--- linux-2.6.38.2/sound/drivers/mts64.c 2011-03-14 21:20:32.000000000 -0400 60690--- linux-2.6.38.3/sound/drivers/mts64.c 2011-03-14 21:20:32.000000000 -0400
59004+++ linux-2.6.38.2/sound/drivers/mts64.c 2011-03-21 18:31:35.000000000 -0400 60691+++ linux-2.6.38.3/sound/drivers/mts64.c 2011-04-17 15:57:33.000000000 -0400
59005@@ -28,6 +28,7 @@ 60692@@ -28,6 +28,7 @@
59006 #include <sound/initval.h> 60693 #include <sound/initval.h>
59007 #include <sound/rawmidi.h> 60694 #include <sound/rawmidi.h>
@@ -59058,9 +60745,9 @@ diff -urNp linux-2.6.38.2/sound/drivers/mts64.c linux-2.6.38.2/sound/drivers/mts
59058 60745
59059 return 0; 60746 return 0;
59060 } 60747 }
59061diff -urNp linux-2.6.38.2/sound/drivers/portman2x4.c linux-2.6.38.2/sound/drivers/portman2x4.c 60748diff -urNp linux-2.6.38.3/sound/drivers/portman2x4.c linux-2.6.38.3/sound/drivers/portman2x4.c
59062--- linux-2.6.38.2/sound/drivers/portman2x4.c 2011-03-14 21:20:32.000000000 -0400 60749--- linux-2.6.38.3/sound/drivers/portman2x4.c 2011-03-14 21:20:32.000000000 -0400
59063+++ linux-2.6.38.2/sound/drivers/portman2x4.c 2011-03-21 18:31:35.000000000 -0400 60750+++ linux-2.6.38.3/sound/drivers/portman2x4.c 2011-04-17 15:57:33.000000000 -0400
59064@@ -47,6 +47,7 @@ 60751@@ -47,6 +47,7 @@
59065 #include <sound/initval.h> 60752 #include <sound/initval.h>
59066 #include <sound/rawmidi.h> 60753 #include <sound/rawmidi.h>
@@ -59078,9 +60765,9 @@ diff -urNp linux-2.6.38.2/sound/drivers/portman2x4.c linux-2.6.38.2/sound/driver
59078 int mode[PORTMAN_NUM_INPUT_PORTS]; 60765 int mode[PORTMAN_NUM_INPUT_PORTS];
59079 struct snd_rawmidi_substream *midi_input[PORTMAN_NUM_INPUT_PORTS]; 60766 struct snd_rawmidi_substream *midi_input[PORTMAN_NUM_INPUT_PORTS];
59080 }; 60767 };
59081diff -urNp linux-2.6.38.2/sound/oss/sb_audio.c linux-2.6.38.2/sound/oss/sb_audio.c 60768diff -urNp linux-2.6.38.3/sound/oss/sb_audio.c linux-2.6.38.3/sound/oss/sb_audio.c
59082--- linux-2.6.38.2/sound/oss/sb_audio.c 2011-03-14 21:20:32.000000000 -0400 60769--- linux-2.6.38.3/sound/oss/sb_audio.c 2011-03-14 21:20:32.000000000 -0400
59083+++ linux-2.6.38.2/sound/oss/sb_audio.c 2011-03-21 18:31:35.000000000 -0400 60770+++ linux-2.6.38.3/sound/oss/sb_audio.c 2011-04-17 15:57:33.000000000 -0400
59084@@ -901,7 +901,7 @@ sb16_copy_from_user(int dev, 60771@@ -901,7 +901,7 @@ sb16_copy_from_user(int dev,
59085 buf16 = (signed short *)(localbuf + localoffs); 60772 buf16 = (signed short *)(localbuf + localoffs);
59086 while (c) 60773 while (c)
@@ -59090,9 +60777,9 @@ diff -urNp linux-2.6.38.2/sound/oss/sb_audio.c linux-2.6.38.2/sound/oss/sb_audio
59090 if (copy_from_user(lbuf8, 60777 if (copy_from_user(lbuf8,
59091 userbuf+useroffs + p, 60778 userbuf+useroffs + p,
59092 locallen)) 60779 locallen))
59093diff -urNp linux-2.6.38.2/sound/oss/swarm_cs4297a.c linux-2.6.38.2/sound/oss/swarm_cs4297a.c 60780diff -urNp linux-2.6.38.3/sound/oss/swarm_cs4297a.c linux-2.6.38.3/sound/oss/swarm_cs4297a.c
59094--- linux-2.6.38.2/sound/oss/swarm_cs4297a.c 2011-03-14 21:20:32.000000000 -0400 60781--- linux-2.6.38.3/sound/oss/swarm_cs4297a.c 2011-03-14 21:20:32.000000000 -0400
59095+++ linux-2.6.38.2/sound/oss/swarm_cs4297a.c 2011-03-21 18:31:35.000000000 -0400 60782+++ linux-2.6.38.3/sound/oss/swarm_cs4297a.c 2011-04-17 15:57:33.000000000 -0400
59096@@ -2606,7 +2606,6 @@ static int __init cs4297a_init(void) 60783@@ -2606,7 +2606,6 @@ static int __init cs4297a_init(void)
59097 { 60784 {
59098 struct cs4297a_state *s; 60785 struct cs4297a_state *s;
@@ -59127,9 +60814,9 @@ diff -urNp linux-2.6.38.2/sound/oss/swarm_cs4297a.c linux-2.6.38.2/sound/oss/swa
59127 60814
59128 list_add(&s->list, &cs4297a_devs); 60815 list_add(&s->list, &cs4297a_devs);
59129 60816
59130diff -urNp linux-2.6.38.2/sound/pci/ac97/ac97_patch.c linux-2.6.38.2/sound/pci/ac97/ac97_patch.c 60817diff -urNp linux-2.6.38.3/sound/pci/ac97/ac97_patch.c linux-2.6.38.3/sound/pci/ac97/ac97_patch.c
59131--- linux-2.6.38.2/sound/pci/ac97/ac97_patch.c 2011-03-14 21:20:32.000000000 -0400 60818--- linux-2.6.38.3/sound/pci/ac97/ac97_patch.c 2011-03-14 21:20:32.000000000 -0400
59132+++ linux-2.6.38.2/sound/pci/ac97/ac97_patch.c 2011-03-21 18:31:35.000000000 -0400 60819+++ linux-2.6.38.3/sound/pci/ac97/ac97_patch.c 2011-04-17 15:57:33.000000000 -0400
59133@@ -1486,7 +1486,7 @@ static const struct snd_ac97_res_table a 60820@@ -1486,7 +1486,7 @@ static const struct snd_ac97_res_table a
59134 { AC97_VIDEO, 0x9f1f }, 60821 { AC97_VIDEO, 0x9f1f },
59135 { AC97_AUX, 0x9f1f }, 60822 { AC97_AUX, 0x9f1f },
@@ -59148,10 +60835,10 @@ diff -urNp linux-2.6.38.2/sound/pci/ac97/ac97_patch.c linux-2.6.38.2/sound/pci/a
59148 }; 60835 };
59149 60836
59150 static int patch_lm4550(struct snd_ac97 *ac97) 60837 static int patch_lm4550(struct snd_ac97 *ac97)
59151diff -urNp linux-2.6.38.2/sound/pci/ens1370.c linux-2.6.38.2/sound/pci/ens1370.c 60838diff -urNp linux-2.6.38.3/sound/pci/ens1370.c linux-2.6.38.3/sound/pci/ens1370.c
59152--- linux-2.6.38.2/sound/pci/ens1370.c 2011-03-14 21:20:32.000000000 -0400 60839--- linux-2.6.38.3/sound/pci/ens1370.c 2011-04-18 17:27:18.000000000 -0400
59153+++ linux-2.6.38.2/sound/pci/ens1370.c 2011-03-21 18:31:35.000000000 -0400 60840+++ linux-2.6.38.3/sound/pci/ens1370.c 2011-04-17 16:54:08.000000000 -0400
59154@@ -452,7 +452,7 @@ static DEFINE_PCI_DEVICE_TABLE(snd_audio 60841@@ -453,7 +453,7 @@ static DEFINE_PCI_DEVICE_TABLE(snd_audio
59155 { PCI_VDEVICE(ENSONIQ, 0x5880), 0, }, /* ES1373 - CT5880 */ 60842 { PCI_VDEVICE(ENSONIQ, 0x5880), 0, }, /* ES1373 - CT5880 */
59156 { PCI_VDEVICE(ECTIVA, 0x8938), 0, }, /* Ectiva EV1938 */ 60843 { PCI_VDEVICE(ECTIVA, 0x8938), 0, }, /* Ectiva EV1938 */
59157 #endif 60844 #endif
@@ -59160,9 +60847,9 @@ diff -urNp linux-2.6.38.2/sound/pci/ens1370.c linux-2.6.38.2/sound/pci/ens1370.c
59160 }; 60847 };
59161 60848
59162 MODULE_DEVICE_TABLE(pci, snd_audiopci_ids); 60849 MODULE_DEVICE_TABLE(pci, snd_audiopci_ids);
59163diff -urNp linux-2.6.38.2/sound/pci/hda/patch_hdmi.c linux-2.6.38.2/sound/pci/hda/patch_hdmi.c 60850diff -urNp linux-2.6.38.3/sound/pci/hda/patch_hdmi.c linux-2.6.38.3/sound/pci/hda/patch_hdmi.c
59164--- linux-2.6.38.2/sound/pci/hda/patch_hdmi.c 2011-03-14 21:20:32.000000000 -0400 60851--- linux-2.6.38.3/sound/pci/hda/patch_hdmi.c 2011-04-18 17:27:18.000000000 -0400
59165+++ linux-2.6.38.2/sound/pci/hda/patch_hdmi.c 2011-03-21 18:31:35.000000000 -0400 60852+++ linux-2.6.38.3/sound/pci/hda/patch_hdmi.c 2011-04-17 16:54:08.000000000 -0400
59166@@ -733,10 +733,10 @@ static void hdmi_non_intrinsic_event(str 60853@@ -733,10 +733,10 @@ static void hdmi_non_intrinsic_event(str
59167 cp_ready); 60854 cp_ready);
59168 60855
@@ -59178,9 +60865,9 @@ diff -urNp linux-2.6.38.2/sound/pci/hda/patch_hdmi.c linux-2.6.38.2/sound/pci/hd
59178 } 60865 }
59179 60866
59180 60867
59181diff -urNp linux-2.6.38.2/sound/pci/intel8x0.c linux-2.6.38.2/sound/pci/intel8x0.c 60868diff -urNp linux-2.6.38.3/sound/pci/intel8x0.c linux-2.6.38.3/sound/pci/intel8x0.c
59182--- linux-2.6.38.2/sound/pci/intel8x0.c 2011-03-14 21:20:32.000000000 -0400 60869--- linux-2.6.38.3/sound/pci/intel8x0.c 2011-03-14 21:20:32.000000000 -0400
59183+++ linux-2.6.38.2/sound/pci/intel8x0.c 2011-03-21 18:31:35.000000000 -0400 60870+++ linux-2.6.38.3/sound/pci/intel8x0.c 2011-04-17 15:57:33.000000000 -0400
59184@@ -444,7 +444,7 @@ static DEFINE_PCI_DEVICE_TABLE(snd_intel 60871@@ -444,7 +444,7 @@ static DEFINE_PCI_DEVICE_TABLE(snd_intel
59185 { PCI_VDEVICE(AMD, 0x746d), DEVICE_INTEL }, /* AMD8111 */ 60872 { PCI_VDEVICE(AMD, 0x746d), DEVICE_INTEL }, /* AMD8111 */
59186 { PCI_VDEVICE(AMD, 0x7445), DEVICE_INTEL }, /* AMD768 */ 60873 { PCI_VDEVICE(AMD, 0x7445), DEVICE_INTEL }, /* AMD768 */
@@ -59199,9 +60886,9 @@ diff -urNp linux-2.6.38.2/sound/pci/intel8x0.c linux-2.6.38.2/sound/pci/intel8x0
59199 }; 60886 };
59200 60887
59201 static int __devinit snd_intel8x0_mixer(struct intel8x0 *chip, int ac97_clock, 60888 static int __devinit snd_intel8x0_mixer(struct intel8x0 *chip, int ac97_clock,
59202diff -urNp linux-2.6.38.2/sound/pci/intel8x0m.c linux-2.6.38.2/sound/pci/intel8x0m.c 60889diff -urNp linux-2.6.38.3/sound/pci/intel8x0m.c linux-2.6.38.3/sound/pci/intel8x0m.c
59203--- linux-2.6.38.2/sound/pci/intel8x0m.c 2011-03-14 21:20:32.000000000 -0400 60890--- linux-2.6.38.3/sound/pci/intel8x0m.c 2011-03-14 21:20:32.000000000 -0400
59204+++ linux-2.6.38.2/sound/pci/intel8x0m.c 2011-03-21 18:31:35.000000000 -0400 60891+++ linux-2.6.38.3/sound/pci/intel8x0m.c 2011-04-17 15:57:33.000000000 -0400
59205@@ -239,7 +239,7 @@ static DEFINE_PCI_DEVICE_TABLE(snd_intel 60892@@ -239,7 +239,7 @@ static DEFINE_PCI_DEVICE_TABLE(snd_intel
59206 { PCI_VDEVICE(AMD, 0x746d), DEVICE_INTEL }, /* AMD8111 */ 60893 { PCI_VDEVICE(AMD, 0x746d), DEVICE_INTEL }, /* AMD8111 */
59207 { PCI_VDEVICE(AL, 0x5455), DEVICE_ALI }, /* Ali5455 */ 60894 { PCI_VDEVICE(AL, 0x5455), DEVICE_ALI }, /* Ali5455 */
@@ -59220,9 +60907,9 @@ diff -urNp linux-2.6.38.2/sound/pci/intel8x0m.c linux-2.6.38.2/sound/pci/intel8x
59220 }; 60907 };
59221 60908
59222 static int __devinit snd_intel8x0m_probe(struct pci_dev *pci, 60909 static int __devinit snd_intel8x0m_probe(struct pci_dev *pci,
59223diff -urNp linux-2.6.38.2/usr/gen_init_cpio.c linux-2.6.38.2/usr/gen_init_cpio.c 60910diff -urNp linux-2.6.38.3/usr/gen_init_cpio.c linux-2.6.38.3/usr/gen_init_cpio.c
59224--- linux-2.6.38.2/usr/gen_init_cpio.c 2011-03-14 21:20:32.000000000 -0400 60911--- linux-2.6.38.3/usr/gen_init_cpio.c 2011-03-14 21:20:32.000000000 -0400
59225+++ linux-2.6.38.2/usr/gen_init_cpio.c 2011-03-21 18:31:35.000000000 -0400 60912+++ linux-2.6.38.3/usr/gen_init_cpio.c 2011-04-17 15:57:33.000000000 -0400
59226@@ -305,7 +305,7 @@ static int cpio_mkfile(const char *name, 60913@@ -305,7 +305,7 @@ static int cpio_mkfile(const char *name,
59227 int retval; 60914 int retval;
59228 int rc = -1; 60915 int rc = -1;
@@ -59245,9 +60932,9 @@ diff -urNp linux-2.6.38.2/usr/gen_init_cpio.c linux-2.6.38.2/usr/gen_init_cpio.c
59245 } else 60932 } else
59246 break; 60933 break;
59247 } 60934 }
59248diff -urNp linux-2.6.38.2/virt/kvm/kvm_main.c linux-2.6.38.2/virt/kvm/kvm_main.c 60935diff -urNp linux-2.6.38.3/virt/kvm/kvm_main.c linux-2.6.38.3/virt/kvm/kvm_main.c
59249--- linux-2.6.38.2/virt/kvm/kvm_main.c 2011-03-14 21:20:32.000000000 -0400 60936--- linux-2.6.38.3/virt/kvm/kvm_main.c 2011-03-14 21:20:32.000000000 -0400
59250+++ linux-2.6.38.2/virt/kvm/kvm_main.c 2011-03-21 18:31:35.000000000 -0400 60937+++ linux-2.6.38.3/virt/kvm/kvm_main.c 2011-04-17 15:57:33.000000000 -0400
59251@@ -1521,7 +1521,7 @@ static int kvm_vcpu_release(struct inode 60938@@ -1521,7 +1521,7 @@ static int kvm_vcpu_release(struct inode
59252 return 0; 60939 return 0;
59253 } 60940 }
diff --git a/main/linux-grsec/kernelconfig.x86 b/main/linux-grsec/kernelconfig.x86
index 14fbc4d832..a010738095 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.1 Kernel Configuration 3# Linux/i386 2.6.38.3 Kernel Configuration
4# Thu Mar 31 17:56:09 2011 4# Mon Apr 18 07:22:38 2011
5# 5#
6# CONFIG_64BIT is not set 6# CONFIG_64BIT is not set
7CONFIG_X86_32=y 7CONFIG_X86_32=y
@@ -2461,7 +2461,6 @@ 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
2465CONFIG_SERIAL_NONSTANDARD=y 2464CONFIG_SERIAL_NONSTANDARD=y
2466CONFIG_COMPUTONE=m 2465CONFIG_COMPUTONE=m
2467CONFIG_ROCKETPORT=m 2466CONFIG_ROCKETPORT=m
@@ -2566,7 +2565,6 @@ CONFIG_TCG_NSC=m
2566CONFIG_TCG_ATMEL=m 2565CONFIG_TCG_ATMEL=m
2567CONFIG_TCG_INFINEON=m 2566CONFIG_TCG_INFINEON=m
2568CONFIG_TELCLOCK=m 2567CONFIG_TELCLOCK=m
2569CONFIG_DEVPORT=y
2570CONFIG_RAMOOPS=m 2568CONFIG_RAMOOPS=m
2571CONFIG_I2C=m 2569CONFIG_I2C=m
2572CONFIG_I2C_BOARDINFO=y 2570CONFIG_I2C_BOARDINFO=y
@@ -4827,6 +4825,7 @@ CONFIG_GRKERNSEC_PROC_MEMMAP=y
4827# CONFIG_GRKERNSEC_BRUTE is not set 4825# CONFIG_GRKERNSEC_BRUTE is not set
4828# CONFIG_GRKERNSEC_MODHARDEN is not set 4826# CONFIG_GRKERNSEC_MODHARDEN is not set
4829# CONFIG_GRKERNSEC_HIDESYM is not set 4827# CONFIG_GRKERNSEC_HIDESYM is not set
4828# CONFIG_GRKERNSEC_KERN_LOCKOUT is not set
4830 4829
4831# 4830#
4832# Role Based Access Control Options 4831# Role Based Access Control Options
diff --git a/main/linux-grsec/kernelconfig.x86_64 b/main/linux-grsec/kernelconfig.x86_64
index c830b9cc32..8877618c6a 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.1 Kernel Configuration 3# Linux/x86_64 2.6.38.3 Kernel Configuration
4# Thu Mar 31 17:56:09 2011 4# Mon Apr 18 10:45:51 2011
5# 5#
6CONFIG_64BIT=y 6CONFIG_64BIT=y
7# CONFIG_X86_32 is not set 7# CONFIG_X86_32 is not set
@@ -2415,7 +2415,6 @@ 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
2419CONFIG_SERIAL_NONSTANDARD=y 2418CONFIG_SERIAL_NONSTANDARD=y
2420CONFIG_COMPUTONE=m 2419CONFIG_COMPUTONE=m
2421CONFIG_ROCKETPORT=m 2420CONFIG_ROCKETPORT=m
@@ -2518,7 +2517,6 @@ CONFIG_TCG_NSC=m
2518CONFIG_TCG_ATMEL=m 2517CONFIG_TCG_ATMEL=m
2519CONFIG_TCG_INFINEON=m 2518CONFIG_TCG_INFINEON=m
2520CONFIG_TELCLOCK=m 2519CONFIG_TELCLOCK=m
2521CONFIG_DEVPORT=y
2522CONFIG_RAMOOPS=m 2520CONFIG_RAMOOPS=m
2523CONFIG_I2C=m 2521CONFIG_I2C=m
2524CONFIG_I2C_BOARDINFO=y 2522CONFIG_I2C_BOARDINFO=y
@@ -4784,6 +4782,7 @@ CONFIG_GRKERNSEC_PROC_MEMMAP=y
4784# CONFIG_GRKERNSEC_BRUTE is not set 4782# CONFIG_GRKERNSEC_BRUTE is not set
4785# CONFIG_GRKERNSEC_MODHARDEN is not set 4783# CONFIG_GRKERNSEC_MODHARDEN is not set
4786# CONFIG_GRKERNSEC_HIDESYM is not set 4784# CONFIG_GRKERNSEC_HIDESYM is not set
4785# CONFIG_GRKERNSEC_KERN_LOCKOUT is not set
4787 4786
4788# 4787#
4789# Role Based Access Control Options 4788# Role Based Access Control Options
@@ -4894,6 +4893,7 @@ CONFIG_PAX_MPROTECT=y
4894# Address Space Layout Randomization 4893# Address Space Layout Randomization
4895# 4894#
4896CONFIG_PAX_ASLR=y 4895CONFIG_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