aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorNatanael Copa <ncopa@alpinelinux.org>2011-04-22 05:29:17 +0000
committerNatanael Copa <ncopa@alpinelinux.org>2011-04-22 06:05:39 +0000
commit19eea5ca985e34a75db7ea69646e23009370fd5a (patch)
tree114e9475ed6d5785a25f68a799cd8d5ca7fef8d7
parent7a818f1051c1fbadffb751e516e448970af7dd3d (diff)
downloadalpine_aports-19eea5ca985e34a75db7ea69646e23009370fd5a.tar.bz2
alpine_aports-19eea5ca985e34a75db7ea69646e23009370fd5a.tar.xz
alpine_aports-19eea5ca985e34a75db7ea69646e23009370fd5a.zip
main/linux-grsec: try upgrade to grsecurity-2.2.2-2.6.38.3-201104211716
Lets hope this works.
-rw-r--r--main/linux-grsec/APKBUILD14
-rw-r--r--main/linux-grsec/grsecurity-2.2.2-2.6.38.3-201104211716.patch (renamed from main/linux-grsec/grsecurity-2.2.2-2.6.38.2-201103281752.patch)9962
-rw-r--r--main/linux-grsec/kernelconfig.x867
-rw-r--r--main/linux-grsec/kernelconfig.x86_648
4 files changed, 5845 insertions, 4146 deletions
diff --git a/main/linux-grsec/APKBUILD b/main/linux-grsec/APKBUILD
index 3e7a6bc50c..cc1ed4e786 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=2
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-201104211716.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 1419ac513670fe7be7f66b50f0ddb900d2a grsecurity-2.2.2-2.6.38.3-201104211716.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-201104211716.patch
index 190cb94594..8144799390 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-201104211716.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-19 17:17:51.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
@@ -11174,7 +11670,7 @@ diff -urNp linux-2.6.38.2/arch/x86/kernel/entry_32.S linux-2.6.38.2/arch/x86/ker
11174 11670
11175 ENTRY(resume_userspace) 11671 ENTRY(resume_userspace)
11176 LOCKDEP_SYS_EXIT 11672 LOCKDEP_SYS_EXIT
11177@@ -392,10 +477,9 @@ sysenter_past_esp: 11673@@ -392,23 +477,34 @@ sysenter_past_esp:
11178 /*CFI_REL_OFFSET cs, 0*/ 11674 /*CFI_REL_OFFSET cs, 0*/
11179 /* 11675 /*
11180 * Push current_thread_info()->sysenter_return to the stack. 11676 * Push current_thread_info()->sysenter_return to the stack.
@@ -11182,12 +11678,17 @@ diff -urNp linux-2.6.38.2/arch/x86/kernel/entry_32.S linux-2.6.38.2/arch/x86/ker
11182- * pushed above; +8 corresponds to copy_thread's esp0 setting. 11678- * pushed above; +8 corresponds to copy_thread's esp0 setting.
11183 */ 11679 */
11184- pushl_cfi ((TI_sysenter_return)-THREAD_SIZE_asm+8+4*4)(%esp) 11680- pushl_cfi ((TI_sysenter_return)-THREAD_SIZE_asm+8+4*4)(%esp)
11185+ GET_THREAD_INFO(%ebp) 11681+ pushl_cfi $0
11186+ pushl_cfi TI_sysenter_return(%ebp)
11187 CFI_REL_OFFSET eip, 0 11682 CFI_REL_OFFSET eip, 0
11188 11683
11189 pushl_cfi %eax 11684 pushl_cfi %eax
11190@@ -406,9 +490,19 @@ sysenter_past_esp: 11685 SAVE_ALL
11686+ GET_THREAD_INFO(%ebp)
11687+ movl TI_sysenter_return(%ebp),%ebp
11688+ movl %ebp,PT_EIP(%esp)
11689 ENABLE_INTERRUPTS(CLBR_NONE)
11690
11691 /*
11191 * Load the potential sixth argument from user stack. 11692 * Load the potential sixth argument from user stack.
11192 * Careful about security. 11693 * Careful about security.
11193 */ 11694 */
@@ -11207,7 +11708,7 @@ diff -urNp linux-2.6.38.2/arch/x86/kernel/entry_32.S linux-2.6.38.2/arch/x86/ker
11207 movl %ebp,PT_EBP(%esp) 11708 movl %ebp,PT_EBP(%esp)
11208 .section __ex_table,"a" 11709 .section __ex_table,"a"
11209 .align 4 11710 .align 4
11210@@ -431,12 +525,23 @@ sysenter_do_call: 11711@@ -431,12 +527,23 @@ sysenter_do_call:
11211 testl $_TIF_ALLWORK_MASK, %ecx 11712 testl $_TIF_ALLWORK_MASK, %ecx
11212 jne sysexit_audit 11713 jne sysexit_audit
11213 sysenter_exit: 11714 sysenter_exit:
@@ -11231,7 +11732,7 @@ diff -urNp linux-2.6.38.2/arch/x86/kernel/entry_32.S linux-2.6.38.2/arch/x86/ker
11231 PTGS_TO_GS 11732 PTGS_TO_GS
11232 ENABLE_INTERRUPTS_SYSEXIT 11733 ENABLE_INTERRUPTS_SYSEXIT
11233 11734
11234@@ -479,11 +584,17 @@ sysexit_audit: 11735@@ -479,11 +586,17 @@ sysexit_audit:
11235 11736
11236 CFI_ENDPROC 11737 CFI_ENDPROC
11237 .pushsection .fixup,"ax" 11738 .pushsection .fixup,"ax"
@@ -11251,7 +11752,7 @@ diff -urNp linux-2.6.38.2/arch/x86/kernel/entry_32.S linux-2.6.38.2/arch/x86/ker
11251 .popsection 11752 .popsection
11252 PTGS_TO_GS_EX 11753 PTGS_TO_GS_EX
11253 ENDPROC(ia32_sysenter_target) 11754 ENDPROC(ia32_sysenter_target)
11254@@ -516,6 +627,10 @@ syscall_exit: 11755@@ -516,6 +629,10 @@ syscall_exit:
11255 testl $_TIF_ALLWORK_MASK, %ecx # current->work 11756 testl $_TIF_ALLWORK_MASK, %ecx # current->work
11256 jne syscall_exit_work 11757 jne syscall_exit_work
11257 11758
@@ -11262,7 +11763,7 @@ diff -urNp linux-2.6.38.2/arch/x86/kernel/entry_32.S linux-2.6.38.2/arch/x86/ker
11262 restore_all: 11763 restore_all:
11263 TRACE_IRQS_IRET 11764 TRACE_IRQS_IRET
11264 restore_all_notrace: 11765 restore_all_notrace:
11265@@ -575,14 +690,21 @@ ldt_ss: 11766@@ -575,14 +692,21 @@ ldt_ss:
11266 * compensating for the offset by changing to the ESPFIX segment with 11767 * compensating for the offset by changing to the ESPFIX segment with
11267 * a base address that matches for the difference. 11768 * a base address that matches for the difference.
11268 */ 11769 */
@@ -11287,7 +11788,7 @@ diff -urNp linux-2.6.38.2/arch/x86/kernel/entry_32.S linux-2.6.38.2/arch/x86/ker
11287 pushl_cfi $__ESPFIX_SS 11788 pushl_cfi $__ESPFIX_SS
11288 pushl_cfi %eax /* new kernel esp */ 11789 pushl_cfi %eax /* new kernel esp */
11289 /* Disable interrupts, but do not irqtrace this section: we 11790 /* Disable interrupts, but do not irqtrace this section: we
11290@@ -617,23 +739,17 @@ work_resched: 11791@@ -617,23 +741,17 @@ work_resched:
11291 11792
11292 work_notifysig: # deal with pending signals and 11793 work_notifysig: # deal with pending signals and
11293 # notify-resume requests 11794 # notify-resume requests
@@ -11314,7 +11815,7 @@ diff -urNp linux-2.6.38.2/arch/x86/kernel/entry_32.S linux-2.6.38.2/arch/x86/ker
11314 #endif 11815 #endif
11315 xorl %edx, %edx 11816 xorl %edx, %edx
11316 call do_notify_resume 11817 call do_notify_resume
11317@@ -668,6 +784,10 @@ END(syscall_exit_work) 11818@@ -668,6 +786,10 @@ END(syscall_exit_work)
11318 11819
11319 RING0_INT_FRAME # can't unwind into user space anyway 11820 RING0_INT_FRAME # can't unwind into user space anyway
11320 syscall_fault: 11821 syscall_fault:
@@ -11325,7 +11826,7 @@ diff -urNp linux-2.6.38.2/arch/x86/kernel/entry_32.S linux-2.6.38.2/arch/x86/ker
11325 GET_THREAD_INFO(%ebp) 11826 GET_THREAD_INFO(%ebp)
11326 movl $-EFAULT,PT_EAX(%esp) 11827 movl $-EFAULT,PT_EAX(%esp)
11327 jmp resume_userspace 11828 jmp resume_userspace
11328@@ -750,6 +870,36 @@ ptregs_clone: 11829@@ -750,6 +872,36 @@ ptregs_clone:
11329 CFI_ENDPROC 11830 CFI_ENDPROC
11330 ENDPROC(ptregs_clone) 11831 ENDPROC(ptregs_clone)
11331 11832
@@ -11362,7 +11863,7 @@ diff -urNp linux-2.6.38.2/arch/x86/kernel/entry_32.S linux-2.6.38.2/arch/x86/ker
11362 .macro FIXUP_ESPFIX_STACK 11863 .macro FIXUP_ESPFIX_STACK
11363 /* 11864 /*
11364 * Switch back for ESPFIX stack to the normal zerobased stack 11865 * Switch back for ESPFIX stack to the normal zerobased stack
11365@@ -759,8 +909,15 @@ ENDPROC(ptregs_clone) 11866@@ -759,8 +911,15 @@ ENDPROC(ptregs_clone)
11366 * normal stack and adjusts ESP with the matching offset. 11867 * normal stack and adjusts ESP with the matching offset.
11367 */ 11868 */
11368 /* fixup the stack */ 11869 /* fixup the stack */
@@ -11380,7 +11881,7 @@ diff -urNp linux-2.6.38.2/arch/x86/kernel/entry_32.S linux-2.6.38.2/arch/x86/ker
11380 shl $16, %eax 11881 shl $16, %eax
11381 addl %esp, %eax /* the adjusted stack pointer */ 11882 addl %esp, %eax /* the adjusted stack pointer */
11382 pushl_cfi $__KERNEL_DS 11883 pushl_cfi $__KERNEL_DS
11383@@ -1211,7 +1368,6 @@ return_to_handler: 11884@@ -1211,7 +1370,6 @@ return_to_handler:
11384 jmp *%ecx 11885 jmp *%ecx
11385 #endif 11886 #endif
11386 11887
@@ -11388,7 +11889,7 @@ diff -urNp linux-2.6.38.2/arch/x86/kernel/entry_32.S linux-2.6.38.2/arch/x86/ker
11388 #include "syscall_table_32.S" 11889 #include "syscall_table_32.S"
11389 11890
11390 syscall_table_size=(.-sys_call_table) 11891 syscall_table_size=(.-sys_call_table)
11391@@ -1257,9 +1413,12 @@ error_code: 11892@@ -1257,9 +1415,12 @@ error_code:
11392 movl $-1, PT_ORIG_EAX(%esp) # no syscall to restart 11893 movl $-1, PT_ORIG_EAX(%esp) # no syscall to restart
11393 REG_TO_PTGS %ecx 11894 REG_TO_PTGS %ecx
11394 SET_KERNEL_GS %ecx 11895 SET_KERNEL_GS %ecx
@@ -11402,7 +11903,7 @@ diff -urNp linux-2.6.38.2/arch/x86/kernel/entry_32.S linux-2.6.38.2/arch/x86/ker
11402 TRACE_IRQS_OFF 11903 TRACE_IRQS_OFF
11403 movl %esp,%eax # pt_regs pointer 11904 movl %esp,%eax # pt_regs pointer
11404 call *%edi 11905 call *%edi
11405@@ -1344,6 +1503,9 @@ nmi_stack_correct: 11906@@ -1344,6 +1505,9 @@ nmi_stack_correct:
11406 xorl %edx,%edx # zero error code 11907 xorl %edx,%edx # zero error code
11407 movl %esp,%eax # pt_regs pointer 11908 movl %esp,%eax # pt_regs pointer
11408 call do_nmi 11909 call do_nmi
@@ -11412,7 +11913,7 @@ diff -urNp linux-2.6.38.2/arch/x86/kernel/entry_32.S linux-2.6.38.2/arch/x86/ker
11412 jmp restore_all_notrace 11913 jmp restore_all_notrace
11413 CFI_ENDPROC 11914 CFI_ENDPROC
11414 11915
11415@@ -1380,6 +1542,9 @@ nmi_espfix_stack: 11916@@ -1380,6 +1544,9 @@ nmi_espfix_stack:
11416 FIXUP_ESPFIX_STACK # %eax == %esp 11917 FIXUP_ESPFIX_STACK # %eax == %esp
11417 xorl %edx,%edx # zero error code 11918 xorl %edx,%edx # zero error code
11418 call do_nmi 11919 call do_nmi
@@ -11422,9 +11923,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 11923 RESTORE_REGS
11423 lss 12+4(%esp), %esp # back to espfix stack 11924 lss 12+4(%esp), %esp # back to espfix stack
11424 CFI_ADJUST_CFA_OFFSET -24 11925 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 11926diff -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 11927--- 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 11928+++ linux-2.6.38.3/arch/x86/kernel/entry_64.S 2011-04-17 15:57:32.000000000 -0400
11428@@ -53,6 +53,7 @@ 11929@@ -53,6 +53,7 @@
11429 #include <asm/paravirt.h> 11930 #include <asm/paravirt.h>
11430 #include <asm/ftrace.h> 11931 #include <asm/ftrace.h>
@@ -11433,7 +11934,7 @@ diff -urNp linux-2.6.38.2/arch/x86/kernel/entry_64.S linux-2.6.38.2/arch/x86/ker
11433 11934
11434 /* Avoid __ASSEMBLER__'ifying <linux/audit.h> just for this. */ 11935 /* Avoid __ASSEMBLER__'ifying <linux/audit.h> just for this. */
11435 #include <linux/elf-em.h> 11936 #include <linux/elf-em.h>
11436@@ -174,6 +175,201 @@ ENTRY(native_usergs_sysret64) 11937@@ -174,6 +175,206 @@ ENTRY(native_usergs_sysret64)
11437 ENDPROC(native_usergs_sysret64) 11938 ENDPROC(native_usergs_sysret64)
11438 #endif /* CONFIG_PARAVIRT */ 11939 #endif /* CONFIG_PARAVIRT */
11439 11940
@@ -11525,6 +12026,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 12026+#ifdef CONFIG_PAX_MEMORY_UDEREF
11526+ call pax_exit_kernel_user 12027+ call pax_exit_kernel_user
11527+#endif 12028+#endif
12029+#ifdef CONFIG_PAX_RANDKSTACK
12030+ push %rax
12031+ call pax_randomize_kstack
12032+ pop %rax
12033+#endif
11528+ .endm 12034+ .endm
11529+ 12035+
11530+#ifdef CONFIG_PAX_MEMORY_UDEREF 12036+#ifdef CONFIG_PAX_MEMORY_UDEREF
@@ -11635,7 +12141,7 @@ diff -urNp linux-2.6.38.2/arch/x86/kernel/entry_64.S linux-2.6.38.2/arch/x86/ker
11635 12141
11636 .macro TRACE_IRQS_IRETQ offset=ARGOFFSET 12142 .macro TRACE_IRQS_IRETQ offset=ARGOFFSET
11637 #ifdef CONFIG_TRACE_IRQFLAGS 12143 #ifdef CONFIG_TRACE_IRQFLAGS
11638@@ -316,7 +512,7 @@ ENTRY(save_args) 12144@@ -316,7 +517,7 @@ ENTRY(save_args)
11639 leaq -RBP+8(%rsp),%rdi /* arg1 for handler */ 12145 leaq -RBP+8(%rsp),%rdi /* arg1 for handler */
11640 movq_cfi rbp, 8 /* push %rbp */ 12146 movq_cfi rbp, 8 /* push %rbp */
11641 leaq 8(%rsp), %rbp /* mov %rsp, %ebp */ 12147 leaq 8(%rsp), %rbp /* mov %rsp, %ebp */
@@ -11644,7 +12150,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 12150 je 1f
11645 SWAPGS 12151 SWAPGS
11646 /* 12152 /*
11647@@ -407,7 +603,7 @@ ENTRY(ret_from_fork) 12153@@ -407,7 +608,7 @@ ENTRY(ret_from_fork)
11648 12154
11649 RESTORE_REST 12155 RESTORE_REST
11650 12156
@@ -11653,7 +12159,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 12159 je int_ret_from_sys_call
11654 12160
11655 testl $_TIF_IA32, TI_flags(%rcx) # 32-bit compat task needs IRET 12161 testl $_TIF_IA32, TI_flags(%rcx) # 32-bit compat task needs IRET
11656@@ -466,6 +662,7 @@ ENTRY(system_call_after_swapgs) 12162@@ -453,7 +654,7 @@ END(ret_from_fork)
12163 ENTRY(system_call)
12164 CFI_STARTPROC simple
12165 CFI_SIGNAL_FRAME
12166- CFI_DEF_CFA rsp,KERNEL_STACK_OFFSET
12167+ CFI_DEF_CFA rsp,0
12168 CFI_REGISTER rip,rcx
12169 /*CFI_REGISTER rflags,r11*/
12170 SWAPGS_UNSAFE_STACK
12171@@ -466,12 +667,13 @@ ENTRY(system_call_after_swapgs)
11657 12172
11658 movq %rsp,PER_CPU_VAR(old_rsp) 12173 movq %rsp,PER_CPU_VAR(old_rsp)
11659 movq PER_CPU_VAR(kernel_stack),%rsp 12174 movq PER_CPU_VAR(kernel_stack),%rsp
@@ -11661,7 +12176,14 @@ diff -urNp linux-2.6.38.2/arch/x86/kernel/entry_64.S linux-2.6.38.2/arch/x86/ker
11661 /* 12176 /*
11662 * No need to follow this irqs off/on section - it's straight 12177 * No need to follow this irqs off/on section - it's straight
11663 * and short: 12178 * and short:
11664@@ -500,6 +697,7 @@ sysret_check: 12179 */
12180 ENABLE_INTERRUPTS(CLBR_NONE)
12181- SAVE_ARGS 8,1
12182+ SAVE_ARGS 8*6,1
12183 movq %rax,ORIG_RAX-ARGOFFSET(%rsp)
12184 movq %rcx,RIP-ARGOFFSET(%rsp)
12185 CFI_REL_OFFSET rip,RIP-ARGOFFSET
12186@@ -500,6 +702,7 @@ sysret_check:
11665 andl %edi,%edx 12187 andl %edi,%edx
11666 jnz sysret_careful 12188 jnz sysret_careful
11667 CFI_REMEMBER_STATE 12189 CFI_REMEMBER_STATE
@@ -11669,7 +12191,7 @@ diff -urNp linux-2.6.38.2/arch/x86/kernel/entry_64.S linux-2.6.38.2/arch/x86/ker
11669 /* 12191 /*
11670 * sysretq will re-enable interrupts: 12192 * sysretq will re-enable interrupts:
11671 */ 12193 */
11672@@ -609,7 +807,7 @@ tracesys: 12194@@ -609,7 +812,7 @@ tracesys:
11673 GLOBAL(int_ret_from_sys_call) 12195 GLOBAL(int_ret_from_sys_call)
11674 DISABLE_INTERRUPTS(CLBR_NONE) 12196 DISABLE_INTERRUPTS(CLBR_NONE)
11675 TRACE_IRQS_OFF 12197 TRACE_IRQS_OFF
@@ -11678,7 +12200,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 12200 je retint_restore_args
11679 movl $_TIF_ALLWORK_MASK,%edi 12201 movl $_TIF_ALLWORK_MASK,%edi
11680 /* edi: mask to check */ 12202 /* edi: mask to check */
11681@@ -791,6 +989,16 @@ END(interrupt) 12203@@ -791,6 +994,16 @@ END(interrupt)
11682 CFI_ADJUST_CFA_OFFSET ORIG_RAX-RBP 12204 CFI_ADJUST_CFA_OFFSET ORIG_RAX-RBP
11683 call save_args 12205 call save_args
11684 PARTIAL_FRAME 0 12206 PARTIAL_FRAME 0
@@ -11695,7 +12217,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 12217 call \func
11696 .endm 12218 .endm
11697 12219
11698@@ -823,7 +1031,7 @@ ret_from_intr: 12220@@ -823,7 +1036,7 @@ ret_from_intr:
11699 CFI_ADJUST_CFA_OFFSET -8 12221 CFI_ADJUST_CFA_OFFSET -8
11700 exit_intr: 12222 exit_intr:
11701 GET_THREAD_INFO(%rcx) 12223 GET_THREAD_INFO(%rcx)
@@ -11704,7 +12226,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 12226 je retint_kernel
11705 12227
11706 /* Interrupt came from user space */ 12228 /* Interrupt came from user space */
11707@@ -845,12 +1053,14 @@ retint_swapgs: /* return to user-space 12229@@ -845,12 +1058,14 @@ retint_swapgs: /* return to user-space
11708 * The iretq could re-enable interrupts: 12230 * The iretq could re-enable interrupts:
11709 */ 12231 */
11710 DISABLE_INTERRUPTS(CLBR_ANY) 12232 DISABLE_INTERRUPTS(CLBR_ANY)
@@ -11719,7 +12241,7 @@ diff -urNp linux-2.6.38.2/arch/x86/kernel/entry_64.S linux-2.6.38.2/arch/x86/ker
11719 /* 12241 /*
11720 * The iretq could re-enable interrupts: 12242 * The iretq could re-enable interrupts:
11721 */ 12243 */
11722@@ -1022,6 +1232,16 @@ ENTRY(\sym) 12244@@ -1022,6 +1237,16 @@ ENTRY(\sym)
11723 CFI_ADJUST_CFA_OFFSET ORIG_RAX-R15 12245 CFI_ADJUST_CFA_OFFSET ORIG_RAX-R15
11724 call error_entry 12246 call error_entry
11725 DEFAULT_FRAME 0 12247 DEFAULT_FRAME 0
@@ -11736,7 +12258,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 */ 12258 movq %rsp,%rdi /* pt_regs pointer */
11737 xorl %esi,%esi /* no error code */ 12259 xorl %esi,%esi /* no error code */
11738 call \do_sym 12260 call \do_sym
11739@@ -1039,6 +1259,16 @@ ENTRY(\sym) 12261@@ -1039,6 +1264,16 @@ ENTRY(\sym)
11740 CFI_ADJUST_CFA_OFFSET ORIG_RAX-R15 12262 CFI_ADJUST_CFA_OFFSET ORIG_RAX-R15
11741 call save_paranoid 12263 call save_paranoid
11742 TRACE_IRQS_OFF 12264 TRACE_IRQS_OFF
@@ -11753,7 +12275,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 */ 12275 movq %rsp,%rdi /* pt_regs pointer */
11754 xorl %esi,%esi /* no error code */ 12276 xorl %esi,%esi /* no error code */
11755 call \do_sym 12277 call \do_sym
11756@@ -1047,7 +1277,7 @@ ENTRY(\sym) 12278@@ -1047,7 +1282,7 @@ ENTRY(\sym)
11757 END(\sym) 12279 END(\sym)
11758 .endm 12280 .endm
11759 12281
@@ -11762,7 +12284,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 12284 .macro paranoidzeroentry_ist sym do_sym ist
11763 ENTRY(\sym) 12285 ENTRY(\sym)
11764 INTR_FRAME 12286 INTR_FRAME
11765@@ -1057,8 +1287,24 @@ ENTRY(\sym) 12287@@ -1057,8 +1292,24 @@ ENTRY(\sym)
11766 CFI_ADJUST_CFA_OFFSET ORIG_RAX-R15 12288 CFI_ADJUST_CFA_OFFSET ORIG_RAX-R15
11767 call save_paranoid 12289 call save_paranoid
11768 TRACE_IRQS_OFF 12290 TRACE_IRQS_OFF
@@ -11787,7 +12309,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) 12309 subq $EXCEPTION_STKSZ, INIT_TSS_IST(\ist)
11788 call \do_sym 12310 call \do_sym
11789 addq $EXCEPTION_STKSZ, INIT_TSS_IST(\ist) 12311 addq $EXCEPTION_STKSZ, INIT_TSS_IST(\ist)
11790@@ -1075,6 +1321,16 @@ ENTRY(\sym) 12312@@ -1075,6 +1326,16 @@ ENTRY(\sym)
11791 CFI_ADJUST_CFA_OFFSET ORIG_RAX-R15 12313 CFI_ADJUST_CFA_OFFSET ORIG_RAX-R15
11792 call error_entry 12314 call error_entry
11793 DEFAULT_FRAME 0 12315 DEFAULT_FRAME 0
@@ -11804,7 +12326,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 */ 12326 movq %rsp,%rdi /* pt_regs pointer */
11805 movq ORIG_RAX(%rsp),%rsi /* get error code */ 12327 movq ORIG_RAX(%rsp),%rsi /* get error code */
11806 movq $-1,ORIG_RAX(%rsp) /* no syscall to restart */ 12328 movq $-1,ORIG_RAX(%rsp) /* no syscall to restart */
11807@@ -1094,6 +1350,16 @@ ENTRY(\sym) 12329@@ -1094,6 +1355,16 @@ ENTRY(\sym)
11808 call save_paranoid 12330 call save_paranoid
11809 DEFAULT_FRAME 0 12331 DEFAULT_FRAME 0
11810 TRACE_IRQS_OFF 12332 TRACE_IRQS_OFF
@@ -11821,7 +12343,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 */ 12343 movq %rsp,%rdi /* pt_regs pointer */
11822 movq ORIG_RAX(%rsp),%rsi /* get error code */ 12344 movq ORIG_RAX(%rsp),%rsi /* get error code */
11823 movq $-1,ORIG_RAX(%rsp) /* no syscall to restart */ 12345 movq $-1,ORIG_RAX(%rsp) /* no syscall to restart */
11824@@ -1356,14 +1622,27 @@ ENTRY(paranoid_exit) 12346@@ -1356,14 +1627,27 @@ ENTRY(paranoid_exit)
11825 TRACE_IRQS_OFF 12347 TRACE_IRQS_OFF
11826 testl %ebx,%ebx /* swapgs needed? */ 12348 testl %ebx,%ebx /* swapgs needed? */
11827 jnz paranoid_restore 12349 jnz paranoid_restore
@@ -11850,7 +12372,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 12372 TRACE_IRQS_IRETQ 0
11851 RESTORE_ALL 8 12373 RESTORE_ALL 8
11852 jmp irq_return 12374 jmp irq_return
11853@@ -1421,7 +1700,7 @@ ENTRY(error_entry) 12375@@ -1421,7 +1705,7 @@ ENTRY(error_entry)
11854 movq_cfi r14, R14+8 12376 movq_cfi r14, R14+8
11855 movq_cfi r15, R15+8 12377 movq_cfi r15, R15+8
11856 xorl %ebx,%ebx 12378 xorl %ebx,%ebx
@@ -11859,7 +12381,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 12381 je error_kernelspace
11860 error_swapgs: 12382 error_swapgs:
11861 SWAPGS 12383 SWAPGS
11862@@ -1485,6 +1764,16 @@ ENTRY(nmi) 12384@@ -1485,6 +1769,16 @@ ENTRY(nmi)
11863 CFI_ADJUST_CFA_OFFSET ORIG_RAX-R15 12385 CFI_ADJUST_CFA_OFFSET ORIG_RAX-R15
11864 call save_paranoid 12386 call save_paranoid
11865 DEFAULT_FRAME 0 12387 DEFAULT_FRAME 0
@@ -11876,7 +12398,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 */ 12398 /* paranoidentry do_nmi, 0; without TRACE_IRQS_OFF */
11877 movq %rsp,%rdi 12399 movq %rsp,%rdi
11878 movq $-1,%rsi 12400 movq $-1,%rsi
11879@@ -1495,11 +1784,25 @@ ENTRY(nmi) 12401@@ -1495,11 +1789,25 @@ ENTRY(nmi)
11880 DISABLE_INTERRUPTS(CLBR_NONE) 12402 DISABLE_INTERRUPTS(CLBR_NONE)
11881 testl %ebx,%ebx /* swapgs needed? */ 12403 testl %ebx,%ebx /* swapgs needed? */
11882 jnz nmi_restore 12404 jnz nmi_restore
@@ -11903,9 +12425,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 12425 RESTORE_ALL 8
11904 jmp irq_return 12426 jmp irq_return
11905 nmi_userspace: 12427 nmi_userspace:
11906diff -urNp linux-2.6.38.2/arch/x86/kernel/ftrace.c linux-2.6.38.2/arch/x86/kernel/ftrace.c 12428diff -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 12429--- 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 12430+++ 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) 12431@@ -177,7 +177,9 @@ void ftrace_nmi_enter(void)
11910 12432
11911 if (atomic_inc_return(&nmi_running) & MOD_CODE_WRITE_FLAG) { 12433 if (atomic_inc_return(&nmi_running) & MOD_CODE_WRITE_FLAG) {
@@ -11943,9 +12465,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)) 12465 if (probe_kernel_read(code, (void *)ip, MCOUNT_INSN_SIZE))
11944 return -EFAULT; 12466 return -EFAULT;
11945 12467
11946diff -urNp linux-2.6.38.2/arch/x86/kernel/head32.c linux-2.6.38.2/arch/x86/kernel/head32.c 12468diff -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 12469--- 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 12470+++ linux-2.6.38.3/arch/x86/kernel/head32.c 2011-04-17 15:57:32.000000000 -0400
11949@@ -19,6 +19,7 @@ 12471@@ -19,6 +19,7 @@
11950 #include <asm/io_apic.h> 12472 #include <asm/io_apic.h>
11951 #include <asm/bios_ebda.h> 12473 #include <asm/bios_ebda.h>
@@ -11963,9 +12485,9 @@ diff -urNp linux-2.6.38.2/arch/x86/kernel/head32.c linux-2.6.38.2/arch/x86/kerne
11963 12485
11964 #ifdef CONFIG_BLK_DEV_INITRD 12486 #ifdef CONFIG_BLK_DEV_INITRD
11965 /* Reserve INITRD */ 12487 /* 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 12488diff -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 12489--- 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 12490+++ linux-2.6.38.3/arch/x86/kernel/head_32.S 2011-04-17 16:02:16.000000000 -0400
11969@@ -25,6 +25,12 @@ 12491@@ -25,6 +25,12 @@
11970 /* Physical address */ 12492 /* Physical address */
11971 #define pa(X) ((X) - __PAGE_OFFSET) 12493 #define pa(X) ((X) - __PAGE_OFFSET)
@@ -12283,7 +12805,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) 12805 ENTRY(initial_page_table)
12284 .long pa(initial_pg_pmd+PGD_IDENT_ATTR),0 /* low identity map */ 12806 .long pa(initial_pg_pmd+PGD_IDENT_ATTR),0 /* low identity map */
12285 # if KPMDS == 3 12807 # if KPMDS == 3
12286@@ -663,13 +758,22 @@ ENTRY(initial_page_table) 12808@@ -663,18 +758,27 @@ ENTRY(initial_page_table)
12287 # error "Kernel PMDs should be 1, 2 or 3" 12809 # error "Kernel PMDs should be 1, 2 or 3"
12288 # endif 12810 # endif
12289 .align PAGE_SIZE_asm /* needs to be page-sized too */ 12811 .align PAGE_SIZE_asm /* needs to be page-sized too */
@@ -12302,11 +12824,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) 12824 ENTRY(stack_start)
12303- .long init_thread_union+THREAD_SIZE 12825- .long init_thread_union+THREAD_SIZE
12304+ .long init_thread_union+THREAD_SIZE-8 12826+ .long init_thread_union+THREAD_SIZE-8
12827+
12828+ready: .byte 0
12305 12829
12306+.section .rodata,"a",@progbits 12830+.section .rodata,"a",@progbits
12307 early_recursion_flag: 12831 early_recursion_flag:
12308 .long 0 12832 .long 0
12309 12833
12834-ready: .byte 0
12835-
12836 int_msg:
12837 .asciz "Unknown interrupt or fault at: %p %p %p\n"
12838
12310@@ -707,7 +811,7 @@ fault_msg: 12839@@ -707,7 +811,7 @@ fault_msg:
12311 .word 0 # 32 bit align gdt_desc.address 12840 .word 0 # 32 bit align gdt_desc.address
12312 boot_gdt_descr: 12841 boot_gdt_descr:
@@ -12393,9 +12922,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 */ 12922+ /* Be sure this is zeroed to avoid false validations in Xen */
12394+ .fill PAGE_SIZE_asm - GDT_SIZE,1,0 12923+ .fill PAGE_SIZE_asm - GDT_SIZE,1,0
12395+ .endr 12924+ .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 12925diff -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 12926--- 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 12927+++ linux-2.6.38.3/arch/x86/kernel/head_64.S 2011-04-17 15:57:32.000000000 -0400
12399@@ -19,6 +19,7 @@ 12928@@ -19,6 +19,7 @@
12400 #include <asm/cache.h> 12929 #include <asm/cache.h>
12401 #include <asm/processor-flags.h> 12930 #include <asm/processor-flags.h>
@@ -12665,9 +13194,9 @@ diff -urNp linux-2.6.38.2/arch/x86/kernel/head_64.S linux-2.6.38.2/arch/x86/kern
12665 13194
12666 __PAGE_ALIGNED_BSS 13195 __PAGE_ALIGNED_BSS
12667 .align PAGE_SIZE 13196 .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 13197diff -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 13198--- 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 13199+++ 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); 13200@@ -20,8 +20,12 @@ extern void cmpxchg8b_emu(void);
12672 EXPORT_SYMBOL(cmpxchg8b_emu); 13201 EXPORT_SYMBOL(cmpxchg8b_emu);
12673 #endif 13202 #endif
@@ -12689,10 +13218,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 13218+#ifdef CONFIG_PAX_KERNEXEC
12690+EXPORT_SYMBOL(__LOAD_PHYSICAL_ADDR); 13219+EXPORT_SYMBOL(__LOAD_PHYSICAL_ADDR);
12691+#endif 13220+#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 13221diff -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 13222--- 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 13223+++ 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); 13224@@ -20,8 +20,7 @@ static struct sighand_struct init_sighan
13225 * way process stacks are handled. This is done by having a special
13226 * "init_task" linker map entry..
13227 */
13228-union thread_union init_thread_union __init_task_data =
13229- { INIT_THREAD_INFO(init_task) };
13230+union thread_union init_thread_union __init_task_data;
13231
13232 /*
13233 * Initial task structure.
13234@@ -38,5 +37,5 @@ EXPORT_SYMBOL(init_task);
12696 * section. Since TSS's are completely CPU-local, we want them 13235 * section. Since TSS's are completely CPU-local, we want them
12697 * on exact cacheline boundaries, to eliminate cacheline ping-pong. 13236 * on exact cacheline boundaries, to eliminate cacheline ping-pong.
12698 */ 13237 */
@@ -12700,9 +13239,9 @@ diff -urNp linux-2.6.38.2/arch/x86/kernel/init_task.c linux-2.6.38.2/arch/x86/ke
12700- 13239-
12701+struct tss_struct init_tss[NR_CPUS] ____cacheline_internodealigned_in_smp = { [0 ... NR_CPUS-1] = INIT_TSS }; 13240+struct tss_struct init_tss[NR_CPUS] ____cacheline_internodealigned_in_smp = { [0 ... NR_CPUS-1] = INIT_TSS };
12702+EXPORT_SYMBOL(init_tss); 13241+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 13242diff -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 13243--- 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 13244+++ linux-2.6.38.3/arch/x86/kernel/ioport.c 2011-04-17 15:57:32.000000000 -0400
12706@@ -6,6 +6,7 @@ 13245@@ -6,6 +6,7 @@
12707 #include <linux/sched.h> 13246 #include <linux/sched.h>
12708 #include <linux/kernel.h> 13247 #include <linux/kernel.h>
@@ -12746,64 +13285,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)) 13285 if (!capable(CAP_SYS_RAWIO))
12747 return -EPERM; 13286 return -EPERM;
12748 } 13287 }
12749diff -urNp linux-2.6.38.2/arch/x86/kernel/irq_32.c linux-2.6.38.2/arch/x86/kernel/irq_32.c 13288diff -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 13289--- 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 13290+++ 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 13291@@ -36,7 +36,7 @@ static int check_stack_overflow(void)
13292 __asm__ __volatile__("andl %%esp,%0" :
13293 "=r" (sp) : "0" (THREAD_SIZE - 1));
13294
13295- return sp < (sizeof(struct thread_info) + STACK_WARN);
13296+ return sp < STACK_WARN;
13297 }
13298
13299 static void print_stack_overflow(void)
13300@@ -54,8 +54,8 @@ static inline void print_stack_overflow(
13301 * per-CPU IRQ handling contexts (thread information and stack)
13302 */
13303 union irq_ctx {
13304- struct thread_info tinfo;
13305- u32 stack[THREAD_SIZE/sizeof(u32)];
13306+ unsigned long previous_esp;
13307+ u32 stack[THREAD_SIZE/sizeof(u32)];
13308 } __attribute__((aligned(THREAD_SIZE)));
13309
13310 static DEFINE_PER_CPU(union irq_ctx *, hardirq_ctx);
13311@@ -75,10 +75,9 @@ static void call_on_stack(void *func, vo
13312 static inline int
13313 execute_on_irq_stack(int overflow, struct irq_desc *desc, int irq)
13314 {
13315- union irq_ctx *curctx, *irqctx;
13316+ union irq_ctx *irqctx;
13317 u32 *isp, arg1, arg2;
13318
13319- curctx = (union irq_ctx *) current_thread_info();
13320 irqctx = __this_cpu_read(hardirq_ctx);
13321
13322 /*
13323@@ -87,21 +86,17 @@ execute_on_irq_stack(int overflow, struc
13324 * handler) we can't do that and just have to keep using the
13325 * current stack (which is the irq stack already after all)
13326 */
13327- if (unlikely(curctx == irqctx))
13328+ if (unlikely((void *)current_stack_pointer - (void *)irqctx < THREAD_SIZE))
12753 return 0; 13329 return 0;
12754 13330
12755 /* build the stack frame on the IRQ stack */ 13331 /* build the stack frame on the IRQ stack */
12756- isp = (u32 *) ((char *)irqctx + sizeof(*irqctx)); 13332- isp = (u32 *) ((char *)irqctx + sizeof(*irqctx));
13333- irqctx->tinfo.task = curctx->tinfo.task;
13334- irqctx->tinfo.previous_esp = current_stack_pointer;
12757+ isp = (u32 *) ((char *)irqctx + sizeof(*irqctx) - 8); 13335+ isp = (u32 *) ((char *)irqctx + sizeof(*irqctx) - 8);
12758 irqctx->tinfo.task = curctx->tinfo.task; 13336+ irqctx->previous_esp = current_stack_pointer;
12759 irqctx->tinfo.previous_esp = current_stack_pointer; 13337+ 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 13338
13339- /*
13340- * Copy the softirq bits in preempt_count so that the
13341- * softirq checks work in the hardirq context.
13342- */
13343- irqctx->tinfo.preempt_count =
13344- (irqctx->tinfo.preempt_count & ~SOFTIRQ_MASK) |
13345- (curctx->tinfo.preempt_count & SOFTIRQ_MASK);
12765+#ifdef CONFIG_PAX_MEMORY_UDEREF 13346+#ifdef CONFIG_PAX_MEMORY_UDEREF
12766+ __set_fs(irqctx->tinfo.addr_limit); 13347+ __set_fs(MAKE_MM_SEG(0));
12767+#endif 13348+#endif
12768+ 13349
12769 if (unlikely(overflow)) 13350 if (unlikely(overflow))
12770 call_on_stack(print_stack_overflow, isp); 13351 call_on_stack(print_stack_overflow, isp);
12771 13352@@ -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), 13353 : "0" (irq), "1" (desc), "2" (isp),
12774 "D" (desc->handle_irq) 13354 "D" (desc->handle_irq)
12775 : "memory", "cc", "ecx"); 13355 : "memory", "cc", "ecx");
12776+ 13356+
12777+#ifdef CONFIG_PAX_MEMORY_UDEREF 13357+#ifdef CONFIG_PAX_MEMORY_UDEREF
12778+ __set_fs(curctx->tinfo.addr_limit); 13358+ __set_fs(current_thread_info()->addr_limit);
12779+#endif 13359+#endif
12780+ 13360+
13361+ sub_preempt_count(HARDIRQ_OFFSET);
12781 return 1; 13362 return 1;
12782 } 13363 }
12783 13364
12784@@ -168,9 +177,18 @@ asmlinkage void do_softirq(void) 13365@@ -121,29 +122,11 @@ execute_on_irq_stack(int overflow, struc
12785 irqctx->tinfo.previous_esp = current_stack_pointer; 13366 */
13367 void __cpuinit irq_ctx_init(int cpu)
13368 {
13369- union irq_ctx *irqctx;
13370-
13371 if (per_cpu(hardirq_ctx, cpu))
13372 return;
13373
13374- irqctx = page_address(alloc_pages_node(cpu_to_node(cpu),
13375- THREAD_FLAGS,
13376- THREAD_ORDER));
13377- memset(&irqctx->tinfo, 0, sizeof(struct thread_info));
13378- irqctx->tinfo.cpu = cpu;
13379- irqctx->tinfo.preempt_count = HARDIRQ_OFFSET;
13380- irqctx->tinfo.addr_limit = MAKE_MM_SEG(0);
13381-
13382- per_cpu(hardirq_ctx, cpu) = irqctx;
13383-
13384- irqctx = page_address(alloc_pages_node(cpu_to_node(cpu),
13385- THREAD_FLAGS,
13386- THREAD_ORDER));
13387- memset(&irqctx->tinfo, 0, sizeof(struct thread_info));
13388- irqctx->tinfo.cpu = cpu;
13389- irqctx->tinfo.addr_limit = MAKE_MM_SEG(0);
13390-
13391- per_cpu(softirq_ctx, cpu) = irqctx;
13392+ per_cpu(hardirq_ctx, cpu) = page_address(alloc_pages_node(cpu_to_node(cpu), THREAD_FLAGS, THREAD_ORDER));
13393+ per_cpu(softirq_ctx, cpu) = page_address(alloc_pages_node(cpu_to_node(cpu), THREAD_FLAGS, THREAD_ORDER));
13394
13395 printk(KERN_DEBUG "CPU %u irqstacks, hard=%p soft=%p\n",
13396 cpu, per_cpu(hardirq_ctx, cpu), per_cpu(softirq_ctx, cpu));
13397@@ -152,7 +135,6 @@ void __cpuinit irq_ctx_init(int cpu)
13398 asmlinkage void do_softirq(void)
13399 {
13400 unsigned long flags;
13401- struct thread_info *curctx;
13402 union irq_ctx *irqctx;
13403 u32 *isp;
13404
13405@@ -162,15 +144,22 @@ asmlinkage void do_softirq(void)
13406 local_irq_save(flags);
13407
13408 if (local_softirq_pending()) {
13409- curctx = current_thread_info();
13410 irqctx = __this_cpu_read(softirq_ctx);
13411- irqctx->tinfo.task = curctx->task;
13412- irqctx->tinfo.previous_esp = current_stack_pointer;
13413+ irqctx->previous_esp = current_stack_pointer;
12786 13414
12787 /* build the stack frame on the softirq stack */ 13415 /* build the stack frame on the softirq stack */
12788- isp = (u32 *) ((char *)irqctx + sizeof(*irqctx)); 13416- isp = (u32 *) ((char *)irqctx + sizeof(*irqctx));
12789+ isp = (u32 *) ((char *)irqctx + sizeof(*irqctx) - 8); 13417+ isp = (u32 *) ((char *)irqctx + sizeof(*irqctx) - 8);
12790+ 13418+
12791+#ifdef CONFIG_PAX_MEMORY_UDEREF 13419+#ifdef CONFIG_PAX_MEMORY_UDEREF
12792+ __set_fs(irqctx->tinfo.addr_limit); 13420+ __set_fs(MAKE_MM_SEG(0));
12793+#endif 13421+#endif
12794 13422
12795 call_on_stack(__do_softirq, isp); 13423 call_on_stack(__do_softirq, isp);
12796+ 13424+
12797+#ifdef CONFIG_PAX_MEMORY_UDEREF 13425+#ifdef CONFIG_PAX_MEMORY_UDEREF
12798+ __set_fs(curctx->addr_limit); 13426+ __set_fs(current_thread_info()->addr_limit);
12799+#endif 13427+#endif
12800+ 13428+
12801 /* 13429 /*
12802 * Shouldnt happen, we returned above if in_interrupt(): 13430 * Shouldnt happen, we returned above if in_interrupt():
12803 */ 13431 */
12804diff -urNp linux-2.6.38.2/arch/x86/kernel/kgdb.c linux-2.6.38.2/arch/x86/kernel/kgdb.c 13432diff -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 13433--- 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 13434+++ 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, 13435@@ -124,11 +124,11 @@ char *dbg_get_reg(int regno, void *mem,
12808 switch (regno) { 13436 switch (regno) {
12809 #ifdef CONFIG_X86_32 13437 #ifdef CONFIG_X86_32
@@ -12827,9 +13455,9 @@ diff -urNp linux-2.6.38.2/arch/x86/kernel/kgdb.c linux-2.6.38.2/arch/x86/kernel/
12827 /* Breakpoint instruction: */ 13455 /* Breakpoint instruction: */
12828 .gdb_bpt_instr = { 0xcc }, 13456 .gdb_bpt_instr = { 0xcc },
12829 .flags = KGDB_HW_BREAKPOINT, 13457 .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 13458diff -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 13459--- 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 13460+++ 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 13461@@ -115,8 +115,11 @@ static void __kprobes __synthesize_relat
12834 } __attribute__((packed)) *insn; 13462 } __attribute__((packed)) *insn;
12835 13463
@@ -12963,9 +13591,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); 13591 RELATIVE_ADDR_SIZE);
12964 13592
12965 insn_buf[0] = RELATIVEJUMP_OPCODE; 13593 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 13594diff -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 13595--- 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 13596+++ 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 13597@@ -67,13 +67,13 @@ static int alloc_ldt(mm_context_t *pc, i
12970 if (reload) { 13598 if (reload) {
12971 #ifdef CONFIG_SMP 13599 #ifdef CONFIG_SMP
@@ -13030,9 +13658,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); 13658 fill_ldt(&ldt, &ldt_info);
13031 if (oldmode) 13659 if (oldmode)
13032 ldt.avl = 0; 13660 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 13661diff -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 13662--- 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 13663+++ 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 @@ 13664@@ -27,7 +27,7 @@
13037 #include <asm/cacheflush.h> 13665 #include <asm/cacheflush.h>
13038 #include <asm/debugreg.h> 13666 #include <asm/debugreg.h>
@@ -13060,9 +13688,9 @@ diff -urNp linux-2.6.38.2/arch/x86/kernel/machine_kexec_32.c linux-2.6.38.2/arch
13060 13688
13061 relocate_kernel_ptr = control_page; 13689 relocate_kernel_ptr = control_page;
13062 page_list[PA_CONTROL_PAGE] = __pa(control_page); 13690 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 13691diff -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 13692--- 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 13693+++ 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 13694@@ -317,7 +317,7 @@ static void microcode_fini_cpu_amd(int c
13067 uci->mc = NULL; 13695 uci->mc = NULL;
13068 } 13696 }
@@ -13081,9 +13709,9 @@ diff -urNp linux-2.6.38.2/arch/x86/kernel/microcode_amd.c linux-2.6.38.2/arch/x8
13081 { 13709 {
13082 return &microcode_amd_ops; 13710 return &microcode_amd_ops;
13083 } 13711 }
13084diff -urNp linux-2.6.38.2/arch/x86/kernel/microcode_core.c linux-2.6.38.2/arch/x86/kernel/microcode_core.c 13712diff -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 13713--- 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 13714+++ 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"); 13715@@ -92,7 +92,7 @@ MODULE_LICENSE("GPL");
13088 13716
13089 #define MICROCODE_VERSION "2.00" 13717 #define MICROCODE_VERSION "2.00"
@@ -13093,9 +13721,9 @@ diff -urNp linux-2.6.38.2/arch/x86/kernel/microcode_core.c linux-2.6.38.2/arch/x
13093 13721
13094 /* 13722 /*
13095 * Synchronization. 13723 * 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 13724diff -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 13725--- 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 13726+++ 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 13727@@ -440,13 +440,13 @@ static enum ucode_state request_microcod
13100 13728
13101 static int get_ucode_user(void *to, const void *from, size_t n) 13729 static int get_ucode_user(void *to, const void *from, size_t n)
@@ -13130,9 +13758,9 @@ diff -urNp linux-2.6.38.2/arch/x86/kernel/microcode_intel.c linux-2.6.38.2/arch/
13130 { 13758 {
13131 return &microcode_intel_ops; 13759 return &microcode_intel_ops;
13132 } 13760 }
13133diff -urNp linux-2.6.38.2/arch/x86/kernel/module.c linux-2.6.38.2/arch/x86/kernel/module.c 13761diff -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 13762--- 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 13763+++ linux-2.6.38.3/arch/x86/kernel/module.c 2011-04-17 15:57:32.000000000 -0400
13136@@ -35,21 +35,66 @@ 13764@@ -35,21 +35,66 @@
13137 #define DEBUGP(fmt...) 13765 #define DEBUGP(fmt...)
13138 #endif 13766 #endif
@@ -13271,9 +13899,9 @@ diff -urNp linux-2.6.38.2/arch/x86/kernel/module.c linux-2.6.38.2/arch/x86/kerne
13271 #if 0 13899 #if 0
13272 if ((s64)val != *(s32 *)loc) 13900 if ((s64)val != *(s32 *)loc)
13273 goto overflow; 13901 goto overflow;
13274diff -urNp linux-2.6.38.2/arch/x86/kernel/paravirt.c linux-2.6.38.2/arch/x86/kernel/paravirt.c 13902diff -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 13903--- 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 13904+++ 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 13905@@ -122,7 +122,7 @@ unsigned paravirt_patch_jmp(void *insnbu
13278 * corresponding structure. */ 13906 * corresponding structure. */
13279 static void *get_call_destination(u8 type) 13907 static void *get_call_destination(u8 type)
@@ -13377,9 +14005,9 @@ diff -urNp linux-2.6.38.2/arch/x86/kernel/paravirt.c linux-2.6.38.2/arch/x86/ker
13377 }; 14005 };
13378 14006
13379 EXPORT_SYMBOL_GPL(pv_time_ops); 14007 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 14008diff -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 14009--- 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 14010+++ 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 14011@@ -13,7 +13,7 @@ default_spin_lock_flags(arch_spinlock_t
13384 arch_spin_lock(lock); 14012 arch_spin_lock(lock);
13385 } 14013 }
@@ -13389,9 +14017,9 @@ diff -urNp linux-2.6.38.2/arch/x86/kernel/paravirt-spinlocks.c linux-2.6.38.2/ar
13389 #ifdef CONFIG_SMP 14017 #ifdef CONFIG_SMP
13390 .spin_is_locked = __ticket_spin_is_locked, 14018 .spin_is_locked = __ticket_spin_is_locked,
13391 .spin_is_contended = __ticket_spin_is_contended, 14019 .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 14020diff -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 14021--- 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 14022+++ 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 14023@@ -476,7 +476,7 @@ static void calgary_free_coherent(struct
13396 free_pages((unsigned long)vaddr, get_order(size)); 14024 free_pages((unsigned long)vaddr, get_order(size));
13397 } 14025 }
@@ -13401,9 +14029,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, 14029 .alloc_coherent = calgary_alloc_coherent,
13402 .free_coherent = calgary_free_coherent, 14030 .free_coherent = calgary_free_coherent,
13403 .map_sg = calgary_map_sg, 14031 .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 14032diff -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 14033--- 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 14034+++ linux-2.6.38.3/arch/x86/kernel/pci-dma.c 2011-04-17 15:57:32.000000000 -0400
13407@@ -16,7 +16,7 @@ 14035@@ -16,7 +16,7 @@
13408 14036
13409 static int forbid_dac __read_mostly; 14037 static int forbid_dac __read_mostly;
@@ -13422,9 +14050,9 @@ diff -urNp linux-2.6.38.2/arch/x86/kernel/pci-dma.c linux-2.6.38.2/arch/x86/kern
13422 14050
13423 #ifdef CONFIG_PCI 14051 #ifdef CONFIG_PCI
13424 if (mask > 0xffffffff && forbid_dac > 0) { 14052 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 14053diff -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 14054--- 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 14055+++ 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 14056@@ -706,7 +706,7 @@ static __init int init_amd_gatt(struct a
13429 return -1; 14057 return -1;
13430 } 14058 }
@@ -13434,9 +14062,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, 14062 .map_sg = gart_map_sg,
13435 .unmap_sg = gart_unmap_sg, 14063 .unmap_sg = gart_unmap_sg,
13436 .map_page = gart_map_page, 14064 .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 14065diff -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 14066--- 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 14067+++ 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 14068@@ -95,7 +95,7 @@ static void nommu_sync_sg_for_device(str
13441 flush_write_buffers(); 14069 flush_write_buffers();
13442 } 14070 }
@@ -13446,9 +14074,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, 14074 .alloc_coherent = dma_generic_alloc_coherent,
13447 .free_coherent = nommu_free_coherent, 14075 .free_coherent = nommu_free_coherent,
13448 .map_sg = nommu_map_sg, 14076 .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 14077diff -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 14078--- 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 14079+++ 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( 14080@@ -26,7 +26,7 @@ static void *x86_swiotlb_alloc_coherent(
13453 return swiotlb_alloc_coherent(hwdev, size, dma_handle, flags); 14081 return swiotlb_alloc_coherent(hwdev, size, dma_handle, flags);
13454 } 14082 }
@@ -13458,9 +14086,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, 14086 .mapping_error = swiotlb_dma_mapping_error,
13459 .alloc_coherent = x86_swiotlb_alloc_coherent, 14087 .alloc_coherent = x86_swiotlb_alloc_coherent,
13460 .free_coherent = swiotlb_free_coherent, 14088 .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 14089diff -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 14090--- 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 14091+++ 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 14092@@ -65,6 +65,7 @@ asmlinkage void ret_from_fork(void) __as
13465 unsigned long thread_saved_pc(struct task_struct *tsk) 14093 unsigned long thread_saved_pc(struct task_struct *tsk)
13466 { 14094 {
@@ -13516,37 +14144,33 @@ diff -urNp linux-2.6.38.2/arch/x86/kernel/process_32.c linux-2.6.38.2/arch/x86/k
13516 /* 14144 /*
13517 * Load the per-thread Thread-Local Storage descriptor. 14145 * Load the per-thread Thread-Local Storage descriptor.
13518 */ 14146 */
13519@@ -404,3 +408,27 @@ unsigned long get_wchan(struct task_stru 14147@@ -363,6 +367,9 @@ __switch_to(struct task_struct *prev_p,
13520 return 0; 14148 */
13521 } 14149 arch_end_context_switch(next_p);
13522 14150
13523+#ifdef CONFIG_PAX_RANDKSTACK 14151+ percpu_write(current_task, next_p);
13524+asmlinkage void pax_randomize_kstack(void) 14152+ percpu_write(current_tinfo, &next_p->tinfo);
13525+{
13526+ struct thread_struct *thread = &current->thread;
13527+ unsigned long time;
13528+
13529+ if (!randomize_va_space)
13530+ return;
13531+ 14153+
13532+ rdtscl(time); 14154 if (preload_fpu)
13533+ 14155 __math_state_restore();
13534+ /* P4 seems to return a 0 LSB, ignore it */ 14156
13535+#ifdef CONFIG_MPENTIUM4 14157@@ -372,8 +379,6 @@ __switch_to(struct task_struct *prev_p,
13536+ time &= 0x1EUL; 14158 if (prev->gs | next->gs)
13537+ time <<= 2; 14159 lazy_load_gs(next->gs);
13538+#else 14160
13539+ time &= 0xFUL; 14161- percpu_write(current_task, next_p);
13540+ time <<= 3; 14162-
13541+#endif 14163 return prev_p;
13542+ 14164 }
13543+ thread->sp0 ^= time; 14165
13544+ load_sp0(init_tss + smp_processor_id(), thread); 14166@@ -403,4 +408,3 @@ unsigned long get_wchan(struct task_stru
13545+} 14167 } while (count++ < 16);
13546+#endif 14168 return 0;
13547diff -urNp linux-2.6.38.2/arch/x86/kernel/process_64.c linux-2.6.38.2/arch/x86/kernel/process_64.c 14169 }
13548--- linux-2.6.38.2/arch/x86/kernel/process_64.c 2011-03-14 21:20:32.000000000 -0400 14170-
13549+++ linux-2.6.38.2/arch/x86/kernel/process_64.c 2011-03-21 18:31:35.000000000 -0400 14171diff -urNp linux-2.6.38.3/arch/x86/kernel/process_64.c linux-2.6.38.3/arch/x86/kernel/process_64.c
14172--- linux-2.6.38.3/arch/x86/kernel/process_64.c 2011-03-14 21:20:32.000000000 -0400
14173+++ linux-2.6.38.3/arch/x86/kernel/process_64.c 2011-04-17 15:57:32.000000000 -0400
13550@@ -87,7 +87,7 @@ static void __exit_idle(void) 14174@@ -87,7 +87,7 @@ static void __exit_idle(void)
13551 void exit_idle(void) 14175 void exit_idle(void)
13552 { 14176 {
@@ -13556,7 +14180,17 @@ diff -urNp linux-2.6.38.2/arch/x86/kernel/process_64.c linux-2.6.38.2/arch/x86/k
13556 return; 14180 return;
13557 __exit_idle(); 14181 __exit_idle();
13558 } 14182 }
13559@@ -376,7 +376,7 @@ __switch_to(struct task_struct *prev_p, 14183@@ -260,8 +260,7 @@ int copy_thread(unsigned long clone_flag
14184 struct pt_regs *childregs;
14185 struct task_struct *me = current;
14186
14187- childregs = ((struct pt_regs *)
14188- (THREAD_SIZE + task_stack_page(p))) - 1;
14189+ childregs = task_stack_page(p) + THREAD_SIZE - sizeof(struct pt_regs) - 8;
14190 *childregs = *regs;
14191
14192 childregs->ax = 0;
14193@@ -376,7 +375,7 @@ __switch_to(struct task_struct *prev_p,
13560 struct thread_struct *prev = &prev_p->thread; 14194 struct thread_struct *prev = &prev_p->thread;
13561 struct thread_struct *next = &next_p->thread; 14195 struct thread_struct *next = &next_p->thread;
13562 int cpu = smp_processor_id(); 14196 int cpu = smp_processor_id();
@@ -13565,7 +14199,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; 14199 unsigned fsindex, gsindex;
13566 bool preload_fpu; 14200 bool preload_fpu;
13567 14201
13568@@ -529,12 +529,11 @@ unsigned long get_wchan(struct task_stru 14202@@ -472,10 +471,9 @@ __switch_to(struct task_struct *prev_p,
14203 prev->usersp = percpu_read(old_rsp);
14204 percpu_write(old_rsp, next->usersp);
14205 percpu_write(current_task, next_p);
14206+ percpu_write(current_tinfo, &next_p->tinfo);
14207
14208- percpu_write(kernel_stack,
14209- (unsigned long)task_stack_page(next_p) +
14210- THREAD_SIZE - KERNEL_STACK_OFFSET);
14211+ percpu_write(kernel_stack, next->sp0);
14212
14213 /*
14214 * Now maybe reload the debug registers and handle I/O bitmaps
14215@@ -529,12 +527,11 @@ unsigned long get_wchan(struct task_stru
13569 if (!p || p == current || p->state == TASK_RUNNING) 14216 if (!p || p == current || p->state == TASK_RUNNING)
13570 return 0; 14217 return 0;
13571 stack = (unsigned long)task_stack_page(p); 14218 stack = (unsigned long)task_stack_page(p);
@@ -13580,10 +14227,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; 14227 return 0;
13581 ip = *(u64 *)(fp+8); 14228 ip = *(u64 *)(fp+8);
13582 if (!in_sched_functions(ip)) 14229 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 14230diff -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 14231--- 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 14232+++ 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) 14233@@ -48,16 +48,33 @@ void free_thread_xstate(struct task_stru
14234
14235 void free_thread_info(struct thread_info *ti)
14236 {
14237- free_thread_xstate(ti->task);
14238 free_pages((unsigned long)ti, get_order(THREAD_SIZE));
14239 }
14240
14241+static struct kmem_cache *task_struct_cachep;
14242+
14243 void arch_task_cache_init(void)
14244 {
14245- task_xstate_cachep =
14246- kmem_cache_create("task_xstate", xstate_size,
14247+ /* create a slab on which task_structs can be allocated */
14248+ task_struct_cachep =
14249+ kmem_cache_create("task_struct", sizeof(struct task_struct),
14250+ ARCH_MIN_TASKALIGN, SLAB_PANIC | SLAB_NOTRACK, NULL);
14251+
14252+ task_xstate_cachep =
14253+ kmem_cache_create("task_xstate", xstate_size,
14254 __alignof__(union thread_xstate),
14255- SLAB_PANIC | SLAB_NOTRACK, NULL);
14256+ SLAB_PANIC | SLAB_NOTRACK | SLAB_USERCOPY, NULL);
14257+}
14258+
14259+struct task_struct *alloc_task_struct(void)
14260+{
14261+ return kmem_cache_alloc(task_struct_cachep, GFP_KERNEL);
14262+}
14263+
14264+void free_task_struct(struct task_struct *task)
14265+{
14266+ free_thread_xstate(task);
14267+ kmem_cache_free(task_struct_cachep, task);
14268 }
14269
14270 /*
14271@@ -70,7 +87,7 @@ void exit_thread(void)
13587 unsigned long *bp = t->io_bitmap_ptr; 14272 unsigned long *bp = t->io_bitmap_ptr;
13588 14273
13589 if (bp) { 14274 if (bp) {
@@ -13592,7 +14277,7 @@ diff -urNp linux-2.6.38.2/arch/x86/kernel/process.c linux-2.6.38.2/arch/x86/kern
13592 14277
13593 t->io_bitmap_ptr = NULL; 14278 t->io_bitmap_ptr = NULL;
13594 clear_thread_flag(TIF_IO_BITMAP); 14279 clear_thread_flag(TIF_IO_BITMAP);
13595@@ -106,7 +106,7 @@ void show_regs_common(void) 14280@@ -106,7 +123,7 @@ void show_regs_common(void)
13596 14281
13597 printk(KERN_CONT "\n"); 14282 printk(KERN_CONT "\n");
13598 printk(KERN_DEFAULT "Pid: %d, comm: %.20s %s %s %.*s", 14283 printk(KERN_DEFAULT "Pid: %d, comm: %.20s %s %s %.*s",
@@ -13601,7 +14286,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, 14286 init_utsname()->release,
13602 (int)strcspn(init_utsname()->version, " "), 14287 (int)strcspn(init_utsname()->version, " "),
13603 init_utsname()->version); 14288 init_utsname()->version);
13604@@ -123,6 +123,9 @@ void flush_thread(void) 14289@@ -123,6 +140,9 @@ void flush_thread(void)
13605 { 14290 {
13606 struct task_struct *tsk = current; 14291 struct task_struct *tsk = current;
13607 14292
@@ -13611,7 +14296,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); 14296 flush_ptrace_hw_breakpoint(tsk);
13612 memset(tsk->thread.tls_array, 0, sizeof(tsk->thread.tls_array)); 14297 memset(tsk->thread.tls_array, 0, sizeof(tsk->thread.tls_array));
13613 /* 14298 /*
13614@@ -285,10 +288,10 @@ int kernel_thread(int (*fn)(void *), voi 14299@@ -285,10 +305,10 @@ int kernel_thread(int (*fn)(void *), voi
13615 regs.di = (unsigned long) arg; 14300 regs.di = (unsigned long) arg;
13616 14301
13617 #ifdef CONFIG_X86_32 14302 #ifdef CONFIG_X86_32
@@ -13625,27 +14310,51 @@ diff -urNp linux-2.6.38.2/arch/x86/kernel/process.c linux-2.6.38.2/arch/x86/kern
13625 #else 14310 #else
13626 regs.ss = __KERNEL_DS; 14311 regs.ss = __KERNEL_DS;
13627 #endif 14312 #endif
13628@@ -667,17 +670,3 @@ static int __init idle_setup(char *str) 14313@@ -668,16 +688,31 @@ static int __init idle_setup(char *str)
13629 return 0;
13630 } 14314 }
13631 early_param("idle", idle_setup); 14315 early_param("idle", idle_setup);
13632- 14316
13633-unsigned long arch_align_stack(unsigned long sp) 14317-unsigned long arch_align_stack(unsigned long sp)
13634-{ 14318+#ifdef CONFIG_PAX_RANDKSTACK
14319+asmlinkage void pax_randomize_kstack(void)
14320 {
13635- if (!(current->personality & ADDR_NO_RANDOMIZE) && randomize_va_space) 14321- if (!(current->personality & ADDR_NO_RANDOMIZE) && randomize_va_space)
13636- sp -= get_random_int() % 8192; 14322- sp -= get_random_int() % 8192;
13637- return sp & ~0xf; 14323- return sp & ~0xf;
13638-} 14324-}
13639- 14325+ struct thread_struct *thread = &current->thread;
14326+ unsigned long time;
14327
13640-unsigned long arch_randomize_brk(struct mm_struct *mm) 14328-unsigned long arch_randomize_brk(struct mm_struct *mm)
13641-{ 14329-{
13642- unsigned long range_end = mm->brk + 0x02000000; 14330- unsigned long range_end = mm->brk + 0x02000000;
13643- return randomize_range(mm->brk, range_end, 0) ? : mm->brk; 14331- return randomize_range(mm->brk, range_end, 0) ? : mm->brk;
13644-} 14332-}
13645- 14333+ 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 14334+ return;
13647--- linux-2.6.38.2/arch/x86/kernel/ptrace.c 2011-03-14 21:20:32.000000000 -0400 14335+
13648+++ linux-2.6.38.2/arch/x86/kernel/ptrace.c 2011-03-21 18:31:35.000000000 -0400 14336+ rdtscl(time);
14337+
14338+ /* P4 seems to return a 0 LSB, ignore it */
14339+#ifdef CONFIG_MPENTIUM4
14340+ time &= 0x1EUL;
14341+ time <<= 2;
14342+#else
14343+ time &= 0xFUL;
14344+ time <<= 3;
14345+#endif
14346+
14347+ thread->sp0 ^= time;
14348+ load_sp0(init_tss + smp_processor_id(), thread);
14349
14350+#ifdef CONFIG_X86_64
14351+ percpu_write(kernel_stack, thread->sp0);
14352+#endif
14353+}
14354+#endif
14355diff -urNp linux-2.6.38.3/arch/x86/kernel/ptrace.c linux-2.6.38.3/arch/x86/kernel/ptrace.c
14356--- linux-2.6.38.3/arch/x86/kernel/ptrace.c 2011-03-14 21:20:32.000000000 -0400
14357+++ 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 14358@@ -805,7 +805,7 @@ long arch_ptrace(struct task_struct *chi
13650 unsigned long addr, unsigned long data) 14359 unsigned long addr, unsigned long data)
13651 { 14360 {
@@ -13699,9 +14408,9 @@ diff -urNp linux-2.6.38.2/arch/x86/kernel/ptrace.c linux-2.6.38.2/arch/x86/kerne
13699 { 14408 {
13700 bool step; 14409 bool step;
13701 14410
13702diff -urNp linux-2.6.38.2/arch/x86/kernel/reboot.c linux-2.6.38.2/arch/x86/kernel/reboot.c 14411diff -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 14412--- 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 14413+++ 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); 14414@@ -34,7 +34,7 @@ void (*pm_power_off)(void);
13706 EXPORT_SYMBOL(pm_power_off); 14415 EXPORT_SYMBOL(pm_power_off);
13707 14416
@@ -13767,10 +14476,10 @@ diff -urNp linux-2.6.38.2/arch/x86/kernel/reboot.c linux-2.6.38.2/arch/x86/kerne
13767 14476
13768 /* Set up the IDT for real mode. */ 14477 /* Set up the IDT for real mode. */
13769 load_idt(&real_mode_idt); 14478 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 14479diff -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 14480--- 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 14481+++ 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) 14482@@ -654,7 +654,7 @@ static void __init trim_bios_range(void)
13774 * area (640->1Mb) as ram even though it is not. 14483 * area (640->1Mb) as ram even though it is not.
13775 * take them out. 14484 * take them out.
13776 */ 14485 */
@@ -13779,7 +14488,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); 14488 sanitize_e820_map(e820.map, ARRAY_SIZE(e820.map), &e820.nr_map);
13780 } 14489 }
13781 14490
13782@@ -793,14 +793,14 @@ void __init setup_arch(char **cmdline_p) 14491@@ -790,14 +790,14 @@ void __init setup_arch(char **cmdline_p)
13783 14492
13784 if (!boot_params.hdr.root_flags) 14493 if (!boot_params.hdr.root_flags)
13785 root_mountflags &= ~MS_RDONLY; 14494 root_mountflags &= ~MS_RDONLY;
@@ -13799,9 +14508,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; 14508 data_resource.end = virt_to_phys(_edata)-1;
13800 bss_resource.start = virt_to_phys(&__bss_start); 14509 bss_resource.start = virt_to_phys(&__bss_start);
13801 bss_resource.end = virt_to_phys(&__bss_stop)-1; 14510 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 14511diff -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 14512--- 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 14513+++ linux-2.6.38.3/arch/x86/kernel/setup_percpu.c 2011-04-17 15:57:32.000000000 -0400
13805@@ -21,19 +21,17 @@ 14514@@ -21,19 +21,17 @@
13806 #include <asm/cpu.h> 14515 #include <asm/cpu.h>
13807 #include <asm/stackprotector.h> 14516 #include <asm/stackprotector.h>
@@ -13865,9 +14574,9 @@ diff -urNp linux-2.6.38.2/arch/x86/kernel/setup_percpu.c linux-2.6.38.2/arch/x86
13865 /* 14574 /*
13866 * Up to this point, the boot CPU has been using .init.data 14575 * Up to this point, the boot CPU has been using .init.data
13867 * area. Reload any changed state for the boot CPU. 14576 * 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 14577diff -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 14578--- 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 14579+++ 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 14580@@ -198,7 +198,7 @@ static unsigned long align_sigframe(unsi
13872 * Align the stack pointer according to the i386 ABI, 14581 * Align the stack pointer according to the i386 ABI,
13873 * i.e. so that on function entry ((sp + 4) & 15) == 0. 14582 * i.e. so that on function entry ((sp + 4) & 15) == 0.
@@ -13942,12 +14651,24 @@ diff -urNp linux-2.6.38.2/arch/x86/kernel/signal.c linux-2.6.38.2/arch/x86/kerne
13942 return; 14651 return;
13943 14652
13944 if (current_thread_info()->status & TS_RESTORE_SIGMASK) 14653 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 14654diff -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 14655--- 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 14656+++ 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: 14657@@ -773,17 +773,20 @@ static int __cpuinit do_boot_cpu(int api
13949 (unsigned long)task_stack_page(c_idle.idle) - 14658 set_idle_for_cpu(cpu, c_idle.idle);
13950 KERNEL_STACK_OFFSET + THREAD_SIZE; 14659 do_rest:
14660 per_cpu(current_task, cpu) = c_idle.idle;
14661+ per_cpu(current_tinfo, cpu) = &c_idle.idle->tinfo;
14662 #ifdef CONFIG_X86_32
14663 /* Stack for startup_32 can be just as for start_secondary onwards */
14664 irq_ctx_init(cpu);
14665 #else
14666 clear_tsk_thread_flag(c_idle.idle, TIF_FORK);
14667 initial_gs = per_cpu_offset(cpu);
14668- per_cpu(kernel_stack, cpu) =
14669- (unsigned long)task_stack_page(c_idle.idle) -
14670- KERNEL_STACK_OFFSET + THREAD_SIZE;
14671+ per_cpu(kernel_stack, cpu) = (unsigned long)task_stack_page(c_idle.idle) - 8 + THREAD_SIZE;
13951 #endif 14672 #endif
13952+ 14673+
13953+ pax_open_kernel(); 14674+ pax_open_kernel();
@@ -13957,7 +14678,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; 14678 initial_code = (unsigned long)start_secondary;
13958 stack_start = c_idle.idle->thread.sp; 14679 stack_start = c_idle.idle->thread.sp;
13959 14680
13960@@ -923,6 +927,12 @@ int __cpuinit native_cpu_up(unsigned int 14681@@ -923,6 +926,12 @@ int __cpuinit native_cpu_up(unsigned int
13961 14682
13962 per_cpu(cpu_state, cpu) = CPU_UP_PREPARE; 14683 per_cpu(cpu_state, cpu) = CPU_UP_PREPARE;
13963 14684
@@ -13970,9 +14691,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); 14691 err = do_boot_cpu(apicid, cpu);
13971 if (err) { 14692 if (err) {
13972 pr_debug("do_boot_cpu failed %d\n", err); 14693 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 14694diff -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 14695--- 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 14696+++ 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 14697@@ -27,10 +27,10 @@ unsigned long convert_ip_to_linear(struc
13977 struct desc_struct *desc; 14698 struct desc_struct *desc;
13978 unsigned long base; 14699 unsigned long base;
@@ -14015,17 +14736,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 */ 14736 /* 32-bit mode: register increment */
14016 return 0; 14737 return 0;
14017 /* 64-bit mode: REX prefix */ 14738 /* 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 14739diff -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 14740--- 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 14741+++ 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 @@ 14742@@ -1,3 +1,4 @@
14022+.section .rodata,"a",@progbits 14743+.section .rodata,"a",@progbits
14023 ENTRY(sys_call_table) 14744 ENTRY(sys_call_table)
14024 .long sys_restart_syscall /* 0 - old "setup()" system call, used for restarting */ 14745 .long sys_restart_syscall /* 0 - old "setup()" system call, used for restarting */
14025 .long sys_exit 14746 .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 14747diff -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 14748--- 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 14749+++ 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 @@ 14750@@ -24,17 +24,224 @@
14030 14751
14031 #include <asm/syscalls.h> 14752 #include <asm/syscalls.h>
@@ -14263,9 +14984,9 @@ diff -urNp linux-2.6.38.2/arch/x86/kernel/sys_i386_32.c linux-2.6.38.2/arch/x86/
14263+ 14984+
14264+ return addr; 14985+ return addr;
14265 } 14986 }
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 14987diff -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 14988--- 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 14989+++ 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: 14990@@ -32,8 +32,8 @@ out:
14270 return error; 14991 return error;
14271 } 14992 }
@@ -14403,9 +15124,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; 15124 mm->cached_hole_size = ~0UL;
14404 15125
14405 return addr; 15126 return addr;
14406diff -urNp linux-2.6.38.2/arch/x86/kernel/time.c linux-2.6.38.2/arch/x86/kernel/time.c 15127diff -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 15128--- 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 15129+++ linux-2.6.38.3/arch/x86/kernel/time.c 2011-04-17 15:57:32.000000000 -0400
14409@@ -22,17 +22,13 @@ 15130@@ -22,17 +22,13 @@
14410 #include <asm/hpet.h> 15131 #include <asm/hpet.h>
14411 #include <asm/time.h> 15132 #include <asm/time.h>
@@ -14444,9 +15165,9 @@ diff -urNp linux-2.6.38.2/arch/x86/kernel/time.c linux-2.6.38.2/arch/x86/kernel/
14444 } 15165 }
14445 return pc; 15166 return pc;
14446 } 15167 }
14447diff -urNp linux-2.6.38.2/arch/x86/kernel/tls.c linux-2.6.38.2/arch/x86/kernel/tls.c 15168diff -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 15169--- 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 15170+++ 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 15171@@ -85,6 +85,11 @@ int do_set_thread_area(struct task_struc
14451 if (idx < GDT_ENTRY_TLS_MIN || idx > GDT_ENTRY_TLS_MAX) 15172 if (idx < GDT_ENTRY_TLS_MIN || idx > GDT_ENTRY_TLS_MAX)
14452 return -EINVAL; 15173 return -EINVAL;
@@ -14459,9 +15180,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); 15180 set_tls_desc(p, idx, &info, 1);
14460 15181
14461 return 0; 15182 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 15183diff -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 15184--- 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 15185+++ linux-2.6.38.3/arch/x86/kernel/trampoline_32.S 2011-04-17 15:57:32.000000000 -0400
14465@@ -32,6 +32,12 @@ 15186@@ -32,6 +32,12 @@
14466 #include <asm/segment.h> 15187 #include <asm/segment.h>
14467 #include <asm/page_types.h> 15188 #include <asm/page_types.h>
@@ -14484,9 +15205,9 @@ diff -urNp linux-2.6.38.2/arch/x86/kernel/trampoline_32.S linux-2.6.38.2/arch/x8
14484 15205
14485 # These need to be in the same 64K segment as the above; 15206 # 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 15207 # 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 15208diff -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 15209--- 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 15210+++ 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: 15211@@ -91,7 +91,7 @@ startup_32:
14491 movl $__KERNEL_DS, %eax # Initialize the %ds segment register 15212 movl $__KERNEL_DS, %eax # Initialize the %ds segment register
14492 movl %eax, %ds 15213 movl %eax, %ds
@@ -14505,9 +15226,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 15226 .long tgdt - r_base
14506 .short 0 15227 .short 0
14507 .quad 0x00cf9b000000ffff # __KERNEL32_CS 15228 .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 15229diff -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 15230--- 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 15231+++ 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); 15232@@ -70,12 +70,6 @@ asmlinkage int system_call(void);
14512 15233
14513 /* Do we ignore FPU interrupts ? */ 15234 /* Do we ignore FPU interrupts ? */
@@ -14650,9 +15371,28 @@ diff -urNp linux-2.6.38.2/arch/x86/kernel/traps.c linux-2.6.38.2/arch/x86/kernel
14650 { 15371 {
14651 if (!fixup_exception(regs)) { 15372 if (!fixup_exception(regs)) {
14652 task->thread.error_code = error_code; 15373 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 15374@@ -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 15375 void __math_state_restore(void)
14655+++ linux-2.6.38.2/arch/x86/kernel/tsc.c 2011-03-21 18:31:35.000000000 -0400 15376 {
15377 struct thread_info *thread = current_thread_info();
15378- struct task_struct *tsk = thread->task;
15379+ struct task_struct *tsk = current;
15380
15381 /*
15382 * Paranoid restore. send a SIGSEGV if we fail to restore the state.
15383@@ -750,8 +779,7 @@ void __math_state_restore(void)
15384 */
15385 asmlinkage void math_state_restore(void)
15386 {
15387- struct thread_info *thread = current_thread_info();
15388- struct task_struct *tsk = thread->task;
15389+ struct task_struct *tsk = current;
15390
15391 if (!tsk_used_math(tsk)) {
15392 local_irq_enable();
15393diff -urNp linux-2.6.38.3/arch/x86/kernel/tsc.c linux-2.6.38.3/arch/x86/kernel/tsc.c
15394--- linux-2.6.38.3/arch/x86/kernel/tsc.c 2011-03-14 21:20:32.000000000 -0400
15395+++ 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 15396@@ -837,7 +837,7 @@ static struct dmi_system_id __initdata b
14657 DMI_MATCH(DMI_BOARD_NAME, "2635FA0"), 15397 DMI_MATCH(DMI_BOARD_NAME, "2635FA0"),
14658 }, 15398 },
@@ -14662,9 +15402,9 @@ diff -urNp linux-2.6.38.2/arch/x86/kernel/tsc.c linux-2.6.38.2/arch/x86/kernel/t
14662 }; 15402 };
14663 15403
14664 static void __init check_system_tsc_reliable(void) 15404 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 15405diff -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 15406--- 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 15407+++ linux-2.6.38.3/arch/x86/kernel/vm86_32.c 2011-04-17 15:57:32.000000000 -0400
14668@@ -41,6 +41,7 @@ 15408@@ -41,6 +41,7 @@
14669 #include <linux/ptrace.h> 15409 #include <linux/ptrace.h>
14670 #include <linux/audit.h> 15410 #include <linux/audit.h>
@@ -14729,9 +15469,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)) 15469 if (get_user(segoffs, intr_ptr))
14730 goto cannot_handle; 15470 goto cannot_handle;
14731 if ((segoffs >> 16) == BIOSSEG) 15471 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 15472diff -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 15473--- 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 15474+++ linux-2.6.38.3/arch/x86/kernel/vmlinux.lds.S 2011-04-17 15:57:32.000000000 -0400
14735@@ -26,6 +26,13 @@ 15475@@ -26,6 +26,13 @@
14736 #include <asm/page_types.h> 15476 #include <asm/page_types.h>
14737 #include <asm/cache.h> 15477 #include <asm/cache.h>
@@ -15028,9 +15768,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"); 15768 "kernel image bigger than KERNEL_IMAGE_SIZE");
15029 15769
15030 #ifdef CONFIG_SMP 15770 #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 15771diff -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 15772--- 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 15773+++ 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 15774@@ -80,6 +80,7 @@ void update_vsyscall(struct timespec *wa
15035 15775
15036 write_seqlock_irqsave(&vsyscall_gtod_data.lock, flags); 15776 write_seqlock_irqsave(&vsyscall_gtod_data.lock, flags);
@@ -15048,9 +15788,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]; 15788 p = tcache->blob[1];
15049 } else if (__vgetcpu_mode == VGETCPU_RDTSCP) { 15789 } else if (__vgetcpu_mode == VGETCPU_RDTSCP) {
15050 /* Load per CPU data from RDTSCP */ 15790 /* 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 15791diff -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 15792--- 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 15793+++ 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); 15794@@ -29,8 +29,6 @@ EXPORT_SYMBOL(__put_user_8);
15055 EXPORT_SYMBOL(copy_user_generic_string); 15795 EXPORT_SYMBOL(copy_user_generic_string);
15056 EXPORT_SYMBOL(copy_user_generic_unrolled); 15796 EXPORT_SYMBOL(copy_user_generic_unrolled);
@@ -15060,9 +15800,9 @@ diff -urNp linux-2.6.38.2/arch/x86/kernel/x8664_ksyms_64.c linux-2.6.38.2/arch/x
15060 15800
15061 EXPORT_SYMBOL(copy_page); 15801 EXPORT_SYMBOL(copy_page);
15062 EXPORT_SYMBOL(clear_page); 15802 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 15803diff -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 15804--- 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 15805+++ 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_ 15806@@ -130,7 +130,7 @@ int check_for_xstate(struct i387_fxsave_
15067 fx_sw_user->xstate_size > fx_sw_user->extended_size) 15807 fx_sw_user->xstate_size > fx_sw_user->extended_size)
15068 return -EINVAL; 15808 return -EINVAL;
@@ -15090,9 +15830,9 @@ diff -urNp linux-2.6.38.2/arch/x86/kernel/xsave.c linux-2.6.38.2/arch/x86/kernel
15090 buf); 15830 buf);
15091 if (unlikely(err)) { 15831 if (unlikely(err)) {
15092 /* 15832 /*
15093diff -urNp linux-2.6.38.2/arch/x86/kvm/emulate.c linux-2.6.38.2/arch/x86/kvm/emulate.c 15833diff -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 15834--- 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 15835+++ linux-2.6.38.3/arch/x86/kvm/emulate.c 2011-04-17 15:57:32.000000000 -0400
15096@@ -88,7 +88,7 @@ 15836@@ -88,7 +88,7 @@
15097 #define Src2ImmByte (2<<29) 15837 #define Src2ImmByte (2<<29)
15098 #define Src2One (3<<29) 15838 #define Src2One (3<<29)
@@ -15127,9 +15867,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) { \ 15867 switch ((_dst).bytes) { \
15128 case 1: \ 15868 case 1: \
15129 ____emulate_2op(_op,_src,_dst,_eflags,_bx,_by,"b",u8); \ 15869 ____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 15870diff -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 15871--- 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 15872+++ linux-2.6.38.3/arch/x86/kvm/lapic.c 2011-04-17 15:57:32.000000000 -0400
15133@@ -53,7 +53,7 @@ 15873@@ -53,7 +53,7 @@
15134 #define APIC_BUS_CYCLE_NS 1 15874 #define APIC_BUS_CYCLE_NS 1
15135 15875
@@ -15139,9 +15879,9 @@ diff -urNp linux-2.6.38.2/arch/x86/kvm/lapic.c linux-2.6.38.2/arch/x86/kvm/lapic
15139 15879
15140 #define APIC_LVT_NUM 6 15880 #define APIC_LVT_NUM 6
15141 /* 14 is the version for Xeon and Pentium 8.4.8*/ 15881 /* 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 15882diff -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 15883--- 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 15884+++ 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 * 15885@@ -3273,7 +3273,11 @@ static void reload_tss(struct kvm_vcpu *
15146 int cpu = raw_smp_processor_id(); 15886 int cpu = raw_smp_processor_id();
15147 15887
@@ -15163,9 +15903,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, 15903 .cpu_has_kvm_support = has_svm,
15164 .disabled_by_bios = is_disabled, 15904 .disabled_by_bios = is_disabled,
15165 .hardware_setup = svm_hardware_setup, 15905 .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 15906diff -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 15907--- 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 15908+++ 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) 15909@@ -725,7 +725,11 @@ static void reload_tss(void)
15170 struct desc_struct *descs; 15910 struct desc_struct *descs;
15171 15911
@@ -15244,9 +15984,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, 15984 .cpu_has_kvm_support = cpu_has_kvm_support,
15245 .disabled_by_bios = vmx_disabled_by_bios, 15985 .disabled_by_bios = vmx_disabled_by_bios,
15246 .hardware_setup = hardware_setup, 15986 .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 15987diff -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 15988--- 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 15989+++ 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 15990@@ -93,7 +93,7 @@ static void update_cr8_intercept(struct
15251 static int kvm_dev_ioctl_get_supported_cpuid(struct kvm_cpuid2 *cpuid, 15991 static int kvm_dev_ioctl_get_supported_cpuid(struct kvm_cpuid2 *cpuid,
15252 struct kvm_cpuid_entry2 __user *entries); 15992 struct kvm_cpuid_entry2 __user *entries);
@@ -15358,9 +16098,9 @@ diff -urNp linux-2.6.38.2/arch/x86/kvm/x86.c linux-2.6.38.2/arch/x86/kvm/x86.c
15358 16098
15359 if (kvm_x86_ops) { 16099 if (kvm_x86_ops) {
15360 printk(KERN_ERR "kvm: already loaded the other module\n"); 16100 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 16101diff -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 16102--- 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 16103+++ 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) 16104@@ -86,13 +86,23 @@ ENTRY(atomic64_\func\()_return_cx8)
15365 movl %edx, %ecx 16105 movl %edx, %ecx
15366 \ins\()l %esi, %ebx 16106 \ins\()l %esi, %ebx
@@ -15441,9 +16181,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 16181 LOCK_PREFIX
15442 cmpxchg8b (%esi) 16182 cmpxchg8b (%esi)
15443 jne 1b 16183 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 16184diff -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 16185--- 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 16186+++ linux-2.6.38.3/arch/x86/lib/checksum_32.S 2011-04-17 15:57:32.000000000 -0400
15447@@ -28,7 +28,8 @@ 16187@@ -28,7 +28,8 @@
15448 #include <linux/linkage.h> 16188 #include <linux/linkage.h>
15449 #include <asm/dwarf2.h> 16189 #include <asm/dwarf2.h>
@@ -15704,9 +16444,9 @@ diff -urNp linux-2.6.38.2/arch/x86/lib/checksum_32.S linux-2.6.38.2/arch/x86/lib
15704 16444
15705 #undef ROUND 16445 #undef ROUND
15706 #undef ROUND1 16446 #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 16447diff -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 16448--- 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 16449+++ 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) 16450@@ -43,7 +43,7 @@ ENDPROC(clear_page)
15711 16451
15712 #include <asm/cpufeature.h> 16452 #include <asm/cpufeature.h>
@@ -15716,9 +16456,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> */ 16456 1: .byte 0xeb /* jmp <disp8> */
15717 .byte (clear_page_c - clear_page) - (2f - 1b) /* offset */ 16457 .byte (clear_page_c - clear_page) - (2f - 1b) /* offset */
15718 2: 16458 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 16459diff -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 16460--- 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 16461+++ 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) 16462@@ -104,7 +104,7 @@ ENDPROC(copy_page)
15723 16463
15724 #include <asm/cpufeature.h> 16464 #include <asm/cpufeature.h>
@@ -15728,9 +16468,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> */ 16468 1: .byte 0xeb /* jmp <disp8> */
15729 .byte (copy_page_c - copy_page) - (2f - 1b) /* offset */ 16469 .byte (copy_page_c - copy_page) - (2f - 1b) /* offset */
15730 2: 16470 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 16471diff -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 16472--- 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 16473+++ 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 @@ 16474@@ -15,13 +15,14 @@
15735 #include <asm/asm-offsets.h> 16475 #include <asm/asm-offsets.h>
15736 #include <asm/thread_info.h> 16476 #include <asm/thread_info.h>
@@ -15787,9 +16527,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 16527 movl %edx,%ecx
15788 xorl %eax,%eax 16528 xorl %eax,%eax
15789 rep 16529 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 16530diff -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 16531--- 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 16532+++ 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 @@ 16533@@ -14,6 +14,7 @@
15794 #include <asm/current.h> 16534 #include <asm/current.h>
15795 #include <asm/asm-offsets.h> 16535 #include <asm/asm-offsets.h>
@@ -15814,9 +16554,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 16554 cmpl $8,%edx
15815 jb 20f /* less then 8 bytes, go to byte copy loop */ 16555 jb 20f /* less then 8 bytes, go to byte copy loop */
15816 ALIGN_DESTINATION 16556 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 16557diff -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 16558--- 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 16559+++ 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 _ 16560@@ -52,6 +52,8 @@ csum_partial_copy_from_user(const void _
15821 len -= 2; 16561 len -= 2;
15822 } 16562 }
@@ -15835,9 +16575,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, 16575 return csum_partial_copy_generic(src, (void __force *)dst,
15836 len, isum, NULL, errp); 16576 len, isum, NULL, errp);
15837 } 16577 }
15838diff -urNp linux-2.6.38.2/arch/x86/lib/getuser.S linux-2.6.38.2/arch/x86/lib/getuser.S 16578diff -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 16579--- 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 16580+++ linux-2.6.38.3/arch/x86/lib/getuser.S 2011-04-17 15:57:32.000000000 -0400
15841@@ -33,14 +33,35 @@ 16581@@ -33,14 +33,35 @@
15842 #include <asm/asm-offsets.h> 16582 #include <asm/asm-offsets.h>
15843 #include <asm/thread_info.h> 16583 #include <asm/thread_info.h>
@@ -15943,9 +16683,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 16683 4: movq -7(%_ASM_AX),%_ASM_DX
15944 xor %eax,%eax 16684 xor %eax,%eax
15945 ret 16685 ret
15946diff -urNp linux-2.6.38.2/arch/x86/lib/insn.c linux-2.6.38.2/arch/x86/lib/insn.c 16686diff -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 16687--- 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 16688+++ linux-2.6.38.3/arch/x86/lib/insn.c 2011-04-17 15:57:32.000000000 -0400
15949@@ -21,6 +21,11 @@ 16689@@ -21,6 +21,11 @@
15950 #include <linux/string.h> 16690 #include <linux/string.h>
15951 #include <asm/inat.h> 16691 #include <asm/inat.h>
@@ -15969,9 +16709,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; 16709 insn->x86_64 = x86_64 ? 1 : 0;
15970 insn->opnd_bytes = 4; 16710 insn->opnd_bytes = 4;
15971 if (x86_64) 16711 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 16712diff -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 16713--- 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 16714+++ 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 * 16715@@ -29,6 +29,7 @@ void *_mmx_memcpy(void *to, const void *
15976 { 16716 {
15977 void *p; 16717 void *p;
@@ -16287,9 +17027,9 @@ diff -urNp linux-2.6.38.2/arch/x86/lib/mmx_32.c linux-2.6.38.2/arch/x86/lib/mmx_
16287 17027
16288 from += 64; 17028 from += 64;
16289 to += 64; 17029 to += 64;
16290diff -urNp linux-2.6.38.2/arch/x86/lib/putuser.S linux-2.6.38.2/arch/x86/lib/putuser.S 17030diff -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 17031--- 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 17032+++ linux-2.6.38.3/arch/x86/lib/putuser.S 2011-04-17 15:57:32.000000000 -0400
16293@@ -15,7 +15,8 @@ 17033@@ -15,7 +15,8 @@
16294 #include <asm/thread_info.h> 17034 #include <asm/thread_info.h>
16295 #include <asm/errno.h> 17035 #include <asm/errno.h>
@@ -16427,9 +17167,9 @@ diff -urNp linux-2.6.38.2/arch/x86/lib/putuser.S linux-2.6.38.2/arch/x86/lib/put
16427 #endif 17167 #endif
16428 xor %eax,%eax 17168 xor %eax,%eax
16429 EXIT 17169 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 17170diff -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 17171--- 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 17172+++ 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 { \ 17173@@ -43,7 +43,7 @@ do { \
16434 __asm__ __volatile__( \ 17174 __asm__ __volatile__( \
16435 " testl %1,%1\n" \ 17175 " testl %1,%1\n" \
@@ -17049,9 +17789,9 @@ diff -urNp linux-2.6.38.2/arch/x86/lib/usercopy_32.c linux-2.6.38.2/arch/x86/lib
17049+} 17789+}
17050+EXPORT_SYMBOL(set_fs); 17790+EXPORT_SYMBOL(set_fs);
17051+#endif 17791+#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 17792diff -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 17793--- 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 17794+++ 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 17795@@ -42,6 +42,8 @@ long
17056 __strncpy_from_user(char *dst, const char __user *src, long count) 17796 __strncpy_from_user(char *dst, const char __user *src, long count)
17057 { 17797 {
@@ -17088,9 +17828,9 @@ diff -urNp linux-2.6.38.2/arch/x86/lib/usercopy_64.c linux-2.6.38.2/arch/x86/lib
17088 } 17828 }
17089 EXPORT_SYMBOL(copy_in_user); 17829 EXPORT_SYMBOL(copy_in_user);
17090 17830
17091diff -urNp linux-2.6.38.2/arch/x86/Makefile linux-2.6.38.2/arch/x86/Makefile 17831diff -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 17832--- 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 17833+++ linux-2.6.38.3/arch/x86/Makefile 2011-04-17 15:57:32.000000000 -0400
17094@@ -195,3 +195,12 @@ define archhelp 17834@@ -195,3 +195,12 @@ define archhelp
17095 echo ' FDARGS="..." arguments for the booted kernel' 17835 echo ' FDARGS="..." arguments for the booted kernel'
17096 echo ' FDINITRD=file initrd for the booted kernel' 17836 echo ' FDINITRD=file initrd for the booted kernel'
@@ -17104,9 +17844,9 @@ diff -urNp linux-2.6.38.2/arch/x86/Makefile linux-2.6.38.2/arch/x86/Makefile
17104+ 17844+
17105+archprepare: 17845+archprepare:
17106+ $(if $(LDFLAGS_BUILD_ID),,$(error $(OLD_LD))) 17846+ $(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 17847diff -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 17848--- 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 17849+++ linux-2.6.38.3/arch/x86/mm/extable.c 2011-04-17 15:57:32.000000000 -0400
17110@@ -1,14 +1,71 @@ 17850@@ -1,14 +1,71 @@
17111 #include <linux/module.h> 17851 #include <linux/module.h>
17112 #include <linux/spinlock.h> 17852 #include <linux/spinlock.h>
@@ -17180,9 +17920,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; 17920 extern u32 pnp_bios_fault_eip, pnp_bios_fault_esp;
17181 extern u32 pnp_bios_is_utter_crap; 17921 extern u32 pnp_bios_is_utter_crap;
17182 pnp_bios_is_utter_crap = 1; 17922 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 17923diff -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 17924--- 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 17925+++ linux-2.6.38.3/arch/x86/mm/fault.c 2011-04-17 15:57:32.000000000 -0400
17186@@ -12,10 +12,18 @@ 17926@@ -12,10 +12,18 @@
17187 #include <linux/mmiotrace.h> /* kmmio_handler, ... */ 17927 #include <linux/mmiotrace.h> /* kmmio_handler, ... */
17188 #include <linux/perf_event.h> /* perf_sw_event */ 17928 #include <linux/perf_event.h> /* perf_sw_event */
@@ -17852,9 +18592,9 @@ diff -urNp linux-2.6.38.2/arch/x86/mm/fault.c linux-2.6.38.2/arch/x86/mm/fault.c
17852+ 18592+
17853+ return ret ? -EFAULT : 0; 18593+ return ret ? -EFAULT : 0;
17854+} 18594+}
17855diff -urNp linux-2.6.38.2/arch/x86/mm/gup.c linux-2.6.38.2/arch/x86/mm/gup.c 18595diff -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 18596--- 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 18597+++ 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 18598@@ -263,7 +263,7 @@ int __get_user_pages_fast(unsigned long
17859 addr = start; 18599 addr = start;
17860 len = (unsigned long) nr_pages << PAGE_SHIFT; 18600 len = (unsigned long) nr_pages << PAGE_SHIFT;
@@ -17864,9 +18604,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))) 18604 (void __user *)start, len)))
17865 return 0; 18605 return 0;
17866 18606
17867diff -urNp linux-2.6.38.2/arch/x86/mm/highmem_32.c linux-2.6.38.2/arch/x86/mm/highmem_32.c 18607diff -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 18608--- 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 18609+++ 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 18610@@ -44,7 +44,10 @@ void *kmap_atomic_prot(struct page *page
17871 idx = type + KM_TYPE_NR*smp_processor_id(); 18611 idx = type + KM_TYPE_NR*smp_processor_id();
17872 vaddr = __fix_to_virt(FIX_KMAP_BEGIN + idx); 18612 vaddr = __fix_to_virt(FIX_KMAP_BEGIN + idx);
@@ -17878,9 +18618,9 @@ diff -urNp linux-2.6.38.2/arch/x86/mm/highmem_32.c linux-2.6.38.2/arch/x86/mm/hi
17878 18618
17879 return (void *)vaddr; 18619 return (void *)vaddr;
17880 } 18620 }
17881diff -urNp linux-2.6.38.2/arch/x86/mm/hugetlbpage.c linux-2.6.38.2/arch/x86/mm/hugetlbpage.c 18621diff -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 18622--- 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 18623+++ 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 18624@@ -266,13 +266,20 @@ static unsigned long hugetlb_get_unmappe
17885 struct hstate *h = hstate_file(file); 18625 struct hstate *h = hstate_file(file);
17886 struct mm_struct *mm = current->mm; 18626 struct mm_struct *mm = current->mm;
@@ -18088,9 +18828,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; 18828 return addr;
18089 } 18829 }
18090 if (mm->get_unmapped_area == arch_get_unmapped_area) 18830 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 18831diff -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 18832--- 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 18833+++ 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) 18834@@ -74,36 +74,6 @@ static __init void *alloc_low_page(void)
18095 } 18835 }
18096 18836
@@ -18365,10 +19105,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); 19105 set_pages_ro(virt_to_page(start), size >> PAGE_SHIFT);
18366 printk(KERN_INFO "Write protecting the kernel text: %luk\n", 19106 printk(KERN_INFO "Write protecting the kernel text: %luk\n",
18367 size >> 10); 19107 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 19108diff -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 19109--- 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 19110+++ 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 19111@@ -72,7 +72,7 @@ early_param("gbpages", parse_direct_gbpa
18372 * around without checking the pgd every time. 19112 * around without checking the pgd every time.
18373 */ 19113 */
18374 19114
@@ -18377,7 +19117,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); 19117 EXPORT_SYMBOL_GPL(__supported_pte_mask);
18378 19118
18379 int force_personality32; 19119 int force_personality32;
18380@@ -106,12 +106,22 @@ void sync_global_pgds(unsigned long star 19120@@ -105,12 +105,22 @@ void sync_global_pgds(unsigned long star
18381 19121
18382 for (address = start; address <= end; address += PGDIR_SIZE) { 19122 for (address = start; address <= end; address += PGDIR_SIZE) {
18383 const pgd_t *pgd_ref = pgd_offset_k(address); 19123 const pgd_t *pgd_ref = pgd_offset_k(address);
@@ -18400,7 +19140,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) { 19140 list_for_each_entry(page, &pgd_list, lru) {
18401 pgd_t *pgd; 19141 pgd_t *pgd;
18402 spinlock_t *pgt_lock; 19142 spinlock_t *pgt_lock;
18403@@ -120,6 +130,7 @@ void sync_global_pgds(unsigned long star 19143@@ -119,6 +129,7 @@ void sync_global_pgds(unsigned long star
18404 /* the pgt_lock only for Xen */ 19144 /* the pgt_lock only for Xen */
18405 pgt_lock = &pgd_page_get_mm(page)->page_table_lock; 19145 pgt_lock = &pgd_page_get_mm(page)->page_table_lock;
18406 spin_lock(pgt_lock); 19146 spin_lock(pgt_lock);
@@ -18408,7 +19148,7 @@ diff -urNp linux-2.6.38.2/arch/x86/mm/init_64.c linux-2.6.38.2/arch/x86/mm/init_
18408 19148
18409 if (pgd_none(*pgd)) 19149 if (pgd_none(*pgd))
18410 set_pgd(pgd, *pgd_ref); 19150 set_pgd(pgd, *pgd_ref);
18411@@ -127,7 +138,10 @@ void sync_global_pgds(unsigned long star 19151@@ -126,7 +137,10 @@ void sync_global_pgds(unsigned long star
18412 BUG_ON(pgd_page_vaddr(*pgd) 19152 BUG_ON(pgd_page_vaddr(*pgd)
18413 != pgd_page_vaddr(*pgd_ref)); 19153 != pgd_page_vaddr(*pgd_ref));
18414 19154
@@ -18419,7 +19159,7 @@ diff -urNp linux-2.6.38.2/arch/x86/mm/init_64.c linux-2.6.38.2/arch/x86/mm/init_
18419 } 19159 }
18420 spin_unlock(&pgd_lock); 19160 spin_unlock(&pgd_lock);
18421 } 19161 }
18422@@ -201,7 +215,9 @@ void set_pte_vaddr_pud(pud_t *pud_page, 19162@@ -200,7 +214,9 @@ void set_pte_vaddr_pud(pud_t *pud_page,
18423 pmd = fill_pmd(pud, vaddr); 19163 pmd = fill_pmd(pud, vaddr);
18424 pte = fill_pte(pmd, vaddr); 19164 pte = fill_pte(pmd, vaddr);
18425 19165
@@ -18429,7 +19169,7 @@ diff -urNp linux-2.6.38.2/arch/x86/mm/init_64.c linux-2.6.38.2/arch/x86/mm/init_
18429 19169
18430 /* 19170 /*
18431 * It's enough to flush this one mapping. 19171 * It's enough to flush this one mapping.
18432@@ -260,14 +276,12 @@ static void __init __init_extra_mapping( 19172@@ -259,14 +275,12 @@ static void __init __init_extra_mapping(
18433 pgd = pgd_offset_k((unsigned long)__va(phys)); 19173 pgd = pgd_offset_k((unsigned long)__va(phys));
18434 if (pgd_none(*pgd)) { 19174 if (pgd_none(*pgd)) {
18435 pud = (pud_t *) spp_getpage(); 19175 pud = (pud_t *) spp_getpage();
@@ -18446,7 +19186,7 @@ diff -urNp linux-2.6.38.2/arch/x86/mm/init_64.c linux-2.6.38.2/arch/x86/mm/init_
18446 } 19186 }
18447 pmd = pmd_offset(pud, phys); 19187 pmd = pmd_offset(pud, phys);
18448 BUG_ON(!pmd_none(*pmd)); 19188 BUG_ON(!pmd_none(*pmd));
18449@@ -707,6 +721,12 @@ void __init mem_init(void) 19189@@ -706,6 +720,12 @@ void __init mem_init(void)
18450 19190
18451 pci_iommu_alloc(); 19191 pci_iommu_alloc();
18452 19192
@@ -18459,7 +19199,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 */ 19199 /* clear_bss() already clear the empty_zero_page */
18460 19200
18461 reservedpages = 0; 19201 reservedpages = 0;
18462@@ -867,8 +887,8 @@ int kern_addr_valid(unsigned long addr) 19202@@ -866,8 +886,8 @@ int kern_addr_valid(unsigned long addr)
18463 static struct vm_area_struct gate_vma = { 19203 static struct vm_area_struct gate_vma = {
18464 .vm_start = VSYSCALL_START, 19204 .vm_start = VSYSCALL_START,
18465 .vm_end = VSYSCALL_START + (VSYSCALL_MAPPED_PAGES * PAGE_SIZE), 19205 .vm_end = VSYSCALL_START + (VSYSCALL_MAPPED_PAGES * PAGE_SIZE),
@@ -18470,7 +19210,7 @@ diff -urNp linux-2.6.38.2/arch/x86/mm/init_64.c linux-2.6.38.2/arch/x86/mm/init_
18470 }; 19210 };
18471 19211
18472 struct vm_area_struct *get_gate_vma(struct task_struct *tsk) 19212 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 19213@@ -901,7 +921,7 @@ int in_gate_area_no_task(unsigned long a
18474 19214
18475 const char *arch_vma_name(struct vm_area_struct *vma) 19215 const char *arch_vma_name(struct vm_area_struct *vma)
18476 { 19216 {
@@ -18479,9 +19219,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]"; 19219 return "[vdso]";
18480 if (vma == &gate_vma) 19220 if (vma == &gate_vma)
18481 return "[vsyscall]"; 19221 return "[vsyscall]";
18482diff -urNp linux-2.6.38.2/arch/x86/mm/init.c linux-2.6.38.2/arch/x86/mm/init.c 19222diff -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 19223--- 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 19224+++ 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 19225@@ -72,11 +72,7 @@ static void __init find_early_table_spac
18486 * cause a hotspot and fill up ZONE_DMA. The page tables 19226 * cause a hotspot and fill up ZONE_DMA. The page tables
18487 * need roughly 0.5KB per GB. 19227 * need roughly 0.5KB per GB.
@@ -18495,22 +19235,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, 19235 base = memblock_find_in_range(start, max_pfn_mapped<<PAGE_SHIFT,
18496 tables, PAGE_SIZE); 19236 tables, PAGE_SIZE);
18497 if (base == MEMBLOCK_ERROR) 19237 if (base == MEMBLOCK_ERROR)
18498@@ -304,7 +300,13 @@ unsigned long __init_refok init_memory_m 19238@@ -323,7 +319,16 @@ unsigned long __init_refok init_memory_m
18499 */ 19239 */
18500 int devmem_is_allowed(unsigned long pagenr) 19240 int devmem_is_allowed(unsigned long pagenr)
18501 { 19241 {
18502- if (pagenr <= 256) 19242- if (pagenr <= 256)
19243+#ifndef CONFIG_GRKERNSEC_KMEM
18503+ if (!pagenr) 19244+ if (!pagenr)
18504+ return 1; 19245+ return 1;
18505+#ifdef CONFIG_VM86 19246+#ifdef CONFIG_VM86
18506+ if (pagenr < (ISA_START_ADDRESS >> PAGE_SHIFT)) 19247+ if (pagenr < (ISA_START_ADDRESS >> PAGE_SHIFT))
18507+ return 1; 19248+ return 1;
18508+#endif 19249+#endif
19250+#endif
19251+
18509+ if ((ISA_START_ADDRESS >> PAGE_SHIFT) <= pagenr && pagenr < (ISA_END_ADDRESS >> PAGE_SHIFT)) 19252+ if ((ISA_START_ADDRESS >> PAGE_SHIFT) <= pagenr && pagenr < (ISA_END_ADDRESS >> PAGE_SHIFT))
18510 return 1; 19253 return 1;
18511 if (iomem_is_exclusive(pagenr << PAGE_SHIFT)) 19254 if (iomem_is_exclusive(pagenr << PAGE_SHIFT))
18512 return 0; 19255 return 0;
18513@@ -364,6 +366,86 @@ void free_init_pages(char *what, unsigne 19256@@ -383,6 +388,86 @@ void free_init_pages(char *what, unsigne
18514 19257
18515 void free_initmem(void) 19258 void free_initmem(void)
18516 { 19259 {
@@ -18597,9 +19340,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", 19340 free_init_pages("unused kernel memory",
18598 (unsigned long)(&__init_begin), 19341 (unsigned long)(&__init_begin),
18599 (unsigned long)(&__init_end)); 19342 (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 19343diff -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 19344--- 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 19345+++ 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 19346@@ -64,7 +64,11 @@ void *kmap_atomic_prot_pfn(unsigned long
18604 type = kmap_atomic_idx_push(); 19347 type = kmap_atomic_idx_push();
18605 idx = type + KM_TYPE_NR * smp_processor_id(); 19348 idx = type + KM_TYPE_NR * smp_processor_id();
@@ -18612,9 +19355,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(); 19355 arch_flush_lazy_mmu_mode();
18613 19356
18614 return (void *)vaddr; 19357 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 19358diff -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 19359--- 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 19360+++ 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 19361@@ -104,7 +104,7 @@ static void __iomem *__ioremap_caller(re
18619 for (pfn = phys_addr >> PAGE_SHIFT; pfn <= last_pfn; pfn++) { 19362 for (pfn = phys_addr >> PAGE_SHIFT; pfn <= last_pfn; pfn++) {
18620 int is_ram = page_is_ram(pfn); 19363 int is_ram = page_is_ram(pfn);
@@ -18643,9 +19386,9 @@ diff -urNp linux-2.6.38.2/arch/x86/mm/ioremap.c linux-2.6.38.2/arch/x86/mm/iorem
18643 19386
18644 /* 19387 /*
18645 * The boot-ioremap range spans multiple pmds, for which 19388 * 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 19389diff -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 19390--- 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 19391+++ 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 19392@@ -622,9 +622,9 @@ bool kmemcheck_fault(struct pt_regs *reg
18650 * memory (e.g. tracked pages)? For now, we need this to avoid 19393 * memory (e.g. tracked pages)? For now, we need this to avoid
18651 * invoking kmemcheck for PnP BIOS calls. 19394 * invoking kmemcheck for PnP BIOS calls.
@@ -18658,9 +19401,9 @@ diff -urNp linux-2.6.38.2/arch/x86/mm/kmemcheck/kmemcheck.c linux-2.6.38.2/arch/
18658 return false; 19401 return false;
18659 19402
18660 pte = kmemcheck_pte_lookup(address); 19403 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 19404diff -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 19405--- 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 19406+++ 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 19407@@ -49,7 +49,7 @@ static unsigned int stack_maxrandom_size
18665 * Leave an at least ~128 MB hole with possible stack randomization. 19408 * Leave an at least ~128 MB hole with possible stack randomization.
18666 */ 19409 */
@@ -18742,9 +19485,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; 19485 mm->get_unmapped_area = arch_get_unmapped_area_topdown;
18743 mm->unmap_area = arch_unmap_area_topdown; 19486 mm->unmap_area = arch_unmap_area_topdown;
18744 } 19487 }
18745diff -urNp linux-2.6.38.2/arch/x86/mm/numa_32.c linux-2.6.38.2/arch/x86/mm/numa_32.c 19488diff -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 19489--- 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 19490+++ 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 19491@@ -99,7 +99,6 @@ unsigned long node_memmap_size_bytes(int
18749 } 19492 }
18750 #endif 19493 #endif
@@ -18753,9 +19496,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; 19496 extern unsigned long highend_pfn, highstart_pfn;
18754 19497
18755 #define LARGE_PAGE_BYTES (PTRS_PER_PTE * PAGE_SIZE) 19498 #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 19499diff -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 19500--- 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 19501+++ 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 19502@@ -261,7 +261,7 @@ static inline pgprot_t static_protection
18760 */ 19503 */
18761 #ifdef CONFIG_PCI_BIOS 19504 #ifdef CONFIG_PCI_BIOS
@@ -18840,9 +19583,9 @@ diff -urNp linux-2.6.38.2/arch/x86/mm/pageattr.c linux-2.6.38.2/arch/x86/mm/page
18840 } 19583 }
18841 19584
18842 static int 19585 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 19586diff -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 19587--- 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 19588+++ 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 { 19589@@ -36,7 +36,7 @@ enum {
18847 19590
18848 static int pte_testbit(pte_t pte) 19591 static int pte_testbit(pte_t pte)
@@ -18852,9 +19595,9 @@ diff -urNp linux-2.6.38.2/arch/x86/mm/pageattr-test.c linux-2.6.38.2/arch/x86/mm
18852 } 19595 }
18853 19596
18854 struct split_state { 19597 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 19598diff -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 19599--- 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 19600+++ 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) 19601@@ -361,7 +361,7 @@ int free_memtype(u64 start, u64 end)
18859 19602
18860 if (!entry) { 19603 if (!entry) {
@@ -18902,9 +19645,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), 19645 cattr_name(want_flags),
18903 (unsigned long long)paddr, 19646 (unsigned long long)paddr,
18904 (unsigned long long)(paddr + size), 19647 (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 19648diff -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 19649--- 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 19650+++ 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, 19651@@ -48,10 +48,13 @@ void set_pte_vaddr(unsigned long vaddr,
18909 return; 19652 return;
18910 } 19653 }
@@ -18919,9 +19662,9 @@ diff -urNp linux-2.6.38.2/arch/x86/mm/pgtable_32.c linux-2.6.38.2/arch/x86/mm/pg
18919 19662
18920 /* 19663 /*
18921 * It's enough to flush this one mapping. 19664 * 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 19665diff -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 19666--- 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 19667+++ 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 19668@@ -84,9 +84,58 @@ static inline void pgd_list_del(pgd_t *p
18926 list_del(&page->lru); 19669 list_del(&page->lru);
18927 } 19670 }
@@ -19173,9 +19916,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); 19916 pgd_dtor(pgd);
19174 paravirt_pgd_free(mm, pgd); 19917 paravirt_pgd_free(mm, pgd);
19175 free_page((unsigned long)pgd); 19918 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 19919diff -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 19920--- 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 19921+++ linux-2.6.38.3/arch/x86/mm/setup_nx.c 2011-04-17 15:57:32.000000000 -0400
19179@@ -5,8 +5,10 @@ 19922@@ -5,8 +5,10 @@
19180 #include <asm/pgtable.h> 19923 #include <asm/pgtable.h>
19181 #include <asm/proto.h> 19924 #include <asm/proto.h>
@@ -19205,9 +19948,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; 19948 __supported_pte_mask &= ~_PAGE_NX;
19206 } 19949 }
19207 19950
19208diff -urNp linux-2.6.38.2/arch/x86/mm/tlb.c linux-2.6.38.2/arch/x86/mm/tlb.c 19951diff -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 19952--- 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 19953+++ linux-2.6.38.3/arch/x86/mm/tlb.c 2011-04-17 15:57:32.000000000 -0400
19211@@ -14,7 +14,7 @@ 19954@@ -14,7 +14,7 @@
19212 #include <asm/uv/uv.h> 19955 #include <asm/uv/uv.h>
19213 19956
@@ -19229,9 +19972,9 @@ diff -urNp linux-2.6.38.2/arch/x86/mm/tlb.c linux-2.6.38.2/arch/x86/mm/tlb.c
19229 } 19972 }
19230 EXPORT_SYMBOL_GPL(leave_mm); 19973 EXPORT_SYMBOL_GPL(leave_mm);
19231 19974
19232diff -urNp linux-2.6.38.2/arch/x86/oprofile/backtrace.c linux-2.6.38.2/arch/x86/oprofile/backtrace.c 19975diff -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 19976--- 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 19977+++ 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 19978@@ -57,7 +57,7 @@ dump_user_backtrace_32(struct stack_fram
19236 struct stack_frame_ia32 *fp; 19979 struct stack_frame_ia32 *fp;
19237 19980
@@ -19250,9 +19993,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); 19993 unsigned long stack = kernel_stack_pointer(regs);
19251 if (depth) 19994 if (depth)
19252 dump_trace(NULL, regs, (unsigned long *)stack, 19995 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 19996diff -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 19997--- 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 19998+++ 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 19999@@ -50,7 +50,7 @@ static inline void setup_num_counters(vo
19257 #endif 20000 #endif
19258 } 20001 }
@@ -19262,9 +20005,9 @@ diff -urNp linux-2.6.38.2/arch/x86/oprofile/op_model_p4.c linux-2.6.38.2/arch/x8
19262 { 20005 {
19263 #ifdef CONFIG_SMP 20006 #ifdef CONFIG_SMP
19264 return smp_num_siblings == 2 ? 2 : 1; 20007 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 20008diff -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 20009--- 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 20010+++ 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 20011@@ -302,7 +302,7 @@ static int ce4100_conf_write(unsigned in
19269 return pci_direct_conf1.write(seg, bus, devfn, reg, len, value); 20012 return pci_direct_conf1.write(seg, bus, devfn, reg, len, value);
19270 } 20013 }
@@ -19274,9 +20017,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, 20017 .read = ce4100_conf_read,
19275 .write = ce4100_conf_write, 20018 .write = ce4100_conf_write,
19276 }; 20019 };
19277diff -urNp linux-2.6.38.2/arch/x86/pci/common.c linux-2.6.38.2/arch/x86/pci/common.c 20020diff -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 20021--- 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 20022+++ 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; 20023@@ -33,8 +33,8 @@ int noioapicreroute = 1;
19281 int pcibios_last_bus = -1; 20024 int pcibios_last_bus = -1;
19282 unsigned long pirq_table_addr; 20025 unsigned long pirq_table_addr;
@@ -19297,9 +20040,9 @@ diff -urNp linux-2.6.38.2/arch/x86/pci/common.c linux-2.6.38.2/arch/x86/pci/comm
19297 }; 20040 };
19298 20041
19299 void __init dmi_check_pciprobe(void) 20042 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 20043diff -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 20044--- 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 20045+++ 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 20046@@ -79,7 +79,7 @@ static int pci_conf1_write(unsigned int
19304 20047
19305 #undef PCI_CONF1_ADDRESS 20048 #undef PCI_CONF1_ADDRESS
@@ -19327,9 +20070,9 @@ diff -urNp linux-2.6.38.2/arch/x86/pci/direct.c linux-2.6.38.2/arch/x86/pci/dire
19327 { 20070 {
19328 u32 x = 0; 20071 u32 x = 0;
19329 int year, devfn; 20072 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 20073diff -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 20074--- 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 20075+++ 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 20076@@ -364,7 +364,7 @@ static const struct dmi_system_id __devi
19334 DMI_MATCH(DMI_PRODUCT_NAME, "MS-6702E"), 20077 DMI_MATCH(DMI_PRODUCT_NAME, "MS-6702E"),
19335 }, 20078 },
@@ -19348,9 +20091,9 @@ diff -urNp linux-2.6.38.2/arch/x86/pci/fixup.c linux-2.6.38.2/arch/x86/pci/fixup
19348 }; 20091 };
19349 20092
19350 static void __devinit pci_pre_fixup_toshiba_ohci1394(struct pci_dev *dev) 20093 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 20094diff -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 20095--- 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 20096+++ 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 20097@@ -542,7 +542,7 @@ static __init int intel_router_probe(str
19355 static struct pci_device_id __initdata pirq_440gx[] = { 20098 static struct pci_device_id __initdata pirq_440gx[] = {
19356 { PCI_DEVICE(PCI_VENDOR_ID_INTEL, PCI_DEVICE_ID_INTEL_82443GX_0) }, 20099 { PCI_DEVICE(PCI_VENDOR_ID_INTEL, PCI_DEVICE_ID_INTEL_82443GX_0) },
@@ -19369,9 +20112,9 @@ diff -urNp linux-2.6.38.2/arch/x86/pci/irq.c linux-2.6.38.2/arch/x86/pci/irq.c
19369 }; 20112 };
19370 20113
19371 void __init pcibios_irq_init(void) 20114 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 20115diff -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 20116--- 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 20117+++ 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 20118@@ -117,7 +117,7 @@ static int pci_mmcfg_write(unsigned int
19376 return 0; 20119 return 0;
19377 } 20120 }
@@ -19381,9 +20124,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, 20124 .read = pci_mmcfg_read,
19382 .write = pci_mmcfg_write, 20125 .write = pci_mmcfg_write,
19383 }; 20126 };
19384diff -urNp linux-2.6.38.2/arch/x86/pci/mmconfig_64.c linux-2.6.38.2/arch/x86/pci/mmconfig_64.c 20127diff -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 20128--- 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 20129+++ 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 20130@@ -81,7 +81,7 @@ static int pci_mmcfg_write(unsigned int
19388 return 0; 20131 return 0;
19389 } 20132 }
@@ -19393,9 +20136,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, 20136 .read = pci_mmcfg_read,
19394 .write = pci_mmcfg_write, 20137 .write = pci_mmcfg_write,
19395 }; 20138 };
19396diff -urNp linux-2.6.38.2/arch/x86/pci/numaq_32.c linux-2.6.38.2/arch/x86/pci/numaq_32.c 20139diff -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 20140--- 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 20141+++ 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 20142@@ -108,7 +108,7 @@ static int pci_conf1_mq_write(unsigned i
19400 20143
19401 #undef PCI_CONF1_MQ_ADDRESS 20144 #undef PCI_CONF1_MQ_ADDRESS
@@ -19405,9 +20148,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, 20148 .read = pci_conf1_mq_read,
19406 .write = pci_conf1_mq_write 20149 .write = pci_conf1_mq_write
19407 }; 20150 };
19408diff -urNp linux-2.6.38.2/arch/x86/pci/olpc.c linux-2.6.38.2/arch/x86/pci/olpc.c 20151diff -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 20152--- 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 20153+++ 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 20154@@ -297,7 +297,7 @@ static int pci_olpc_write(unsigned int s
19412 return 0; 20155 return 0;
19413 } 20156 }
@@ -19417,9 +20160,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, 20160 .read = pci_olpc_read,
19418 .write = pci_olpc_write, 20161 .write = pci_olpc_write,
19419 }; 20162 };
19420diff -urNp linux-2.6.38.2/arch/x86/pci/pcbios.c linux-2.6.38.2/arch/x86/pci/pcbios.c 20163diff -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 20164--- 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 20165+++ 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 { 20166@@ -79,50 +79,93 @@ union bios32 {
19424 static struct { 20167 static struct {
19425 unsigned long address; 20168 unsigned long address;
@@ -19742,9 +20485,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); 20485 return !(ret & 0xff00);
19743 } 20486 }
19744 EXPORT_SYMBOL(pcibios_set_irq_routing); 20487 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 20488diff -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 20489--- 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 20490+++ 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 @@ 20491@@ -38,70 +38,37 @@
19749 */ 20492 */
19750 20493
@@ -19825,9 +20568,9 @@ diff -urNp linux-2.6.38.2/arch/x86/platform/efi/efi_32.c linux-2.6.38.2/arch/x86
19825 20568
19826 /* 20569 /*
19827 * After the lock is released, the original page table is restored. 20570 * 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 20571diff -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 20572--- 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 20573+++ 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 @@ 20574@@ -6,6 +6,7 @@
19832 */ 20575 */
19833 20576
@@ -19926,9 +20669,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: 20669 saved_return_addr:
19927 .long 0 20670 .long 0
19928 efi_rt_function_ptr: 20671 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 20672diff -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 20673--- 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 20674+++ 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) 20675@@ -130,7 +130,7 @@ static void do_fpu_end(void)
19933 static void fix_processor_context(void) 20676 static void fix_processor_context(void)
19934 { 20677 {
@@ -19948,21 +20691,21 @@ diff -urNp linux-2.6.38.2/arch/x86/power/cpu.c linux-2.6.38.2/arch/x86/power/cpu
19948 20691
19949 syscall_init(); /* This sets MSR_*STAR and related */ 20692 syscall_init(); /* This sets MSR_*STAR and related */
19950 #endif 20693 #endif
19951diff -urNp linux-2.6.38.2/arch/x86/vdso/Makefile linux-2.6.38.2/arch/x86/vdso/Makefile 20694diff -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 20695--- 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 20696+++ 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 $@ 20697@@ -123,7 +123,7 @@ quiet_cmd_vdso = VDSO $@
19955 -Wl,-T,$(filter %.lds,$^) $(filter %.o,$^) && \ 20698 -Wl,-T,$(filter %.lds,$^) $(filter %.o,$^) && \
19956 sh $(srctree)/$(src)/checkundef.sh '$(NM)' '$@' 20699 sh $(srctree)/$(src)/checkundef.sh '$(NM)' '$@'
19957 20700
19958-VDSO_LDFLAGS = -fPIC -shared $(call cc-ldoption, -Wl$(comma)--hash-style=sysv) 20701-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) 20702+VDSO_LDFLAGS = -fPIC -shared -Wl,--no-undefined $(call cc-ldoption, -Wl$(comma)--hash-style=sysv)
19960 GCOV_PROFILE := n 20703 GCOV_PROFILE := n
19961 20704
19962 # 20705 #
19963diff -urNp linux-2.6.38.2/arch/x86/vdso/vclock_gettime.c linux-2.6.38.2/arch/x86/vdso/vclock_gettime.c 20706diff -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 20707--- 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 20708+++ linux-2.6.38.3/arch/x86/vdso/vclock_gettime.c 2011-04-17 15:57:32.000000000 -0400
19966@@ -22,24 +22,48 @@ 20709@@ -22,24 +22,48 @@
19967 #include <asm/hpet.h> 20710 #include <asm/hpet.h>
19968 #include <asm/unistd.h> 20711 #include <asm/unistd.h>
@@ -20061,9 +20804,9 @@ diff -urNp linux-2.6.38.2/arch/x86/vdso/vclock_gettime.c linux-2.6.38.2/arch/x86
20061 } 20804 }
20062 int gettimeofday(struct timeval *, struct timezone *) 20805 int gettimeofday(struct timeval *, struct timezone *)
20063 __attribute__((weak, alias("__vdso_gettimeofday"))); 20806 __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 20807diff -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 20808--- 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 20809+++ linux-2.6.38.3/arch/x86/vdso/vdso32-setup.c 2011-04-17 15:57:32.000000000 -0400
20067@@ -25,6 +25,7 @@ 20810@@ -25,6 +25,7 @@
20068 #include <asm/tlbflush.h> 20811 #include <asm/tlbflush.h>
20069 #include <asm/vdso.h> 20812 #include <asm/vdso.h>
@@ -20146,9 +20889,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; 20889 return &gate_vma;
20147 return NULL; 20890 return NULL;
20148 } 20891 }
20149diff -urNp linux-2.6.38.2/arch/x86/vdso/vdso.lds.S linux-2.6.38.2/arch/x86/vdso/vdso.lds.S 20892diff -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 20893--- 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 20894+++ 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; 20895@@ -35,3 +35,9 @@ VDSO64_PRELINK = VDSO_PRELINK;
20153 #define VEXTERN(x) VDSO64_ ## x = vdso_ ## x; 20896 #define VEXTERN(x) VDSO64_ ## x = vdso_ ## x;
20154 #include "vextern.h" 20897 #include "vextern.h"
@@ -20159,9 +20902,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) 20902+VEXTERN(fallback_time)
20160+VEXTERN(getcpu) 20903+VEXTERN(getcpu)
20161+#undef VEXTERN 20904+#undef VEXTERN
20162diff -urNp linux-2.6.38.2/arch/x86/vdso/vextern.h linux-2.6.38.2/arch/x86/vdso/vextern.h 20905diff -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 20906--- 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 20907+++ linux-2.6.38.3/arch/x86/vdso/vextern.h 2011-04-17 15:57:32.000000000 -0400
20165@@ -11,6 +11,5 @@ 20908@@ -11,6 +11,5 @@
20166 put into vextern.h and be referenced as a pointer with vdso prefix. 20909 put into vextern.h and be referenced as a pointer with vdso prefix.
20167 The main kernel later fills in the values. */ 20910 The main kernel later fills in the values. */
@@ -20169,9 +20912,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) 20912-VEXTERN(jiffies)
20170 VEXTERN(vgetcpu_mode) 20913 VEXTERN(vgetcpu_mode)
20171 VEXTERN(vsyscall_gtod_data) 20914 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 20915diff -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 20916--- 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 20917+++ 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) 20918@@ -58,7 +58,7 @@ static int __init init_vdso_vars(void)
20176 if (!vbase) 20919 if (!vbase)
20177 goto oom; 20920 goto oom;
@@ -20210,9 +20953,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; 20953- return 0;
20211-} 20954-}
20212-__setup("vdso=", vdso_setup); 20955-__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 20956diff -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 20957--- 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 20958+++ 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); 20959@@ -85,8 +85,6 @@ EXPORT_SYMBOL_GPL(xen_start_info);
20217 20960
20218 struct shared_info xen_dummy_shared_info; 20961 struct shared_info xen_dummy_shared_info;
@@ -20255,9 +20998,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(); 20998 xen_smp_init();
20256 20999
20257 #ifdef CONFIG_ACPI_NUMA 21000 #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 21001diff -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 21002--- 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 21003+++ 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 21004@@ -1721,6 +1721,8 @@ __init pgd_t *xen_setup_kernel_pagetable
20262 convert_pfn_mfn(init_level4_pgt); 21005 convert_pfn_mfn(init_level4_pgt);
20263 convert_pfn_mfn(level3_ident_pgt); 21006 convert_pfn_mfn(level3_ident_pgt);
@@ -20278,9 +21021,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); 21021 set_page_prot(level2_kernel_pgt, PAGE_KERNEL_RO);
20279 set_page_prot(level2_fixmap_pgt, PAGE_KERNEL_RO); 21022 set_page_prot(level2_fixmap_pgt, PAGE_KERNEL_RO);
20280 21023
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 21024diff -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 21025--- 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 21026+++ 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 @@ 21027@@ -10,7 +10,7 @@
20285 21028
20286 int xen_swiotlb __read_mostly; 21029 int xen_swiotlb __read_mostly;
@@ -20290,9 +21033,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, 21033 .mapping_error = xen_swiotlb_dma_mapping_error,
20291 .alloc_coherent = xen_swiotlb_alloc_coherent, 21034 .alloc_coherent = xen_swiotlb_alloc_coherent,
20292 .free_coherent = xen_swiotlb_free_coherent, 21035 .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 21036diff -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 21037--- 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 21038+++ 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_ 21039@@ -194,11 +194,6 @@ static void __init xen_smp_prepare_boot_
20297 { 21040 {
20298 BUG_ON(smp_processor_id() != 0); 21041 BUG_ON(smp_processor_id() != 0);
@@ -20321,9 +21064,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 21064 #else
20322 ctxt->gs_base_kernel = per_cpu_offset(cpu); 21065 ctxt->gs_base_kernel = per_cpu_offset(cpu);
20323 #endif 21066 #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 21067@@ -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 21068 int rc;
20326+++ linux-2.6.38.2/arch/x86/xen/xen-head.S 2011-03-21 18:31:35.000000000 -0400 21069
21070 per_cpu(current_task, cpu) = idle;
21071+ per_cpu(current_tinfo, cpu) = &idle->tinfo;
21072 #ifdef CONFIG_X86_32
21073 irq_ctx_init(cpu);
21074 #else
21075 clear_tsk_thread_flag(idle, TIF_FORK);
21076- per_cpu(kernel_stack, cpu) =
21077- (unsigned long)task_stack_page(idle) -
21078- KERNEL_STACK_OFFSET + THREAD_SIZE;
21079+ per_cpu(kernel_stack, cpu) = (unsigned long)task_stack_page(idle) - 8 + THREAD_SIZE;
21080 #endif
21081 xen_setup_runstate_info(cpu);
21082 xen_setup_timer(cpu);
21083diff -urNp linux-2.6.38.3/arch/x86/xen/xen-head.S linux-2.6.38.3/arch/x86/xen/xen-head.S
21084--- linux-2.6.38.3/arch/x86/xen/xen-head.S 2011-03-14 21:20:32.000000000 -0400
21085+++ 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) 21086@@ -19,6 +19,17 @@ ENTRY(startup_xen)
20328 #ifdef CONFIG_X86_32 21087 #ifdef CONFIG_X86_32
20329 mov %esi,xen_start_info 21088 mov %esi,xen_start_info
@@ -20342,9 +21101,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 21101 #else
20343 mov %rsi,xen_start_info 21102 mov %rsi,xen_start_info
20344 mov $init_thread_union+THREAD_SIZE,%rsp 21103 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 21104diff -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 21105--- 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 21106+++ linux-2.6.38.3/arch/x86/xen/xen-ops.h 2011-04-17 15:57:32.000000000 -0400
20348@@ -10,8 +10,6 @@ 21107@@ -10,8 +10,6 @@
20349 extern const char xen_hypervisor_callback[]; 21108 extern const char xen_hypervisor_callback[];
20350 extern const char xen_failsafe_callback[]; 21109 extern const char xen_failsafe_callback[];
@@ -20354,9 +21113,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; 21113 struct trap_info;
20355 void xen_copy_trap_info(struct trap_info *traps); 21114 void xen_copy_trap_info(struct trap_info *traps);
20356 21115
20357diff -urNp linux-2.6.38.2/block/blk-iopoll.c linux-2.6.38.2/block/blk-iopoll.c 21116diff -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 21117--- 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 21118+++ 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 21119@@ -77,7 +77,7 @@ void blk_iopoll_complete(struct blk_iopo
20361 } 21120 }
20362 EXPORT_SYMBOL(blk_iopoll_complete); 21121 EXPORT_SYMBOL(blk_iopoll_complete);
@@ -20366,9 +21125,9 @@ diff -urNp linux-2.6.38.2/block/blk-iopoll.c linux-2.6.38.2/block/blk-iopoll.c
20366 { 21125 {
20367 struct list_head *list = &__get_cpu_var(blk_cpu_iopoll); 21126 struct list_head *list = &__get_cpu_var(blk_cpu_iopoll);
20368 int rearm = 0, budget = blk_iopoll_budget; 21127 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 21128diff -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 21129--- 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 21130+++ 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 21131@@ -301,7 +301,7 @@ int blk_rq_map_kern(struct request_queue
20373 if (!len || !kbuf) 21132 if (!len || !kbuf)
20374 return -EINVAL; 21133 return -EINVAL;
@@ -20378,9 +21137,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) 21137 if (do_copy)
20379 bio = bio_copy_kern(q, kbuf, len, gfp_mask, reading); 21138 bio = bio_copy_kern(q, kbuf, len, gfp_mask, reading);
20380 else 21139 else
20381diff -urNp linux-2.6.38.2/block/blk-softirq.c linux-2.6.38.2/block/blk-softirq.c 21140diff -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 21141--- 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 21142+++ 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, 21143@@ -17,7 +17,7 @@ static DEFINE_PER_CPU(struct list_head,
20385 * Softirq action handler - move entries to local list and loop over them 21144 * Softirq action handler - move entries to local list and loop over them
20386 * while passing them to the queue registered handler. 21145 * while passing them to the queue registered handler.
@@ -20390,9 +21149,93 @@ diff -urNp linux-2.6.38.2/block/blk-softirq.c linux-2.6.38.2/block/blk-softirq.c
20390 { 21149 {
20391 struct list_head *cpu_list, local_list; 21150 struct list_head *cpu_list, local_list;
20392 21151
20393diff -urNp linux-2.6.38.2/crypto/lrw.c linux-2.6.38.2/crypto/lrw.c 21152diff -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 21153--- 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 21154+++ linux-2.6.38.3/block/bsg.c 2011-04-17 15:57:32.000000000 -0400
21155@@ -176,16 +176,24 @@ static int blk_fill_sgv4_hdr_rq(struct r
21156 struct sg_io_v4 *hdr, struct bsg_device *bd,
21157 fmode_t has_write_perm)
21158 {
21159+ unsigned char tmpcmd[sizeof(rq->__cmd)];
21160+ unsigned char *cmdptr;
21161+
21162 if (hdr->request_len > BLK_MAX_CDB) {
21163 rq->cmd = kzalloc(hdr->request_len, GFP_KERNEL);
21164 if (!rq->cmd)
21165 return -ENOMEM;
21166- }
21167+ cmdptr = rq->cmd;
21168+ } else
21169+ cmdptr = tmpcmd;
21170
21171- if (copy_from_user(rq->cmd, (void *)(unsigned long)hdr->request,
21172+ if (copy_from_user(cmdptr, (void *)(unsigned long)hdr->request,
21173 hdr->request_len))
21174 return -EFAULT;
21175
21176+ if (cmdptr != rq->cmd)
21177+ memcpy(rq->cmd, cmdptr, hdr->request_len);
21178+
21179 if (hdr->subprotocol == BSG_SUB_PROTOCOL_SCSI_CMD) {
21180 if (blk_verify_command(rq->cmd, has_write_perm))
21181 return -EPERM;
21182diff -urNp linux-2.6.38.3/block/scsi_ioctl.c linux-2.6.38.3/block/scsi_ioctl.c
21183--- linux-2.6.38.3/block/scsi_ioctl.c 2011-03-14 21:20:32.000000000 -0400
21184+++ linux-2.6.38.3/block/scsi_ioctl.c 2011-04-17 15:57:32.000000000 -0400
21185@@ -222,8 +222,20 @@ EXPORT_SYMBOL(blk_verify_command);
21186 static int blk_fill_sghdr_rq(struct request_queue *q, struct request *rq,
21187 struct sg_io_hdr *hdr, fmode_t mode)
21188 {
21189- if (copy_from_user(rq->cmd, hdr->cmdp, hdr->cmd_len))
21190+ unsigned char tmpcmd[sizeof(rq->__cmd)];
21191+ unsigned char *cmdptr;
21192+
21193+ if (rq->cmd != rq->__cmd)
21194+ cmdptr = rq->cmd;
21195+ else
21196+ cmdptr = tmpcmd;
21197+
21198+ if (copy_from_user(cmdptr, hdr->cmdp, hdr->cmd_len))
21199 return -EFAULT;
21200+
21201+ if (cmdptr != rq->cmd)
21202+ memcpy(rq->cmd, cmdptr, hdr->cmd_len);
21203+
21204 if (blk_verify_command(rq->cmd, mode & FMODE_WRITE))
21205 return -EPERM;
21206
21207@@ -432,6 +444,8 @@ int sg_scsi_ioctl(struct request_queue *
21208 int err;
21209 unsigned int in_len, out_len, bytes, opcode, cmdlen;
21210 char *buffer = NULL, sense[SCSI_SENSE_BUFFERSIZE];
21211+ unsigned char tmpcmd[sizeof(rq->__cmd)];
21212+ unsigned char *cmdptr;
21213
21214 if (!sic)
21215 return -EINVAL;
21216@@ -465,9 +479,18 @@ int sg_scsi_ioctl(struct request_queue *
21217 */
21218 err = -EFAULT;
21219 rq->cmd_len = cmdlen;
21220- if (copy_from_user(rq->cmd, sic->data, cmdlen))
21221+
21222+ if (rq->cmd != rq->__cmd)
21223+ cmdptr = rq->cmd;
21224+ else
21225+ cmdptr = tmpcmd;
21226+
21227+ if (copy_from_user(cmdptr, sic->data, cmdlen))
21228 goto error;
21229
21230+ if (rq->cmd != cmdptr)
21231+ memcpy(rq->cmd, cmdptr, cmdlen);
21232+
21233 if (in_len && copy_from_user(buffer, sic->data + cmdlen, in_len))
21234 goto error;
21235
21236diff -urNp linux-2.6.38.3/crypto/lrw.c linux-2.6.38.3/crypto/lrw.c
21237--- linux-2.6.38.3/crypto/lrw.c 2011-03-14 21:20:32.000000000 -0400
21238+++ 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 21239@@ -60,7 +60,7 @@ static int setkey(struct crypto_tfm *par
20397 struct priv *ctx = crypto_tfm_ctx(parent); 21240 struct priv *ctx = crypto_tfm_ctx(parent);
20398 struct crypto_cipher *child = ctx->child; 21241 struct crypto_cipher *child = ctx->child;
@@ -20402,9 +21245,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); 21245 int bsize = crypto_cipher_blocksize(child);
20403 21246
20404 crypto_cipher_clear_flags(child, CRYPTO_TFM_REQ_MASK); 21247 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 21248diff -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 21249--- 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 21250+++ linux-2.6.38.3/Documentation/dontdiff 2011-04-17 15:57:32.000000000 -0400
20408@@ -3,6 +3,7 @@ 21251@@ -3,6 +3,7 @@
20409 *.bin 21252 *.bin
20410 *.cpio 21253 *.cpio
@@ -20530,9 +21373,9 @@ diff -urNp linux-2.6.38.2/Documentation/dontdiff linux-2.6.38.2/Documentation/do
20530 wakeup.bin 21373 wakeup.bin
20531 wakeup.elf 21374 wakeup.elf
20532 wakeup.lds 21375 wakeup.lds
20533diff -urNp linux-2.6.38.2/Documentation/filesystems/sysfs.txt linux-2.6.38.2/Documentation/filesystems/sysfs.txt 21376diff -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 21377--- 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 21378+++ 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 21379@@ -123,8 +123,8 @@ set of sysfs operations for forwarding r
20537 show and store methods of the attribute owners. 21380 show and store methods of the attribute owners.
20538 21381
@@ -20544,9 +21387,9 @@ diff -urNp linux-2.6.38.2/Documentation/filesystems/sysfs.txt linux-2.6.38.2/Doc
20544 }; 21387 };
20545 21388
20546 [ Subsystems should have already defined a struct kobj_type as a 21389 [ 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 21390diff -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 21391--- 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 21392+++ 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 21393@@ -1853,6 +1853,13 @@ bytes respectively. Such letter suffixes
20551 the specified number of seconds. This is to be used if 21394 the specified number of seconds. This is to be used if
20552 your oopses keep scrolling off the screen. 21395 your oopses keep scrolling off the screen.
@@ -20561,9 +21404,9 @@ diff -urNp linux-2.6.38.2/Documentation/kernel-parameters.txt linux-2.6.38.2/Doc
20561 pcbit= [HW,ISDN] 21404 pcbit= [HW,ISDN]
20562 21405
20563 pcd. [PARIDE] 21406 pcd. [PARIDE]
20564diff -urNp linux-2.6.38.2/drivers/acpi/battery.c linux-2.6.38.2/drivers/acpi/battery.c 21407diff -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 21408--- 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 21409+++ 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); 21410@@ -862,7 +862,7 @@ DECLARE_FILE_FUNCTIONS(alarm);
20568 } 21411 }
20569 21412
@@ -20573,9 +21416,9 @@ diff -urNp linux-2.6.38.2/drivers/acpi/battery.c linux-2.6.38.2/drivers/acpi/bat
20573 mode_t mode; 21416 mode_t mode;
20574 const char *name; 21417 const char *name;
20575 } acpi_battery_file[] = { 21418 } acpi_battery_file[] = {
20576diff -urNp linux-2.6.38.2/drivers/acpi/blacklist.c linux-2.6.38.2/drivers/acpi/blacklist.c 21419diff -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 21420--- 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 21421+++ 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 21422@@ -73,7 +73,7 @@ static struct acpi_blacklist_item acpi_b
20580 {"IBM ", "TP600E ", 0x00000105, ACPI_SIG_DSDT, less_than_or_equal, 21423 {"IBM ", "TP600E ", 0x00000105, ACPI_SIG_DSDT, less_than_or_equal,
20581 "Incorrect _ADR", 1}, 21424 "Incorrect _ADR", 1},
@@ -20585,9 +21428,9 @@ diff -urNp linux-2.6.38.2/drivers/acpi/blacklist.c linux-2.6.38.2/drivers/acpi/b
20585 }; 21428 };
20586 21429
20587 #if CONFIG_ACPI_BLACKLIST_YEAR 21430 #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 21431diff -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 21432--- 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 21433+++ 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 { 21434@@ -77,7 +77,7 @@ struct dock_dependent_device {
20592 struct list_head list; 21435 struct list_head list;
20593 struct list_head hotplug_list; 21436 struct list_head hotplug_list;
@@ -20606,9 +21449,9 @@ diff -urNp linux-2.6.38.2/drivers/acpi/dock.c linux-2.6.38.2/drivers/acpi/dock.c
20606 void *context) 21449 void *context)
20607 { 21450 {
20608 struct dock_dependent_device *dd; 21451 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 21452diff -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 21453--- 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 21454+++ 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 21455@@ -96,7 +96,7 @@ static ssize_t acpi_ec_write_io(struct f
20613 return count; 21456 return count;
20614 } 21457 }
@@ -20618,9 +21461,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, 21461 .owner = THIS_MODULE,
20619 .open = acpi_ec_open_io, 21462 .open = acpi_ec_open_io,
20620 .read = acpi_ec_read_io, 21463 .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 21464diff -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 21465--- 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 21466+++ 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 21467@@ -316,8 +316,6 @@ static ssize_t set_trip(struct device *d
20625 return res; 21468 return res;
20626 21469
@@ -20630,9 +21473,9 @@ diff -urNp linux-2.6.38.2/drivers/acpi/power_meter.c linux-2.6.38.2/drivers/acpi
20630 21473
20631 mutex_lock(&resource->lock); 21474 mutex_lock(&resource->lock);
20632 resource->trip[attr->index - 7] = temp; 21475 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 21476diff -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 21477--- 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 21478+++ 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 21479@@ -342,19 +342,13 @@ acpi_system_write_wakeup_device(struct f
20637 size_t count, loff_t * ppos) 21480 size_t count, loff_t * ppos)
20638 { 21481 {
@@ -20667,9 +21510,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)) { 21510 if (device_can_wakeup(&dev->dev)) {
20668 bool enable = !device_may_wakeup(&dev->dev); 21511 bool enable = !device_may_wakeup(&dev->dev);
20669 device_set_wakeup_enable(&dev->dev, enable); 21512 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 21513diff -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 21514--- 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 21515+++ 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( 21516@@ -473,7 +473,7 @@ static int __cpuinit acpi_processor_add(
20674 return 0; 21517 return 0;
20675 #endif 21518 #endif
@@ -20679,9 +21522,9 @@ diff -urNp linux-2.6.38.2/drivers/acpi/processor_driver.c linux-2.6.38.2/drivers
20679 21522
20680 /* 21523 /*
20681 * Buggy BIOS check 21524 * 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 21525diff -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 21526--- 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 21527+++ 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 21528@@ -121,7 +121,7 @@ static struct dmi_system_id __cpuinitdat
20686 DMI_MATCH(DMI_SYS_VENDOR, "ASUSTeK Computer Inc."), 21529 DMI_MATCH(DMI_SYS_VENDOR, "ASUSTeK Computer Inc."),
20687 DMI_MATCH(DMI_PRODUCT_NAME,"L8400B series Notebook PC")}, 21530 DMI_MATCH(DMI_PRODUCT_NAME,"L8400B series Notebook PC")},
@@ -20691,9 +21534,9 @@ diff -urNp linux-2.6.38.2/drivers/acpi/processor_idle.c linux-2.6.38.2/drivers/a
20691 }; 21534 };
20692 21535
20693 21536
20694diff -urNp linux-2.6.38.2/drivers/ata/acard-ahci.c linux-2.6.38.2/drivers/ata/acard-ahci.c 21537diff -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 21538--- 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 21539+++ 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 21540@@ -87,7 +87,7 @@ static struct scsi_host_template acard_a
20698 AHCI_SHT("acard-ahci"), 21541 AHCI_SHT("acard-ahci"),
20699 }; 21542 };
@@ -20703,9 +21546,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, 21546 .inherits = &ahci_ops,
20704 .qc_prep = acard_ahci_qc_prep, 21547 .qc_prep = acard_ahci_qc_prep,
20705 .qc_fill_rtf = acard_ahci_qc_fill_rtf, 21548 .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 21549diff -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 21550--- 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 21551+++ 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 21552@@ -94,17 +94,17 @@ static struct scsi_host_template ahci_sh
20710 AHCI_SHT("ahci"), 21553 AHCI_SHT("ahci"),
20711 }; 21554 };
@@ -20736,9 +21579,9 @@ diff -urNp linux-2.6.38.2/drivers/ata/ahci.c linux-2.6.38.2/drivers/ata/ahci.c
20736 }; 21579 };
20737 21580
20738 21581
20739diff -urNp linux-2.6.38.2/drivers/ata/ahci.h linux-2.6.38.2/drivers/ata/ahci.h 21582diff -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 21583--- 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 21584+++ 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 21585@@ -309,7 +309,7 @@ extern struct device_attribute *ahci_sde
20743 .shost_attrs = ahci_shost_attrs, \ 21586 .shost_attrs = ahci_shost_attrs, \
20744 .sdev_attrs = ahci_sdev_attrs 21587 .sdev_attrs = ahci_sdev_attrs
@@ -20748,9 +21591,9 @@ diff -urNp linux-2.6.38.2/drivers/ata/ahci.h linux-2.6.38.2/drivers/ata/ahci.h
20748 21591
20749 void ahci_fill_cmd_slot(struct ahci_port_priv *pp, unsigned int tag, 21592 void ahci_fill_cmd_slot(struct ahci_port_priv *pp, unsigned int tag,
20750 u32 opts); 21593 u32 opts);
20751diff -urNp linux-2.6.38.2/drivers/ata/ata_generic.c linux-2.6.38.2/drivers/ata/ata_generic.c 21594diff -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 21595--- 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 21596+++ 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 21597@@ -101,7 +101,7 @@ static struct scsi_host_template generic
20755 ATA_BMDMA_SHT(DRV_NAME), 21598 ATA_BMDMA_SHT(DRV_NAME),
20756 }; 21599 };
@@ -20760,9 +21603,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, 21603 .inherits = &ata_bmdma_port_ops,
20761 .cable_detect = ata_cable_unknown, 21604 .cable_detect = ata_cable_unknown,
20762 .set_mode = generic_set_mode, 21605 .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 21606diff -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 21607--- 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 21608+++ 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 21609@@ -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 }, 21610 { 0x8086, 0x1d00, PCI_ANY_ID, PCI_ANY_ID, 0, 0, ich8_sata },
20768 /* SATA Controller IDE (PBG) */ 21611 /* SATA Controller IDE (PBG) */
@@ -20829,9 +21672,9 @@ diff -urNp linux-2.6.38.2/drivers/ata/ata_piix.c linux-2.6.38.2/drivers/ata/ata_
20829 }; 21672 };
20830 static const char *oemstrs[] = { 21673 static const char *oemstrs[] = {
20831 "Tecra M3,", 21674 "Tecra M3,",
20832diff -urNp linux-2.6.38.2/drivers/ata/libahci.c linux-2.6.38.2/drivers/ata/libahci.c 21675diff -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 21676--- 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 21677+++ 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 21678@@ -137,7 +137,7 @@ struct device_attribute *ahci_sdev_attrs
20836 }; 21679 };
20837 EXPORT_SYMBOL_GPL(ahci_sdev_attrs); 21680 EXPORT_SYMBOL_GPL(ahci_sdev_attrs);
@@ -20841,9 +21684,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, 21684 .inherits = &sata_pmp_port_ops,
20842 21685
20843 .qc_defer = ahci_pmp_qc_defer, 21686 .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 21687diff -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 21688--- 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 21689+++ 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 21690@@ -218,12 +218,12 @@ static void ata_acpi_dev_uevent(acpi_han
20848 ata_acpi_uevent(dev->link->ap, dev, event); 21691 ata_acpi_uevent(dev->link->ap, dev, event);
20849 } 21692 }
@@ -20859,9 +21702,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, 21702 .handler = ata_acpi_ap_notify_dock,
20860 .uevent = ata_acpi_ap_uevent, 21703 .uevent = ata_acpi_ap_uevent,
20861 }; 21704 };
20862diff -urNp linux-2.6.38.2/drivers/ata/libata-core.c linux-2.6.38.2/drivers/ata/libata-core.c 21705diff -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 21706--- 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 21707+++ 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 { 21708@@ -897,7 +897,7 @@ static const struct ata_xfer_ent {
20866 { ATA_SHIFT_PIO, ATA_NR_PIO_MODES, XFER_PIO_0 }, 21709 { ATA_SHIFT_PIO, ATA_NR_PIO_MODES, XFER_PIO_0 },
20867 { ATA_SHIFT_MWDMA, ATA_NR_MWDMA_MODES, XFER_MW_DMA_0 }, 21710 { ATA_SHIFT_MWDMA, ATA_NR_MWDMA_MODES, XFER_MW_DMA_0 },
@@ -20953,9 +21796,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, 21796 .qc_prep = ata_noop_qc_prep,
20954 .qc_issue = ata_dummy_qc_issue, 21797 .qc_issue = ata_dummy_qc_issue,
20955 .error_handler = ata_dummy_error_handler, 21798 .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 21799diff -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 21800--- 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 21801+++ 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_ 21802@@ -3880,7 +3880,7 @@ void ata_do_eh(struct ata_port *ap, ata_
20960 */ 21803 */
20961 void ata_std_error_handler(struct ata_port *ap) 21804 void ata_std_error_handler(struct ata_port *ap)
@@ -20965,9 +21808,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; 21808 ata_reset_fn_t hardreset = ops->hardreset;
20966 21809
20967 /* ignore built-in hardreset if SCR access is not available */ 21810 /* 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 21811diff -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 21812--- 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 21813+++ 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 21814@@ -912,7 +912,7 @@ static int sata_pmp_handle_link_fail(str
20972 */ 21815 */
20973 static int sata_pmp_eh_recover(struct ata_port *ap) 21816 static int sata_pmp_eh_recover(struct ata_port *ap)
@@ -20977,9 +21820,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]; 21820 int pmp_tries, link_tries[SATA_PMP_MAX_PORTS];
20978 struct ata_link *pmp_link = &ap->link; 21821 struct ata_link *pmp_link = &ap->link;
20979 struct ata_device *pmp_dev = pmp_link->device; 21822 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 21823diff -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 21824--- 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 21825+++ 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 21826@@ -216,7 +216,7 @@ static struct scsi_host_template pacpi_s
20984 ATA_BMDMA_SHT(DRV_NAME), 21827 ATA_BMDMA_SHT(DRV_NAME),
20985 }; 21828 };
@@ -20989,9 +21832,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, 21832 .inherits = &ata_bmdma_port_ops,
20990 .qc_issue = pacpi_qc_issue, 21833 .qc_issue = pacpi_qc_issue,
20991 .cable_detect = pacpi_cable_detect, 21834 .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 21835diff -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 21836--- 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 21837+++ 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 21838@@ -363,7 +363,7 @@ static struct scsi_host_template ali_sht
20996 * Port operations for PIO only ALi 21839 * Port operations for PIO only ALi
20997 */ 21840 */
@@ -21037,9 +21880,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, 21880 .inherits = &ali_dma_base_ops,
21038 .check_atapi_dma = ali_check_atapi_dma, 21881 .check_atapi_dma = ali_check_atapi_dma,
21039 .dev_config = ali_warn_atapi_dma, 21882 .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 21883diff -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 21884--- 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 21885+++ 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 21886@@ -397,28 +397,28 @@ static const struct ata_port_operations
21044 .prereset = amd_pre_reset, 21887 .prereset = amd_pre_reset,
21045 }; 21888 };
@@ -21089,9 +21932,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, 21932 .inherits = &nv_base_port_ops,
21090 .set_piomode = nv133_set_piomode, 21933 .set_piomode = nv133_set_piomode,
21091 .set_dmamode = nv133_set_dmamode, 21934 .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 21935diff -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 21936--- 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 21937+++ 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 21938@@ -312,7 +312,7 @@ static struct scsi_host_template artop_s
21096 ATA_BMDMA_SHT(DRV_NAME), 21939 ATA_BMDMA_SHT(DRV_NAME),
21097 }; 21940 };
@@ -21110,9 +21953,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, 21953 .inherits = &ata_bmdma_port_ops,
21111 .cable_detect = artop6260_cable_detect, 21954 .cable_detect = artop6260_cable_detect,
21112 .set_piomode = artop6260_set_piomode, 21955 .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 21956diff -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 21957--- 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 21958+++ 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 21959@@ -173,7 +173,7 @@ static struct scsi_host_template at32_sh
21117 ATA_PIO_SHT(DRV_NAME), 21960 ATA_PIO_SHT(DRV_NAME),
21118 }; 21961 };
@@ -21122,9 +21965,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, 21965 .inherits = &ata_sff_port_ops,
21123 .cable_detect = ata_cable_40wire, 21966 .cable_detect = ata_cable_40wire,
21124 .set_piomode = pata_at32_set_piomode, 21967 .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 21968diff -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 21969--- 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 21970+++ 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 21971@@ -196,7 +196,7 @@ static struct scsi_host_template pata_at
21129 ATA_PIO_SHT(DRV_NAME), 21972 ATA_PIO_SHT(DRV_NAME),
21130 }; 21973 };
@@ -21134,9 +21977,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, 21977 .inherits = &ata_sff_port_ops,
21135 21978
21136 .sff_data_xfer = pata_at91_data_xfer_noirq, 21979 .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 21980diff -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 21981--- 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 21982+++ 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_ 21983@@ -214,7 +214,7 @@ static struct scsi_host_template atiixp_
21141 .sg_tablesize = LIBATA_DUMB_MAX_PRD, 21984 .sg_tablesize = LIBATA_DUMB_MAX_PRD,
21142 }; 21985 };
@@ -21146,9 +21989,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, 21989 .inherits = &ata_bmdma_port_ops,
21147 21990
21148 .qc_prep = ata_bmdma_dumb_qc_prep, 21991 .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 21992diff -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 21993--- 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 21994+++ 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 21995@@ -275,7 +275,7 @@ static struct scsi_host_template atp867x
21153 ATA_BMDMA_SHT(DRV_NAME), 21996 ATA_BMDMA_SHT(DRV_NAME),
21154 }; 21997 };
@@ -21158,9 +22001,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, 22001 .inherits = &ata_bmdma_port_ops,
21159 .cable_detect = atp867x_cable_detect, 22002 .cable_detect = atp867x_cable_detect,
21160 .set_piomode = atp867x_set_piomode, 22003 .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 22004diff -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 22005--- 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 22006+++ 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 22007@@ -1420,7 +1420,7 @@ static struct scsi_host_template bfin_sh
21165 .dma_boundary = ATA_DMA_BOUNDARY, 22008 .dma_boundary = ATA_DMA_BOUNDARY,
21166 }; 22009 };
@@ -21170,9 +22013,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, 22013 .inherits = &ata_bmdma_port_ops,
21171 22014
21172 .set_piomode = bfin_set_piomode, 22015 .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 22016diff -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 22017--- 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 22018+++ 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_ 22019@@ -176,7 +176,7 @@ static struct scsi_host_template cmd640_
21177 ATA_PIO_SHT(DRV_NAME), 22020 ATA_PIO_SHT(DRV_NAME),
21178 }; 22021 };
@@ -21182,9 +22025,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, 22025 .inherits = &ata_sff_port_ops,
21183 /* In theory xfer_noirq is not needed once we kill the prefetcher */ 22026 /* In theory xfer_noirq is not needed once we kill the prefetcher */
21184 .sff_data_xfer = ata_sff_data_xfer_noirq, 22027 .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 22028diff -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 22029--- 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 22030+++ 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 22031@@ -268,18 +268,18 @@ static const struct ata_port_operations
21189 .set_dmamode = cmd64x_set_dmamode, 22032 .set_dmamode = cmd64x_set_dmamode,
21190 }; 22033 };
@@ -21207,9 +22050,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, 22050 .inherits = &cmd64x_base_ops,
21208 .bmdma_stop = cmd648_bmdma_stop, 22051 .bmdma_stop = cmd648_bmdma_stop,
21209 .cable_detect = cmd648_cable_detect, 22052 .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 22053diff -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 22054--- 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 22055+++ 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_ 22056@@ -108,7 +108,7 @@ static struct scsi_host_template cs5520_
21214 .sg_tablesize = LIBATA_DUMB_MAX_PRD, 22057 .sg_tablesize = LIBATA_DUMB_MAX_PRD,
21215 }; 22058 };
@@ -21219,9 +22062,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, 22062 .inherits = &ata_bmdma_port_ops,
21220 .qc_prep = ata_bmdma_dumb_qc_prep, 22063 .qc_prep = ata_bmdma_dumb_qc_prep,
21221 .cable_detect = ata_cable_40wire, 22064 .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 22065diff -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 22066--- 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 22067+++ 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_ 22068@@ -164,7 +164,7 @@ static struct scsi_host_template cs5530_
21226 .sg_tablesize = LIBATA_DUMB_MAX_PRD, 22069 .sg_tablesize = LIBATA_DUMB_MAX_PRD,
21227 }; 22070 };
@@ -21231,9 +22074,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, 22074 .inherits = &ata_bmdma_port_ops,
21232 22075
21233 .qc_prep = ata_bmdma_dumb_qc_prep, 22076 .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 22077diff -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 22078--- 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 22079+++ 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_ 22080@@ -160,7 +160,7 @@ static struct scsi_host_template cs5535_
21238 ATA_BMDMA_SHT(DRV_NAME), 22081 ATA_BMDMA_SHT(DRV_NAME),
21239 }; 22082 };
@@ -21243,9 +22086,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, 22086 .inherits = &ata_bmdma_port_ops,
21244 .cable_detect = cs5535_cable_detect, 22087 .cable_detect = cs5535_cable_detect,
21245 .set_piomode = cs5535_set_piomode, 22088 .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 22089diff -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 22090--- 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 22091+++ 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_ 22092@@ -233,7 +233,7 @@ static struct scsi_host_template cs5536_
21250 ATA_BMDMA_SHT(DRV_NAME), 22093 ATA_BMDMA_SHT(DRV_NAME),
21251 }; 22094 };
@@ -21255,9 +22098,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, 22098 .inherits = &ata_bmdma32_port_ops,
21256 .cable_detect = cs5536_cable_detect, 22099 .cable_detect = cs5536_cable_detect,
21257 .set_piomode = cs5536_set_piomode, 22100 .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 22101diff -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 22102--- 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 22103+++ 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 22104@@ -115,7 +115,7 @@ static struct scsi_host_template cy82c69
21262 ATA_BMDMA_SHT(DRV_NAME), 22105 ATA_BMDMA_SHT(DRV_NAME),
21263 }; 22106 };
@@ -21267,9 +22110,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, 22110 .inherits = &ata_bmdma_port_ops,
21268 .cable_detect = ata_cable_40wire, 22111 .cable_detect = ata_cable_40wire,
21269 .set_piomode = cy82c693_set_piomode, 22112 .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 22113diff -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 22114--- 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 22115+++ 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 22116@@ -238,7 +238,7 @@ static struct scsi_host_template efar_sh
21274 ATA_BMDMA_SHT(DRV_NAME), 22117 ATA_BMDMA_SHT(DRV_NAME),
21275 }; 22118 };
@@ -21279,9 +22122,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, 22122 .inherits = &ata_bmdma_port_ops,
21280 .cable_detect = efar_cable_detect, 22123 .cable_detect = efar_cable_detect,
21281 .set_piomode = efar_set_piomode, 22124 .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 22125diff -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 22126--- 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 22127+++ 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_ 22128@@ -275,7 +275,7 @@ static struct scsi_host_template hpt36x_
21286 * Configuration for HPT366/68 22129 * Configuration for HPT366/68
21287 */ 22130 */
@@ -21291,9 +22134,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, 22134 .inherits = &ata_bmdma_port_ops,
21292 .cable_detect = hpt36x_cable_detect, 22135 .cable_detect = hpt36x_cable_detect,
21293 .mode_filter = hpt366_filter, 22136 .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 22137diff -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 22138--- 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 22139+++ 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_ 22140@@ -587,7 +587,7 @@ static struct scsi_host_template hpt37x_
21298 * Configuration for HPT370 22141 * Configuration for HPT370
21299 */ 22142 */
@@ -21339,9 +22182,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, 22182 .inherits = &hpt372_port_ops,
21340 .cable_detect = hpt374_fn1_cable_detect, 22183 .cable_detect = hpt374_fn1_cable_detect,
21341 }; 22184 };
21342diff -urNp linux-2.6.38.2/drivers/ata/pata_hpt3x2n.c linux-2.6.38.2/drivers/ata/pata_hpt3x2n.c 22185diff -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 22186--- 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 22187+++ 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 22188@@ -348,7 +348,7 @@ static struct scsi_host_template hpt3x2n
21346 * Configuration for HPT302N/371N. 22189 * Configuration for HPT302N/371N.
21347 */ 22190 */
@@ -21360,9 +22203,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, 22203 .inherits = &hpt3xxn_port_ops,
21361 .mode_filter = &hpt372n_filter, 22204 .mode_filter = &hpt372n_filter,
21362 }; 22205 };
21363diff -urNp linux-2.6.38.2/drivers/ata/pata_hpt3x3.c linux-2.6.38.2/drivers/ata/pata_hpt3x3.c 22206diff -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 22207--- 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 22208+++ 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_ 22209@@ -141,7 +141,7 @@ static struct scsi_host_template hpt3x3_
21367 ATA_BMDMA_SHT(DRV_NAME), 22210 ATA_BMDMA_SHT(DRV_NAME),
21368 }; 22211 };
@@ -21372,9 +22215,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, 22215 .inherits = &ata_bmdma_port_ops,
21373 .cable_detect = ata_cable_40wire, 22216 .cable_detect = ata_cable_40wire,
21374 .set_piomode = hpt3x3_set_piomode, 22217 .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 22218diff -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 22219--- 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 22220+++ 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 22221@@ -320,7 +320,7 @@ static void pata_icside_postreset(struct
21379 } 22222 }
21380 } 22223 }
@@ -21384,9 +22227,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, 22227 .inherits = &ata_bmdma_port_ops,
21385 /* no need to build any PRD tables for DMA */ 22228 /* no need to build any PRD tables for DMA */
21386 .qc_prep = ata_noop_qc_prep, 22229 .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 22230diff -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 22231--- 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 22232+++ 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_ 22233@@ -23,12 +23,12 @@ static struct scsi_host_template isapnp_
21391 ATA_PIO_SHT(DRV_NAME), 22234 ATA_PIO_SHT(DRV_NAME),
21392 }; 22235 };
@@ -21402,9 +22245,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, 22245 .inherits = &ata_sff_port_ops,
21403 .cable_detect = ata_cable_40wire, 22246 .cable_detect = ata_cable_40wire,
21404 /* No altstatus so we don't want to use the lost interrupt poll */ 22247 /* 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 22248diff -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 22249--- 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 22250+++ 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_ 22251@@ -233,7 +233,7 @@ static struct scsi_host_template it8213_
21409 }; 22252 };
21410 22253
@@ -21414,9 +22257,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, 22257 .inherits = &ata_bmdma_port_ops,
21415 .cable_detect = it8213_cable_detect, 22258 .cable_detect = it8213_cable_detect,
21416 .set_piomode = it8213_set_piomode, 22259 .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 22260diff -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 22261--- 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 22262+++ 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_ 22263@@ -801,7 +801,7 @@ static struct scsi_host_template it821x_
21421 ATA_BMDMA_SHT(DRV_NAME), 22264 ATA_BMDMA_SHT(DRV_NAME),
21422 }; 22265 };
@@ -21444,9 +22287,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, 22287 .inherits = &ata_bmdma_port_ops,
21445 22288
21446 .check_atapi_dma= it821x_check_atapi_dma, 22289 .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 22290diff -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 22291--- 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 22292+++ 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_ 22293@@ -89,7 +89,7 @@ static struct scsi_host_template ixp4xx_
21451 ATA_PIO_SHT(DRV_NAME), 22294 ATA_PIO_SHT(DRV_NAME),
21452 }; 22295 };
@@ -21456,9 +22299,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, 22299 .inherits = &ata_sff_port_ops,
21457 .sff_data_xfer = ixp4xx_mmio_data_xfer, 22300 .sff_data_xfer = ixp4xx_mmio_data_xfer,
21458 .cable_detect = ata_cable_40wire, 22301 .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 22302diff -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 22303--- 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 22304+++ 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 22305@@ -111,7 +111,7 @@ static struct scsi_host_template jmicron
21463 ATA_BMDMA_SHT(DRV_NAME), 22306 ATA_BMDMA_SHT(DRV_NAME),
21464 }; 22307 };
@@ -21468,9 +22311,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, 22311 .inherits = &ata_bmdma_port_ops,
21469 .prereset = jmicron_pre_reset, 22312 .prereset = jmicron_pre_reset,
21470 }; 22313 };
21471diff -urNp linux-2.6.38.2/drivers/ata/pata_legacy.c linux-2.6.38.2/drivers/ata/pata_legacy.c 22314diff -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 22315--- 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 22316+++ 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 { 22317@@ -116,7 +116,7 @@ struct legacy_probe {
21475 22318
21476 struct legacy_controller { 22319 struct legacy_controller {
@@ -21582,9 +22425,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]; 22425 struct legacy_data *ld = &legacy_data[probe->slot];
21583 struct ata_host *host = NULL; 22426 struct ata_host *host = NULL;
21584 struct ata_port *ap; 22427 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 22428diff -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 22429--- 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 22430+++ 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 22431@@ -918,9 +918,8 @@ static struct scsi_host_template pata_ma
21589 .slave_configure = pata_macio_slave_config, 22432 .slave_configure = pata_macio_slave_config,
21590 }; 22433 };
@@ -21596,9 +22439,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, 22439 .freeze = pata_macio_freeze,
21597 .set_piomode = pata_macio_set_timings, 22440 .set_piomode = pata_macio_set_timings,
21598 .set_dmamode = pata_macio_set_timings, 22441 .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 22442diff -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 22443--- 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 22444+++ 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 22445@@ -100,7 +100,7 @@ static struct scsi_host_template marvell
21603 ATA_BMDMA_SHT(DRV_NAME), 22446 ATA_BMDMA_SHT(DRV_NAME),
21604 }; 22447 };
@@ -21608,9 +22451,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, 22451 .inherits = &ata_bmdma_port_ops,
21609 .cable_detect = marvell_cable_detect, 22452 .cable_detect = marvell_cable_detect,
21610 .prereset = marvell_pre_reset, 22453 .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 22454diff -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 22455--- 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 22456+++ 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 22457@@ -609,7 +609,7 @@ static struct scsi_host_template mpc52xx
21615 ATA_PIO_SHT(DRV_NAME), 22458 ATA_PIO_SHT(DRV_NAME),
21616 }; 22459 };
@@ -21620,9 +22463,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, 22463 .inherits = &ata_bmdma_port_ops,
21621 .sff_dev_select = mpc52xx_ata_dev_select, 22464 .sff_dev_select = mpc52xx_ata_dev_select,
21622 .set_piomode = mpc52xx_ata_set_piomode, 22465 .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 22466diff -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 22467--- 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 22468+++ 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 22469@@ -140,7 +140,7 @@ static struct scsi_host_template mpiix_s
21627 ATA_PIO_SHT(DRV_NAME), 22470 ATA_PIO_SHT(DRV_NAME),
21628 }; 22471 };
@@ -21632,9 +22475,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, 22475 .inherits = &ata_sff_port_ops,
21633 .qc_issue = mpiix_qc_issue, 22476 .qc_issue = mpiix_qc_issue,
21634 .cable_detect = ata_cable_40wire, 22477 .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 22478diff -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 22479--- 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 22480+++ 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 22481@@ -34,7 +34,7 @@ static struct scsi_host_template netcell
21639 ATA_BMDMA_SHT(DRV_NAME), 22482 ATA_BMDMA_SHT(DRV_NAME),
21640 }; 22483 };
@@ -21644,9 +22487,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, 22487 .inherits = &ata_bmdma_port_ops,
21645 .cable_detect = ata_cable_80wire, 22488 .cable_detect = ata_cable_80wire,
21646 .read_id = netcell_read_id, 22489 .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 22490diff -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 22491--- 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 22492+++ 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 22493@@ -81,7 +81,7 @@ static struct scsi_host_template ninja32
21651 ATA_BMDMA_SHT(DRV_NAME), 22494 ATA_BMDMA_SHT(DRV_NAME),
21652 }; 22495 };
@@ -21656,9 +22499,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, 22499 .inherits = &ata_bmdma_port_ops,
21657 .sff_dev_select = ninja32_dev_select, 22500 .sff_dev_select = ninja32_dev_select,
21658 .cable_detect = ata_cable_40wire, 22501 .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 22502diff -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 22503--- 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 22504+++ 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 22505@@ -132,7 +132,7 @@ static struct scsi_host_template ns87410
21663 ATA_PIO_SHT(DRV_NAME), 22506 ATA_PIO_SHT(DRV_NAME),
21664 }; 22507 };
@@ -21668,9 +22511,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, 22511 .inherits = &ata_sff_port_ops,
21669 .qc_issue = ns87410_qc_issue, 22512 .qc_issue = ns87410_qc_issue,
21670 .cable_detect = ata_cable_40wire, 22513 .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 22514diff -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 22515--- 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 22516+++ 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 22517@@ -299,7 +299,7 @@ static u8 ns87560_bmdma_status(struct at
21675 } 22518 }
21676 #endif /* 87560 SuperIO Support */ 22519 #endif /* 87560 SuperIO Support */
@@ -21689,9 +22532,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, 22532 .inherits = &ns87415_pata_ops,
21690 .sff_tf_read = ns87560_tf_read, 22533 .sff_tf_read = ns87560_tf_read,
21691 .sff_check_status = ns87560_check_status, 22534 .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 22535diff -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 22536--- 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 22537+++ 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 22538@@ -780,7 +780,7 @@ static unsigned int octeon_cf_qc_issue(s
21696 return 0; 22539 return 0;
21697 } 22540 }
@@ -21701,9 +22544,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, 22544 .inherits = &ata_sff_port_ops,
21702 .check_atapi_dma = octeon_cf_check_atapi_dma, 22545 .check_atapi_dma = octeon_cf_check_atapi_dma,
21703 .qc_prep = ata_noop_qc_prep, 22546 .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 22547diff -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 22548--- 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 22549+++ 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 22550@@ -208,7 +208,7 @@ static struct scsi_host_template oldpiix
21708 ATA_BMDMA_SHT(DRV_NAME), 22551 ATA_BMDMA_SHT(DRV_NAME),
21709 }; 22552 };
@@ -21713,9 +22556,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, 22556 .inherits = &ata_bmdma_port_ops,
21714 .qc_issue = oldpiix_qc_issue, 22557 .qc_issue = oldpiix_qc_issue,
21715 .cable_detect = ata_cable_40wire, 22558 .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 22559diff -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 22560--- 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 22561+++ 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 22562@@ -152,7 +152,7 @@ static struct scsi_host_template opti_sh
21720 ATA_PIO_SHT(DRV_NAME), 22563 ATA_PIO_SHT(DRV_NAME),
21721 }; 22564 };
@@ -21725,9 +22568,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, 22568 .inherits = &ata_sff_port_ops,
21726 .cable_detect = ata_cable_40wire, 22569 .cable_detect = ata_cable_40wire,
21727 .set_piomode = opti_set_piomode, 22570 .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 22571diff -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 22572--- 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 22573+++ 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 22574@@ -337,7 +337,7 @@ static struct scsi_host_template optidma
21732 ATA_BMDMA_SHT(DRV_NAME), 22575 ATA_BMDMA_SHT(DRV_NAME),
21733 }; 22576 };
@@ -21746,9 +22589,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, 22589 .inherits = &optidma_port_ops,
21747 .set_piomode = optiplus_set_pio_mode, 22590 .set_piomode = optiplus_set_pio_mode,
21748 .set_dmamode = optiplus_set_dma_mode, 22591 .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 22592diff -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 22593--- 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 22594+++ 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_ 22595@@ -37,7 +37,7 @@ static struct scsi_host_template palmld_
21753 ATA_PIO_SHT(DRV_NAME), 22596 ATA_PIO_SHT(DRV_NAME),
21754 }; 22597 };
@@ -21758,9 +22601,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, 22601 .inherits = &ata_sff_port_ops,
21759 .sff_data_xfer = ata_sff_data_xfer_noirq, 22602 .sff_data_xfer = ata_sff_data_xfer_noirq,
21760 .cable_detect = ata_cable_40wire, 22603 .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 22604diff -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 22605--- 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 22606+++ 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_ 22607@@ -151,14 +151,14 @@ static struct scsi_host_template pcmcia_
21765 ATA_PIO_SHT(DRV_NAME), 22608 ATA_PIO_SHT(DRV_NAME),
21766 }; 22609 };
@@ -21787,9 +22630,9 @@ diff -urNp linux-2.6.38.2/drivers/ata/pata_pcmcia.c linux-2.6.38.2/drivers/ata/p
21787 22630
21788 /* Set up attributes in order to probe card and get resources */ 22631 /* Set up attributes in order to probe card and get resources */
21789 pdev->config_flags |= CONF_ENABLE_IRQ | CONF_AUTO_SET_IO | 22632 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 22633diff -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 22634--- 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 22635+++ 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 22636@@ -132,14 +132,14 @@ static struct scsi_host_template pdc2027
21794 ATA_BMDMA_SHT(DRV_NAME), 22637 ATA_BMDMA_SHT(DRV_NAME),
21795 }; 22638 };
@@ -21807,9 +22650,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, 22650 .inherits = &pdc2027x_pata100_ops,
21808 .mode_filter = pdc2027x_mode_filter, 22651 .mode_filter = pdc2027x_mode_filter,
21809 .set_piomode = pdc2027x_set_piomode, 22652 .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 22653diff -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 22654--- 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 22655+++ 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 22656@@ -295,7 +295,7 @@ static struct scsi_host_template pdc202x
21814 ATA_BMDMA_SHT(DRV_NAME), 22657 ATA_BMDMA_SHT(DRV_NAME),
21815 }; 22658 };
@@ -21828,9 +22671,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, 22671 .inherits = &pdc2024x_port_ops,
21829 22672
21830 .check_atapi_dma = pdc2026x_check_atapi_dma, 22673 .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 22674diff -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 22675--- 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 22676+++ 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 22677@@ -67,7 +67,7 @@ static struct scsi_host_template tosh_sh
21835 ATA_BMDMA_SHT(DRV_NAME), 22678 ATA_BMDMA_SHT(DRV_NAME),
21836 }; 22679 };
@@ -21840,9 +22683,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, 22683 .inherits = &ata_bmdma_port_ops,
21841 .cable_detect = ata_cable_unknown, 22684 .cable_detect = ata_cable_unknown,
21842 .set_piomode = tosh_set_piomode, 22685 .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 22686diff -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 22687--- 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 22688+++ 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 22689@@ -48,7 +48,7 @@ static struct scsi_host_template pata_pl
21847 ATA_PIO_SHT(DRV_NAME), 22690 ATA_PIO_SHT(DRV_NAME),
21848 }; 22691 };
@@ -21852,9 +22695,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, 22695 .inherits = &ata_sff_port_ops,
21853 .sff_data_xfer = ata_sff_data_xfer_noirq, 22696 .sff_data_xfer = ata_sff_data_xfer_noirq,
21854 .cable_detect = ata_cable_unknown, 22697 .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 22698diff -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 22699--- 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 22700+++ 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 22701@@ -198,7 +198,7 @@ static struct scsi_host_template pxa_ata
21859 ATA_BMDMA_SHT(DRV_NAME), 22702 ATA_BMDMA_SHT(DRV_NAME),
21860 }; 22703 };
@@ -21864,9 +22707,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, 22707 .inherits = &ata_bmdma_port_ops,
21865 .cable_detect = ata_cable_40wire, 22708 .cable_detect = ata_cable_40wire,
21866 22709
21867diff -urNp linux-2.6.38.2/drivers/ata/pata_qdi.c linux-2.6.38.2/drivers/ata/pata_qdi.c 22710diff -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 22711--- 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 22712+++ 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 22713@@ -157,7 +157,7 @@ static struct scsi_host_template qdi_sht
21871 ATA_PIO_SHT(DRV_NAME), 22714 ATA_PIO_SHT(DRV_NAME),
21872 }; 22715 };
@@ -21885,9 +22728,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, 22728 .inherits = &qdi6500_port_ops,
21886 .set_piomode = qdi6580_set_piomode, 22729 .set_piomode = qdi6580_set_piomode,
21887 }; 22730 };
21888diff -urNp linux-2.6.38.2/drivers/ata/pata_radisys.c linux-2.6.38.2/drivers/ata/pata_radisys.c 22731diff -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 22732--- 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 22733+++ 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 22734@@ -187,7 +187,7 @@ static struct scsi_host_template radisys
21892 ATA_BMDMA_SHT(DRV_NAME), 22735 ATA_BMDMA_SHT(DRV_NAME),
21893 }; 22736 };
@@ -21897,9 +22740,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, 22740 .inherits = &ata_bmdma_port_ops,
21898 .qc_issue = radisys_qc_issue, 22741 .qc_issue = radisys_qc_issue,
21899 .cable_detect = ata_cable_unknown, 22742 .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 22743diff -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 22744--- 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 22745+++ 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 22746@@ -69,7 +69,7 @@ static irqreturn_t rb532_pata_irq_handle
21904 return IRQ_HANDLED; 22747 return IRQ_HANDLED;
21905 } 22748 }
@@ -21909,9 +22752,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, 22752 .inherits = &ata_sff_port_ops,
21910 .sff_data_xfer = ata_sff_data_xfer32, 22753 .sff_data_xfer = ata_sff_data_xfer32,
21911 }; 22754 };
21912diff -urNp linux-2.6.38.2/drivers/ata/pata_rdc.c linux-2.6.38.2/drivers/ata/pata_rdc.c 22755diff -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 22756--- 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 22757+++ 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 22758@@ -273,7 +273,7 @@ static void rdc_set_dmamode(struct ata_p
21916 pci_write_config_byte(dev, 0x48, udma_enable); 22759 pci_write_config_byte(dev, 0x48, udma_enable);
21917 } 22760 }
@@ -21921,9 +22764,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, 22764 .inherits = &ata_bmdma32_port_ops,
21922 .cable_detect = rdc_pata_cable_detect, 22765 .cable_detect = rdc_pata_cable_detect,
21923 .set_piomode = rdc_set_piomode, 22766 .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 22767diff -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 22768--- 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 22769+++ 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_ 22770@@ -54,7 +54,7 @@ static struct scsi_host_template rz1000_
21928 ATA_PIO_SHT(DRV_NAME), 22771 ATA_PIO_SHT(DRV_NAME),
21929 }; 22772 };
@@ -21933,9 +22776,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, 22776 .inherits = &ata_sff_port_ops,
21934 .cable_detect = ata_cable_40wire, 22777 .cable_detect = ata_cable_40wire,
21935 .set_mode = rz1000_set_mode, 22778 .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 22779diff -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 22780--- 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 22781+++ 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 22782@@ -399,7 +399,7 @@ static struct scsi_host_template pata_s3
21940 ATA_PIO_SHT(DRV_NAME), 22783 ATA_PIO_SHT(DRV_NAME),
21941 }; 22784 };
@@ -21954,9 +22797,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, 22797 .inherits = &ata_sff_port_ops,
21955 .set_piomode = pata_s3c_set_piomode, 22798 .set_piomode = pata_s3c_set_piomode,
21956 }; 22799 };
21957diff -urNp linux-2.6.38.2/drivers/ata/pata_sc1200.c linux-2.6.38.2/drivers/ata/pata_sc1200.c 22800diff -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 22801--- 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 22802+++ 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_ 22803@@ -207,7 +207,7 @@ static struct scsi_host_template sc1200_
21961 .sg_tablesize = LIBATA_DUMB_MAX_PRD, 22804 .sg_tablesize = LIBATA_DUMB_MAX_PRD,
21962 }; 22805 };
@@ -21966,9 +22809,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, 22809 .inherits = &ata_bmdma_port_ops,
21967 .qc_prep = ata_bmdma_dumb_qc_prep, 22810 .qc_prep = ata_bmdma_dumb_qc_prep,
21968 .qc_issue = sc1200_qc_issue, 22811 .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 22812diff -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 22813--- 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 22814+++ 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 22815@@ -926,7 +926,7 @@ static struct scsi_host_template scc_sht
21973 ATA_BMDMA_SHT(DRV_NAME), 22816 ATA_BMDMA_SHT(DRV_NAME),
21974 }; 22817 };
@@ -21978,9 +22821,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, 22821 .inherits = &ata_bmdma_port_ops,
21979 22822
21980 .set_piomode = scc_set_piomode, 22823 .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 22824diff -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 22825--- 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 22826+++ 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 22827@@ -75,7 +75,7 @@ static struct scsi_host_template sch_sht
21985 ATA_BMDMA_SHT(DRV_NAME), 22828 ATA_BMDMA_SHT(DRV_NAME),
21986 }; 22829 };
@@ -21990,9 +22833,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, 22833 .inherits = &ata_bmdma_port_ops,
21991 .cable_detect = ata_cable_unknown, 22834 .cable_detect = ata_cable_unknown,
21992 .set_piomode = sch_set_piomode, 22835 .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 22836diff -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 22837--- 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 22838+++ 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 22839@@ -300,7 +300,7 @@ static struct scsi_host_template serverw
21997 ATA_BMDMA_SHT(DRV_NAME), 22840 ATA_BMDMA_SHT(DRV_NAME),
21998 }; 22841 };
@@ -22011,9 +22854,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, 22854 .inherits = &serverworks_osb4_port_ops,
22012 .mode_filter = serverworks_csb_filter, 22855 .mode_filter = serverworks_csb_filter,
22013 }; 22856 };
22014diff -urNp linux-2.6.38.2/drivers/ata/pata_sil680.c linux-2.6.38.2/drivers/ata/pata_sil680.c 22857diff -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 22858--- 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 22859+++ 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_ 22860@@ -225,8 +225,7 @@ static struct scsi_host_template sil680_
22018 ATA_BMDMA_SHT(DRV_NAME), 22861 ATA_BMDMA_SHT(DRV_NAME),
22019 }; 22862 };
@@ -22024,9 +22867,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, 22867 .inherits = &ata_bmdma32_port_ops,
22025 .sff_exec_command = sil680_sff_exec_command, 22868 .sff_exec_command = sil680_sff_exec_command,
22026 .sff_irq_check = sil680_sff_irq_check, 22869 .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 22870diff -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 22871--- 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 22872+++ 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 22873@@ -503,47 +503,47 @@ static struct scsi_host_template sis_sht
22031 ATA_BMDMA_SHT(DRV_NAME), 22874 ATA_BMDMA_SHT(DRV_NAME),
22032 }; 22875 };
@@ -22082,9 +22925,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, 22925 .inherits = &sis_base_ops,
22083 .set_piomode = sis_old_set_piomode, 22926 .set_piomode = sis_old_set_piomode,
22084 .set_dmamode = sis_old_set_dmamode, 22927 .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 22928diff -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 22929--- 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 22930+++ 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 22931@@ -241,7 +241,7 @@ static struct scsi_host_template sl82c10
22089 ATA_BMDMA_SHT(DRV_NAME), 22932 ATA_BMDMA_SHT(DRV_NAME),
22090 }; 22933 };
@@ -22094,9 +22937,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, 22937 .inherits = &ata_bmdma_port_ops,
22095 .qc_defer = sl82c105_qc_defer, 22938 .qc_defer = sl82c105_qc_defer,
22096 .bmdma_start = sl82c105_bmdma_start, 22939 .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 22940diff -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 22941--- 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 22942+++ 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 22943@@ -178,7 +178,7 @@ static struct scsi_host_template triflex
22101 ATA_BMDMA_SHT(DRV_NAME), 22944 ATA_BMDMA_SHT(DRV_NAME),
22102 }; 22945 };
@@ -22106,9 +22949,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, 22949 .inherits = &ata_bmdma_port_ops,
22107 .bmdma_start = triflex_bmdma_start, 22950 .bmdma_start = triflex_bmdma_start,
22108 .bmdma_stop = triflex_bmdma_stop, 22951 .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 22952diff -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 22953--- 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 22954+++ 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 22955@@ -441,7 +441,7 @@ static struct scsi_host_template via_sht
22113 ATA_BMDMA_SHT(DRV_NAME), 22956 ATA_BMDMA_SHT(DRV_NAME),
22114 }; 22957 };
@@ -22127,9 +22970,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, 22970 .inherits = &via_port_ops,
22128 .sff_data_xfer = ata_sff_data_xfer_noirq, 22971 .sff_data_xfer = ata_sff_data_xfer_noirq,
22129 }; 22972 };
22130diff -urNp linux-2.6.38.2/drivers/ata/pdc_adma.c linux-2.6.38.2/drivers/ata/pdc_adma.c 22973diff -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 22974--- 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 22975+++ 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 22976@@ -146,7 +146,7 @@ static struct scsi_host_template adma_at
22134 .dma_boundary = ADMA_DMA_BOUNDARY, 22977 .dma_boundary = ADMA_DMA_BOUNDARY,
22135 }; 22978 };
@@ -22139,9 +22982,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, 22982 .inherits = &ata_sff_port_ops,
22140 22983
22141 .lost_interrupt = ATA_OP_NULL, 22984 .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 22985diff -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 22986--- 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 22987+++ 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 22988@@ -1560,7 +1560,7 @@ static struct scsi_host_template sata_dw
22146 .dma_boundary = ATA_DMA_BOUNDARY, 22989 .dma_boundary = ATA_DMA_BOUNDARY,
22147 }; 22990 };
@@ -22151,9 +22994,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, 22994 .inherits = &ata_sff_port_ops,
22152 22995
22153 .error_handler = sata_dwc_error_handler, 22996 .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 22997diff -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 22998--- 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 22999+++ 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 23000@@ -1258,7 +1258,7 @@ static struct scsi_host_template sata_fs
22158 .dma_boundary = ATA_DMA_BOUNDARY, 23001 .dma_boundary = ATA_DMA_BOUNDARY,
22159 }; 23002 };
@@ -22163,9 +23006,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, 23006 .inherits = &sata_pmp_port_ops,
22164 23007
22165 .qc_defer = ata_std_qc_defer, 23008 .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 23009diff -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 23010--- 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 23011+++ 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 23012@@ -705,7 +705,7 @@ static int inic_port_start(struct ata_po
22170 return 0; 23013 return 0;
22171 } 23014 }
@@ -22175,9 +23018,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, 23018 .inherits = &sata_port_ops,
22176 23019
22177 .check_atapi_dma = inic_check_atapi_dma, 23020 .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 23021diff -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 23022--- 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 23023+++ 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 23024@@ -663,7 +663,7 @@ static struct scsi_host_template mv6_sht
22182 .dma_boundary = MV_DMA_BOUNDARY, 23025 .dma_boundary = MV_DMA_BOUNDARY,
22183 }; 23026 };
@@ -22205,9 +23048,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, 23048 .inherits = &mv6_ops,
22206 .dev_config = ATA_OP_NULL, 23049 .dev_config = ATA_OP_NULL,
22207 .qc_prep = mv_qc_prep_iie, 23050 .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 23051diff -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 23052--- 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 23053+++ 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 23054@@ -465,7 +465,7 @@ static struct scsi_host_template nv_swnc
22212 * cases. Define nv_hardreset() which only kicks in for post-boot 23055 * cases. Define nv_hardreset() which only kicks in for post-boot
22213 * probing and use it for all variants. 23056 * probing and use it for all variants.
@@ -22250,9 +23093,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, 23093 .inherits = &nv_generic_ops,
22251 23094
22252 .qc_defer = ata_std_qc_defer, 23095 .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 23096diff -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 23097--- 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 23098+++ 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 23099@@ -196,7 +196,7 @@ static const struct ata_port_operations
22257 .error_handler = pdc_error_handler, 23100 .error_handler = pdc_error_handler,
22258 }; 23101 };
@@ -22279,9 +23122,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, 23122 .inherits = &pdc_common_ops,
22280 .cable_detect = pdc_pata_cable_detect, 23123 .cable_detect = pdc_pata_cable_detect,
22281 .freeze = pdc_freeze, 23124 .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 23125diff -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 23126--- 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 23127+++ 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_ 23128@@ -131,7 +131,7 @@ static struct scsi_host_template qs_ata_
22286 .dma_boundary = QS_DMA_BOUNDARY, 23129 .dma_boundary = QS_DMA_BOUNDARY,
22287 }; 23130 };
@@ -22291,9 +23134,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, 23134 .inherits = &ata_sff_port_ops,
22292 23135
22293 .check_atapi_dma = qs_check_atapi_dma, 23136 .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 23137diff -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 23138--- 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 23139+++ 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 23140@@ -389,7 +389,7 @@ static struct scsi_host_template sil24_s
22298 .dma_boundary = ATA_DMA_BOUNDARY, 23141 .dma_boundary = ATA_DMA_BOUNDARY,
22299 }; 23142 };
@@ -22303,9 +23146,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, 23146 .inherits = &sata_pmp_port_ops,
22304 23147
22305 .qc_defer = sil24_qc_defer, 23148 .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 23149diff -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 23150--- 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 23151+++ 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 23152@@ -182,7 +182,7 @@ static struct scsi_host_template sil_sht
22310 .sg_tablesize = ATA_MAX_PRD 23153 .sg_tablesize = ATA_MAX_PRD
22311 }; 23154 };
@@ -22315,9 +23158,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, 23158 .inherits = &ata_bmdma32_port_ops,
22316 .dev_config = sil_dev_config, 23159 .dev_config = sil_dev_config,
22317 .set_mode = sil_set_mode, 23160 .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 23161diff -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 23162--- 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 23163+++ 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 23164@@ -89,7 +89,7 @@ static struct scsi_host_template sis_sht
22322 ATA_BMDMA_SHT(DRV_NAME), 23165 ATA_BMDMA_SHT(DRV_NAME),
22323 }; 23166 };
@@ -22327,9 +23170,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, 23170 .inherits = &ata_bmdma_port_ops,
22328 .scr_read = sis_scr_read, 23171 .scr_read = sis_scr_read,
22329 .scr_write = sis_scr_write, 23172 .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 23173diff -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 23174--- 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 23175+++ 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 23176@@ -344,7 +344,7 @@ static struct scsi_host_template k2_sata
22334 }; 23177 };
22335 23178
@@ -22339,9 +23182,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, 23182 .inherits = &ata_bmdma_port_ops,
22340 .sff_tf_load = k2_sata_tf_load, 23183 .sff_tf_load = k2_sata_tf_load,
22341 .sff_tf_read = k2_sata_tf_read, 23184 .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 23185diff -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 23186--- 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 23187+++ 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 23188@@ -249,7 +249,7 @@ static struct scsi_host_template pdc_sat
22346 }; 23189 };
22347 23190
@@ -22351,9 +23194,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, 23194 .inherits = &ata_sff_port_ops,
22352 23195
22353 .check_atapi_dma = pdc_check_atapi_dma, 23196 .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 23197diff -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 23198--- 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 23199+++ 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 23200@@ -80,7 +80,7 @@ static struct scsi_host_template uli_sht
22358 ATA_BMDMA_SHT(DRV_NAME), 23201 ATA_BMDMA_SHT(DRV_NAME),
22359 }; 23202 };
@@ -22363,9 +23206,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, 23206 .inherits = &ata_bmdma_port_ops,
22364 .scr_read = uli_scr_read, 23207 .scr_read = uli_scr_read,
22365 .scr_write = uli_scr_write, 23208 .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 23209diff -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 23210--- 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 23211+++ 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 23212@@ -115,32 +115,32 @@ static struct scsi_host_template svia_sh
22370 ATA_BMDMA_SHT(DRV_NAME), 23213 ATA_BMDMA_SHT(DRV_NAME),
22371 }; 23214 };
@@ -22404,9 +23247,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, 23247 .inherits = &svia_base_ops,
22405 .hardreset = sata_std_hardreset, 23248 .hardreset = sata_std_hardreset,
22406 .scr_read = vt8251_scr_read, 23249 .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 23250diff -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 23251--- 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 23252+++ 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 23253@@ -300,7 +300,7 @@ static struct scsi_host_template vsc_sat
22411 }; 23254 };
22412 23255
@@ -22416,9 +23259,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, 23259 .inherits = &ata_bmdma_port_ops,
22417 /* The IRQ handling is not quite standard SFF behaviour so we 23260 /* The IRQ handling is not quite standard SFF behaviour so we
22418 cannot use the default lost interrupt handler */ 23261 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 23262diff -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 23263--- 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 23264+++ 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 23265@@ -114,7 +114,7 @@ adummy_send(struct atm_vcc *vcc, struct
22423 vcc->pop(vcc, skb); 23266 vcc->pop(vcc, skb);
22424 else 23267 else
@@ -22428,9 +23271,9 @@ diff -urNp linux-2.6.38.2/drivers/atm/adummy.c linux-2.6.38.2/drivers/atm/adummy
22428 23271
22429 return 0; 23272 return 0;
22430 } 23273 }
22431diff -urNp linux-2.6.38.2/drivers/atm/ambassador.c linux-2.6.38.2/drivers/atm/ambassador.c 23274diff -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 23275--- 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 23276+++ 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, 23277@@ -454,7 +454,7 @@ static void tx_complete (amb_dev * dev,
22435 PRINTD (DBG_FLOW|DBG_TX, "tx_complete %p %p", dev, tx); 23278 PRINTD (DBG_FLOW|DBG_TX, "tx_complete %p %p", dev, tx);
22436 23279
@@ -22467,9 +23310,9 @@ diff -urNp linux-2.6.38.2/drivers/atm/ambassador.c linux-2.6.38.2/drivers/atm/am
22467 return -ENOMEM; // ? 23310 return -ENOMEM; // ?
22468 } 23311 }
22469 23312
22470diff -urNp linux-2.6.38.2/drivers/atm/atmtcp.c linux-2.6.38.2/drivers/atm/atmtcp.c 23313diff -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 23314--- 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 23315+++ 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 23316@@ -207,7 +207,7 @@ static int atmtcp_v_send(struct atm_vcc
22474 if (vcc->pop) vcc->pop(vcc,skb); 23317 if (vcc->pop) vcc->pop(vcc,skb);
22475 else dev_kfree_skb(skb); 23318 else dev_kfree_skb(skb);
@@ -22519,9 +23362,9 @@ diff -urNp linux-2.6.38.2/drivers/atm/atmtcp.c linux-2.6.38.2/drivers/atm/atmtcp
22519 done: 23362 done:
22520 if (vcc->pop) vcc->pop(vcc,skb); 23363 if (vcc->pop) vcc->pop(vcc,skb);
22521 else dev_kfree_skb(skb); 23364 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 23365diff -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 23366--- 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 23367+++ 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) 23368@@ -526,7 +526,7 @@ static int rx_aal0(struct atm_vcc *vcc)
22526 DPRINTK(DEV_LABEL "(itf %d): trashing empty cell\n", 23369 DPRINTK(DEV_LABEL "(itf %d): trashing empty cell\n",
22527 vcc->dev->number); 23370 vcc->dev->number);
@@ -22567,9 +23410,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); 23410 wake_up(&eni_dev->tx_wait);
22568 dma_complete++; 23411 dma_complete++;
22569 } 23412 }
22570diff -urNp linux-2.6.38.2/drivers/atm/firestream.c linux-2.6.38.2/drivers/atm/firestream.c 23413diff -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 23414--- 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 23415+++ 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 23416@@ -749,7 +749,7 @@ static void process_txdone_queue (struct
22574 } 23417 }
22575 } 23418 }
@@ -22603,9 +23446,9 @@ diff -urNp linux-2.6.38.2/drivers/atm/firestream.c linux-2.6.38.2/drivers/atm/fi
22603 break; 23446 break;
22604 default: /* Hmm. Haven't written the code to handle the others yet... -- REW */ 23447 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", 23448 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 23449diff -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 23450--- 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 23451+++ 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 23452@@ -933,9 +933,9 @@ fore200e_tx_irq(struct fore200e* fore200
22610 #endif 23453 #endif
22611 /* check error condition */ 23454 /* check error condition */
@@ -22662,9 +23505,9 @@ diff -urNp linux-2.6.38.2/drivers/atm/fore200e.c linux-2.6.38.2/drivers/atm/fore
22662 23505
22663 fore200e->tx_sat++; 23506 fore200e->tx_sat++;
22664 DPRINTK(2, "tx queue of device %s is saturated, PDU dropped - heartbeat is %08x\n", 23507 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 23508diff -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 23509--- 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 23510+++ 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 23511@@ -1709,7 +1709,7 @@ he_service_rbrq(struct he_dev *he_dev, i
22669 23512
22670 if (RBRQ_HBUF_ERR(he_dev->rbrq_head)) { 23513 if (RBRQ_HBUF_ERR(he_dev->rbrq_head)) {
@@ -22746,9 +23589,9 @@ diff -urNp linux-2.6.38.2/drivers/atm/he.c linux-2.6.38.2/drivers/atm/he.c
22746 23589
22747 return 0; 23590 return 0;
22748 } 23591 }
22749diff -urNp linux-2.6.38.2/drivers/atm/horizon.c linux-2.6.38.2/drivers/atm/horizon.c 23592diff -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 23593--- 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 23594+++ 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, 23595@@ -1034,7 +1034,7 @@ static void rx_schedule (hrz_dev * dev,
22753 { 23596 {
22754 struct atm_vcc * vcc = ATM_SKB(skb)->vcc; 23597 struct atm_vcc * vcc = ATM_SKB(skb)->vcc;
@@ -22767,9 +23610,9 @@ diff -urNp linux-2.6.38.2/drivers/atm/horizon.c linux-2.6.38.2/drivers/atm/horiz
22767 23610
22768 // free the skb 23611 // free the skb
22769 hrz_kfree_skb (skb); 23612 hrz_kfree_skb (skb);
22770diff -urNp linux-2.6.38.2/drivers/atm/idt77252.c linux-2.6.38.2/drivers/atm/idt77252.c 23613diff -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 23614--- 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 23615+++ 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 23616@@ -811,7 +811,7 @@ drain_scq(struct idt77252_dev *card, str
22774 else 23617 else
22775 dev_kfree_skb(skb); 23618 dev_kfree_skb(skb);
@@ -22924,9 +23767,9 @@ diff -urNp linux-2.6.38.2/drivers/atm/idt77252.c linux-2.6.38.2/drivers/atm/idt7
22924 return -ENOMEM; 23767 return -ENOMEM;
22925 } 23768 }
22926 atomic_add(skb->truesize, &sk_atm(vcc)->sk_wmem_alloc); 23769 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 23770diff -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 23771--- 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 23772+++ 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) 23773@@ -1124,7 +1124,7 @@ static int rx_pkt(struct atm_dev *dev)
22931 status = (u_short) (buf_desc_ptr->desc_mode); 23774 status = (u_short) (buf_desc_ptr->desc_mode);
22932 if (status & (RX_CER | RX_PTE | RX_OFL)) 23775 if (status & (RX_CER | RX_PTE | RX_OFL))
@@ -23023,9 +23866,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) { 23866 if (iavcc->vc_desc_cnt > 10) {
23024 vcc->tx_quota = vcc->tx_quota * 3 / 4; 23867 vcc->tx_quota = vcc->tx_quota * 3 / 4;
23025 printk("Tx1: vcc->tx_quota = %d \n", (u32)vcc->tx_quota ); 23868 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 23869diff -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 23870--- 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 23871+++ 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 23872@@ -1303,7 +1303,7 @@ static void lanai_send_one_aal5(struct l
23030 vcc_tx_add_aal5_trailer(lvcc, skb->len, 0, 0); 23873 vcc_tx_add_aal5_trailer(lvcc, skb->len, 0, 0);
23031 lanai_endtx(lanai, lvcc); 23874 lanai_endtx(lanai, lvcc);
@@ -23080,9 +23923,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++; 23923 lvcc->stats.x.aal5.service_rxcrc++;
23081 lvcc->rx.buf.ptr = &lvcc->rx.buf.start[SERVICE_GET_END(s) * 4]; 23924 lvcc->rx.buf.ptr = &lvcc->rx.buf.start[SERVICE_GET_END(s) * 4];
23082 cardvcc_write(lvcc, SERVICE_GET_END(s), vcc_rxreadptr); 23925 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 23926diff -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 23927--- 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 23928+++ 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, 23929@@ -1654,7 +1654,7 @@ static int ns_send(struct atm_vcc *vcc,
23087 if ((vc = (vc_map *) vcc->dev_data) == NULL) { 23930 if ((vc = (vc_map *) vcc->dev_data) == NULL) {
23088 printk("nicstar%d: vcc->dev_data == NULL on ns_send().\n", 23931 printk("nicstar%d: vcc->dev_data == NULL on ns_send().\n",
@@ -23284,10 +24127,10 @@ diff -urNp linux-2.6.38.2/drivers/atm/nicstar.c linux-2.6.38.2/drivers/atm/nicst
23284 } 24127 }
23285 } 24128 }
23286 24129
23287diff -urNp linux-2.6.38.2/drivers/atm/solos-pci.c linux-2.6.38.2/drivers/atm/solos-pci.c 24130diff -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 24131--- 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 24132+++ 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) 24133@@ -715,7 +715,7 @@ void solos_bh(unsigned long card_arg)
23291 } 24134 }
23292 atm_charge(vcc, skb->truesize); 24135 atm_charge(vcc, skb->truesize);
23293 vcc->push(vcc, skb); 24136 vcc->push(vcc, skb);
@@ -23296,7 +24139,7 @@ diff -urNp linux-2.6.38.2/drivers/atm/solos-pci.c linux-2.6.38.2/drivers/atm/sol
23296 break; 24139 break;
23297 24140
23298 case PKT_STATUS: 24141 case PKT_STATUS:
23299@@ -1026,7 +1026,7 @@ static uint32_t fpga_tx(struct solos_car 24142@@ -1009,7 +1009,7 @@ static uint32_t fpga_tx(struct solos_car
23300 vcc = SKB_CB(oldskb)->vcc; 24143 vcc = SKB_CB(oldskb)->vcc;
23301 24144
23302 if (vcc) { 24145 if (vcc) {
@@ -23305,9 +24148,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); 24148 solos_pop(vcc, oldskb);
23306 } else 24149 } else
23307 dev_kfree_skb_irq(oldskb); 24150 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 24151diff -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 24152--- 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 24153+++ 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); 24154@@ -50,8 +50,8 @@ static DEFINE_SPINLOCK(sunis_lock);
23312 24155
23313 24156
@@ -23319,9 +24162,9 @@ diff -urNp linux-2.6.38.2/drivers/atm/suni.c linux-2.6.38.2/drivers/atm/suni.c
23319 24162
23320 24163
23321 static void suni_hz(unsigned long from_timer) 24164 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 24165diff -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 24166--- 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 24167+++ 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 24168@@ -42,7 +42,7 @@ static int fetch_stats(struct atm_dev *d
23326 struct sonet_stats tmp; 24169 struct sonet_stats tmp;
23327 int error = 0; 24170 int error = 0;
@@ -23366,9 +24209,9 @@ diff -urNp linux-2.6.38.2/drivers/atm/uPD98402.c linux-2.6.38.2/drivers/atm/uPD9
23366 return 0; 24209 return 0;
23367 } 24210 }
23368 24211
23369diff -urNp linux-2.6.38.2/drivers/atm/zatm.c linux-2.6.38.2/drivers/atm/zatm.c 24212diff -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 24213--- 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 24214+++ 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 24215@@ -459,7 +459,7 @@ printk("dummy: 0x%08lx, 0x%08lx\n",dummy
23373 } 24216 }
23374 if (!size) { 24217 if (!size) {
@@ -23396,9 +24239,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); 24239 wake_up(&zatm_vcc->tx_wait);
23397 } 24240 }
23398 24241
23399diff -urNp linux-2.6.38.2/drivers/block/cciss.c linux-2.6.38.2/drivers/block/cciss.c 24242diff -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 24243--- 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 24244+++ 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 24245@@ -1112,6 +1112,8 @@ static int cciss_ioctl32_passthru(struct
23403 int err; 24246 int err;
23404 u32 cp; 24247 u32 cp;
@@ -23408,9 +24251,9 @@ diff -urNp linux-2.6.38.2/drivers/block/cciss.c linux-2.6.38.2/drivers/block/cci
23408 err = 0; 24251 err = 0;
23409 err |= 24252 err |=
23410 copy_from_user(&arg64.LUN_info, &arg32->LUN_info, 24253 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 24254diff -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 24255--- 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 24256+++ 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 24257@@ -817,7 +817,7 @@ static int agpioc_reserve_wrap(struct ag
23415 if (copy_from_user(&reserve, arg, sizeof(struct agp_region))) 24258 if (copy_from_user(&reserve, arg, sizeof(struct agp_region)))
23416 return -EFAULT; 24259 return -EFAULT;
@@ -23420,9 +24263,9 @@ diff -urNp linux-2.6.38.2/drivers/char/agp/frontend.c linux-2.6.38.2/drivers/cha
23420 return -EFAULT; 24263 return -EFAULT;
23421 24264
23422 client = agp_find_client_by_pid(reserve.pid); 24265 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 24266diff -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 24267--- 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 24268+++ 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 24269@@ -903,7 +903,7 @@ static struct pci_device_id agp_intel_pc
23427 ID(PCI_DEVICE_ID_INTEL_SANDYBRIDGE_HB), 24270 ID(PCI_DEVICE_ID_INTEL_SANDYBRIDGE_HB),
23428 ID(PCI_DEVICE_ID_INTEL_SANDYBRIDGE_M_HB), 24271 ID(PCI_DEVICE_ID_INTEL_SANDYBRIDGE_M_HB),
@@ -23432,9 +24275,64 @@ diff -urNp linux-2.6.38.2/drivers/char/agp/intel-agp.c linux-2.6.38.2/drivers/ch
23432 }; 24275 };
23433 24276
23434 MODULE_DEVICE_TABLE(pci, agp_intel_pci_table); 24277 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 24278diff -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 24279--- 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 24280+++ linux-2.6.38.3/drivers/char/briq_panel.c 2011-04-18 19:47:43.000000000 -0400
24281@@ -9,6 +9,7 @@
24282 #include <linux/types.h>
24283 #include <linux/errno.h>
24284 #include <linux/tty.h>
24285+#include <linux/mutex.h>
24286 #include <linux/timer.h>
24287 #include <linux/kernel.h>
24288 #include <linux/wait.h>
24289@@ -34,6 +35,7 @@ static int vfd_is_open;
24290 static unsigned char vfd[40];
24291 static int vfd_cursor;
24292 static unsigned char ledpb, led;
24293+static DEFINE_MUTEX(vfd_mutex);
24294
24295 static void update_vfd(void)
24296 {
24297@@ -140,12 +142,15 @@ static ssize_t briq_panel_write(struct f
24298 if (!vfd_is_open)
24299 return -EBUSY;
24300
24301+ mutex_lock(&vfd_mutex);
24302 for (;;) {
24303 char c;
24304 if (!indx)
24305 break;
24306- if (get_user(c, buf))
24307+ if (get_user(c, buf)) {
24308+ mutex_unlock(&vfd_mutex);
24309 return -EFAULT;
24310+ }
24311 if (esc) {
24312 set_led(c);
24313 esc = 0;
24314@@ -175,6 +180,7 @@ static ssize_t briq_panel_write(struct f
24315 buf++;
24316 }
24317 update_vfd();
24318+ mutex_unlock(&vfd_mutex);
24319
24320 return len;
24321 }
24322diff -urNp linux-2.6.38.3/drivers/char/genrtc.c linux-2.6.38.3/drivers/char/genrtc.c
24323--- linux-2.6.38.3/drivers/char/genrtc.c 2011-03-14 21:20:32.000000000 -0400
24324+++ linux-2.6.38.3/drivers/char/genrtc.c 2011-04-21 16:55:16.000000000 -0400
24325@@ -273,6 +273,7 @@ static int gen_rtc_ioctl(struct file *fi
24326 switch (cmd) {
24327
24328 case RTC_PLL_GET:
24329+ memset(&pll, 0, sizeof(pll));
24330 if (get_rtc_pll(&pll))
24331 return -EINVAL;
24332 else
24333diff -urNp linux-2.6.38.3/drivers/char/hpet.c linux-2.6.38.3/drivers/char/hpet.c
24334--- linux-2.6.38.3/drivers/char/hpet.c 2011-03-14 21:20:32.000000000 -0400
24335+++ 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 24336@@ -553,7 +553,7 @@ static inline unsigned long hpet_time_di
23439 } 24337 }
23440 24338
@@ -23453,9 +24351,9 @@ diff -urNp linux-2.6.38.2/drivers/char/hpet.c linux-2.6.38.2/drivers/char/hpet.c
23453 24351
23454 static int __init hpet_init(void) 24352 static int __init hpet_init(void)
23455 { 24353 {
23456diff -urNp linux-2.6.38.2/drivers/char/ipmi/ipmi_msghandler.c linux-2.6.38.2/drivers/char/ipmi/ipmi_msghandler.c 24354diff -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 24355--- 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 24356+++ 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 { 24357@@ -414,7 +414,7 @@ struct ipmi_smi {
23460 struct proc_dir_entry *proc_dir; 24358 struct proc_dir_entry *proc_dir;
23461 char proc_dir_name[10]; 24359 char proc_dir_name[10];
@@ -23486,9 +24384,9 @@ diff -urNp linux-2.6.38.2/drivers/char/ipmi/ipmi_msghandler.c linux-2.6.38.2/dri
23486 24384
23487 intf->proc_dir = NULL; 24385 intf->proc_dir = NULL;
23488 24386
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 24387diff -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 24388--- 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 24389+++ 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 { 24390@@ -285,7 +285,7 @@ struct smi_info {
23493 unsigned char slave_addr; 24391 unsigned char slave_addr;
23494 24392
@@ -23519,9 +24417,49 @@ diff -urNp linux-2.6.38.2/drivers/char/ipmi/ipmi_si_intf.c linux-2.6.38.2/driver
23519 24417
23520 new_smi->interrupt_disabled = 1; 24418 new_smi->interrupt_disabled = 1;
23521 atomic_set(&new_smi->stop_operation, 0); 24419 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 24420diff -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 24421--- 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 24422+++ linux-2.6.38.3/drivers/char/istallion.c 2011-04-18 19:42:25.000000000 -0400
24423@@ -186,7 +186,6 @@ static struct ktermios stli_deftermios
24424 * re-used for each stats call.
24425 */
24426 static comstats_t stli_comstats;
24427-static combrd_t stli_brdstats;
24428 static struct asystats stli_cdkstats;
24429
24430 /*****************************************************************************/
24431@@ -4005,6 +4004,7 @@ static int stli_getbrdstats(combrd_t __u
24432 {
24433 struct stlibrd *brdp;
24434 unsigned int i;
24435+ combrd_t stli_brdstats;
24436
24437 if (copy_from_user(&stli_brdstats, bp, sizeof(combrd_t)))
24438 return -EFAULT;
24439diff -urNp linux-2.6.38.3/drivers/char/Kconfig linux-2.6.38.3/drivers/char/Kconfig
24440--- linux-2.6.38.3/drivers/char/Kconfig 2011-03-14 21:20:32.000000000 -0400
24441+++ linux-2.6.38.3/drivers/char/Kconfig 2011-04-18 19:19:48.000000000 -0400
24442@@ -90,7 +90,8 @@ config VT_HW_CONSOLE_BINDING
24443
24444 config DEVKMEM
24445 bool "/dev/kmem virtual device support"
24446- default y
24447+ default n
24448+ depends on !GRKERNSEC_KMEM
24449 help
24450 Say Y here if you want to support the /dev/kmem device. The
24451 /dev/kmem device is rarely used, but can be used for certain
24452@@ -1132,6 +1133,7 @@ config DEVPORT
24453 bool
24454 depends on !M68K
24455 depends on ISA || PCI
24456+ depends on !GRKERNSEC_KMEM
24457 default y
24458
24459 source "drivers/s390/char/Kconfig"
24460diff -urNp linux-2.6.38.3/drivers/char/mem.c linux-2.6.38.3/drivers/char/mem.c
24461--- linux-2.6.38.3/drivers/char/mem.c 2011-03-14 21:20:32.000000000 -0400
24462+++ linux-2.6.38.3/drivers/char/mem.c 2011-04-17 15:57:32.000000000 -0400
23525@@ -18,6 +18,7 @@ 24463@@ -18,6 +18,7 @@
23526 #include <linux/raw.h> 24464 #include <linux/raw.h>
23527 #include <linux/tty.h> 24465 #include <linux/tty.h>
@@ -23541,7 +24479,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, 24479 static inline unsigned long size_inside_page(unsigned long start,
23542 unsigned long size) 24480 unsigned long size)
23543 { 24481 {
23544@@ -120,6 +125,7 @@ static ssize_t read_mem(struct file *fil 24482@@ -68,9 +73,13 @@ static inline int range_is_allowed(unsig
24483
24484 while (cursor < to) {
24485 if (!devmem_is_allowed(pfn)) {
24486+#ifdef CONFIG_GRKERNSEC_KMEM
24487+ gr_handle_mem_readwrite(from, to);
24488+#else
24489 printk(KERN_INFO
24490 "Program %s tried to access /dev/mem between %Lx->%Lx.\n",
24491 current->comm, from, to);
24492+#endif
24493 return 0;
24494 }
24495 cursor += PAGE_SIZE;
24496@@ -78,6 +87,11 @@ static inline int range_is_allowed(unsig
24497 }
24498 return 1;
24499 }
24500+#elif defined(CONFIG_GRKERNSEC_KMEM)
24501+static inline int range_is_allowed(unsigned long pfn, unsigned long size)
24502+{
24503+ return 0;
24504+}
24505 #else
24506 static inline int range_is_allowed(unsigned long pfn, unsigned long size)
24507 {
24508@@ -120,6 +134,7 @@ static ssize_t read_mem(struct file *fil
23545 24509
23546 while (count > 0) { 24510 while (count > 0) {
23547 unsigned long remaining; 24511 unsigned long remaining;
@@ -23549,7 +24513,7 @@ diff -urNp linux-2.6.38.2/drivers/char/mem.c linux-2.6.38.2/drivers/char/mem.c
23549 24513
23550 sz = size_inside_page(p, count); 24514 sz = size_inside_page(p, count);
23551 24515
23552@@ -135,7 +141,23 @@ static ssize_t read_mem(struct file *fil 24516@@ -135,7 +150,23 @@ static ssize_t read_mem(struct file *fil
23553 if (!ptr) 24517 if (!ptr)
23554 return -EFAULT; 24518 return -EFAULT;
23555 24519
@@ -23574,31 +24538,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); 24538 unxlate_dev_mem_ptr(p, ptr);
23575 if (remaining) 24539 if (remaining)
23576 return -EFAULT; 24540 return -EFAULT;
23577@@ -161,6 +183,11 @@ static ssize_t write_mem(struct file *fi 24541@@ -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) 24542 size_t count, loff_t *ppos)
23603 { 24543 {
23604 unsigned long p = *ppos; 24544 unsigned long p = *ppos;
@@ -23609,7 +24549,7 @@ diff -urNp linux-2.6.38.2/drivers/char/mem.c linux-2.6.38.2/drivers/char/mem.c
23609 24549
23610 read = 0; 24550 read = 0;
23611 if (p < (unsigned long) high_memory) { 24551 if (p < (unsigned long) high_memory) {
23612@@ -422,6 +453,8 @@ static ssize_t read_kmem(struct file *fi 24552@@ -422,6 +452,8 @@ static ssize_t read_kmem(struct file *fi
23613 } 24553 }
23614 #endif 24554 #endif
23615 while (low_count > 0) { 24555 while (low_count > 0) {
@@ -23618,7 +24558,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); 24558 sz = size_inside_page(p, low_count);
23619 24559
23620 /* 24560 /*
23621@@ -431,7 +464,22 @@ static ssize_t read_kmem(struct file *fi 24561@@ -431,7 +463,22 @@ static ssize_t read_kmem(struct file *fi
23622 */ 24562 */
23623 kbuf = xlate_dev_kmem_ptr((char *)p); 24563 kbuf = xlate_dev_kmem_ptr((char *)p);
23624 24564
@@ -23642,44 +24582,7 @@ diff -urNp linux-2.6.38.2/drivers/char/mem.c linux-2.6.38.2/drivers/char/mem.c
23642 return -EFAULT; 24582 return -EFAULT;
23643 buf += sz; 24583 buf += sz;
23644 p += sz; 24584 p += sz;
23645@@ -530,6 +578,11 @@ static ssize_t write_kmem(struct file *f 24585@@ -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 24586 #ifdef CONFIG_CRASH_DUMP
23684 [12] = { "oldmem", 0, &oldmem_fops, NULL }, 24587 [12] = { "oldmem", 0, &oldmem_fops, NULL },
23685 #endif 24588 #endif
@@ -23689,9 +24592,9 @@ diff -urNp linux-2.6.38.2/drivers/char/mem.c linux-2.6.38.2/drivers/char/mem.c
23689 }; 24592 };
23690 24593
23691 static int memory_open(struct inode *inode, struct file *filp) 24594 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 24595diff -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 24596--- 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 24597+++ 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 24598@@ -246,7 +246,7 @@ static ssize_t nvram_read(struct file *f
23696 24599
23697 spin_unlock_irq(&rtc_lock); 24600 spin_unlock_irq(&rtc_lock);
@@ -23713,9 +24616,9 @@ diff -urNp linux-2.6.38.2/drivers/char/nvram.c linux-2.6.38.2/drivers/char/nvram
23713 }; 24616 };
23714 24617
23715 static int __init nvram_init(void) 24618 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 24619diff -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 24620--- 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 24621+++ linux-2.6.38.3/drivers/char/pcmcia/ipwireless/tty.c 2011-04-17 15:57:32.000000000 -0400
23719@@ -29,6 +29,7 @@ 24622@@ -29,6 +29,7 @@
23720 #include <linux/tty_driver.h> 24623 #include <linux/tty_driver.h>
23721 #include <linux/tty_flip.h> 24624 #include <linux/tty_flip.h>
@@ -23838,9 +24741,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); 24741 do_ipw_close(ttyj);
23839 ipwireless_disassociate_network_ttys(network, 24742 ipwireless_disassociate_network_ttys(network,
23840 ttyj->channel_idx); 24743 ttyj->channel_idx);
23841diff -urNp linux-2.6.38.2/drivers/char/random.c linux-2.6.38.2/drivers/char/random.c 24744diff -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 24745--- 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 24746+++ linux-2.6.38.3/drivers/char/random.c 2011-04-17 15:57:32.000000000 -0400
23844@@ -254,8 +254,13 @@ 24747@@ -254,8 +254,13 @@
23845 /* 24748 /*
23846 * Configuration information 24749 * Configuration information
@@ -23891,9 +24794,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; 24794 static int max_write_thresh = INPUT_POOL_WORDS * 32;
23892 static char sysctl_bootid[16]; 24795 static char sysctl_bootid[16];
23893 24796
23894diff -urNp linux-2.6.38.2/drivers/char/sonypi.c linux-2.6.38.2/drivers/char/sonypi.c 24797diff -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 24798--- 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 24799+++ linux-2.6.38.3/drivers/char/sonypi.c 2011-04-17 15:57:32.000000000 -0400
23897@@ -55,6 +55,7 @@ 24800@@ -55,6 +55,7 @@
23898 #include <asm/uaccess.h> 24801 #include <asm/uaccess.h>
23899 #include <asm/io.h> 24802 #include <asm/io.h>
@@ -23932,9 +24835,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); 24835 mutex_unlock(&sonypi_device.lock);
23933 24836
23934 return 0; 24837 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 24838diff -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 24839--- 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 24840+++ 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 24841@@ -173,7 +173,7 @@ static void *tpm_bios_measurements_start
23939 event = addr; 24842 event = addr;
23940 24843
@@ -23975,9 +24878,9 @@ diff -urNp linux-2.6.38.2/drivers/char/tpm/tpm_bios.c linux-2.6.38.2/drivers/cha
23975 24878
23976 memcpy(log->bios_event_log, virt, len); 24879 memcpy(log->bios_event_log, virt, len);
23977 24880
23978diff -urNp linux-2.6.38.2/drivers/char/tpm/tpm.c linux-2.6.38.2/drivers/char/tpm/tpm.c 24881diff -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 24882--- 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 24883+++ 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 24884@@ -411,7 +411,7 @@ static ssize_t tpm_transmit(struct tpm_c
23982 chip->vendor.req_complete_val) 24885 chip->vendor.req_complete_val)
23983 goto out_recv; 24886 goto out_recv;
@@ -23987,9 +24890,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"); 24890 dev_err(chip->dev, "Operation Canceled\n");
23988 rc = -ECANCELED; 24891 rc = -ECANCELED;
23989 goto out; 24892 goto out;
23990diff -urNp linux-2.6.38.2/drivers/cpuidle/sysfs.c linux-2.6.38.2/drivers/cpuidle/sysfs.c 24893diff -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 24894--- 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 24895+++ 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 24896@@ -300,7 +300,7 @@ static struct kobj_type ktype_state_cpui
23994 .release = cpuidle_state_sysfs_release, 24897 .release = cpuidle_state_sysfs_release,
23995 }; 24898 };
@@ -23999,9 +24902,9 @@ diff -urNp linux-2.6.38.2/drivers/cpuidle/sysfs.c linux-2.6.38.2/drivers/cpuidle
23999 { 24902 {
24000 kobject_put(&device->kobjs[i]->kobj); 24903 kobject_put(&device->kobjs[i]->kobj);
24001 wait_for_completion(&device->kobjs[i]->kobj_unregister); 24904 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 24905diff -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 24906--- 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 24907+++ 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; 24908@@ -88,11 +88,11 @@ extern int edac_debug_level;
24006 24909
24007 #else /* !CONFIG_EDAC_DEBUG */ 24910 #else /* !CONFIG_EDAC_DEBUG */
@@ -24019,9 +24922,9 @@ diff -urNp linux-2.6.38.2/drivers/edac/edac_core.h linux-2.6.38.2/drivers/edac/e
24019 24922
24020 #endif /* !CONFIG_EDAC_DEBUG */ 24923 #endif /* !CONFIG_EDAC_DEBUG */
24021 24924
24022diff -urNp linux-2.6.38.2/drivers/edac/edac_mc_sysfs.c linux-2.6.38.2/drivers/edac/edac_mc_sysfs.c 24925diff -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 24926--- 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 24927+++ 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 24928@@ -761,7 +761,7 @@ static void edac_inst_grp_release(struct
24026 } 24929 }
24027 24930
@@ -24031,9 +24934,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, 24934 .show = inst_grp_show,
24032 .store = inst_grp_store 24935 .store = inst_grp_store
24033 }; 24936 };
24034diff -urNp linux-2.6.38.2/drivers/firewire/core-cdev.c linux-2.6.38.2/drivers/firewire/core-cdev.c 24937diff -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 24938--- 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 24939+++ 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 24940@@ -1329,8 +1329,7 @@ static int init_iso_resource(struct clie
24038 int ret; 24941 int ret;
24039 24942
@@ -24044,9 +24947,9 @@ diff -urNp linux-2.6.38.2/drivers/firewire/core-cdev.c linux-2.6.38.2/drivers/fi
24044 return -EINVAL; 24947 return -EINVAL;
24045 24948
24046 r = kmalloc(sizeof(*r), GFP_KERNEL); 24949 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 24950diff -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 24951--- 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 24952+++ 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) 24953@@ -449,11 +449,6 @@ void __init dmi_scan_machine(void)
24051 } 24954 }
24052 } 24955 }
@@ -24059,9 +24962,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); 24962 p = dmi_ioremap(0xF0000, 0x10000);
24060 if (p == NULL) 24963 if (p == NULL)
24061 goto error; 24964 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 24965diff -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 24966--- 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 24967+++ 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 24968@@ -276,7 +276,7 @@ static bool drm_encoder_crtc_ok(struct d
24066 struct drm_crtc *tmp; 24969 struct drm_crtc *tmp;
24067 int crtc_mask = 1; 24970 int crtc_mask = 1;
@@ -24071,9 +24974,9 @@ diff -urNp linux-2.6.38.2/drivers/gpu/drm/drm_crtc_helper.c linux-2.6.38.2/drive
24071 24974
24072 dev = crtc->dev; 24975 dev = crtc->dev;
24073 24976
24074diff -urNp linux-2.6.38.2/drivers/gpu/drm/drm_drv.c linux-2.6.38.2/drivers/gpu/drm/drm_drv.c 24977diff -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 24978--- 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 24979+++ 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, 24980@@ -425,7 +425,7 @@ long drm_ioctl(struct file *filp,
24078 24981
24079 dev = file_priv->minor->dev; 24982 dev = file_priv->minor->dev;
@@ -24083,9 +24986,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; 24986 ++file_priv->ioctl_count;
24084 24987
24085 DRM_DEBUG("pid=%d, cmd=0x%02x, nr=0x%02x, dev 0x%lx, auth=%d\n", 24988 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 24989diff -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 24990--- 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 24991+++ 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 * 24992@@ -70,7 +70,7 @@ static int drm_setup(struct drm_device *
24090 } 24993 }
24091 24994
@@ -24135,9 +25038,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)) { 25038 if (atomic_read(&dev->ioctl_count)) {
24136 DRM_ERROR("Device busy: %d\n", 25039 DRM_ERROR("Device busy: %d\n",
24137 atomic_read(&dev->ioctl_count)); 25040 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 25041diff -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 25042--- 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 25043+++ linux-2.6.38.3/drivers/gpu/drm/drm_global.c 2011-04-17 15:57:32.000000000 -0400
24141@@ -36,7 +36,7 @@ 25044@@ -36,7 +36,7 @@
24142 struct drm_global_item { 25045 struct drm_global_item {
24143 struct mutex mutex; 25046 struct mutex mutex;
@@ -24195,9 +25098,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); 25098 ref->release(ref);
24196 item->object = NULL; 25099 item->object = NULL;
24197 } 25100 }
24198diff -urNp linux-2.6.38.2/drivers/gpu/drm/drm_info.c linux-2.6.38.2/drivers/gpu/drm/drm_info.c 25101diff -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 25102--- 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 25103+++ 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 25104@@ -86,10 +86,14 @@ int drm_vm_info(struct seq_file *m, void
24202 struct drm_local_map *map; 25105 struct drm_local_map *map;
24203 struct drm_map_list *r_list; 25106 struct drm_map_list *r_list;
@@ -24238,9 +25141,9 @@ diff -urNp linux-2.6.38.2/drivers/gpu/drm/drm_info.c linux-2.6.38.2/drivers/gpu/
24238 25141
24239 #if defined(__i386__) 25142 #if defined(__i386__)
24240 pgprot = pgprot_val(vma->vm_page_prot); 25143 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 25144diff -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 25145--- 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 25146+++ 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, 25147@@ -353,7 +353,7 @@ int drm_getstats(struct drm_device *dev,
24245 stats->data[i].value = 25148 stats->data[i].value =
24246 (file_priv->master->lock.hw_lock ? file_priv->master->lock.hw_lock->lock : 0); 25149 (file_priv->master->lock.hw_lock ? file_priv->master->lock.hw_lock->lock : 0);
@@ -24250,9 +25153,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]; 25153 stats->data[i].type = dev->types[i];
24251 } 25154 }
24252 25155
24253diff -urNp linux-2.6.38.2/drivers/gpu/drm/drm_lock.c linux-2.6.38.2/drivers/gpu/drm/drm_lock.c 25156diff -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 25157--- 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 25158+++ 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 25159@@ -89,7 +89,7 @@ int drm_lock(struct drm_device *dev, voi
24257 if (drm_lock_take(&master->lock, lock->context)) { 25160 if (drm_lock_take(&master->lock, lock->context)) {
24258 master->lock.file_priv = file_priv; 25161 master->lock.file_priv = file_priv;
@@ -24271,9 +25174,9 @@ diff -urNp linux-2.6.38.2/drivers/gpu/drm/drm_lock.c linux-2.6.38.2/drivers/gpu/
24271 25174
24272 if (drm_lock_free(&master->lock, lock->context)) { 25175 if (drm_lock_free(&master->lock, lock->context)) {
24273 /* FIXME: Should really bail out here. */ 25176 /* 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 25177diff -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 25178--- 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 25179+++ 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 25180@@ -953,8 +953,8 @@ static int i810_dma_vertex(struct drm_de
24278 dma->buflist[vertex->idx], 25181 dma->buflist[vertex->idx],
24279 vertex->discard, vertex->used); 25182 vertex->discard, vertex->used);
@@ -24296,9 +25199,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; 25199 sarea_priv->last_enqueue = dev_priv->counter - 1;
24297 sarea_priv->last_dispatch = (int)hw_status[5]; 25200 sarea_priv->last_dispatch = (int)hw_status[5];
24298 25201
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 25202diff -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 25203--- 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 25204+++ 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_ 25205@@ -390,7 +390,7 @@ static void ch7017_destroy(struct intel_
24303 } 25206 }
24304 } 25207 }
@@ -24308,9 +25211,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, 25211 .init = ch7017_init,
24309 .detect = ch7017_detect, 25212 .detect = ch7017_detect,
24310 .mode_valid = ch7017_mode_valid, 25213 .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 25214diff -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 25215--- 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 25216+++ 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_ 25217@@ -320,7 +320,7 @@ static void ch7xxx_destroy(struct intel_
24315 } 25218 }
24316 } 25219 }
@@ -24320,9 +25223,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, 25223 .init = ch7xxx_init,
24321 .detect = ch7xxx_detect, 25224 .detect = ch7xxx_detect,
24322 .mode_valid = ch7xxx_mode_valid, 25225 .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 25226diff -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 25227--- 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 25228+++ 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 { 25229@@ -122,23 +122,23 @@ struct intel_dvo_dev_ops {
24327 * 25230 *
24328 * \return singly-linked list of modes or NULL if no modes found. 25231 * \return singly-linked list of modes or NULL if no modes found.
@@ -24355,9 +25258,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; 25258+extern const struct intel_dvo_dev_ops ch7017_ops;
24356 25259
24357 #endif /* _INTEL_DVO_H */ 25260 #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 25261diff -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 25262--- 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 25263+++ 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 25264@@ -410,7 +410,7 @@ static void ivch_destroy(struct intel_dv
24362 } 25265 }
24363 } 25266 }
@@ -24367,9 +25270,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, 25270 .init = ivch_init,
24368 .dpms = ivch_dpms, 25271 .dpms = ivch_dpms,
24369 .mode_valid = ivch_mode_valid, 25272 .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 25273diff -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 25274--- 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 25275+++ 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_ 25276@@ -252,7 +252,7 @@ static void sil164_destroy(struct intel_
24374 } 25277 }
24375 } 25278 }
@@ -24379,9 +25282,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, 25282 .init = sil164_init,
24380 .detect = sil164_detect, 25283 .detect = sil164_detect,
24381 .mode_valid = sil164_mode_valid, 25284 .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 25285diff -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 25286--- 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 25287+++ 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_ 25288@@ -293,7 +293,7 @@ static void tfp410_destroy(struct intel_
24386 } 25289 }
24387 } 25290 }
@@ -24391,9 +25294,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, 25294 .init = tfp410_init,
24392 .detect = tfp410_detect, 25295 .detect = tfp410_detect,
24393 .mode_valid = tfp410_mode_valid, 25296 .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 25297diff -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 25298--- 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 25299+++ 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 25300@@ -1159,7 +1159,7 @@ static bool i915_switcheroo_can_switch(s
24398 bool can_switch; 25301 bool can_switch;
24399 25302
@@ -24403,9 +25306,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); 25306 spin_unlock(&dev->count_lock);
24404 return can_switch; 25307 return can_switch;
24405 } 25308 }
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 25309diff -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 25310--- 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 25311+++ 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 25312@@ -673,7 +673,7 @@ static const struct dev_pm_ops i915_pm_o
24410 .restore = i915_pm_resume, 25313 .restore = i915_pm_resume,
24411 }; 25314 };
@@ -24415,9 +25318,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, 25318 .fault = i915_gem_fault,
24416 .open = drm_gem_vm_open, 25319 .open = drm_gem_vm_open,
24417 .close = drm_gem_vm_close, 25320 .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 25321diff -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 25322--- 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 25323+++ linux-2.6.38.3/drivers/gpu/drm/i915/i915_drv.h 2011-04-17 15:57:32.000000000 -0400
25324@@ -1229,7 +1229,7 @@ extern int intel_setup_gmbus(struct drm_
25325 extern void intel_teardown_gmbus(struct drm_device *dev);
25326 extern void intel_gmbus_set_speed(struct i2c_adapter *adapter, int speed);
25327 extern void intel_gmbus_force_bit(struct i2c_adapter *adapter, bool force_bit);
25328-extern inline bool intel_gmbus_is_forced_bit(struct i2c_adapter *adapter)
25329+static inline bool intel_gmbus_is_forced_bit(struct i2c_adapter *adapter)
25330 {
25331 return container_of(adapter, struct intel_gmbus, adapter)->force_bit;
25332 }
25333diff -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
25334--- linux-2.6.38.3/drivers/gpu/drm/nouveau/nouveau_state.c 2011-03-14 21:20:32.000000000 -0400
25335+++ 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 25336@@ -621,7 +621,7 @@ static bool nouveau_switcheroo_can_switc
24422 bool can_switch; 25337 bool can_switch;
24423 25338
@@ -24427,9 +25342,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); 25342 spin_unlock(&dev->count_lock);
24428 return can_switch; 25343 return can_switch;
24429 } 25344 }
24430diff -urNp linux-2.6.38.2/drivers/gpu/drm/radeon/mkregtable.c linux-2.6.38.2/drivers/gpu/drm/radeon/mkregtable.c 25345diff -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 25346--- 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 25347+++ 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, 25348@@ -637,14 +637,14 @@ static int parser_auth(struct table *t,
24434 regex_t mask_rex; 25349 regex_t mask_rex;
24435 regmatch_t match[4]; 25350 regmatch_t match[4];
@@ -24447,9 +25362,9 @@ diff -urNp linux-2.6.38.2/drivers/gpu/drm/radeon/mkregtable.c linux-2.6.38.2/dri
24447 25362
24448 if (regcomp 25363 if (regcomp
24449 (&mask_rex, "(0x[0-9a-fA-F]*) *([_a-zA-Z0-9]*)", REG_EXTENDED)) { 25364 (&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 25365diff -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 25366--- 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 25367+++ 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 25368@@ -673,7 +673,7 @@ static bool radeon_switcheroo_can_switch
24454 bool can_switch; 25369 bool can_switch;
24455 25370
@@ -24459,9 +25374,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); 25374 spin_unlock(&dev->count_lock);
24460 return can_switch; 25375 return can_switch;
24461 } 25376 }
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 25377diff -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 25378--- 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 25379+++ linux-2.6.38.3/drivers/gpu/drm/radeon/radeon_ioc32.c 2011-04-17 15:57:32.000000000 -0400
25380@@ -359,7 +359,7 @@ static int compat_radeon_cp_setparam(str
25381 request = compat_alloc_user_space(sizeof(*request));
25382 if (!access_ok(VERIFY_WRITE, request, sizeof(*request))
25383 || __put_user(req32.param, &request->param)
25384- || __put_user((void __user *)(unsigned long)req32.value,
25385+ || __put_user((unsigned long)req32.value,
25386 &request->value))
25387 return -EFAULT;
25388
25389diff -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
25390--- linux-2.6.38.3/drivers/gpu/drm/radeon/radeon_state.c 2011-03-14 21:20:32.000000000 -0400
25391+++ 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 25392@@ -2168,7 +2168,7 @@ static int radeon_cp_clear(struct drm_de
24466 if (sarea_priv->nbox > RADEON_NR_SAREA_CLIPRECTS) 25393 if (sarea_priv->nbox > RADEON_NR_SAREA_CLIPRECTS)
24467 sarea_priv->nbox = RADEON_NR_SAREA_CLIPRECTS; 25394 sarea_priv->nbox = RADEON_NR_SAREA_CLIPRECTS;
@@ -24480,9 +25407,9 @@ diff -urNp linux-2.6.38.2/drivers/gpu/drm/radeon/radeon_state.c linux-2.6.38.2/d
24480 25407
24481 DRM_DEBUG("pid=%d\n", DRM_CURRENTPID); 25408 DRM_DEBUG("pid=%d\n", DRM_CURRENTPID);
24482 25409
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 25410diff -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 25411--- 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 25412+++ 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 25413@@ -603,8 +603,9 @@ void radeon_ttm_set_active_vram_size(str
24487 man->size = size >> PAGE_SHIFT; 25414 man->size = size >> PAGE_SHIFT;
24488 } 25415 }
@@ -24543,9 +25470,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; 25470 vma->vm_ops = &radeon_ttm_vm_ops;
24544 return 0; 25471 return 0;
24545 } 25472 }
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 25473diff -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 25474--- 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 25475+++ linux-2.6.38.3/drivers/gpu/drm/radeon/rs690.c 2011-04-17 15:57:32.000000000 -0400
25476@@ -304,9 +304,11 @@ void rs690_crtc_bandwidth_compute(struct
25477 if (rdev->pm.max_bandwidth.full > rdev->pm.sideport_bandwidth.full &&
25478 rdev->pm.sideport_bandwidth.full)
25479 rdev->pm.max_bandwidth = rdev->pm.sideport_bandwidth;
25480- read_delay_latency.full = dfixed_const(370 * 800 * 1000);
25481+ read_delay_latency.full = dfixed_const(800 * 1000);
25482 read_delay_latency.full = dfixed_div(read_delay_latency,
25483 rdev->pm.igp_sideport_mclk);
25484+ a.full = dfixed_const(370);
25485+ read_delay_latency.full = dfixed_mul(read_delay_latency, a);
25486 } else {
25487 if (rdev->pm.max_bandwidth.full > rdev->pm.k8_bandwidth.full &&
25488 rdev->pm.k8_bandwidth.full)
25489diff -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
25490--- linux-2.6.38.3/drivers/gpu/drm/ttm/ttm_bo.c 2011-03-14 21:20:32.000000000 -0400
25491+++ 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 @@ 25492@@ -40,7 +40,7 @@
24550 #include <asm/atomic.h> 25493 #include <asm/atomic.h>
24551 25494
@@ -24555,9 +25498,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 25498 #define TTM_BO_HASH_ORDER 13
24556 25499
24557 static int ttm_bo_setup_vm(struct ttm_buffer_object *bo); 25500 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 25501diff -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 25502--- 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 25503+++ 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_ 25504@@ -69,11 +69,11 @@ static struct ttm_buffer_object *ttm_bo_
24562 return best_bo; 25505 return best_bo;
24563 } 25506 }
@@ -24615,9 +25558,21 @@ diff -urNp linux-2.6.38.2/drivers/gpu/drm/ttm/ttm_bo_vm.c linux-2.6.38.2/drivers
24615 25558
24616 static const struct vm_operations_struct ttm_bo_vm_ops = { 25559 static const struct vm_operations_struct ttm_bo_vm_ops = {
24617 .fault = ttm_bo_vm_fault, 25560 .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 25561diff -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 25562--- 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 25563+++ linux-2.6.38.3/drivers/gpu/drm/vmwgfx/vmwgfx_fifo.c 2011-04-17 15:57:32.000000000 -0400
25564@@ -534,7 +534,7 @@ static int vmw_fifo_vm_fault(struct vm_a
25565 return VM_FAULT_SIGBUS;
25566 }
25567
25568-static struct vm_operations_struct vmw_fifo_vm_ops = {
25569+static const struct vm_operations_struct vmw_fifo_vm_ops = {
25570 .fault = vmw_fifo_vm_fault,
25571 .open = NULL,
25572 .close = NULL
25573diff -urNp linux-2.6.38.3/drivers/hid/usbhid/hiddev.c linux-2.6.38.3/drivers/hid/usbhid/hiddev.c
25574--- linux-2.6.38.3/drivers/hid/usbhid/hiddev.c 2011-03-14 21:20:32.000000000 -0400
25575+++ 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 25576@@ -613,7 +613,7 @@ static long hiddev_ioctl(struct file *fi
24622 break; 25577 break;
24623 25578
@@ -24627,9 +25582,9 @@ diff -urNp linux-2.6.38.2/drivers/hid/usbhid/hiddev.c linux-2.6.38.2/drivers/hid
24627 break; 25582 break;
24628 25583
24629 for (i = 0; i < hid->maxcollection; i++) 25584 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 25585diff -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 25586--- 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 25587+++ 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 25588@@ -138,7 +138,7 @@ static DEVICE_ATTR(name, S_IRUGO, show_n
24634 25589
24635 static const struct pci_device_id k8temp_ids[] = { 25590 static const struct pci_device_id k8temp_ids[] = {
@@ -24639,9 +25594,9 @@ diff -urNp linux-2.6.38.2/drivers/hwmon/k8temp.c linux-2.6.38.2/drivers/hwmon/k8
24639 }; 25594 };
24640 25595
24641 MODULE_DEVICE_TABLE(pci, k8temp_ids); 25596 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 25597diff -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 25598--- 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 25599+++ 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 25600@@ -701,7 +701,7 @@ static struct sis5595_data *sis5595_upda
24646 25601
24647 static const struct pci_device_id sis5595_pci_ids[] = { 25602 static const struct pci_device_id sis5595_pci_ids[] = {
@@ -24651,9 +25606,9 @@ diff -urNp linux-2.6.38.2/drivers/hwmon/sis5595.c linux-2.6.38.2/drivers/hwmon/s
24651 }; 25606 };
24652 25607
24653 MODULE_DEVICE_TABLE(pci, sis5595_pci_ids); 25608 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 25609diff -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 25610--- 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 25611+++ 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 25612@@ -779,7 +779,7 @@ static struct via686a_data *via686a_upda
24658 25613
24659 static const struct pci_device_id via686a_pci_ids[] = { 25614 static const struct pci_device_id via686a_pci_ids[] = {
@@ -24663,9 +25618,9 @@ diff -urNp linux-2.6.38.2/drivers/hwmon/via686a.c linux-2.6.38.2/drivers/hwmon/v
24663 }; 25618 };
24664 25619
24665 MODULE_DEVICE_TABLE(pci, via686a_pci_ids); 25620 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 25621diff -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 25622--- 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 25623+++ 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 25624@@ -701,7 +701,7 @@ static struct platform_driver vt8231_dri
24670 25625
24671 static const struct pci_device_id vt8231_pci_ids[] = { 25626 static const struct pci_device_id vt8231_pci_ids[] = {
@@ -24675,9 +25630,9 @@ diff -urNp linux-2.6.38.2/drivers/hwmon/vt8231.c linux-2.6.38.2/drivers/hwmon/vt
24675 }; 25630 };
24676 25631
24677 MODULE_DEVICE_TABLE(pci, vt8231_pci_ids); 25632 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 25633diff -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 25634--- 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 25635+++ 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 25636@@ -329,8 +329,8 @@ static int w83791d_detect(struct i2c_cli
24682 struct i2c_board_info *info); 25637 struct i2c_board_info *info);
24683 static int w83791d_remove(struct i2c_client *client); 25638 static int w83791d_remove(struct i2c_client *client);
@@ -24689,9 +25644,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); 25644 static struct w83791d_data *w83791d_update_device(struct device *dev);
24690 25645
24691 #ifdef DEBUG 25646 #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 25647diff -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 25648--- 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 25649+++ 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 25650@@ -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) }, 25651 { 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) }, 25652 { PCI_DEVICE(PCI_VENDOR_ID_INTEL, PCI_DEVICE_ID_INTEL_PATSBURG_SMBUS_IDF1) },
@@ -24701,9 +25656,9 @@ diff -urNp linux-2.6.38.2/drivers/i2c/busses/i2c-i801.c linux-2.6.38.2/drivers/i
24701 }; 25656 };
24702 25657
24703 MODULE_DEVICE_TABLE(pci, i801_ids); 25658 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 25659diff -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 25660--- 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 25661+++ 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 25662@@ -124,7 +124,7 @@ static struct dmi_system_id __devinitdat
24708 .ident = "IBM", 25663 .ident = "IBM",
24709 .matches = { DMI_MATCH(DMI_SYS_VENDOR, "IBM"), }, 25664 .matches = { DMI_MATCH(DMI_SYS_VENDOR, "IBM"), },
@@ -24722,9 +25677,9 @@ diff -urNp linux-2.6.38.2/drivers/i2c/busses/i2c-piix4.c linux-2.6.38.2/drivers/
24722 }; 25677 };
24723 25678
24724 MODULE_DEVICE_TABLE (pci, piix4_ids); 25679 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 25680diff -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 25681--- 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 25682+++ 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 25683@@ -471,7 +471,7 @@ static struct i2c_adapter sis630_adapter
24729 static const struct pci_device_id sis630_ids[] __devinitconst = { 25684 static const struct pci_device_id sis630_ids[] __devinitconst = {
24730 { PCI_DEVICE(PCI_VENDOR_ID_SI, PCI_DEVICE_ID_SI_503) }, 25685 { PCI_DEVICE(PCI_VENDOR_ID_SI, PCI_DEVICE_ID_SI_503) },
@@ -24734,9 +25689,9 @@ diff -urNp linux-2.6.38.2/drivers/i2c/busses/i2c-sis630.c linux-2.6.38.2/drivers
24734 }; 25689 };
24735 25690
24736 MODULE_DEVICE_TABLE (pci, sis630_ids); 25691 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 25692diff -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 25693--- 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 25694+++ 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 25695@@ -247,7 +247,7 @@ static struct i2c_adapter sis96x_adapter
24741 25696
24742 static const struct pci_device_id sis96x_ids[] = { 25697 static const struct pci_device_id sis96x_ids[] = {
@@ -24746,9 +25701,9 @@ diff -urNp linux-2.6.38.2/drivers/i2c/busses/i2c-sis96x.c linux-2.6.38.2/drivers
24746 }; 25701 };
24747 25702
24748 MODULE_DEVICE_TABLE (pci, sis96x_ids); 25703 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 25704diff -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 25705--- 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 25706+++ 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_ 25707@@ -776,7 +776,7 @@ static void cdrom_do_block_pc(ide_drive_
24753 alignment = queue_dma_alignment(q) | q->dma_pad_mask; 25708 alignment = queue_dma_alignment(q) | q->dma_pad_mask;
24754 if ((unsigned long)buf & alignment 25709 if ((unsigned long)buf & alignment
@@ -24758,9 +25713,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; 25713 drive->dma = 0;
24759 } 25714 }
24760 } 25715 }
24761diff -urNp linux-2.6.38.2/drivers/infiniband/core/cm.c linux-2.6.38.2/drivers/infiniband/core/cm.c 25716diff -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 25717--- 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 25718+++ 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 25719@@ -113,7 +113,7 @@ static char const counter_group_names[CM
24765 25720
24766 struct cm_counter_group { 25721 struct cm_counter_group {
@@ -24900,9 +25855,9 @@ diff -urNp linux-2.6.38.2/drivers/infiniband/core/cm.c linux-2.6.38.2/drivers/in
24900 } 25855 }
24901 25856
24902 static const struct sysfs_ops cm_counter_ops = { 25857 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 25858diff -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 25859--- 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 25860+++ linux-2.6.38.3/drivers/infiniband/hw/qib/qib.h 2011-04-17 15:57:32.000000000 -0400
24906@@ -51,6 +51,7 @@ 25861@@ -51,6 +51,7 @@
24907 #include <linux/completion.h> 25862 #include <linux/completion.h>
24908 #include <linux/kref.h> 25863 #include <linux/kref.h>
@@ -24911,9 +25866,9 @@ diff -urNp linux-2.6.38.2/drivers/infiniband/hw/qib/qib.h linux-2.6.38.2/drivers
24911 25866
24912 #include "qib_common.h" 25867 #include "qib_common.h"
24913 #include "qib_verbs.h" 25868 #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 25869diff -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 25870--- 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 25871+++ 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 25872@@ -1250,7 +1250,7 @@ static struct serio_device_id atkbd_seri
24918 .id = SERIO_ANY, 25873 .id = SERIO_ANY,
24919 .extra = SERIO_ANY, 25874 .extra = SERIO_ANY,
@@ -24923,9 +25878,9 @@ diff -urNp linux-2.6.38.2/drivers/input/keyboard/atkbd.c linux-2.6.38.2/drivers/
24923 }; 25878 };
24924 25879
24925 MODULE_DEVICE_TABLE(serio, atkbd_serio_ids); 25880 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 25881diff -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 25882--- 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 25883+++ 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 25884@@ -123,7 +123,7 @@ static const struct dmi_system_id __init
24930 DMI_MATCH(DMI_PRODUCT_NAME, "LifeBook B142"), 25885 DMI_MATCH(DMI_PRODUCT_NAME, "LifeBook B142"),
24931 }, 25886 },
@@ -24935,9 +25890,9 @@ diff -urNp linux-2.6.38.2/drivers/input/mouse/lifebook.c linux-2.6.38.2/drivers/
24935 }; 25890 };
24936 25891
24937 void __init lifebook_module_init(void) 25892 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 25893diff -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 25894--- 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 25895+++ 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 25896@@ -1462,7 +1462,7 @@ static struct serio_device_id psmouse_se
24942 .id = SERIO_ANY, 25897 .id = SERIO_ANY,
24943 .extra = SERIO_ANY, 25898 .extra = SERIO_ANY,
@@ -24947,9 +25902,9 @@ diff -urNp linux-2.6.38.2/drivers/input/mouse/psmouse-base.c linux-2.6.38.2/driv
24947 }; 25902 };
24948 25903
24949 MODULE_DEVICE_TABLE(serio, psmouse_serio_ids); 25904 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 25905diff -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 25906--- 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 25907+++ 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 25908@@ -559,7 +559,7 @@ static void synaptics_process_packet(str
24954 break; 25909 break;
24955 case 2: 25910 case 2:
@@ -24967,20 +25922,21 @@ diff -urNp linux-2.6.38.2/drivers/input/mouse/synaptics.c linux-2.6.38.2/drivers
24967 }, 25922 },
24968 { 25923 {
24969 /* Toshiba Portege M300 */ 25924 /* Toshiba Portege M300 */
24970@@ -834,9 +833,8 @@ static const struct dmi_system_id __init 25925@@ -834,10 +833,9 @@ static const struct dmi_system_id __init
24971 DMI_MATCH(DMI_PRODUCT_NAME, "Portable PC"), 25926 DMI_MATCH(DMI_PRODUCT_NAME, "Portable PC"),
24972 DMI_MATCH(DMI_PRODUCT_VERSION, "Version 1.0"), 25927 DMI_MATCH(DMI_PRODUCT_VERSION, "Version 1.0"),
24973 }, 25928 },
24974- 25929-
24975 }, 25930 },
24976- { }
24977+ { NULL, NULL, {DMI_MATCH(DMI_NONE, {0})}, NULL } 25931+ { NULL, NULL, {DMI_MATCH(DMI_NONE, {0})}, NULL }
24978 #endif 25932 #endif
25933- { }
24979 }; 25934 };
24980 25935
24981diff -urNp linux-2.6.38.2/drivers/input/mousedev.c linux-2.6.38.2/drivers/input/mousedev.c 25936 static bool broken_olpc_ec;
24982--- linux-2.6.38.2/drivers/input/mousedev.c 2011-03-14 21:20:32.000000000 -0400 25937diff -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 25938--- linux-2.6.38.3/drivers/input/mousedev.c 2011-03-14 21:20:32.000000000 -0400
25939+++ 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 25940@@ -764,7 +764,7 @@ static ssize_t mousedev_read(struct file
24985 25941
24986 spin_unlock_irq(&client->packet_lock); 25942 spin_unlock_irq(&client->packet_lock);
@@ -24999,9 +25955,9 @@ diff -urNp linux-2.6.38.2/drivers/input/mousedev.c linux-2.6.38.2/drivers/input/
24999 }; 25955 };
25000 static int psaux_registered; 25956 static int psaux_registered;
25001 #endif 25957 #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 25958diff -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 25959--- 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 25960+++ 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 25961@@ -183,7 +183,7 @@ static const struct dmi_system_id __init
25006 DMI_MATCH(DMI_PRODUCT_VERSION, "Rev 1"), 25962 DMI_MATCH(DMI_PRODUCT_VERSION, "Rev 1"),
25007 }, 25963 },
@@ -25056,9 +26012,9 @@ diff -urNp linux-2.6.38.2/drivers/input/serio/i8042-x86ia64io.h linux-2.6.38.2/d
25056 }; 26012 };
25057 26013
25058 #endif /* CONFIG_X86 */ 26014 #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 26015diff -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 26016--- 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 26017+++ 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_ 26018@@ -376,7 +376,7 @@ static struct serio_device_id serio_raw_
25063 .id = SERIO_ANY, 26019 .id = SERIO_ANY,
25064 .extra = SERIO_ANY, 26020 .extra = SERIO_ANY,
@@ -25068,9 +26024,9 @@ diff -urNp linux-2.6.38.2/drivers/input/serio/serio_raw.c linux-2.6.38.2/drivers
25068 }; 26024 };
25069 26025
25070 MODULE_DEVICE_TABLE(serio, serio_raw_serio_ids); 26026 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 26027diff -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 26028--- 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 26029+++ 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 26030@@ -723,7 +723,7 @@ struct cardstate *gigaset_initcs(struct
25075 cs->commands_pending = 0; 26031 cs->commands_pending = 0;
25076 cs->cur_at_seq = 0; 26032 cs->cur_at_seq = 0;
@@ -25080,9 +26036,9 @@ diff -urNp linux-2.6.38.2/drivers/isdn/gigaset/common.c linux-2.6.38.2/drivers/i
25080 cs->dev = NULL; 26036 cs->dev = NULL;
25081 cs->tty = NULL; 26037 cs->tty = NULL;
25082 cs->tty_dev = NULL; 26038 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 26039diff -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 26040--- 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 26041+++ linux-2.6.38.3/drivers/isdn/gigaset/gigaset.h 2011-04-17 15:57:32.000000000 -0400
25086@@ -35,6 +35,7 @@ 26042@@ -35,6 +35,7 @@
25087 #include <linux/tty_driver.h> 26043 #include <linux/tty_driver.h>
25088 #include <linux/list.h> 26044 #include <linux/list.h>
@@ -25100,9 +26056,9 @@ diff -urNp linux-2.6.38.2/drivers/isdn/gigaset/gigaset.h linux-2.6.38.2/drivers/
25100 struct tty_struct *tty; 26056 struct tty_struct *tty;
25101 struct tasklet_struct if_wake_tasklet; 26057 struct tasklet_struct if_wake_tasklet;
25102 unsigned control_state; 26058 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 26059diff -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 26060--- 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 26061+++ 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 26062@@ -160,9 +160,7 @@ static int if_open(struct tty_struct *tt
25107 return -ERESTARTSYS; 26063 return -ERESTARTSYS;
25108 tty->driver_data = cs; 26064 tty->driver_data = cs;
@@ -25190,9 +26146,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__); 26146 dev_warn(cs->dev, "%s: device not opened\n", __func__);
25191 goto out; 26147 goto out;
25192 } 26148 }
25193diff -urNp linux-2.6.38.2/drivers/isdn/hardware/avm/b1.c linux-2.6.38.2/drivers/isdn/hardware/avm/b1.c 26149diff -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 26150--- 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 26151+++ 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 26152@@ -176,7 +176,7 @@ int b1_load_t4file(avmcard *card, capilo
25197 } 26153 }
25198 if (left) { 26154 if (left) {
@@ -25211,9 +26167,9 @@ diff -urNp linux-2.6.38.2/drivers/isdn/hardware/avm/b1.c linux-2.6.38.2/drivers/
25211 return -EFAULT; 26167 return -EFAULT;
25212 } else { 26168 } else {
25213 memcpy(buf, dp, left); 26169 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 26170diff -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 26171--- 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 26172+++ 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 26173@@ -1045,7 +1045,7 @@ icn_writecmd(const u_char * buf, int len
25218 if (count > len) 26174 if (count > len)
25219 count = len; 26175 count = len;
@@ -25223,86 +26179,9 @@ diff -urNp linux-2.6.38.2/drivers/isdn/icn/icn.c linux-2.6.38.2/drivers/isdn/icn
25223 return -EFAULT; 26179 return -EFAULT;
25224 } else 26180 } else
25225 memcpy(msg, buf, count); 26181 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 26182diff -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 26183--- 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 26184+++ 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) 26185@@ -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 26186 * 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. 26187 * allocates an extra guard page, so we need space for that.
@@ -25330,9 +26209,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); 26209 end_switcher_text - start_switcher_text);
25331 26210
25332 printk(KERN_INFO "lguest: mapped switcher at %p\n", 26211 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 26212diff -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 26213--- 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 26214+++ 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 { 26215@@ -59,7 +59,7 @@ static struct {
25337 /* Offset from where switcher.S was compiled to where we've copied it */ 26216 /* Offset from where switcher.S was compiled to where we've copied it */
25338 static unsigned long switcher_offset(void) 26217 static unsigned long switcher_offset(void)
@@ -25374,9 +26253,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; 26253 lguest_entry.segment = LGUEST_CS;
25375 26254
25376 /* 26255 /*
25377diff -urNp linux-2.6.38.2/drivers/lguest/x86/switcher_32.S linux-2.6.38.2/drivers/lguest/x86/switcher_32.S 26256diff -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 26257--- 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 26258+++ linux-2.6.38.3/drivers/lguest/x86/switcher_32.S 2011-04-17 15:57:32.000000000 -0400
25380@@ -87,6 +87,7 @@ 26259@@ -87,6 +87,7 @@
25381 #include <asm/page.h> 26260 #include <asm/page.h>
25382 #include <asm/segment.h> 26261 #include <asm/segment.h>
@@ -25435,9 +26314,9 @@ diff -urNp linux-2.6.38.2/drivers/lguest/x86/switcher_32.S linux-2.6.38.2/driver
25435 26314
25436 // Every interrupt can come to us here 26315 // Every interrupt can come to us here
25437 // But we must truly tell each apart. 26316 // 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 26317diff -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 26318--- 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 26319+++ linux-2.6.38.3/drivers/md/bitmap.c 2011-04-17 15:57:32.000000000 -0400
25441@@ -55,7 +55,7 @@ 26320@@ -55,7 +55,7 @@
25442 # if DEBUG > 0 26321 # if DEBUG > 0
25443 # define PRINTK(x...) printk(KERN_DEBUG x) 26322 # define PRINTK(x...) printk(KERN_DEBUG x)
@@ -25447,9 +26326,9 @@ diff -urNp linux-2.6.38.2/drivers/md/bitmap.c linux-2.6.38.2/drivers/md/bitmap.c
25447 # endif 26326 # endif
25448 #endif 26327 #endif
25449 26328
25450diff -urNp linux-2.6.38.2/drivers/md/dm-ioctl.c linux-2.6.38.2/drivers/md/dm-ioctl.c 26329diff -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 26330--- 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 26331+++ 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 26332@@ -1541,7 +1541,7 @@ static int validate_params(uint cmd, str
25454 cmd == DM_LIST_VERSIONS_CMD) 26333 cmd == DM_LIST_VERSIONS_CMD)
25455 return 0; 26334 return 0;
@@ -25459,9 +26338,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) { 26338 if (!*param->name) {
25460 DMWARN("name not supplied when creating device"); 26339 DMWARN("name not supplied when creating device");
25461 return -EINVAL; 26340 return -EINVAL;
25462diff -urNp linux-2.6.38.2/drivers/md/dm-table.c linux-2.6.38.2/drivers/md/dm-table.c 26341diff -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 26342--- 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 26343+++ 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 26344@@ -372,7 +372,7 @@ static int device_area_is_invalid(struct
25466 if (!dev_size) 26345 if (!dev_size)
25467 return 0; 26346 return 0;
@@ -25471,9 +26350,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: " 26350 DMWARN("%s: %s too small for target: "
25472 "start=%llu, len=%llu, dev_size=%llu", 26351 "start=%llu, len=%llu, dev_size=%llu",
25473 dm_device_name(ti->table->md), bdevname(bdev, b), 26352 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 26353diff -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 26354--- 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 26355+++ 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 26356@@ -1889,7 +1889,7 @@ static int bind_rdev_to_array(mdk_rdev_t
25478 26357
25479 ko = &part_to_dev(rdev->bdev->bd_part)->kobj; 26358 ko = &part_to_dev(rdev->bdev->bd_part)->kobj;
@@ -25528,9 +26407,9 @@ diff -urNp linux-2.6.38.2/drivers/md/md.c linux-2.6.38.2/drivers/md/md.c
25528 spares++; 26407 spares++;
25529 md_new_event(mddev); 26408 md_new_event(mddev);
25530 set_bit(MD_CHANGE_DEVS, &mddev->flags); 26409 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 26410diff -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 26411--- 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 26412+++ 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_ 26413@@ -360,7 +360,7 @@ static inline void rdev_dec_pending(mdk_
25535 26414
25536 static inline void md_sync_acct(struct block_device *bdev, unsigned long nr_sectors) 26415 static inline void md_sync_acct(struct block_device *bdev, unsigned long nr_sectors)
@@ -25540,9 +26419,9 @@ diff -urNp linux-2.6.38.2/drivers/md/md.h linux-2.6.38.2/drivers/md/md.h
25540 } 26419 }
25541 26420
25542 struct mdk_personality 26421 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 26422diff -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 26423--- 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 26424+++ 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 26425@@ -192,7 +192,7 @@ int dvb_register_device(struct dvb_adapt
25547 const struct dvb_device *template, void *priv, int type) 26426 const struct dvb_device *template, void *priv, int type)
25548 { 26427 {
@@ -25552,9 +26431,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; 26431 struct device *clsdev;
25553 int minor; 26432 int minor;
25554 int id; 26433 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 26434diff -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 26435--- 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 26436+++ 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 26437@@ -349,7 +349,7 @@ static ssize_t cadet_read(struct file *f
25559 readbuf[i++] = dev->rdsbuf[dev->rdsout++]; 26438 readbuf[i++] = dev->rdsbuf[dev->rdsout++];
25560 mutex_unlock(&dev->lock); 26439 mutex_unlock(&dev->lock);
@@ -25564,9 +26443,9 @@ diff -urNp linux-2.6.38.2/drivers/media/radio/radio-cadet.c linux-2.6.38.2/drive
25564 return -EFAULT; 26443 return -EFAULT;
25565 return i; 26444 return i;
25566 } 26445 }
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 26446diff -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 26447--- 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 26448+++ 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) 26449@@ -277,7 +277,7 @@ static void ir_lirc_close(void *data)
25571 return; 26450 return;
25572 } 26451 }
@@ -25576,9 +26455,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, 26455 .owner = THIS_MODULE,
25577 .write = ir_lirc_transmit_ir, 26456 .write = ir_lirc_transmit_ir,
25578 .unlocked_ioctl = ir_lirc_ioctl, 26457 .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 26458diff -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 26459--- 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 26460+++ 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) 26461@@ -151,7 +151,7 @@ static int lirc_thread(void *irctl)
25583 } 26462 }
25584 26463
@@ -25588,9 +26467,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, 26467 .owner = THIS_MODULE,
25589 .read = lirc_dev_fop_read, 26468 .read = lirc_dev_fop_read,
25590 .write = lirc_dev_fop_write, 26469 .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 26470diff -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 26471--- 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 26472+++ 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_ 26473@@ -1430,9 +1430,9 @@ static DEVICE_ATTR(i2c_reg, S_IRUGO | S_
25595 sn9c102_show_i2c_reg, sn9c102_store_i2c_reg); 26474 sn9c102_show_i2c_reg, sn9c102_store_i2c_reg);
25596 static DEVICE_ATTR(i2c_val, S_IRUGO | S_IWUSR, 26475 static DEVICE_ATTR(i2c_val, S_IRUGO | S_IWUSR,
@@ -25604,9 +26483,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); 26483 static DEVICE_ATTR(frame_header, S_IRUGO, sn9c102_show_frame_header, NULL);
25605 26484
25606 26485
25607diff -urNp linux-2.6.38.2/drivers/message/fusion/mptbase.c linux-2.6.38.2/drivers/message/fusion/mptbase.c 26486diff -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 26487--- 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 26488+++ 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 26489@@ -6683,8 +6683,13 @@ static int mpt_iocinfo_proc_show(struct
25611 seq_printf(m, " MaxChainDepth = 0x%02x frames\n", ioc->facts.MaxChainDepth); 26490 seq_printf(m, " MaxChainDepth = 0x%02x frames\n", ioc->facts.MaxChainDepth);
25612 seq_printf(m, " MinBlockSize = 0x%02x bytes\n", 4*ioc->facts.BlockSize); 26491 seq_printf(m, " MinBlockSize = 0x%02x bytes\n", 4*ioc->facts.BlockSize);
@@ -25621,9 +26500,9 @@ diff -urNp linux-2.6.38.2/drivers/message/fusion/mptbase.c linux-2.6.38.2/driver
25621 /* 26500 /*
25622 * Rounding UP to nearest 4-kB boundary here... 26501 * Rounding UP to nearest 4-kB boundary here...
25623 */ 26502 */
25624diff -urNp linux-2.6.38.2/drivers/message/fusion/mptdebug.h linux-2.6.38.2/drivers/message/fusion/mptdebug.h 26503diff -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 26504--- 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 26505+++ linux-2.6.38.3/drivers/message/fusion/mptdebug.h 2011-04-17 15:57:32.000000000 -0400
25627@@ -71,7 +71,7 @@ 26506@@ -71,7 +71,7 @@
25628 CMD; \ 26507 CMD; \
25629 } 26508 }
@@ -25633,9 +26512,9 @@ diff -urNp linux-2.6.38.2/drivers/message/fusion/mptdebug.h linux-2.6.38.2/drive
25633 #endif 26512 #endif
25634 26513
25635 26514
25636diff -urNp linux-2.6.38.2/drivers/message/fusion/mptsas.c linux-2.6.38.2/drivers/message/fusion/mptsas.c 26515diff -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 26516--- 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 26517+++ 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 26518@@ -439,6 +439,23 @@ mptsas_is_end_device(struct mptsas_devin
25640 return 0; 26519 return 0;
25641 } 26520 }
@@ -25684,9 +26563,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 * 26563 static inline struct sas_port *
25685 mptsas_get_port(struct mptsas_phyinfo *phy_info) 26564 mptsas_get_port(struct mptsas_phyinfo *phy_info)
25686 { 26565 {
25687diff -urNp linux-2.6.38.2/drivers/message/fusion/mptscsih.c linux-2.6.38.2/drivers/message/fusion/mptscsih.c 26566diff -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 26567--- 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 26568+++ 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) 26569@@ -1268,15 +1268,16 @@ mptscsih_info(struct Scsi_Host *SChost)
25691 26570
25692 h = shost_priv(SChost); 26571 h = shost_priv(SChost);
@@ -25712,9 +26591,9 @@ diff -urNp linux-2.6.38.2/drivers/message/fusion/mptscsih.c linux-2.6.38.2/drive
25712 26591
25713 return h->info_kbuf; 26592 return h->info_kbuf;
25714 } 26593 }
25715diff -urNp linux-2.6.38.2/drivers/message/i2o/i2o_proc.c linux-2.6.38.2/drivers/message/i2o/i2o_proc.c 26594diff -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 26595--- 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 26596+++ 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[] = { 26597@@ -255,13 +255,6 @@ static char *scsi_devices[] = {
25719 "Array Controller Device" 26598 "Array Controller Device"
25720 }; 26599 };
@@ -25801,79 +26680,9 @@ diff -urNp linux-2.6.38.2/drivers/message/i2o/i2o_proc.c linux-2.6.38.2/drivers/
25801 26680
25802 return 0; 26681 return 0;
25803 } 26682 }
25804diff -urNp linux-2.6.38.2/drivers/mfd/ab3100-core.c linux-2.6.38.2/drivers/mfd/ab3100-core.c 26683diff -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 26684--- 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 26685+++ 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 @@ 26686@@ -13,6 +13,7 @@
25878 26687
25879 #include <linux/kernel.h> 26688 #include <linux/kernel.h>
@@ -25882,27 +26691,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> 26691 #include <linux/init.h>
25883 #include <linux/pci.h> 26692 #include <linux/pci.h>
25884 #include <linux/interrupt.h> 26693 #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 26694diff -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 26695--- 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 26696+++ 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 @@ 26697@@ -118,7 +118,7 @@
25907 } while (0) 26698 } while (0)
25908 #define MAX_CONFIG_LEN 40 26699 #define MAX_CONFIG_LEN 40
@@ -25921,9 +26712,9 @@ diff -urNp linux-2.6.38.2/drivers/misc/kgdbts.c linux-2.6.38.2/drivers/misc/kgdb
25921 .name = "kgdbts", 26712 .name = "kgdbts",
25922 .read_char = kgdbts_get_char, 26713 .read_char = kgdbts_get_char,
25923 .write_char = kgdbts_put_char, 26714 .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 26715diff -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 26716--- 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 26717+++ 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 26718@@ -44,8 +44,8 @@ static void update_mcs_stats(enum mcs_op
25928 unsigned long nsec; 26719 unsigned long nsec;
25929 26720
@@ -25935,9 +26726,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) 26726 if (mcs_op_statistics[op].max < nsec)
25936 mcs_op_statistics[op].max = nsec; 26727 mcs_op_statistics[op].max = nsec;
25937 } 26728 }
25938diff -urNp linux-2.6.38.2/drivers/misc/sgi-gru/gruprocfs.c linux-2.6.38.2/drivers/misc/sgi-gru/gruprocfs.c 26729diff -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 26730--- 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 26731+++ linux-2.6.38.3/drivers/misc/sgi-gru/gruprocfs.c 2011-04-17 15:57:32.000000000 -0400
25941@@ -32,9 +32,9 @@ 26732@@ -32,9 +32,9 @@
25942 26733
25943 #define printstat(s, f) printstat_val(s, &gru_stats.f, #f) 26734 #define printstat(s, f) printstat_val(s, &gru_stats.f, #f)
@@ -25961,9 +26752,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; 26752 max = mcs_op_statistics[op].max;
25962 seq_printf(s, "%-20s%12ld%12ld%12ld\n", id[op], count, 26753 seq_printf(s, "%-20s%12ld%12ld%12ld\n", id[op], count,
25963 count ? total / count : 0, max); 26754 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 26755diff -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 26756--- 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 26757+++ 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; 26758@@ -167,82 +167,82 @@ extern unsigned int gru_max_gids;
25968 * GRU statistics. 26759 * GRU statistics.
25969 */ 26760 */
@@ -26143,9 +26934,9 @@ diff -urNp linux-2.6.38.2/drivers/misc/sgi-gru/grutables.h linux-2.6.38.2/driver
26143 } while (0) 26934 } while (0)
26144 26935
26145 #ifdef CONFIG_SGI_GRU_DEBUG 26936 #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 26937diff -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 26938--- 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 26939+++ 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 26940@@ -776,7 +776,7 @@ static int doc_write(struct mtd_info *mt
26150 26941
26151 /* The ECC will not be calculated correctly if less than 512 is written */ 26942 /* The ECC will not be calculated correctly if less than 512 is written */
@@ -26155,9 +26946,9 @@ diff -urNp linux-2.6.38.2/drivers/mtd/devices/doc2000.c linux-2.6.38.2/drivers/m
26155 printk(KERN_WARNING 26946 printk(KERN_WARNING
26156 "ECC needs a full sector write (adr: %lx size %lx)\n", 26947 "ECC needs a full sector write (adr: %lx size %lx)\n",
26157 (long) to, (long) len); 26948 (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 26949diff -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 26950--- 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 26951+++ 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 26952@@ -393,7 +393,7 @@ static int doc_read (struct mtd_info *mt
26162 struct Nand *mychip = &this->chips[from >> (this->chipshift)]; 26953 struct Nand *mychip = &this->chips[from >> (this->chipshift)];
26163 26954
@@ -26167,9 +26958,9 @@ diff -urNp linux-2.6.38.2/drivers/mtd/devices/doc2001.c linux-2.6.38.2/drivers/m
26167 return -EINVAL; 26958 return -EINVAL;
26168 26959
26169 /* Don't allow a single read to cross a 512-byte block boundary */ 26960 /* 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 26961diff -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 26962--- 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 26963+++ linux-2.6.38.3/drivers/mtd/nand/denali.c 2011-04-17 15:57:32.000000000 -0400
26173@@ -25,6 +25,7 @@ 26964@@ -25,6 +25,7 @@
26174 #include <linux/pci.h> 26965 #include <linux/pci.h>
26175 #include <linux/mtd/mtd.h> 26966 #include <linux/mtd/mtd.h>
@@ -26178,9 +26969,9 @@ diff -urNp linux-2.6.38.2/drivers/mtd/nand/denali.c linux-2.6.38.2/drivers/mtd/n
26178 26969
26179 #include "denali.h" 26970 #include "denali.h"
26180 26971
26181diff -urNp linux-2.6.38.2/drivers/mtd/ubi/build.c linux-2.6.38.2/drivers/mtd/ubi/build.c 26972diff -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 26973--- 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 26974+++ 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); 26975@@ -1285,7 +1285,7 @@ module_exit(ubi_exit);
26185 static int __init bytes_str_to_int(const char *str) 26976 static int __init bytes_str_to_int(const char *str)
26186 { 26977 {
@@ -26220,9 +27011,9 @@ diff -urNp linux-2.6.38.2/drivers/mtd/ubi/build.c linux-2.6.38.2/drivers/mtd/ubi
26220 } 27011 }
26221 27012
26222 /** 27013 /**
26223diff -urNp linux-2.6.38.2/drivers/net/e1000e/82571.c linux-2.6.38.2/drivers/net/e1000e/82571.c 27014diff -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 27015--- 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 27016+++ 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 27017@@ -239,7 +239,7 @@ static s32 e1000_init_mac_params_82571(s
26227 { 27018 {
26228 struct e1000_hw *hw = &adapter->hw; 27019 struct e1000_hw *hw = &adapter->hw;
@@ -26277,9 +27068,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, 27068 .acquire = e1000_acquire_nvm_82571,
26278 .read = e1000e_read_nvm_eerd, 27069 .read = e1000e_read_nvm_eerd,
26279 .release = e1000_release_nvm_82571, 27070 .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 27071diff -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 27072--- 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 27073+++ 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 { 27074@@ -408,9 +408,9 @@ struct e1000_info {
26284 u32 pba; 27075 u32 pba;
26285 u32 max_hw_frame_size; 27076 u32 max_hw_frame_size;
@@ -26293,9 +27084,9 @@ diff -urNp linux-2.6.38.2/drivers/net/e1000e/e1000.h linux-2.6.38.2/drivers/net/
26293 }; 27084 };
26294 27085
26295 /* hardware capability, feature, and workaround flags */ 27086 /* 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 27087diff -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 27088--- 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 27089+++ 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 27090@@ -205,7 +205,7 @@ static s32 e1000_init_mac_params_80003es
26300 { 27091 {
26301 struct e1000_hw *hw = &adapter->hw; 27092 struct e1000_hw *hw = &adapter->hw;
@@ -26332,9 +27123,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, 27123 .acquire = e1000_acquire_nvm_80003es2lan,
26333 .read = e1000e_read_nvm_eerd, 27124 .read = e1000e_read_nvm_eerd,
26334 .release = e1000_release_nvm_80003es2lan, 27125 .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 27126diff -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 27127--- 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 27128+++ 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 { 27129@@ -801,16 +801,17 @@ struct e1000_phy_operations {
26339 27130
26340 /* Function pointers for the NVM. */ 27131 /* Function pointers for the NVM. */
@@ -26376,9 +27167,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; 27167 struct e1000_nvm_operations ops;
26377 27168
26378 enum e1000_nvm_type type; 27169 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 27170diff -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 27171--- 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 27172+++ 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 27173@@ -3840,7 +3840,7 @@ static void e1000_clear_hw_cntrs_ich8lan
26383 } 27174 }
26384 } 27175 }
@@ -26406,9 +27197,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, 27197 .acquire = e1000_acquire_nvm_ich8lan,
26407 .read = e1000_read_nvm_ich8lan, 27198 .read = e1000_read_nvm_ich8lan,
26408 .release = e1000_release_nvm_ich8lan, 27199 .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 27200diff -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 27201--- 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 27202+++ 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) 27203@@ -1747,7 +1747,7 @@ u16 igb_rxpbs_adjust_82580(u32 data)
26413 return ret_val; 27204 return ret_val;
26414 } 27205 }
@@ -26434,9 +27225,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, 27225 .acquire = igb_acquire_nvm_82575,
26435 .read = igb_read_nvm_eerd, 27226 .read = igb_read_nvm_eerd,
26436 .release = igb_release_nvm_82575, 27227 .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 27228diff -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 27229--- 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 27230+++ 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 { 27231@@ -327,22 +327,23 @@ struct e1000_phy_operations {
26441 }; 27232 };
26442 27233
@@ -26484,9 +27275,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; 27275 struct e1000_nvm_operations ops;
26485 27276
26486 enum e1000_nvm_type type; 27277 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 27278diff -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 27279--- 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 27280+++ 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 { 27281@@ -191,6 +191,7 @@ struct e1000_mac_operations {
26491 }; 27282 };
26492 27283
@@ -26495,9 +27286,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; 27286 struct e1000_mac_operations ops;
26496 u8 addr[6]; 27287 u8 addr[6];
26497 u8 perm_addr[6]; 27288 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 27289diff -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 27290--- 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 27291+++ 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( 27292@@ -907,13 +907,12 @@ static netdev_tx_t vlsi_hard_start_xmit(
26502 /* no race - tx-ring already empty */ 27293 /* no race - tx-ring already empty */
26503 vlsi_set_baud(idev, iobase); 27294 vlsi_set_baud(idev, iobase);
@@ -26514,9 +27305,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); 27305 spin_unlock_irqrestore(&idev->lock, flags);
26515 dev_kfree_skb_any(skb); 27306 dev_kfree_skb_any(skb);
26516 return NETDEV_TX_OK; 27307 return NETDEV_TX_OK;
26517diff -urNp linux-2.6.38.2/drivers/net/pcnet32.c linux-2.6.38.2/drivers/net/pcnet32.c 27308diff -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 27309--- 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 27310+++ 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; 27311@@ -82,7 +82,7 @@ static int cards_found;
26521 /* 27312 /*
26522 * VLB I/O addresses 27313 * VLB I/O addresses
@@ -26526,9 +27317,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 }; 27317 { 0x300, 0x320, 0x340, 0x360, 0 };
26527 27318
26528 static int pcnet32_debug; 27319 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 27320diff -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 27321--- 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 27322+++ 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 27323@@ -986,7 +986,6 @@ ppp_net_ioctl(struct net_device *dev, st
26533 void __user *addr = (void __user *) ifr->ifr_ifru.ifru_data; 27324 void __user *addr = (void __user *) ifr->ifr_ifru.ifru_data;
26534 struct ppp_stats stats; 27325 struct ppp_stats stats;
@@ -26547,9 +27338,9 @@ diff -urNp linux-2.6.38.2/drivers/net/ppp_generic.c linux-2.6.38.2/drivers/net/p
26547 break; 27338 break;
26548 err = 0; 27339 err = 0;
26549 break; 27340 break;
26550diff -urNp linux-2.6.38.2/drivers/net/tg3.h linux-2.6.38.2/drivers/net/tg3.h 27341diff -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 27342--- 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 27343+++ linux-2.6.38.3/drivers/net/tg3.h 2011-04-17 15:57:32.000000000 -0400
26553@@ -131,6 +131,7 @@ 27344@@ -131,6 +131,7 @@
26554 #define CHIPREV_ID_5750_A0 0x4000 27345 #define CHIPREV_ID_5750_A0 0x4000
26555 #define CHIPREV_ID_5750_A1 0x4001 27346 #define CHIPREV_ID_5750_A1 0x4001
@@ -26558,9 +27349,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 27349 #define CHIPREV_ID_5750_C2 0x4202
26559 #define CHIPREV_ID_5752_A0_HW 0x5000 27350 #define CHIPREV_ID_5752_A0_HW 0x5000
26560 #define CHIPREV_ID_5752_A0 0x6000 27351 #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 27352diff -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 27353--- 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 27354+++ 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 27355@@ -5401,7 +5401,7 @@ de4x5_ioctl(struct net_device *dev, stru
26565 for (i=0; i<ETH_ALEN; i++) { 27356 for (i=0; i<ETH_ALEN; i++) {
26566 tmp.addr[i] = dev->dev_addr[i]; 27357 tmp.addr[i] = dev->dev_addr[i];
@@ -26579,9 +27370,9 @@ diff -urNp linux-2.6.38.2/drivers/net/tulip/de4x5.c linux-2.6.38.2/drivers/net/t
26579 return -EFAULT; 27370 return -EFAULT;
26580 break; 27371 break;
26581 } 27372 }
26582diff -urNp linux-2.6.38.2/drivers/net/usb/hso.c linux-2.6.38.2/drivers/net/usb/hso.c 27373diff -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 27374--- 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 27375+++ linux-2.6.38.3/drivers/net/usb/hso.c 2011-04-17 15:57:32.000000000 -0400
26585@@ -71,7 +71,7 @@ 27376@@ -71,7 +71,7 @@
26586 #include <asm/byteorder.h> 27377 #include <asm/byteorder.h>
26587 #include <linux/serial_core.h> 27378 #include <linux/serial_core.h>
@@ -26678,9 +27469,22 @@ diff -urNp linux-2.6.38.2/drivers/net/usb/hso.c linux-2.6.38.2/drivers/net/usb/h
26678 result = 27469 result =
26679 hso_start_serial_device(serial_table[i], GFP_NOIO); 27470 hso_start_serial_device(serial_table[i], GFP_NOIO);
26680 hso_kick_transmit(dev2ser(serial_table[i])); 27471 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 27472diff -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 27473--- 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 27474+++ linux-2.6.38.3/drivers/net/vmxnet3/vmxnet3_ethtool.c 2011-04-17 16:53:41.000000000 -0400
27475@@ -628,8 +628,7 @@ vmxnet3_set_rss_indir(struct net_device
27476 * Return with error code if any of the queue indices
27477 * is out of range
27478 */
27479- if (p->ring_index[i] < 0 ||
27480- p->ring_index[i] >= adapter->num_rx_queues)
27481+ if (p->ring_index[i] >= adapter->num_rx_queues)
27482 return -EINVAL;
27483 }
27484
27485diff -urNp linux-2.6.38.3/drivers/net/wireless/b43/debugfs.c linux-2.6.38.3/drivers/net/wireless/b43/debugfs.c
27486--- linux-2.6.38.3/drivers/net/wireless/b43/debugfs.c 2011-03-14 21:20:32.000000000 -0400
27487+++ 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; 27488@@ -43,7 +43,7 @@ static struct dentry *rootdir;
26685 struct b43_debugfs_fops { 27489 struct b43_debugfs_fops {
26686 ssize_t (*read)(struct b43_wldev *dev, char *buf, size_t bufsize); 27490 ssize_t (*read)(struct b43_wldev *dev, char *buf, size_t bufsize);
@@ -26690,9 +27494,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 */ 27494 /* Offset of struct b43_dfs_file in struct b43_dfsentry */
26691 size_t file_struct_offset; 27495 size_t file_struct_offset;
26692 }; 27496 };
26693diff -urNp linux-2.6.38.2/drivers/net/wireless/b43legacy/debugfs.c linux-2.6.38.2/drivers/net/wireless/b43legacy/debugfs.c 27497diff -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 27498--- 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 27499+++ 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; 27500@@ -44,7 +44,7 @@ static struct dentry *rootdir;
26697 struct b43legacy_debugfs_fops { 27501 struct b43legacy_debugfs_fops {
26698 ssize_t (*read)(struct b43legacy_wldev *dev, char *buf, size_t bufsize); 27502 ssize_t (*read)(struct b43legacy_wldev *dev, char *buf, size_t bufsize);
@@ -26702,9 +27506,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 */ 27506 /* Offset of struct b43legacy_dfs_file in struct b43legacy_dfsentry */
26703 size_t file_struct_offset; 27507 size_t file_struct_offset;
26704 /* Take wl->irq_lock before calling read/write? */ 27508 /* 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 27509diff -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 27510--- 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 27511+++ 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 { 27512@@ -68,8 +68,8 @@ do {
26709 } while (0) 27513 } while (0)
26710 27514
@@ -26716,9 +27520,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, 27520 static inline void iwl_print_hex_dump(struct iwl_priv *priv, int level,
26717 const void *p, u32 len) 27521 const void *p, u32 len)
26718 {} 27522 {}
26719diff -urNp linux-2.6.38.2/drivers/net/wireless/libertas/debugfs.c linux-2.6.38.2/drivers/net/wireless/libertas/debugfs.c 27523diff -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 27524--- 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 27525+++ 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: 27526@@ -702,7 +702,7 @@ out_unlock:
26723 struct lbs_debugfs_files { 27527 struct lbs_debugfs_files {
26724 const char *name; 27528 const char *name;
@@ -26728,9 +27532,9 @@ diff -urNp linux-2.6.38.2/drivers/net/wireless/libertas/debugfs.c linux-2.6.38.2
26728 }; 27532 };
26729 27533
26730 static const struct lbs_debugfs_files debugfs_files[] = { 27534 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 27535diff -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 27536--- 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 27537+++ 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 27538@@ -1277,7 +1277,7 @@ static int set_rts_threshold(struct usbn
26735 27539
26736 netdev_dbg(usbdev->net, "%s(): %i\n", __func__, rts_threshold); 27540 netdev_dbg(usbdev->net, "%s(): %i\n", __func__, rts_threshold);
@@ -26740,9 +27544,9 @@ diff -urNp linux-2.6.38.2/drivers/net/wireless/rndis_wlan.c linux-2.6.38.2/drive
26740 rts_threshold = 2347; 27544 rts_threshold = 2347;
26741 27545
26742 tmp = cpu_to_le32(rts_threshold); 27546 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 27547diff -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 27548--- 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 27549+++ 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 27550@@ -342,7 +342,7 @@ static void add_data(struct op_entry *en
26747 if (cookie == NO_COOKIE) 27551 if (cookie == NO_COOKIE)
26748 offset = pc; 27552 offset = pc;
@@ -26778,9 +27582,9 @@ diff -urNp linux-2.6.38.2/drivers/oprofile/buffer_sync.c linux-2.6.38.2/drivers/
26778 } 27582 }
26779 } 27583 }
26780 release_mm(mm); 27584 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 27585diff -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 27586--- 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 27587+++ 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 27588@@ -53,7 +53,7 @@ void add_event_entry(unsigned long value
26785 } 27589 }
26786 27590
@@ -26790,9 +27594,9 @@ diff -urNp linux-2.6.38.2/drivers/oprofile/event_buffer.c linux-2.6.38.2/drivers
26790 return; 27594 return;
26791 } 27595 }
26792 27596
26793diff -urNp linux-2.6.38.2/drivers/oprofile/oprof.c linux-2.6.38.2/drivers/oprofile/oprof.c 27597diff -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 27598--- 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 27599+++ 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 27600@@ -110,7 +110,7 @@ static void switch_worker(struct work_st
26797 if (oprofile_ops.switch_events()) 27601 if (oprofile_ops.switch_events())
26798 return; 27602 return;
@@ -26802,9 +27606,9 @@ diff -urNp linux-2.6.38.2/drivers/oprofile/oprof.c linux-2.6.38.2/drivers/oprofi
26802 start_switch_worker(); 27606 start_switch_worker();
26803 } 27607 }
26804 27608
26805diff -urNp linux-2.6.38.2/drivers/oprofile/oprofilefs.c linux-2.6.38.2/drivers/oprofile/oprofilefs.c 27609diff -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 27610--- 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 27611+++ 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 27612@@ -186,7 +186,7 @@ static const struct file_operations atom
26809 27613
26810 27614
@@ -26814,9 +27618,9 @@ diff -urNp linux-2.6.38.2/drivers/oprofile/oprofilefs.c linux-2.6.38.2/drivers/o
26814 { 27618 {
26815 return __oprofilefs_create_file(sb, root, name, 27619 return __oprofilefs_create_file(sb, root, name,
26816 &atomic_ro_fops, 0444, val); 27620 &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 27621diff -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 27622--- 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 27623+++ 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) 27624@@ -30,11 +30,11 @@ void oprofile_reset_stats(void)
26821 cpu_buf->sample_invalid_eip = 0; 27625 cpu_buf->sample_invalid_eip = 0;
26822 } 27626 }
@@ -26834,9 +27638,9 @@ diff -urNp linux-2.6.38.2/drivers/oprofile/oprofile_stats.c linux-2.6.38.2/drive
26834 } 27638 }
26835 27639
26836 27640
26837diff -urNp linux-2.6.38.2/drivers/oprofile/oprofile_stats.h linux-2.6.38.2/drivers/oprofile/oprofile_stats.h 27641diff -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 27642--- 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 27643+++ linux-2.6.38.3/drivers/oprofile/oprofile_stats.h 2011-04-17 15:57:32.000000000 -0400
26840@@ -13,11 +13,11 @@ 27644@@ -13,11 +13,11 @@
26841 #include <asm/atomic.h> 27645 #include <asm/atomic.h>
26842 27646
@@ -26854,9 +27658,9 @@ diff -urNp linux-2.6.38.2/drivers/oprofile/oprofile_stats.h linux-2.6.38.2/drive
26854 }; 27658 };
26855 27659
26856 extern struct oprofile_stat_struct oprofile_stats; 27660 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 27661diff -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 27662--- 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 27663+++ 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 27664@@ -64,7 +64,7 @@ static int do_active_device(ctl_table *t
26861 27665
26862 *ppos += len; 27666 *ppos += len;
@@ -26875,9 +27679,9 @@ diff -urNp linux-2.6.38.2/drivers/parport/procfs.c linux-2.6.38.2/drivers/parpor
26875 } 27679 }
26876 #endif /* IEEE1284.3 support. */ 27680 #endif /* IEEE1284.3 support. */
26877 27681
26878diff -urNp linux-2.6.38.2/drivers/pci/hotplug/acpiphp_glue.c linux-2.6.38.2/drivers/pci/hotplug/acpiphp_glue.c 27682diff -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 27683--- 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 27684+++ 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 27685@@ -110,7 +110,7 @@ static int post_dock_fixups(struct notif
26882 } 27686 }
26883 27687
@@ -26887,9 +27691,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, 27691 .handler = handle_hotplug_event_func,
26888 }; 27692 };
26889 27693
26890diff -urNp linux-2.6.38.2/drivers/pci/hotplug/cpqphp_nvram.c linux-2.6.38.2/drivers/pci/hotplug/cpqphp_nvram.c 27694diff -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 27695--- 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 27696+++ 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_ 27697@@ -428,9 +428,13 @@ static u32 store_HRT (void __iomem *rom_
26894 27698
26895 void compaq_nvram_init (void __iomem *rom_start) 27699 void compaq_nvram_init (void __iomem *rom_start)
@@ -26904,9 +27708,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); 27708 dbg("int15 entry = %p\n", compaq_int15_entry_point);
26905 27709
26906 /* initialize our int15 lock */ 27710 /* 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 27711diff -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 27712--- 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 27713+++ 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 27714@@ -2934,7 +2934,7 @@ static int intel_mapping_error(struct de
26911 return !dma_addr; 27715 return !dma_addr;
26912 } 27716 }
@@ -26916,9 +27720,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, 27720 .alloc_coherent = intel_alloc_coherent,
26917 .free_coherent = intel_free_coherent, 27721 .free_coherent = intel_free_coherent,
26918 .map_sg = intel_map_sg, 27722 .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 27723diff -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 27724--- 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 27725+++ linux-2.6.38.3/drivers/pci/pcie/aspm.c 2011-04-17 16:53:41.000000000 -0400
26922@@ -27,9 +27,9 @@ 27726@@ -27,9 +27,9 @@
26923 #define MODULE_PARAM_PREFIX "pcie_aspm." 27727 #define MODULE_PARAM_PREFIX "pcie_aspm."
26924 27728
@@ -26932,9 +27736,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) 27736 #define ASPM_STATE_L0S (ASPM_STATE_L0S_UP | ASPM_STATE_L0S_DW)
26933 #define ASPM_STATE_ALL (ASPM_STATE_L0S | ASPM_STATE_L1) 27737 #define ASPM_STATE_ALL (ASPM_STATE_L0S | ASPM_STATE_L1)
26934 27738
26935diff -urNp linux-2.6.38.2/drivers/pci/pcie/portdrv_pci.c linux-2.6.38.2/drivers/pci/pcie/portdrv_pci.c 27739diff -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 27740--- 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 27741+++ 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 27742@@ -307,7 +307,7 @@ static void pcie_portdrv_err_resume(stru
26939 static const struct pci_device_id port_pci_ids[] = { { 27743 static const struct pci_device_id port_pci_ids[] = { {
26940 /* handle any PCI-Express port */ 27744 /* handle any PCI-Express port */
@@ -26944,9 +27748,9 @@ diff -urNp linux-2.6.38.2/drivers/pci/pcie/portdrv_pci.c linux-2.6.38.2/drivers/
26944 }; 27748 };
26945 MODULE_DEVICE_TABLE(pci, port_pci_ids); 27749 MODULE_DEVICE_TABLE(pci, port_pci_ids);
26946 27750
26947diff -urNp linux-2.6.38.2/drivers/pci/probe.c linux-2.6.38.2/drivers/pci/probe.c 27751diff -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 27752--- 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 27753+++ 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( 27754@@ -62,14 +62,14 @@ static ssize_t pci_bus_show_cpuaffinity(
26951 return ret; 27755 return ret;
26952 } 27756 }
@@ -26973,9 +27777,9 @@ diff -urNp linux-2.6.38.2/drivers/pci/probe.c linux-2.6.38.2/drivers/pci/probe.c
26973 27777
26974 if (!dev->mmio_always_on) { 27778 if (!dev->mmio_always_on) {
26975 pci_read_config_word(dev, PCI_COMMAND, &orig_cmd); 27779 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 27780diff -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 27781--- 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 27782+++ 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 27783@@ -476,7 +476,16 @@ static const struct file_operations proc
26980 static int __init pci_proc_init(void) 27784 static int __init pci_proc_init(void)
26981 { 27785 {
@@ -26993,9 +27797,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, 27797 proc_create("devices", 0, proc_bus_pci_dir,
26994 &proc_bus_pci_dev_operations); 27798 &proc_bus_pci_dev_operations);
26995 proc_initialized = 1; 27799 proc_initialized = 1;
26996diff -urNp linux-2.6.38.2/drivers/pcmcia/ti113x.h linux-2.6.38.2/drivers/pcmcia/ti113x.h 27800diff -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 27801--- 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 27802+++ 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 27803@@ -936,7 +936,7 @@ static struct pci_device_id ene_tune_tbl
27000 DEVID(PCI_VENDOR_ID_MOTOROLA, 0x3410, 0xECC0, PCI_ANY_ID, 27804 DEVID(PCI_VENDOR_ID_MOTOROLA, 0x3410, 0xECC0, PCI_ANY_ID,
27001 ENE_TEST_C9_TLTENABLE | ENE_TEST_C9_PFENABLE, ENE_TEST_C9_TLTENABLE), 27805 ENE_TEST_C9_TLTENABLE | ENE_TEST_C9_PFENABLE, ENE_TEST_C9_TLTENABLE),
@@ -27005,9 +27809,9 @@ diff -urNp linux-2.6.38.2/drivers/pcmcia/ti113x.h linux-2.6.38.2/drivers/pcmcia/
27005 }; 27809 };
27006 27810
27007 static void ene_tune_bridge(struct pcmcia_socket *sock, struct pci_bus *bus) 27811 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 27812diff -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 27813--- 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 27814+++ 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[ 27815@@ -1426,7 +1426,7 @@ static struct pci_device_id yenta_table[
27012 27816
27013 /* match any cardbus bridge */ 27817 /* match any cardbus bridge */
@@ -27017,9 +27821,9 @@ diff -urNp linux-2.6.38.2/drivers/pcmcia/yenta_socket.c linux-2.6.38.2/drivers/p
27017 }; 27821 };
27018 MODULE_DEVICE_TABLE(pci, yenta_table); 27822 MODULE_DEVICE_TABLE(pci, yenta_table);
27019 27823
27020diff -urNp linux-2.6.38.2/drivers/platform/x86/asus-laptop.c linux-2.6.38.2/drivers/platform/x86/asus-laptop.c 27824diff -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 27825--- 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 27826+++ 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 { 27827@@ -243,7 +243,6 @@ struct asus_laptop {
27024 struct asus_led gled; 27828 struct asus_led gled;
27025 struct asus_led kled; 27829 struct asus_led kled;
@@ -27028,9 +27832,9 @@ diff -urNp linux-2.6.38.2/drivers/platform/x86/asus-laptop.c linux-2.6.38.2/driv
27028 int wireless_status; 27832 int wireless_status;
27029 bool have_rsts; 27833 bool have_rsts;
27030 int lcd_state; 27834 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 27835diff -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 27836--- 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 27837+++ linux-2.6.38.3/drivers/pnp/pnpbios/bioscalls.c 2011-04-17 15:57:32.000000000 -0400
27034@@ -59,7 +59,7 @@ do { \ 27838@@ -59,7 +59,7 @@ do { \
27035 set_desc_limit(&gdt[(selname) >> 3], (size) - 1); \ 27839 set_desc_limit(&gdt[(selname) >> 3], (size) - 1); \
27036 } while(0) 27840 } while(0)
@@ -27087,9 +27891,9 @@ diff -urNp linux-2.6.38.2/drivers/pnp/pnpbios/bioscalls.c linux-2.6.38.2/drivers
27087+ 27891+
27088+ pax_close_kernel(); 27892+ pax_close_kernel();
27089 } 27893 }
27090diff -urNp linux-2.6.38.2/drivers/pnp/quirks.c linux-2.6.38.2/drivers/pnp/quirks.c 27894diff -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 27895--- 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 27896+++ 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[] = { 27897@@ -322,7 +322,7 @@ static struct pnp_fixup pnp_fixups[] = {
27094 /* PnP resources that might overlap PCI BARs */ 27898 /* PnP resources that might overlap PCI BARs */
27095 {"PNP0c01", quirk_system_pci_resources}, 27899 {"PNP0c01", quirk_system_pci_resources},
@@ -27099,9 +27903,9 @@ diff -urNp linux-2.6.38.2/drivers/pnp/quirks.c linux-2.6.38.2/drivers/pnp/quirks
27099 }; 27903 };
27100 27904
27101 void pnp_fixup_device(struct pnp_dev *dev) 27905 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 27906diff -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 27907--- 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 27908+++ 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 27909@@ -360,7 +360,7 @@ int pnp_check_irq(struct pnp_dev *dev, s
27106 return 1; 27910 return 1;
27107 27911
@@ -27120,9 +27924,9 @@ diff -urNp linux-2.6.38.2/drivers/pnp/resource.c linux-2.6.38.2/drivers/pnp/reso
27120 return 0; 27924 return 0;
27121 27925
27122 /* check if the resource is reserved */ 27926 /* 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 27927diff -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 27928--- 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 27929+++ linux-2.6.38.3/drivers/rtc/rtc-dev.c 2011-04-17 15:57:32.000000000 -0400
27126@@ -14,6 +14,7 @@ 27930@@ -14,6 +14,7 @@
27127 #include <linux/module.h> 27931 #include <linux/module.h>
27128 #include <linux/rtc.h> 27932 #include <linux/rtc.h>
@@ -27140,21 +27944,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); 27944 return rtc_set_time(rtc, &tm);
27141 27945
27142 case RTC_PIE_ON: 27946 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 27947diff -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 27948--- 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 27949+++ 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 * 27950@@ -225,7 +225,7 @@ static int qperf_seq_open(struct inode *
27159 filp->f_path.dentry->d_inode->i_private); 27951 filp->f_path.dentry->d_inode->i_private);
27160 } 27952 }
@@ -27164,9 +27956,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, 27956 .owner = THIS_MODULE,
27165 .open = qperf_seq_open, 27957 .open = qperf_seq_open,
27166 .read = seq_read, 27958 .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 27959diff -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 27960--- 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 27961+++ 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 27962@@ -486,7 +486,7 @@ static ssize_t asd_show_update_bios(stru
27171 flash_error_table[i].reason); 27963 flash_error_table[i].reason);
27172 } 27964 }
@@ -27176,9 +27968,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); 27968 asd_show_update_bios, asd_store_update_bios);
27177 27969
27178 static int asd_create_dev_attrs(struct asd_ha_struct *asd_ha) 27970 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 27971diff -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 27972--- 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 27973+++ 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 27974@@ -2281,6 +2281,8 @@ static int hpsa_ioctl32_passthru(struct
27183 int err; 27975 int err;
27184 u32 cp; 27976 u32 cp;
@@ -27188,9 +27980,9 @@ diff -urNp linux-2.6.38.2/drivers/scsi/hpsa.c linux-2.6.38.2/drivers/scsi/hpsa.c
27188 err = 0; 27980 err = 0;
27189 err |= copy_from_user(&arg64.LUN_info, &arg32->LUN_info, 27981 err |= copy_from_user(&arg64.LUN_info, &arg32->LUN_info,
27190 sizeof(arg64.LUN_info)); 27982 sizeof(arg64.LUN_info));
27191diff -urNp linux-2.6.38.2/drivers/scsi/ipr.c linux-2.6.38.2/drivers/scsi/ipr.c 27983diff -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 27984--- 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 27985+++ 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 27986@@ -6207,7 +6207,7 @@ static bool ipr_qc_fill_rtf(struct ata_q
27195 return true; 27987 return true;
27196 } 27988 }
@@ -27200,9 +27992,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, 27992 .phy_reset = ipr_ata_phy_reset,
27201 .hardreset = ipr_sata_reset, 27993 .hardreset = ipr_sata_reset,
27202 .post_internal_cmd = ipr_ata_post_internal, 27994 .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 27995diff -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 27996--- 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 27997+++ 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 { 27998@@ -105,12 +105,12 @@ struct fc_exch_mgr {
27207 * all together if not used XXX 27999 * all together if not used XXX
27208 */ 28000 */
@@ -27324,9 +28116,9 @@ diff -urNp linux-2.6.38.2/drivers/scsi/libfc/fc_exch.c linux-2.6.38.2/drivers/sc
27324 28116
27325 fc_frame_free(fp); 28117 fc_frame_free(fp);
27326 } 28118 }
27327diff -urNp linux-2.6.38.2/drivers/scsi/libsas/sas_ata.c linux-2.6.38.2/drivers/scsi/libsas/sas_ata.c 28119diff -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 28120--- 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 28121+++ 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 28122@@ -348,10 +348,10 @@ static int sas_ata_scr_read(struct ata_l
27331 } 28123 }
27332 } 28124 }
@@ -27340,9 +28132,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, 28132 .qc_prep = ata_noop_qc_prep,
27341 .qc_issue = sas_ata_qc_issue, 28133 .qc_issue = sas_ata_qc_issue,
27342 .qc_fill_rtf = sas_ata_qc_fill_rtf, 28134 .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 28135diff -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 28136--- 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 28137+++ linux-2.6.38.3/drivers/scsi/mpt2sas/mpt2sas_debug.h 2011-04-17 15:57:32.000000000 -0400
27346@@ -79,7 +79,7 @@ 28138@@ -79,7 +79,7 @@
27347 CMD; \ 28139 CMD; \
27348 } 28140 }
@@ -27352,9 +28144,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 */ 28144 #endif /* CONFIG_SCSI_MPT2SAS_LOGGING */
27353 28145
27354 28146
27355diff -urNp linux-2.6.38.2/drivers/scsi/qla2xxx/qla_os.c linux-2.6.38.2/drivers/scsi/qla2xxx/qla_os.c 28147diff -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 28148--- 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 28149+++ 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 28150@@ -4096,7 +4096,7 @@ static struct pci_driver qla2xxx_pci_dri
27359 .err_handler = &qla2xxx_err_handler, 28151 .err_handler = &qla2xxx_err_handler,
27360 }; 28152 };
@@ -27364,9 +28156,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, 28156 .owner = THIS_MODULE,
27365 .llseek = noop_llseek, 28157 .llseek = noop_llseek,
27366 }; 28158 };
27367diff -urNp linux-2.6.38.2/drivers/scsi/scsi_logging.h linux-2.6.38.2/drivers/scsi/scsi_logging.h 28159diff -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 28160--- 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 28161+++ linux-2.6.38.3/drivers/scsi/scsi_logging.h 2011-04-17 15:57:32.000000000 -0400
27370@@ -51,7 +51,7 @@ do { \ 28162@@ -51,7 +51,7 @@ do { \
27371 } while (0); \ 28163 } while (0); \
27372 } while (0) 28164 } while (0)
@@ -27376,21 +28168,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 */ 28168 #endif /* CONFIG_SCSI_LOGGING */
27377 28169
27378 /* 28170 /*
27379diff -urNp linux-2.6.38.2/drivers/scsi/scsi_transport_iscsi.c linux-2.6.38.2/drivers/scsi/scsi_transport_iscsi.c 28171diff -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 28172--- 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 28173+++ 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 28174@@ -836,7 +836,7 @@ static int fc_str_to_dev_loss(const char
27383 #define iscsi_priv_session_rw_attr(field, format) \ 28175 char *cp;
27384 iscsi_priv_session_attr_show(field, format) \ 28176
27385 iscsi_priv_session_attr_store(field) \ 28177 *val = simple_strtoul(buf, &cp, 0);
27386-static ISCSI_CLASS_ATTR(priv_sess, field, S_IRUGO | S_IWUGO, \ 28178- if ((*cp && (*cp != '\n')) || (*val < 0))
27387+static ISCSI_CLASS_ATTR(priv_sess, field, S_IRUGO | S_IWUSR, \ 28179+ if (*cp && (*cp != '\n'))
27388 show_priv_session_##field, \ 28180 return -EINVAL;
27389 store_priv_session_##field) 28181 /*
27390 iscsi_priv_session_rw_attr(recovery_tmo, "%d"); 28182 * 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 28183diff -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 28184--- 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 28185+++ 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 { 28186@@ -2310,7 +2310,7 @@ struct sg_proc_leaf {
27395 const struct file_operations * fops; 28187 const struct file_operations * fops;
27396 }; 28188 };
@@ -27409,9 +28201,9 @@ diff -urNp linux-2.6.38.2/drivers/scsi/sg.c linux-2.6.38.2/drivers/scsi/sg.c
27409 28201
27410 sg_proc_sgp = proc_mkdir(sg_proc_sg_dirname, NULL); 28202 sg_proc_sgp = proc_mkdir(sg_proc_sg_dirname, NULL);
27411 if (!sg_proc_sgp) 28203 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 28204diff -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 28205--- 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 28206+++ 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 28207@@ -311,7 +311,8 @@ static int autofs_root_symlink(struct in
27416 set_bit(n,sbi->symlink_bitmap); 28208 set_bit(n,sbi->symlink_bitmap);
27417 sl = &sbi->symlink[n]; 28209 sl = &sbi->symlink[n];
@@ -27422,9 +28214,9 @@ diff -urNp linux-2.6.38.2/drivers/staging/autofs/root.c linux-2.6.38.2/drivers/s
27422 if (!sl->data) { 28214 if (!sl->data) {
27423 clear_bit(n,sbi->symlink_bitmap); 28215 clear_bit(n,sbi->symlink_bitmap);
27424 unlock_kernel(); 28216 unlock_kernel();
27425diff -urNp linux-2.6.38.2/drivers/staging/bcm/Bcmchar.c linux-2.6.38.2/drivers/staging/bcm/Bcmchar.c 28217diff -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 28218--- 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 28219+++ 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 * 28220@@ -2093,7 +2093,7 @@ static long bcm_char_ioctl(struct file *
27429 } 28221 }
27430 28222
@@ -27434,9 +28226,9 @@ diff -urNp linux-2.6.38.2/drivers/staging/bcm/Bcmchar.c linux-2.6.38.2/drivers/s
27434 .owner = THIS_MODULE, 28226 .owner = THIS_MODULE,
27435 .open = bcm_char_open, 28227 .open = bcm_char_open,
27436 .release = bcm_char_release, 28228 .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 28229diff -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 28230--- 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 28231+++ 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) 28232@@ -863,14 +863,14 @@ static void dhd_op_if(dhd_if_t *ifp)
27441 free_netdev(ifp->net); 28233 free_netdev(ifp->net);
27442 } 28234 }
@@ -27492,9 +28284,9 @@ diff -urNp linux-2.6.38.2/drivers/staging/brcm80211/brcmfmac/dhd_linux.c linux-2
27492 28284
27493 #if defined(CUSTOMER_HW2) && defined(CONFIG_WIFI_CONTROL_FUNC) 28285 #if defined(CUSTOMER_HW2) && defined(CONFIG_WIFI_CONTROL_FUNC)
27494 g_bus = bus; 28286 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 28287diff -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 28288--- 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 28289+++ 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, 28290@@ -513,7 +513,7 @@ wl_iw_get_range(struct net_device *dev,
27499 list = (wl_u32_list_t *) channels; 28291 list = (wl_u32_list_t *) channels;
27500 28292
@@ -27504,9 +28296,9 @@ diff -urNp linux-2.6.38.2/drivers/staging/brcm80211/brcmfmac/wl_iw.c linux-2.6.3
27504 28296
27505 range->min_nwid = range->max_nwid = 0; 28297 range->min_nwid = range->max_nwid = 0;
27506 28298
27507diff -urNp linux-2.6.38.2/drivers/staging/comedi/comedi_fops.c linux-2.6.38.2/drivers/staging/comedi/comedi_fops.c 28299diff -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 28300--- 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 28301+++ 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_ 28302@@ -1426,7 +1426,7 @@ static void comedi_unmap(struct vm_area_
27511 mutex_unlock(&dev->mutex); 28303 mutex_unlock(&dev->mutex);
27512 } 28304 }
@@ -27516,9 +28308,9 @@ diff -urNp linux-2.6.38.2/drivers/staging/comedi/comedi_fops.c linux-2.6.38.2/dr
27516 .close = comedi_unmap, 28308 .close = comedi_unmap,
27517 }; 28309 };
27518 28310
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 28311diff -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 28312--- 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 28313+++ 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; 28314@@ -55,7 +55,7 @@ int numofmsgbuf = 0;
27523 // 28315 //
27524 // Table of entry-point routines for char device 28316 // Table of entry-point routines for char device
@@ -27528,9 +28320,9 @@ diff -urNp linux-2.6.38.2/drivers/staging/ft1000/ft1000-usb/ft1000_debug.c linux
27528 { 28320 {
27529 .unlocked_ioctl = ft1000_ioctl, 28321 .unlocked_ioctl = ft1000_ioctl,
27530 .poll = ft1000_poll_dev, 28322 .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 28323diff -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 28324--- 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 28325+++ 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 28326@@ -1672,7 +1672,7 @@ static int go7007_vm_fault(struct vm_are
27535 return 0; 28327 return 0;
27536 } 28328 }
@@ -27540,9 +28332,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, 28332 .open = go7007_vm_open,
27541 .close = go7007_vm_close, 28333 .close = go7007_vm_close,
27542 .fault = go7007_vm_fault, 28334 .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 28335diff -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 28336--- 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 28337+++ 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 28338@@ -163,7 +163,7 @@ static u64 do_hypercall(u64 control, voi
27547 u64 output_address = (output) ? virt_to_phys(output) : 0; 28339 u64 output_address = (output) ? virt_to_phys(output) : 0;
27548 u32 output_address_hi = output_address >> 32; 28340 u32 output_address_hi = output_address >> 32;
@@ -27552,9 +28344,9 @@ diff -urNp linux-2.6.38.2/drivers/staging/hv/hv.c linux-2.6.38.2/drivers/staging
27552 28344
27553 DPRINT_DBG(VMBUS, "Hypercall <control %llx input %p output %p>", 28345 DPRINT_DBG(VMBUS, "Hypercall <control %llx input %p output %p>",
27554 control, input, output); 28346 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 28347diff -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 28348--- 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 28349+++ 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_ 28350@@ -43,7 +43,7 @@ static struct scsi_host_template phison_
27559 ATA_BMDMA_SHT(DRV_NAME), 28351 ATA_BMDMA_SHT(DRV_NAME),
27560 }; 28352 };
@@ -27564,9 +28356,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, 28356 .inherits = &ata_bmdma_port_ops,
27565 .prereset = phison_pre_reset, 28357 .prereset = phison_pre_reset,
27566 }; 28358 };
27567diff -urNp linux-2.6.38.2/drivers/staging/pohmelfs/inode.c linux-2.6.38.2/drivers/staging/pohmelfs/inode.c 28359diff -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 28360--- 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 28361+++ 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 28362@@ -1855,7 +1855,7 @@ static int pohmelfs_fill_super(struct su
27571 mutex_init(&psb->mcache_lock); 28363 mutex_init(&psb->mcache_lock);
27572 psb->mcache_root = RB_ROOT; 28364 psb->mcache_root = RB_ROOT;
@@ -27576,9 +28368,9 @@ diff -urNp linux-2.6.38.2/drivers/staging/pohmelfs/inode.c linux-2.6.38.2/driver
27576 28368
27577 psb->trans_max_pages = 100; 28369 psb->trans_max_pages = 100;
27578 28370
27579diff -urNp linux-2.6.38.2/drivers/staging/pohmelfs/mcache.c linux-2.6.38.2/drivers/staging/pohmelfs/mcache.c 28371diff -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 28372--- 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 28373+++ 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_ 28374@@ -121,7 +121,7 @@ struct pohmelfs_mcache *pohmelfs_mcache_
27583 m->data = data; 28375 m->data = data;
27584 m->start = start; 28376 m->start = start;
@@ -27588,9 +28380,9 @@ diff -urNp linux-2.6.38.2/drivers/staging/pohmelfs/mcache.c linux-2.6.38.2/drive
27588 28380
27589 mutex_lock(&psb->mcache_lock); 28381 mutex_lock(&psb->mcache_lock);
27590 err = pohmelfs_mcache_insert(psb, m); 28382 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 28383diff -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 28384--- 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 28385+++ 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; 28386@@ -571,7 +571,7 @@ struct pohmelfs_config;
27595 struct pohmelfs_sb { 28387 struct pohmelfs_sb {
27596 struct rb_root mcache_root; 28388 struct rb_root mcache_root;
@@ -27600,9 +28392,9 @@ diff -urNp linux-2.6.38.2/drivers/staging/pohmelfs/netfs.h linux-2.6.38.2/driver
27600 unsigned long mcache_timeout; 28392 unsigned long mcache_timeout;
27601 28393
27602 unsigned int idx; 28394 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 28395diff -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 28396--- 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 28397+++ 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 28398@@ -99,7 +99,7 @@ static int crypto_info_open(struct inode
27607 return seq_open(file, &crypto_seq_ops); 28399 return seq_open(file, &crypto_seq_ops);
27608 } 28400 }
@@ -27612,9 +28404,9 @@ diff -urNp linux-2.6.38.2/drivers/staging/rtl8192u/ieee80211/proc.c linux-2.6.38
27612 .open = crypto_info_open, 28404 .open = crypto_info_open,
27613 .read = seq_read, 28405 .read = seq_read,
27614 .llseek = seq_lseek, 28406 .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 28407diff -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 28408--- 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 28409+++ 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 28410@@ -604,7 +604,7 @@ int GLOB_SBD_unlocked_ioctl(struct block
27619 return ret; 28411 return ret;
27620 } 28412 }
@@ -27624,9 +28416,9 @@ diff -urNp linux-2.6.38.2/drivers/staging/spectra/ffsport.c linux-2.6.38.2/drive
27624 .owner = THIS_MODULE, 28416 .owner = THIS_MODULE,
27625 .open = GLOB_SBD_open, 28417 .open = GLOB_SBD_open,
27626 .release = GLOB_SBD_release, 28418 .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 28419diff -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 28420--- 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 28421+++ 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 28422@@ -138,7 +138,7 @@ static long vme_user_unlocked_ioctl(stru
27631 static int __devinit vme_user_probe(struct device *, int, int); 28423 static int __devinit vme_user_probe(struct device *, int, int);
27632 static int __devexit vme_user_remove(struct device *, int, int); 28424 static int __devexit vme_user_remove(struct device *, int, int);
@@ -27636,9 +28428,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, 28428 .open = vme_user_open,
27637 .release = vme_user_release, 28429 .release = vme_user_release,
27638 .read = vme_user_read, 28430 .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 28431diff -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 28432--- 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 28433+++ 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 28434@@ -426,7 +426,7 @@ int cyasblkdev_revalidate_disk(struct ge
27643 28435
27644 28436
@@ -27648,9 +28440,9 @@ diff -urNp linux-2.6.38.2/drivers/staging/westbridge/astoria/block/cyasblkdev_bl
27648 .open = cyasblkdev_blk_open, 28440 .open = cyasblkdev_blk_open,
27649 .release = cyasblkdev_blk_release, 28441 .release = cyasblkdev_blk_release,
27650 .ioctl = cyasblkdev_blk_ioctl, 28442 .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 28443diff -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 28444--- 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 28445+++ 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 28446@@ -82,6 +82,7 @@ extern int hvc_instantiate(uint32_t vter
27655 /* register a vterm for hvc tty operation (module_init or hotplug add) */ 28447 /* register a vterm for hvc tty operation (module_init or hotplug add) */
27656 extern struct hvc_struct * hvc_alloc(uint32_t vtermno, int data, 28448 extern struct hvc_struct * hvc_alloc(uint32_t vtermno, int data,
@@ -27659,9 +28451,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) */ 28451 /* remove a vterm from hvc tty operation (module_exit or hotplug remove) */
27660 extern int hvc_remove(struct hvc_struct *hp); 28452 extern int hvc_remove(struct hvc_struct *hp);
27661 28453
27662diff -urNp linux-2.6.38.2/drivers/tty/hvc/hvcs.c linux-2.6.38.2/drivers/tty/hvc/hvcs.c 28454diff -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 28455--- 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 28456+++ linux-2.6.38.3/drivers/tty/hvc/hvcs.c 2011-04-17 15:57:32.000000000 -0400
27665@@ -83,6 +83,7 @@ 28457@@ -83,6 +83,7 @@
27666 #include <asm/hvcserver.h> 28458 #include <asm/hvcserver.h>
27667 #include <asm/uaccess.h> 28459 #include <asm/uaccess.h>
@@ -27764,9 +28556,9 @@ diff -urNp linux-2.6.38.2/drivers/tty/hvc/hvcs.c linux-2.6.38.2/drivers/tty/hvc/
27764 return 0; 28556 return 0;
27765 28557
27766 return HVCS_BUFF_LEN - hvcsd->chars_in_buffer; 28558 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 28559diff -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 28560--- 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 28561+++ 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 28562@@ -123,7 +123,7 @@ static int domU_read_console(uint32_t vt
27771 return recv; 28563 return recv;
27772 } 28564 }
@@ -27803,9 +28595,9 @@ diff -urNp linux-2.6.38.2/drivers/tty/hvc/hvc_xen.c linux-2.6.38.2/drivers/tty/h
27803 28595
27804 if (!xen_pv_domain()) 28596 if (!xen_pv_domain())
27805 return 0; 28597 return 0;
27806diff -urNp linux-2.6.38.2/drivers/tty/n_gsm.c linux-2.6.38.2/drivers/tty/n_gsm.c 28598diff -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 28599--- 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 28600+++ 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 28601@@ -1589,7 +1589,7 @@ static struct gsm_dlci *gsm_dlci_alloc(s
27810 return NULL; 28602 return NULL;
27811 spin_lock_init(&dlci->lock); 28603 spin_lock_init(&dlci->lock);
@@ -27815,9 +28607,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); 28607 kfree(dlci);
27816 return NULL; 28608 return NULL;
27817 } 28609 }
27818diff -urNp linux-2.6.38.2/drivers/tty/n_tty.c linux-2.6.38.2/drivers/tty/n_tty.c 28610diff -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 28611--- 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 28612+++ 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_ 28613@@ -2116,6 +2116,7 @@ void n_tty_inherit_ops(struct tty_ldisc_
27822 { 28614 {
27823 *ops = tty_ldisc_N_TTY; 28615 *ops = tty_ldisc_N_TTY;
@@ -27827,9 +28619,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; 28619+ ops->flags = 0;
27828 } 28620 }
27829 EXPORT_SYMBOL_GPL(n_tty_inherit_ops); 28621 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 28622diff -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 28623--- 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 28624+++ linux-2.6.38.3/drivers/tty/pty.c 2011-04-17 15:57:32.000000000 -0400
27833@@ -700,7 +700,18 @@ out: 28625@@ -700,7 +700,18 @@ out:
27834 return retval; 28626 return retval;
27835 } 28627 }
@@ -27861,9 +28653,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); 28653 cdev_init(&ptmx_cdev, &ptmx_fops);
27862 if (cdev_add(&ptmx_cdev, MKDEV(TTYAUX_MAJOR, 2), 1) || 28654 if (cdev_add(&ptmx_cdev, MKDEV(TTYAUX_MAJOR, 2), 1) ||
27863 register_chrdev_region(MKDEV(TTYAUX_MAJOR, 2), 1, "/dev/ptmx") < 0) 28655 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 28656diff -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 28657--- 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 28658+++ 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 28659@@ -3818,7 +3818,7 @@ static struct pci_device_id serial_pci_t
27868 PCI_ANY_ID, PCI_ANY_ID, 28660 PCI_ANY_ID, PCI_ANY_ID,
27869 PCI_CLASS_COMMUNICATION_MULTISERIAL << 8, 28661 PCI_CLASS_COMMUNICATION_MULTISERIAL << 8,
@@ -27873,9 +28665,9 @@ diff -urNp linux-2.6.38.2/drivers/tty/serial/8250_pci.c linux-2.6.38.2/drivers/t
27873 }; 28665 };
27874 28666
27875 static struct pci_driver serial_pci_driver = { 28667 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 28668diff -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 28669--- 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 28670+++ linux-2.6.38.3/drivers/tty/serial/kgdboc.c 2011-04-17 15:57:32.000000000 -0400
27879@@ -22,7 +22,7 @@ 28671@@ -22,7 +22,7 @@
27880 28672
27881 #define MAX_CONFIG_LEN 40 28673 #define MAX_CONFIG_LEN 40
@@ -27894,9 +28686,9 @@ diff -urNp linux-2.6.38.2/drivers/tty/serial/kgdboc.c linux-2.6.38.2/drivers/tty
27894 .name = "kgdboc", 28686 .name = "kgdboc",
27895 .read_char = kgdboc_get_char, 28687 .read_char = kgdboc_get_char,
27896 .write_char = kgdboc_put_char, 28688 .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 28689diff -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 28690--- 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 28691+++ 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); 28692@@ -140,21 +140,11 @@ EXPORT_SYMBOL(tty_mutex);
27901 /* Spinlock to protect the tty->tty_files list */ 28693 /* Spinlock to protect the tty->tty_files list */
27902 DEFINE_SPINLOCK(tty_files_lock); 28694 DEFINE_SPINLOCK(tty_files_lock);
@@ -28034,9 +28826,9 @@ diff -urNp linux-2.6.38.2/drivers/tty/tty_io.c linux-2.6.38.2/drivers/tty/tty_io
28034 /* 28826 /*
28035 * Initialize the console device. This is called *early*, so 28827 * Initialize the console device. This is called *early*, so
28036 * we can't necessarily depend on lots of kernel help here. 28828 * 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 28829diff -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 28830--- 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 28831+++ 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 * 28832@@ -76,7 +76,7 @@ static void put_ldisc(struct tty_ldisc *
28041 if (atomic_dec_and_lock(&ld->users, &tty_ldisc_lock)) { 28833 if (atomic_dec_and_lock(&ld->users, &tty_ldisc_lock)) {
28042 struct tty_ldisc_ops *ldo = ld->ops; 28834 struct tty_ldisc_ops *ldo = ld->ops;
@@ -28082,9 +28874,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); 28874 module_put(ldops->owner);
28083 spin_unlock_irqrestore(&tty_ldisc_lock, flags); 28875 spin_unlock_irqrestore(&tty_ldisc_lock, flags);
28084 } 28876 }
28085diff -urNp linux-2.6.38.2/drivers/tty/vt/keyboard.c linux-2.6.38.2/drivers/tty/vt/keyboard.c 28877diff -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 28878--- 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 28879+++ 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 28880@@ -657,6 +657,16 @@ static void k_spec(struct vc_data *vc, u
28089 kbd->kbdmode == VC_MEDIUMRAW) && 28881 kbd->kbdmode == VC_MEDIUMRAW) &&
28090 value != KVAL(K_SAK)) 28882 value != KVAL(K_SAK))
@@ -28111,9 +28903,9 @@ diff -urNp linux-2.6.38.2/drivers/tty/vt/keyboard.c linux-2.6.38.2/drivers/tty/v
28111 }; 28903 };
28112 28904
28113 MODULE_DEVICE_TABLE(input, kbd_ids); 28905 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 28906diff -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 28907--- 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 28908+++ 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 28909@@ -262,7 +262,7 @@ EXPORT_SYMBOL_GPL(unregister_vt_notifier
28118 28910
28119 static void notify_write(struct vc_data *vc, unsigned int unicode) 28911 static void notify_write(struct vc_data *vc, unsigned int unicode)
@@ -28123,9 +28915,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); 28915 atomic_notifier_call_chain(&vt_notifier_list, VT_WRITE, &param);
28124 } 28916 }
28125 28917
28126diff -urNp linux-2.6.38.2/drivers/tty/vt/vt_ioctl.c linux-2.6.38.2/drivers/tty/vt/vt_ioctl.c 28918diff -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 28919--- 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 28920+++ 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 __ 28921@@ -210,9 +210,6 @@ do_kdsk_ioctl(int cmd, struct kbentry __
28130 if (copy_from_user(&tmp, user_kbe, sizeof(struct kbentry))) 28922 if (copy_from_user(&tmp, user_kbe, sizeof(struct kbentry)))
28131 return -EFAULT; 28923 return -EFAULT;
@@ -28166,9 +28958,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) { 28958 if (!perm) {
28167 ret = -EPERM; 28959 ret = -EPERM;
28168 goto reterr; 28960 goto reterr;
28169diff -urNp linux-2.6.38.2/drivers/uio/uio.c linux-2.6.38.2/drivers/uio/uio.c 28961diff -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 28962--- 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 28963+++ linux-2.6.38.3/drivers/uio/uio.c 2011-04-17 15:57:32.000000000 -0400
28172@@ -25,6 +25,7 @@ 28964@@ -25,6 +25,7 @@
28173 #include <linux/kobject.h> 28965 #include <linux/kobject.h>
28174 #include <linux/cdev.h> 28966 #include <linux/cdev.h>
@@ -28202,9 +28994,9 @@ diff -urNp linux-2.6.38.2/drivers/uio/uio.c linux-2.6.38.2/drivers/uio/uio.c
28202 } 28994 }
28203 28995
28204 static int uio_vma_fault(struct vm_area_struct *vma, struct vm_fault *vmf) 28996 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 28997diff -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 28998--- 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 28999+++ 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 29000@@ -473,7 +473,7 @@ static ssize_t cxacru_sysfs_store_adsl_c
28209 ret = sscanf(buf + pos, "%x=%x%n", &index, &value, &tmp); 29001 ret = sscanf(buf + pos, "%x=%x%n", &index, &value, &tmp);
28210 if (ret < 2) 29002 if (ret < 2)
@@ -28214,9 +29006,9 @@ diff -urNp linux-2.6.38.2/drivers/usb/atm/cxacru.c linux-2.6.38.2/drivers/usb/at
28214 return -EINVAL; 29006 return -EINVAL;
28215 pos += tmp; 29007 pos += tmp;
28216 29008
28217diff -urNp linux-2.6.38.2/drivers/usb/atm/usbatm.c linux-2.6.38.2/drivers/usb/atm/usbatm.c 29009diff -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 29010--- 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 29011+++ 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 29012@@ -332,7 +332,7 @@ static void usbatm_extract_one_cell(stru
28221 if (printk_ratelimit()) 29013 if (printk_ratelimit())
28222 atm_warn(instance, "%s: OAM not supported (vpi %d, vci %d)!\n", 29014 atm_warn(instance, "%s: OAM not supported (vpi %d, vci %d)!\n",
@@ -28296,9 +29088,9 @@ diff -urNp linux-2.6.38.2/drivers/usb/atm/usbatm.c linux-2.6.38.2/drivers/usb/at
28296 29088
28297 if (!left--) { 29089 if (!left--) {
28298 if (instance->disconnected) 29090 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 29091diff -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 29092--- 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 29093+++ 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 29094@@ -1640,7 +1640,7 @@ static const struct usb_device_id acm_id
28303 { USB_INTERFACE_INFO(USB_CLASS_COMM, USB_CDC_SUBCLASS_ACM, 29095 { USB_INTERFACE_INFO(USB_CLASS_COMM, USB_CDC_SUBCLASS_ACM,
28304 USB_CDC_ACM_PROTO_AT_CDMA) }, 29096 USB_CDC_ACM_PROTO_AT_CDMA) },
@@ -28308,9 +29100,9 @@ diff -urNp linux-2.6.38.2/drivers/usb/class/cdc-acm.c linux-2.6.38.2/drivers/usb
28308 }; 29100 };
28309 29101
28310 MODULE_DEVICE_TABLE(usb, acm_ids); 29102 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 29103diff -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 29104--- 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 29105+++ 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 29106@@ -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> */ 29107 { 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 */ 29108 { 0x04f9, 0x000d, USBLP_QUIRK_BIDIR }, /* Brother Industries, Ltd HL-1440 Laser Printer */
@@ -28329,9 +29121,9 @@ diff -urNp linux-2.6.38.2/drivers/usb/class/usblp.c linux-2.6.38.2/drivers/usb/c
28329 }; 29121 };
28330 29122
28331 MODULE_DEVICE_TABLE(usb, usblp_ids); 29123 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 29124diff -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 29125--- 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 29126+++ 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 29127@@ -2457,7 +2457,7 @@ EXPORT_SYMBOL_GPL(usb_hcd_platform_shutd
28336 29128
28337 #if defined(CONFIG_USB_MON) || defined(CONFIG_USB_MON_MODULE) 29129 #if defined(CONFIG_USB_MON) || defined(CONFIG_USB_MON_MODULE)
@@ -28350,9 +29142,9 @@ diff -urNp linux-2.6.38.2/drivers/usb/core/hcd.c linux-2.6.38.2/drivers/usb/core
28350 { 29142 {
28351 29143
28352 if (mon_ops) 29144 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 29145diff -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 29146--- 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 29147+++ 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 29148@@ -3492,7 +3492,7 @@ static const struct usb_device_id hub_id
28357 .bDeviceClass = USB_CLASS_HUB}, 29149 .bDeviceClass = USB_CLASS_HUB},
28358 { .match_flags = USB_DEVICE_ID_MATCH_INT_CLASS, 29150 { .match_flags = USB_DEVICE_ID_MATCH_INT_CLASS,
@@ -28362,9 +29154,9 @@ diff -urNp linux-2.6.38.2/drivers/usb/core/hub.c linux-2.6.38.2/drivers/usb/core
28362 }; 29154 };
28363 29155
28364 MODULE_DEVICE_TABLE (usb, hub_id_table); 29156 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 29157diff -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 29158--- 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 29159+++ 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 29160@@ -869,8 +869,8 @@ char *usb_cache_string(struct usb_device
28369 buf = kmalloc(MAX_USB_STRING_SIZE, GFP_NOIO); 29161 buf = kmalloc(MAX_USB_STRING_SIZE, GFP_NOIO);
28370 if (buf) { 29162 if (buf) {
@@ -28376,9 +29168,9 @@ diff -urNp linux-2.6.38.2/drivers/usb/core/message.c linux-2.6.38.2/drivers/usb/
28376 if (!smallbuf) 29168 if (!smallbuf)
28377 return buf; 29169 return buf;
28378 memcpy(smallbuf, buf, len); 29170 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 29171diff -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 29172--- 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 29173+++ 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, 29174@@ -96,7 +96,7 @@ static inline u32 dbgp_len_update(u32 x,
28383 } 29175 }
28384 29176
@@ -28397,9 +29189,9 @@ diff -urNp linux-2.6.38.2/drivers/usb/early/ehci-dbgp.c linux-2.6.38.2/drivers/u
28397 .name = "kgdbdbgp", 29189 .name = "kgdbdbgp",
28398 .read_char = kgdbdbgp_read_char, 29190 .read_char = kgdbdbgp_read_char,
28399 .write_char = kgdbdbgp_write_char, 29191 .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 29192diff -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 29193--- 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 29194+++ 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 29195@@ -516,7 +516,7 @@ static const struct pci_device_id pci_id
28404 PCI_DEVICE_CLASS(PCI_CLASS_SERIAL_USB_EHCI, ~0), 29196 PCI_DEVICE_CLASS(PCI_CLASS_SERIAL_USB_EHCI, ~0),
28405 .driver_data = (unsigned long) &ehci_pci_hc_driver, 29197 .driver_data = (unsigned long) &ehci_pci_hc_driver,
@@ -28409,9 +29201,9 @@ diff -urNp linux-2.6.38.2/drivers/usb/host/ehci-pci.c linux-2.6.38.2/drivers/usb
28409 }; 29201 };
28410 MODULE_DEVICE_TABLE(pci, pci_ids); 29202 MODULE_DEVICE_TABLE(pci, pci_ids);
28411 29203
28412diff -urNp linux-2.6.38.2/drivers/usb/host/uhci-hcd.c linux-2.6.38.2/drivers/usb/host/uhci-hcd.c 29204diff -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 29205--- 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 29206+++ 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 29207@@ -948,7 +948,7 @@ static const struct pci_device_id uhci_p
28416 /* handle any USB UHCI controller */ 29208 /* handle any USB UHCI controller */
28417 PCI_DEVICE_CLASS(PCI_CLASS_SERIAL_USB_UHCI, ~0), 29209 PCI_DEVICE_CLASS(PCI_CLASS_SERIAL_USB_UHCI, ~0),
@@ -28421,9 +29213,9 @@ diff -urNp linux-2.6.38.2/drivers/usb/host/uhci-hcd.c linux-2.6.38.2/drivers/usb
28421 }; 29213 };
28422 29214
28423 MODULE_DEVICE_TABLE(pci, uhci_pci_ids); 29215 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 29216diff -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 29217--- 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 29218+++ 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 = { 29219@@ -238,7 +238,7 @@ static struct notifier_block mon_nb = {
28428 /* 29220 /*
28429 * Ops 29221 * Ops
@@ -28433,9 +29225,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, 29225 .urb_submit = mon_submit,
28434 .urb_submit_error = mon_submit_error, 29226 .urb_submit_error = mon_submit_error,
28435 .urb_complete = mon_complete, 29227 .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 29228diff -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 29229--- 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 29230+++ 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 29231@@ -54,9 +54,9 @@ void usb_stor_show_sense( unsigned char
28440 #define US_DEBUGPX(x...) printk( x ) 29232 #define US_DEBUGPX(x...) printk( x )
28441 #define US_DEBUG(x) x 29233 #define US_DEBUG(x) x
@@ -28449,9 +29241,9 @@ diff -urNp linux-2.6.38.2/drivers/usb/storage/debug.h linux-2.6.38.2/drivers/usb
28449 #endif 29241 #endif
28450 29242
28451 #endif 29243 #endif
28452diff -urNp linux-2.6.38.2/drivers/usb/storage/usb.c linux-2.6.38.2/drivers/usb/storage/usb.c 29244diff -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 29245--- 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 29246+++ 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 29247@@ -122,7 +122,7 @@ MODULE_PARM_DESC(quirks, "supplemental l
28456 29248
28457 static struct us_unusual_dev us_unusual_dev_list[] = { 29249 static struct us_unusual_dev us_unusual_dev_list[] = {
@@ -28461,9 +29253,9 @@ diff -urNp linux-2.6.38.2/drivers/usb/storage/usb.c linux-2.6.38.2/drivers/usb/s
28461 }; 29253 };
28462 29254
28463 #undef UNUSUAL_DEV 29255 #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 29256diff -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 29257--- 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 29258+++ linux-2.6.38.3/drivers/usb/storage/usual-tables.c 2011-04-17 15:57:32.000000000 -0400
28467@@ -48,7 +48,7 @@ 29259@@ -48,7 +48,7 @@
28468 29260
28469 struct usb_device_id usb_storage_usb_ids[] = { 29261 struct usb_device_id usb_storage_usb_ids[] = {
@@ -28473,9 +29265,9 @@ diff -urNp linux-2.6.38.2/drivers/usb/storage/usual-tables.c linux-2.6.38.2/driv
28473 }; 29265 };
28474 EXPORT_SYMBOL_GPL(usb_storage_usb_ids); 29266 EXPORT_SYMBOL_GPL(usb_storage_usb_ids);
28475 29267
28476diff -urNp linux-2.6.38.2/drivers/vhost/vhost.c linux-2.6.38.2/drivers/vhost/vhost.c 29268diff -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 29269--- 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 29270+++ 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 29271@@ -565,7 +565,7 @@ static int init_used(struct vhost_virtqu
28480 return get_user(vq->last_used_idx, &used->idx); 29272 return get_user(vq->last_used_idx, &used->idx);
28481 } 29273 }
@@ -28485,9 +29277,9 @@ diff -urNp linux-2.6.38.2/drivers/vhost/vhost.c linux-2.6.38.2/drivers/vhost/vho
28485 { 29277 {
28486 struct file *eventfp, *filep = NULL, 29278 struct file *eventfp, *filep = NULL,
28487 *pollstart = NULL, *pollstop = NULL; 29279 *pollstart = NULL, *pollstop = NULL;
28488diff -urNp linux-2.6.38.2/drivers/video/fbcmap.c linux-2.6.38.2/drivers/video/fbcmap.c 29280diff -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 29281--- 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 29282+++ 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 29283@@ -285,8 +285,7 @@ int fb_set_user_cmap(struct fb_cmap_user
28492 rc = -ENODEV; 29284 rc = -ENODEV;
28493 goto out; 29285 goto out;
@@ -28498,9 +29290,9 @@ diff -urNp linux-2.6.38.2/drivers/video/fbcmap.c linux-2.6.38.2/drivers/video/fb
28498 rc = -EINVAL; 29290 rc = -EINVAL;
28499 goto out1; 29291 goto out1;
28500 } 29292 }
28501diff -urNp linux-2.6.38.2/drivers/video/fbmem.c linux-2.6.38.2/drivers/video/fbmem.c 29293diff -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 29294--- 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 29295+++ 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 29296@@ -403,7 +403,7 @@ static void fb_do_show_logo(struct fb_in
28505 image->dx += image->width + 8; 29297 image->dx += image->width + 8;
28506 } 29298 }
@@ -28528,9 +29320,9 @@ diff -urNp linux-2.6.38.2/drivers/video/fbmem.c linux-2.6.38.2/drivers/video/fbm
28528 return -EINVAL; 29320 return -EINVAL;
28529 if (!registered_fb[con2fb.framebuffer]) 29321 if (!registered_fb[con2fb.framebuffer])
28530 request_module("fb%d", con2fb.framebuffer); 29322 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 29323diff -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 29324--- 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 29325+++ linux-2.6.38.3/drivers/video/fbmon.c 2011-04-17 15:57:32.000000000 -0400
28534@@ -46,7 +46,7 @@ 29326@@ -46,7 +46,7 @@
28535 #ifdef DEBUG 29327 #ifdef DEBUG
28536 #define DPRINTK(fmt, args...) printk(fmt,## args) 29328 #define DPRINTK(fmt, args...) printk(fmt,## args)
@@ -28540,9 +29332,9 @@ diff -urNp linux-2.6.38.2/drivers/video/fbmon.c linux-2.6.38.2/drivers/video/fbm
28540 #endif 29332 #endif
28541 29333
28542 #define FBMON_FIX_HEADER 1 29334 #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 29335diff -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 29336--- 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 29337+++ 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 29338@@ -73,6 +73,7 @@ static inline int wait_for_space(struct
28547 } 29339 }
28548 } 29340 }
@@ -28551,9 +29343,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); 29343 i810_report_error(mmio);
28552 par->dev_flags |= LOCKUP; 29344 par->dev_flags |= LOCKUP;
28553 info->pixmap.scan_align = 1; 29345 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 29346diff -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 29347--- 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 29348+++ 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 29349@@ -120,7 +120,7 @@ static struct pci_device_id i810fb_pci_t
28558 PCI_ANY_ID, PCI_ANY_ID, 0, 0, 4 }, 29350 PCI_ANY_ID, PCI_ANY_ID, 0, 0, 4 },
28559 { PCI_VENDOR_ID_INTEL, PCI_DEVICE_ID_INTEL_82815_CGC, 29351 { PCI_VENDOR_ID_INTEL, PCI_DEVICE_ID_INTEL_82815_CGC,
@@ -28563,9 +29355,9 @@ diff -urNp linux-2.6.38.2/drivers/video/i810/i810_main.c linux-2.6.38.2/drivers/
28563 }; 29355 };
28564 29356
28565 static struct pci_driver i810fb_driver = { 29357 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 29358diff -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 29359--- 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 29360+++ 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[ 29361@@ -40,255 +40,255 @@ static const struct fb_videomode modedb[
28570 29362
28571 /* 640x400 @ 70 Hz, 31.5 kHz hsync */ 29363 /* 640x400 @ 70 Hz, 31.5 kHz hsync */
@@ -28882,9 +29674,9 @@ diff -urNp linux-2.6.38.2/drivers/video/modedb.c linux-2.6.38.2/drivers/video/mo
28882 }; 29674 };
28883 29675
28884 #ifdef CONFIG_FB_MODE_HELPERS 29676 #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 29677diff -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 29678--- 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 29679+++ 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 { 29680@@ -103,7 +103,7 @@ struct pxa3xx_gcu_priv {
28889 dma_addr_t shared_phys; 29681 dma_addr_t shared_phys;
28890 struct resource *resource_mem; 29682 struct resource *resource_mem;
@@ -28894,9 +29686,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; 29686 wait_queue_head_t wait_idle;
28895 wait_queue_head_t wait_free; 29687 wait_queue_head_t wait_free;
28896 spinlock_t spinlock; 29688 spinlock_t spinlock;
28897diff -urNp linux-2.6.38.2/drivers/video/uvesafb.c linux-2.6.38.2/drivers/video/uvesafb.c 29689diff -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 29690--- 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 29691+++ linux-2.6.38.3/drivers/video/uvesafb.c 2011-04-17 15:57:32.000000000 -0400
28900@@ -19,6 +19,7 @@ 29692@@ -19,6 +19,7 @@
28901 #include <linux/io.h> 29693 #include <linux/io.h>
28902 #include <linux/mutex.h> 29694 #include <linux/mutex.h>
@@ -28972,9 +29764,9 @@ diff -urNp linux-2.6.38.2/drivers/video/uvesafb.c linux-2.6.38.2/drivers/video/u
28972 } 29764 }
28973 29765
28974 framebuffer_release(info); 29766 framebuffer_release(info);
28975diff -urNp linux-2.6.38.2/drivers/video/vesafb.c linux-2.6.38.2/drivers/video/vesafb.c 29767diff -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 29768--- 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 29769+++ linux-2.6.38.3/drivers/video/vesafb.c 2011-04-17 15:57:32.000000000 -0400
28978@@ -9,6 +9,7 @@ 29770@@ -9,6 +9,7 @@
28979 */ 29771 */
28980 29772
@@ -29078,9 +29870,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) 29870 if (info->screen_base)
29079 iounmap(info->screen_base); 29871 iounmap(info->screen_base);
29080 framebuffer_release(info); 29872 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 29873diff -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 29874--- 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 29875+++ 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 29876@@ -1094,7 +1094,7 @@ static void *v9fs_vfs_follow_link(struct
29085 void 29877 void
29086 v9fs_vfs_put_link(struct dentry *dentry, struct nameidata *nd, void *p) 29878 v9fs_vfs_put_link(struct dentry *dentry, struct nameidata *nd, void *p)
@@ -29090,9 +29882,9 @@ diff -urNp linux-2.6.38.2/fs/9p/vfs_inode.c linux-2.6.38.2/fs/9p/vfs_inode.c
29090 29882
29091 P9_DPRINTK(P9_DEBUG_VFS, " %s %s\n", dentry->d_name.name, 29883 P9_DPRINTK(P9_DEBUG_VFS, " %s %s\n", dentry->d_name.name,
29092 IS_ERR(s) ? "<error>" : s); 29884 IS_ERR(s) ? "<error>" : s);
29093diff -urNp linux-2.6.38.2/fs/aio.c linux-2.6.38.2/fs/aio.c 29885diff -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 29886--- 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 29887+++ 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 29888@@ -130,7 +130,7 @@ static int aio_setup_ring(struct kioctx
29097 size += sizeof(struct io_event) * nr_events; 29889 size += sizeof(struct io_event) * nr_events;
29098 nr_pages = (size + PAGE_SIZE-1) >> PAGE_SHIFT; 29890 nr_pages = (size + PAGE_SIZE-1) >> PAGE_SHIFT;
@@ -29102,9 +29894,9 @@ diff -urNp linux-2.6.38.2/fs/aio.c linux-2.6.38.2/fs/aio.c
29102 return -EINVAL; 29894 return -EINVAL;
29103 29895
29104 nr_events = (PAGE_SIZE * nr_pages - sizeof(struct aio_ring)) / sizeof(struct io_event); 29896 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 29897diff -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 29898--- 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 29899+++ 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 29900@@ -98,6 +98,7 @@ int inode_newsize_ok(const struct inode
29109 unsigned long limit; 29901 unsigned long limit;
29110 29902
@@ -29113,9 +29905,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) 29905 if (limit != RLIM_INFINITY && offset > limit)
29114 goto out_sig; 29906 goto out_sig;
29115 if (offset > inode->i_sb->s_maxbytes) 29907 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 29908diff -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 29909--- 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 29910+++ 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 29911@@ -499,7 +499,7 @@ static void befs_put_link(struct dentry
29120 { 29912 {
29121 befs_inode_info *befs_ino = BEFS_I(dentry->d_inode); 29913 befs_inode_info *befs_ino = BEFS_I(dentry->d_inode);
@@ -29125,9 +29917,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)) 29917 if (!IS_ERR(link))
29126 kfree(link); 29918 kfree(link);
29127 } 29919 }
29128diff -urNp linux-2.6.38.2/fs/binfmt_aout.c linux-2.6.38.2/fs/binfmt_aout.c 29920diff -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 29921--- 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 29922+++ linux-2.6.38.3/fs/binfmt_aout.c 2011-04-17 15:57:32.000000000 -0400
29131@@ -16,6 +16,7 @@ 29923@@ -16,6 +16,7 @@
29132 #include <linux/string.h> 29924 #include <linux/string.h>
29133 #include <linux/fs.h> 29925 #include <linux/fs.h>
@@ -29204,9 +29996,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, 29996 MAP_FIXED | MAP_PRIVATE | MAP_DENYWRITE | MAP_EXECUTABLE,
29205 fd_offset + ex.a_text); 29997 fd_offset + ex.a_text);
29206 up_write(&current->mm->mmap_sem); 29998 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 29999diff -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 30000--- 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 30001+++ 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 30002@@ -51,6 +51,10 @@ static int elf_core_dump(struct coredump
29211 #define elf_core_dump NULL 30003 #define elf_core_dump NULL
29212 #endif 30004 #endif
@@ -29248,7 +30040,7 @@ diff -urNp linux-2.6.38.2/fs/binfmt_elf.c linux-2.6.38.2/fs/binfmt_elf.c
29248 return 0; 30040 return 0;
29249 } 30041 }
29250 30042
29251@@ -148,7 +159,7 @@ create_elf_tables(struct linux_binprm *b 30043@@ -148,12 +159,13 @@ create_elf_tables(struct linux_binprm *b
29252 elf_addr_t __user *u_rand_bytes; 30044 elf_addr_t __user *u_rand_bytes;
29253 const char *k_platform = ELF_PLATFORM; 30045 const char *k_platform = ELF_PLATFORM;
29254 const char *k_base_platform = ELF_BASE_PLATFORM; 30046 const char *k_base_platform = ELF_BASE_PLATFORM;
@@ -29257,7 +30049,13 @@ diff -urNp linux-2.6.38.2/fs/binfmt_elf.c linux-2.6.38.2/fs/binfmt_elf.c
29257 int items; 30049 int items;
29258 elf_addr_t *elf_info; 30050 elf_addr_t *elf_info;
29259 int ei_index = 0; 30051 int ei_index = 0;
29260@@ -195,8 +206,12 @@ create_elf_tables(struct linux_binprm *b 30052 const struct cred *cred = current_cred();
30053 struct vm_area_struct *vma;
30054+ unsigned long saved_auxv[AT_VECTOR_SIZE];
30055
30056 /*
30057 * In some cases (e.g. Hyper-Threading), we want to avoid L1
30058@@ -195,8 +207,12 @@ create_elf_tables(struct linux_binprm *b
29261 * Generate 16 random bytes for userspace PRNG seeding. 30059 * Generate 16 random bytes for userspace PRNG seeding.
29262 */ 30060 */
29263 get_random_bytes(k_rand_bytes, sizeof(k_rand_bytes)); 30061 get_random_bytes(k_rand_bytes, sizeof(k_rand_bytes));
@@ -29272,7 +30070,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))) 30070 if (__copy_to_user(u_rand_bytes, k_rand_bytes, sizeof(k_rand_bytes)))
29273 return -EFAULT; 30071 return -EFAULT;
29274 30072
29275@@ -381,10 +396,10 @@ static unsigned long load_elf_interp(str 30073@@ -308,9 +324,11 @@ create_elf_tables(struct linux_binprm *b
30074 return -EFAULT;
30075 current->mm->env_end = p;
30076
30077+ memcpy(saved_auxv, elf_info, ei_index * sizeof(elf_addr_t));
30078+
30079 /* Put the elf_info on the stack in the right place. */
30080 sp = (elf_addr_t __user *)envp + 1;
30081- if (copy_to_user(sp, elf_info, ei_index * sizeof(elf_addr_t)))
30082+ if (copy_to_user(sp, saved_auxv, ei_index * sizeof(elf_addr_t)))
30083 return -EFAULT;
30084 return 0;
30085 }
30086@@ -381,10 +399,10 @@ static unsigned long load_elf_interp(str
29276 { 30087 {
29277 struct elf_phdr *elf_phdata; 30088 struct elf_phdr *elf_phdata;
29278 struct elf_phdr *eppnt; 30089 struct elf_phdr *eppnt;
@@ -29285,7 +30096,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; 30096 unsigned long total_size;
29286 int retval, i, size; 30097 int retval, i, size;
29287 30098
29288@@ -430,6 +445,11 @@ static unsigned long load_elf_interp(str 30099@@ -430,6 +448,11 @@ static unsigned long load_elf_interp(str
29289 goto out_close; 30100 goto out_close;
29290 } 30101 }
29291 30102
@@ -29297,7 +30108,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; 30108 eppnt = elf_phdata;
29298 for (i = 0; i < interp_elf_ex->e_phnum; i++, eppnt++) { 30109 for (i = 0; i < interp_elf_ex->e_phnum; i++, eppnt++) {
29299 if (eppnt->p_type == PT_LOAD) { 30110 if (eppnt->p_type == PT_LOAD) {
29300@@ -473,8 +493,8 @@ static unsigned long load_elf_interp(str 30111@@ -473,8 +496,8 @@ static unsigned long load_elf_interp(str
29301 k = load_addr + eppnt->p_vaddr; 30112 k = load_addr + eppnt->p_vaddr;
29302 if (BAD_ADDR(k) || 30113 if (BAD_ADDR(k) ||
29303 eppnt->p_filesz > eppnt->p_memsz || 30114 eppnt->p_filesz > eppnt->p_memsz ||
@@ -29308,7 +30119,7 @@ diff -urNp linux-2.6.38.2/fs/binfmt_elf.c linux-2.6.38.2/fs/binfmt_elf.c
29308 error = -ENOMEM; 30119 error = -ENOMEM;
29309 goto out_close; 30120 goto out_close;
29310 } 30121 }
29311@@ -528,6 +548,177 @@ out: 30122@@ -528,6 +551,193 @@ out:
29312 return error; 30123 return error;
29313 } 30124 }
29314 30125
@@ -29448,6 +30259,7 @@ diff -urNp linux-2.6.38.2/fs/binfmt_elf.c linux-2.6.38.2/fs/binfmt_elf.c
29448+ 30259+
29449+#ifdef CONFIG_PAX_PT_PAX_FLAGS 30260+#ifdef CONFIG_PAX_PT_PAX_FLAGS
29450+ unsigned long i; 30261+ unsigned long i;
30262+ int found_flags = 0;
29451+#endif 30263+#endif
29452+ 30264+
29453+#ifdef CONFIG_PAX_EI_PAX 30265+#ifdef CONFIG_PAX_EI_PAX
@@ -29471,10 +30283,25 @@ diff -urNp linux-2.6.38.2/fs/binfmt_elf.c linux-2.6.38.2/fs/binfmt_elf.c
29471+#endif 30283+#endif
29472+ 30284+
29473+ pax_flags = pax_parse_hardmode(&elf_phdata[i]); 30285+ pax_flags = pax_parse_hardmode(&elf_phdata[i]);
30286+ found_flags = 1;
29474+ break; 30287+ break;
29475+ } 30288+ }
29476+#endif 30289+#endif
29477+ 30290+
30291+#if !defined(CONFIG_PAX_EI_PAX) && defined(CONFIG_PAX_PT_PAX_FLAGS)
30292+ if (found_flags == 0) {
30293+ struct elf_phdr phdr;
30294+ memset(&phdr, 0, sizeof(phdr));
30295+ phdr.p_flags = PF_NOEMUTRAMP;
30296+#ifdef CONFIG_PAX_SOFTMODE
30297+ if (pax_softmode)
30298+ pax_flags = pax_parse_softmode(&phdr);
30299+ else
30300+#endif
30301+ pax_flags = pax_parse_hardmode(&phdr);
30302+ }
30303+#endif
30304+
29478+ if (0 > pax_check_flags(&pax_flags)) 30305+ if (0 > pax_check_flags(&pax_flags))
29479+ return -EINVAL; 30306+ return -EINVAL;
29480+ 30307+
@@ -29486,7 +30313,7 @@ diff -urNp linux-2.6.38.2/fs/binfmt_elf.c linux-2.6.38.2/fs/binfmt_elf.c
29486 /* 30313 /*
29487 * These are the functions used to load ELF style executables and shared 30314 * These are the functions used to load ELF style executables and shared
29488 * libraries. There is no binary dependent code anywhere else. 30315 * libraries. There is no binary dependent code anywhere else.
29489@@ -544,6 +735,11 @@ static unsigned long randomize_stack_top 30316@@ -544,6 +754,11 @@ static unsigned long randomize_stack_top
29490 { 30317 {
29491 unsigned int random_variable = 0; 30318 unsigned int random_variable = 0;
29492 30319
@@ -29498,7 +30325,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) && 30325 if ((current->flags & PF_RANDOMIZE) &&
29499 !(current->personality & ADDR_NO_RANDOMIZE)) { 30326 !(current->personality & ADDR_NO_RANDOMIZE)) {
29500 random_variable = get_random_int() & STACK_RND_MASK; 30327 random_variable = get_random_int() & STACK_RND_MASK;
29501@@ -562,7 +758,7 @@ static int load_elf_binary(struct linux_ 30328@@ -562,7 +777,7 @@ static int load_elf_binary(struct linux_
29502 unsigned long load_addr = 0, load_bias = 0; 30329 unsigned long load_addr = 0, load_bias = 0;
29503 int load_addr_set = 0; 30330 int load_addr_set = 0;
29504 char * elf_interpreter = NULL; 30331 char * elf_interpreter = NULL;
@@ -29507,7 +30334,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; 30334 struct elf_phdr *elf_ppnt, *elf_phdata;
29508 unsigned long elf_bss, elf_brk; 30335 unsigned long elf_bss, elf_brk;
29509 int retval, i; 30336 int retval, i;
29510@@ -572,11 +768,11 @@ static int load_elf_binary(struct linux_ 30337@@ -572,11 +787,11 @@ static int load_elf_binary(struct linux_
29511 unsigned long start_code, end_code, start_data, end_data; 30338 unsigned long start_code, end_code, start_data, end_data;
29512 unsigned long reloc_func_desc = 0; 30339 unsigned long reloc_func_desc = 0;
29513 int executable_stack = EXSTACK_DEFAULT; 30340 int executable_stack = EXSTACK_DEFAULT;
@@ -29520,7 +30347,7 @@ diff -urNp linux-2.6.38.2/fs/binfmt_elf.c linux-2.6.38.2/fs/binfmt_elf.c
29520 30347
29521 loc = kmalloc(sizeof(*loc), GFP_KERNEL); 30348 loc = kmalloc(sizeof(*loc), GFP_KERNEL);
29522 if (!loc) { 30349 if (!loc) {
29523@@ -714,11 +910,80 @@ static int load_elf_binary(struct linux_ 30350@@ -714,11 +929,80 @@ static int load_elf_binary(struct linux_
29524 30351
29525 /* OK, This is the point of no return */ 30352 /* OK, This is the point of no return */
29526 current->flags &= ~PF_FORKNOEXEC; 30353 current->flags &= ~PF_FORKNOEXEC;
@@ -29602,7 +30429,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)) 30429 if (elf_read_implies_exec(loc->elf_ex, executable_stack))
29603 current->personality |= READ_IMPLIES_EXEC; 30430 current->personality |= READ_IMPLIES_EXEC;
29604 30431
29605@@ -800,6 +1065,20 @@ static int load_elf_binary(struct linux_ 30432@@ -800,6 +1084,20 @@ static int load_elf_binary(struct linux_
29606 #else 30433 #else
29607 load_bias = ELF_PAGESTART(ELF_ET_DYN_BASE - vaddr); 30434 load_bias = ELF_PAGESTART(ELF_ET_DYN_BASE - vaddr);
29608 #endif 30435 #endif
@@ -29623,7 +30450,7 @@ diff -urNp linux-2.6.38.2/fs/binfmt_elf.c linux-2.6.38.2/fs/binfmt_elf.c
29623 } 30450 }
29624 30451
29625 error = elf_map(bprm->file, load_bias + vaddr, elf_ppnt, 30452 error = elf_map(bprm->file, load_bias + vaddr, elf_ppnt,
29626@@ -832,9 +1111,9 @@ static int load_elf_binary(struct linux_ 30453@@ -832,9 +1130,9 @@ static int load_elf_binary(struct linux_
29627 * allowed task size. Note that p_filesz must always be 30454 * allowed task size. Note that p_filesz must always be
29628 * <= p_memsz so it is only necessary to check p_memsz. 30455 * <= p_memsz so it is only necessary to check p_memsz.
29629 */ 30456 */
@@ -29636,7 +30463,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. */ 30463 /* set_brk can never work. Avoid overflows. */
29637 send_sig(SIGKILL, current, 0); 30464 send_sig(SIGKILL, current, 0);
29638 retval = -EINVAL; 30465 retval = -EINVAL;
29639@@ -862,6 +1141,11 @@ static int load_elf_binary(struct linux_ 30466@@ -862,6 +1160,11 @@ static int load_elf_binary(struct linux_
29640 start_data += load_bias; 30467 start_data += load_bias;
29641 end_data += load_bias; 30468 end_data += load_bias;
29642 30469
@@ -29648,7 +30475,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 30475 /* Calling set_brk effectively mmaps the pages that we need
29649 * for the bss and break sections. We must do this before 30476 * for the bss and break sections. We must do this before
29650 * mapping in the interpreter, to make sure it doesn't wind 30477 * mapping in the interpreter, to make sure it doesn't wind
29651@@ -873,9 +1157,11 @@ static int load_elf_binary(struct linux_ 30478@@ -873,9 +1176,11 @@ static int load_elf_binary(struct linux_
29652 goto out_free_dentry; 30479 goto out_free_dentry;
29653 } 30480 }
29654 if (likely(elf_bss != elf_brk) && unlikely(padzero(elf_bss))) { 30481 if (likely(elf_bss != elf_brk) && unlikely(padzero(elf_bss))) {
@@ -29663,7 +30490,7 @@ diff -urNp linux-2.6.38.2/fs/binfmt_elf.c linux-2.6.38.2/fs/binfmt_elf.c
29663 } 30490 }
29664 30491
29665 if (elf_interpreter) { 30492 if (elf_interpreter) {
29666@@ -1086,7 +1372,7 @@ out: 30493@@ -1086,7 +1391,7 @@ out:
29667 * Decide what to dump of a segment, part, all or none. 30494 * Decide what to dump of a segment, part, all or none.
29668 */ 30495 */
29669 static unsigned long vma_dump_size(struct vm_area_struct *vma, 30496 static unsigned long vma_dump_size(struct vm_area_struct *vma,
@@ -29672,7 +30499,7 @@ diff -urNp linux-2.6.38.2/fs/binfmt_elf.c linux-2.6.38.2/fs/binfmt_elf.c
29672 { 30499 {
29673 #define FILTER(type) (mm_flags & (1UL << MMF_DUMP_##type)) 30500 #define FILTER(type) (mm_flags & (1UL << MMF_DUMP_##type))
29674 30501
29675@@ -1120,7 +1406,7 @@ static unsigned long vma_dump_size(struc 30502@@ -1120,7 +1425,7 @@ static unsigned long vma_dump_size(struc
29676 if (vma->vm_file == NULL) 30503 if (vma->vm_file == NULL)
29677 return 0; 30504 return 0;
29678 30505
@@ -29681,7 +30508,7 @@ diff -urNp linux-2.6.38.2/fs/binfmt_elf.c linux-2.6.38.2/fs/binfmt_elf.c
29681 goto whole; 30508 goto whole;
29682 30509
29683 /* 30510 /*
29684@@ -1342,9 +1628,9 @@ static void fill_auxv_note(struct memelf 30511@@ -1342,9 +1647,9 @@ static void fill_auxv_note(struct memelf
29685 { 30512 {
29686 elf_addr_t *auxv = (elf_addr_t *) mm->saved_auxv; 30513 elf_addr_t *auxv = (elf_addr_t *) mm->saved_auxv;
29687 int i = 0; 30514 int i = 0;
@@ -29693,7 +30520,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); 30520 fill_note(note, "CORE", NT_AUXV, i * sizeof(elf_addr_t), auxv);
29694 } 30521 }
29695 30522
29696@@ -1850,14 +2136,14 @@ static void fill_extnum_info(struct elfh 30523@@ -1850,14 +2155,14 @@ static void fill_extnum_info(struct elfh
29697 } 30524 }
29698 30525
29699 static size_t elf_core_vma_data_size(struct vm_area_struct *gate_vma, 30526 static size_t elf_core_vma_data_size(struct vm_area_struct *gate_vma,
@@ -29710,7 +30537,7 @@ diff -urNp linux-2.6.38.2/fs/binfmt_elf.c linux-2.6.38.2/fs/binfmt_elf.c
29710 return size; 30537 return size;
29711 } 30538 }
29712 30539
29713@@ -1951,7 +2237,7 @@ static int elf_core_dump(struct coredump 30540@@ -1951,7 +2256,7 @@ static int elf_core_dump(struct coredump
29714 30541
29715 dataoff = offset = roundup(offset, ELF_EXEC_PAGESIZE); 30542 dataoff = offset = roundup(offset, ELF_EXEC_PAGESIZE);
29716 30543
@@ -29719,7 +30546,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(); 30546 offset += elf_core_extra_data_size();
29720 e_shoff = offset; 30547 e_shoff = offset;
29721 30548
29722@@ -1965,10 +2251,12 @@ static int elf_core_dump(struct coredump 30549@@ -1965,10 +2270,12 @@ static int elf_core_dump(struct coredump
29723 offset = dataoff; 30550 offset = dataoff;
29724 30551
29725 size += sizeof(*elf); 30552 size += sizeof(*elf);
@@ -29732,7 +30559,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 30559 if (size > cprm->limit
29733 || !dump_write(cprm->file, phdr4note, sizeof(*phdr4note))) 30560 || !dump_write(cprm->file, phdr4note, sizeof(*phdr4note)))
29734 goto end_coredump; 30561 goto end_coredump;
29735@@ -1982,7 +2270,7 @@ static int elf_core_dump(struct coredump 30562@@ -1982,7 +2289,7 @@ static int elf_core_dump(struct coredump
29736 phdr.p_offset = offset; 30563 phdr.p_offset = offset;
29737 phdr.p_vaddr = vma->vm_start; 30564 phdr.p_vaddr = vma->vm_start;
29738 phdr.p_paddr = 0; 30565 phdr.p_paddr = 0;
@@ -29741,7 +30568,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; 30568 phdr.p_memsz = vma->vm_end - vma->vm_start;
29742 offset += phdr.p_filesz; 30569 offset += phdr.p_filesz;
29743 phdr.p_flags = vma->vm_flags & VM_READ ? PF_R : 0; 30570 phdr.p_flags = vma->vm_flags & VM_READ ? PF_R : 0;
29744@@ -1993,6 +2281,7 @@ static int elf_core_dump(struct coredump 30571@@ -1993,6 +2300,7 @@ static int elf_core_dump(struct coredump
29745 phdr.p_align = ELF_EXEC_PAGESIZE; 30572 phdr.p_align = ELF_EXEC_PAGESIZE;
29746 30573
29747 size += sizeof(phdr); 30574 size += sizeof(phdr);
@@ -29749,7 +30576,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 30576 if (size > cprm->limit
29750 || !dump_write(cprm->file, &phdr, sizeof(phdr))) 30577 || !dump_write(cprm->file, &phdr, sizeof(phdr)))
29751 goto end_coredump; 30578 goto end_coredump;
29752@@ -2017,7 +2306,7 @@ static int elf_core_dump(struct coredump 30579@@ -2017,7 +2325,7 @@ static int elf_core_dump(struct coredump
29753 unsigned long addr; 30580 unsigned long addr;
29754 unsigned long end; 30581 unsigned long end;
29755 30582
@@ -29758,7 +30585,7 @@ diff -urNp linux-2.6.38.2/fs/binfmt_elf.c linux-2.6.38.2/fs/binfmt_elf.c
29758 30585
29759 for (addr = vma->vm_start; addr < end; addr += PAGE_SIZE) { 30586 for (addr = vma->vm_start; addr < end; addr += PAGE_SIZE) {
29760 struct page *page; 30587 struct page *page;
29761@@ -2026,6 +2315,7 @@ static int elf_core_dump(struct coredump 30588@@ -2026,6 +2334,7 @@ static int elf_core_dump(struct coredump
29762 page = get_dump_page(addr); 30589 page = get_dump_page(addr);
29763 if (page) { 30590 if (page) {
29764 void *kaddr = kmap(page); 30591 void *kaddr = kmap(page);
@@ -29766,7 +30593,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) || 30593 stop = ((size += PAGE_SIZE) > cprm->limit) ||
29767 !dump_write(cprm->file, kaddr, 30594 !dump_write(cprm->file, kaddr,
29768 PAGE_SIZE); 30595 PAGE_SIZE);
29769@@ -2043,6 +2333,7 @@ static int elf_core_dump(struct coredump 30596@@ -2043,6 +2352,7 @@ static int elf_core_dump(struct coredump
29770 30597
29771 if (e_phnum == PN_XNUM) { 30598 if (e_phnum == PN_XNUM) {
29772 size += sizeof(*shdr4extnum); 30599 size += sizeof(*shdr4extnum);
@@ -29774,7 +30601,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 30601 if (size > cprm->limit
29775 || !dump_write(cprm->file, shdr4extnum, 30602 || !dump_write(cprm->file, shdr4extnum,
29776 sizeof(*shdr4extnum))) 30603 sizeof(*shdr4extnum)))
29777@@ -2063,6 +2354,97 @@ out: 30604@@ -2063,6 +2373,97 @@ out:
29778 30605
29779 #endif /* CONFIG_ELF_CORE */ 30606 #endif /* CONFIG_ELF_CORE */
29780 30607
@@ -29872,9 +30699,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) 30699 static int __init init_elf_binfmt(void)
29873 { 30700 {
29874 return register_binfmt(&elf_format); 30701 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 30702diff -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 30703--- 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 30704+++ 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 30705@@ -567,7 +567,9 @@ static int load_flat_file(struct linux_b
29879 realdatastart = (unsigned long) -ENOMEM; 30706 realdatastart = (unsigned long) -ENOMEM;
29880 printk("Unable to allocate RAM for process data, errno %d\n", 30707 printk("Unable to allocate RAM for process data, errno %d\n",
@@ -29907,9 +30734,9 @@ diff -urNp linux-2.6.38.2/fs/binfmt_flat.c linux-2.6.38.2/fs/binfmt_flat.c
29907 ret = result; 30734 ret = result;
29908 goto err; 30735 goto err;
29909 } 30736 }
29910diff -urNp linux-2.6.38.2/fs/binfmt_misc.c linux-2.6.38.2/fs/binfmt_misc.c 30737diff -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 30738--- 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 30739+++ 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 30740@@ -698,7 +698,7 @@ static int bm_fill_super(struct super_bl
29914 static struct tree_descr bm_files[] = { 30741 static struct tree_descr bm_files[] = {
29915 [2] = {"status", &bm_status_operations, S_IWUSR|S_IRUGO}, 30742 [2] = {"status", &bm_status_operations, S_IWUSR|S_IRUGO},
@@ -29919,9 +30746,9 @@ diff -urNp linux-2.6.38.2/fs/binfmt_misc.c linux-2.6.38.2/fs/binfmt_misc.c
29919 }; 30746 };
29920 int err = simple_fill_super(sb, 0x42494e4d, bm_files); 30747 int err = simple_fill_super(sb, 0x42494e4d, bm_files);
29921 if (!err) 30748 if (!err)
29922diff -urNp linux-2.6.38.2/fs/bio.c linux-2.6.38.2/fs/bio.c 30749diff -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 30750--- 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 30751+++ 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 30752@@ -1233,7 +1233,7 @@ static void bio_copy_kern_endio(struct b
29926 const int read = bio_data_dir(bio) == READ; 30753 const int read = bio_data_dir(bio) == READ;
29927 struct bio_map_data *bmd = bio->bi_private; 30754 struct bio_map_data *bmd = bio->bi_private;
@@ -29931,9 +30758,9 @@ diff -urNp linux-2.6.38.2/fs/bio.c linux-2.6.38.2/fs/bio.c
29931 30758
29932 __bio_for_each_segment(bvec, bio, i, 0) { 30759 __bio_for_each_segment(bvec, bio, i, 0) {
29933 char *addr = page_address(bvec->bv_page); 30760 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 30761diff -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 30762--- 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 30763+++ 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 30764@@ -669,7 +669,7 @@ static bool bd_may_claim(struct block_de
29938 else if (bdev->bd_contains == bdev) 30765 else if (bdev->bd_contains == bdev)
29939 return true; /* is a whole device which isn't held */ 30766 return true; /* is a whole device which isn't held */
@@ -29943,9 +30770,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 */ 30770 return true; /* is a partition of a device that is being partitioned */
29944 else if (whole->bd_holder != NULL) 30771 else if (whole->bd_holder != NULL)
29945 return false; /* is a partition of a held device */ 30772 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 30773diff -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 30774--- 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 30775+++ 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 30776@@ -468,9 +468,12 @@ static noinline int __btrfs_cow_block(st
29950 free_extent_buffer(buf); 30777 free_extent_buffer(buf);
29951 add_root_to_dirty_list(root); 30778 add_root_to_dirty_list(root);
@@ -29970,9 +30797,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); 30797 btrfs_cpu_key_to_disk(&disk_key, cpu_key);
29971 ret = fixup_low_keys(trans, root, path, &disk_key, 1); 30798 ret = fixup_low_keys(trans, root, path, &disk_key, 1);
29972 } 30799 }
29973diff -urNp linux-2.6.38.2/fs/btrfs/disk-io.c linux-2.6.38.2/fs/btrfs/disk-io.c 30800diff -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 30801--- 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 30802+++ linux-2.6.38.3/fs/btrfs/disk-io.c 2011-04-17 16:53:48.000000000 -0400
29976@@ -41,7 +41,7 @@ 30803@@ -41,7 +41,7 @@
29977 #include "tree-log.h" 30804 #include "tree-log.h"
29978 #include "free-space-cache.h" 30805 #include "free-space-cache.h"
@@ -29982,7 +30809,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); 30809 static void end_workqueue_fn(struct btrfs_work *work);
29983 static void free_fs_root(struct btrfs_root *root); 30810 static void free_fs_root(struct btrfs_root *root);
29984 static void btrfs_check_super_valid(struct btrfs_fs_info *fs_info, 30811 static void btrfs_check_super_valid(struct btrfs_fs_info *fs_info,
29985@@ -3028,7 +3028,7 @@ static int btrfs_cleanup_transaction(str 30812@@ -3030,7 +3030,7 @@ static int btrfs_cleanup_transaction(str
29986 return 0; 30813 return 0;
29987 } 30814 }
29988 30815
@@ -29991,9 +30818,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, 30818 .write_cache_pages_lock_hook = btree_lock_page_hook,
29992 .readpage_end_io_hook = btree_readpage_end_io_hook, 30819 .readpage_end_io_hook = btree_readpage_end_io_hook,
29993 .submit_bio_hook = btree_submit_bio_hook, 30820 .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 30821diff -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 30822--- 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 30823+++ 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 30824@@ -55,36 +55,36 @@ typedef int (extent_submit_bio_hook_t)(s
29998 struct bio *bio, int mirror_num, 30825 struct bio *bio, int mirror_num,
29999 unsigned long bio_flags, u64 bio_offset); 30826 unsigned long bio_flags, u64 bio_offset);
@@ -30054,9 +30881,9 @@ diff -urNp linux-2.6.38.2/fs/btrfs/extent_io.h linux-2.6.38.2/fs/btrfs/extent_io
30054 }; 30881 };
30055 30882
30056 struct extent_state { 30883 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 30884diff -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 30885--- 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 30886+++ 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 30887@@ -1855,8 +1855,6 @@ u64 btrfs_alloc_from_cluster(struct btrf
30061 30888
30062 while(1) { 30889 while(1) {
@@ -30075,9 +30902,9 @@ diff -urNp linux-2.6.38.2/fs/btrfs/free-space-cache.c linux-2.6.38.2/fs/btrfs/fr
30075 30902
30076 if (entry->bitmap && entry->bytes > bytes + empty_size) { 30903 if (entry->bitmap && entry->bytes > bytes + empty_size) {
30077 ret = btrfs_bitmap_cluster(block_group, entry, cluster, 30904 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 30905diff -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 30906--- 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 30907+++ 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 30908@@ -64,7 +64,7 @@ static const struct inode_operations btr
30082 static const struct address_space_operations btrfs_aops; 30909 static const struct address_space_operations btrfs_aops;
30083 static const struct address_space_operations btrfs_symlink_aops; 30910 static const struct address_space_operations btrfs_symlink_aops;
@@ -30120,10 +30947,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, 30947 .fill_delalloc = run_delalloc_range,
30121 .submit_bio_hook = btrfs_submit_bio_hook, 30948 .submit_bio_hook = btrfs_submit_bio_hook,
30122 .merge_bio_hook = btrfs_merge_bio_hook, 30949 .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 30950diff -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 30951--- 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 30952+++ 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 30953@@ -2274,9 +2274,12 @@ long btrfs_ioctl_space_info(struct btrfs
30127 for (i = 0; i < num_types; i++) { 30954 for (i = 0; i < num_types; i++) {
30128 struct btrfs_space_info *tmp; 30955 struct btrfs_space_info *tmp;
30129 30956
@@ -30136,7 +30963,7 @@ diff -urNp linux-2.6.38.2/fs/btrfs/ioctl.c linux-2.6.38.2/fs/btrfs/ioctl.c
30136 info = NULL; 30963 info = NULL;
30137 rcu_read_lock(); 30964 rcu_read_lock();
30138 list_for_each_entry_rcu(tmp, &root->fs_info->space_info, 30965 list_for_each_entry_rcu(tmp, &root->fs_info->space_info,
30139@@ -2294,10 +2297,7 @@ long btrfs_ioctl_space_info(struct btrfs 30966@@ -2298,10 +2301,7 @@ long btrfs_ioctl_space_info(struct btrfs
30140 memcpy(dest, &space, sizeof(space)); 30967 memcpy(dest, &space, sizeof(space));
30141 dest++; 30968 dest++;
30142 space_args.total_spaces++; 30969 space_args.total_spaces++;
@@ -30147,9 +30974,9 @@ diff -urNp linux-2.6.38.2/fs/btrfs/ioctl.c linux-2.6.38.2/fs/btrfs/ioctl.c
30147 } 30974 }
30148 up_read(&info->groups_sem); 30975 up_read(&info->groups_sem);
30149 } 30976 }
30150diff -urNp linux-2.6.38.2/fs/btrfs/relocation.c linux-2.6.38.2/fs/btrfs/relocation.c 30977diff -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 30978--- 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 30979+++ 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 30980@@ -1239,7 +1239,7 @@ static int __update_reloc_root(struct bt
30154 } 30981 }
30155 spin_unlock(&rc->reloc_root_tree.lock); 30982 spin_unlock(&rc->reloc_root_tree.lock);
@@ -30159,9 +30986,9 @@ diff -urNp linux-2.6.38.2/fs/btrfs/relocation.c linux-2.6.38.2/fs/btrfs/relocati
30159 30986
30160 if (!del) { 30987 if (!del) {
30161 spin_lock(&rc->reloc_root_tree.lock); 30988 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 30989diff -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 30990--- 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 30991+++ 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 30992@@ -39,13 +39,11 @@ int cachefiles_daemon_bind(struct cachef
30166 args); 30993 args);
30167 30994
@@ -30178,9 +31005,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 && 31005 cache->bcull_percent < cache->brun_percent &&
30179 cache->brun_percent < 100); 31006 cache->brun_percent < 100);
30180 31007
30181diff -urNp linux-2.6.38.2/fs/cachefiles/daemon.c linux-2.6.38.2/fs/cachefiles/daemon.c 31008diff -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 31009--- 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 31010+++ 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 31011@@ -196,7 +196,7 @@ static ssize_t cachefiles_daemon_read(st
30185 if (n > buflen) 31012 if (n > buflen)
30186 return -EMSGSIZE; 31013 return -EMSGSIZE;
@@ -30217,9 +31044,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); 31044 return cachefiles_daemon_range_error(cache, args);
30218 31045
30219 cache->bstop_percent = bstop; 31046 cache->bstop_percent = bstop;
30220diff -urNp linux-2.6.38.2/fs/cachefiles/rdwr.c linux-2.6.38.2/fs/cachefiles/rdwr.c 31047diff -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 31048--- 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 31049+++ 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 31050@@ -945,7 +945,7 @@ int cachefiles_write_page(struct fscache
30224 old_fs = get_fs(); 31051 old_fs = get_fs();
30225 set_fs(KERNEL_DS); 31052 set_fs(KERNEL_DS);
@@ -30229,9 +31056,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); 31056 set_fs(old_fs);
30230 kunmap(page); 31057 kunmap(page);
30231 if (ret != len) 31058 if (ret != len)
30232diff -urNp linux-2.6.38.2/fs/ceph/dir.c linux-2.6.38.2/fs/ceph/dir.c 31059diff -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 31060--- 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 31061+++ 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 31062@@ -226,7 +226,7 @@ static int ceph_readdir(struct file *fil
30236 struct ceph_fs_client *fsc = ceph_inode_to_client(inode); 31063 struct ceph_fs_client *fsc = ceph_inode_to_client(inode);
30237 struct ceph_mds_client *mdsc = fsc->mdsc; 31064 struct ceph_mds_client *mdsc = fsc->mdsc;
@@ -30250,9 +31077,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); 31077 u64 pos = ceph_make_fpos(frag, off);
30251 struct ceph_mds_reply_inode *in = 31078 struct ceph_mds_reply_inode *in =
30252 rinfo->dir_in[off - fi->offset].in; 31079 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 31080diff -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 31081--- 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 31082+++ 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 31083@@ -132,7 +132,7 @@ const struct UniCaseRange CifsUniUpperRa
30257 {0x0490, 0x04cc, UniCaseRangeU0490}, 31084 {0x0490, 0x04cc, UniCaseRangeU0490},
30258 {0x1e00, 0x1ffc, UniCaseRangeU1e00}, 31085 {0x1e00, 0x1ffc, UniCaseRangeU1e00},
@@ -30262,9 +31089,9 @@ diff -urNp linux-2.6.38.2/fs/cifs/cifs_uniupr.h linux-2.6.38.2/fs/cifs/cifs_uniu
30262 }; 31089 };
30263 #endif 31090 #endif
30264 31091
30265diff -urNp linux-2.6.38.2/fs/cifs/link.c linux-2.6.38.2/fs/cifs/link.c 31092diff -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 31093--- 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 31094+++ linux-2.6.38.3/fs/cifs/link.c 2011-04-17 15:57:32.000000000 -0400
30268@@ -577,7 +577,7 @@ symlink_exit: 31095@@ -577,7 +577,7 @@ symlink_exit:
30269 31096
30270 void cifs_put_link(struct dentry *direntry, struct nameidata *nd, void *cookie) 31097 void cifs_put_link(struct dentry *direntry, struct nameidata *nd, void *cookie)
@@ -30274,9 +31101,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)) 31101 if (!IS_ERR(p))
30275 kfree(p); 31102 kfree(p);
30276 } 31103 }
30277diff -urNp linux-2.6.38.2/fs/compat_binfmt_elf.c linux-2.6.38.2/fs/compat_binfmt_elf.c 31104diff -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 31105--- 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 31106+++ linux-2.6.38.3/fs/compat_binfmt_elf.c 2011-04-17 15:57:32.000000000 -0400
30280@@ -30,11 +30,13 @@ 31107@@ -30,11 +30,13 @@
30281 #undef elf_phdr 31108 #undef elf_phdr
30282 #undef elf_shdr 31109 #undef elf_shdr
@@ -30291,9 +31118,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 31118 #define elf_addr_t Elf32_Addr
30292 31119
30293 /* 31120 /*
30294diff -urNp linux-2.6.38.2/fs/compat.c linux-2.6.38.2/fs/compat.c 31121diff -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 31122--- 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 31123+++ 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 31124@@ -594,7 +594,7 @@ ssize_t compat_rw_copy_check_uvector(int
30298 goto out; 31125 goto out;
30299 31126
@@ -30404,10 +31231,15 @@ diff -urNp linux-2.6.38.2/fs/compat.c linux-2.6.38.2/fs/compat.c
30404 struct linux_binprm *bprm; 31231 struct linux_binprm *bprm;
30405 struct file *file; 31232 struct file *file;
30406 struct files_struct *displaced; 31233 struct files_struct *displaced;
30407@@ -1500,6 +1524,14 @@ int compat_do_execve(char * filename, 31234@@ -1500,6 +1524,19 @@ int compat_do_execve(char * filename,
30408 bprm->filename = filename; 31235 bprm->filename = filename;
30409 bprm->interp = filename; 31236 bprm->interp = filename;
30410 31237
31238+ if (gr_process_user_ban()) {
31239+ retval = -EPERM;
31240+ goto out_file;
31241+ }
31242+
30411+ gr_learn_resource(current, RLIMIT_NPROC, atomic_read(&current->cred->user->processes), 1); 31243+ gr_learn_resource(current, RLIMIT_NPROC, atomic_read(&current->cred->user->processes), 1);
30412+ retval = -EAGAIN; 31244+ retval = -EAGAIN;
30413+ if (gr_handle_nproc()) 31245+ if (gr_handle_nproc())
@@ -30419,7 +31251,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); 31251 retval = bprm_mm_init(bprm);
30420 if (retval) 31252 if (retval)
30421 goto out_file; 31253 goto out_file;
30422@@ -1529,9 +1561,40 @@ int compat_do_execve(char * filename, 31254@@ -1529,9 +1566,40 @@ int compat_do_execve(char * filename,
30423 if (retval < 0) 31255 if (retval < 0)
30424 goto out; 31256 goto out;
30425 31257
@@ -30461,7 +31293,7 @@ diff -urNp linux-2.6.38.2/fs/compat.c linux-2.6.38.2/fs/compat.c
30461 31293
30462 /* execve succeeded */ 31294 /* execve succeeded */
30463 current->fs->in_exec = 0; 31295 current->fs->in_exec = 0;
30464@@ -1542,6 +1605,14 @@ int compat_do_execve(char * filename, 31296@@ -1542,6 +1610,14 @@ int compat_do_execve(char * filename,
30465 put_files_struct(displaced); 31297 put_files_struct(displaced);
30466 return retval; 31298 return retval;
30467 31299
@@ -30476,9 +31308,9 @@ diff -urNp linux-2.6.38.2/fs/compat.c linux-2.6.38.2/fs/compat.c
30476 out: 31308 out:
30477 if (bprm->mm) { 31309 if (bprm->mm) {
30478 acct_arg_size(bprm, 0); 31310 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 31311diff -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 31312--- 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 31313+++ 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 31314@@ -208,6 +208,8 @@ static int do_video_set_spu_palette(unsi
30483 31315
30484 err = get_user(palp, &up->palette); 31316 err = get_user(palp, &up->palette);
@@ -30499,9 +31331,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) 31331 if (a > b)
30500 return 1; 31332 return 1;
30501 if (a < b) 31333 if (a < b)
30502diff -urNp linux-2.6.38.2/fs/debugfs/inode.c linux-2.6.38.2/fs/debugfs/inode.c 31334diff -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 31335--- 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 31336+++ linux-2.6.38.3/fs/dcache.c 2011-04-17 15:57:32.000000000 -0400
31337@@ -3092,7 +3092,7 @@ void __init vfs_caches_init(unsigned lon
31338 mempages -= reserve;
31339
31340 names_cachep = kmem_cache_create("names_cache", PATH_MAX, 0,
31341- SLAB_HWCACHE_ALIGN|SLAB_PANIC, NULL);
31342+ SLAB_HWCACHE_ALIGN|SLAB_PANIC|SLAB_USERCOPY, NULL);
31343
31344 dcache_init();
31345 inode_init();
31346diff -urNp linux-2.6.38.3/fs/debugfs/inode.c linux-2.6.38.3/fs/debugfs/inode.c
31347--- linux-2.6.38.3/fs/debugfs/inode.c 2011-03-14 21:20:32.000000000 -0400
31348+++ 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 31349@@ -130,7 +130,7 @@ static inline int debugfs_positive(struc
30506 31350
30507 static int debug_fill_super(struct super_block *sb, void *data, int silent) 31351 static int debug_fill_super(struct super_block *sb, void *data, int silent)
@@ -30511,9 +31355,9 @@ diff -urNp linux-2.6.38.2/fs/debugfs/inode.c linux-2.6.38.2/fs/debugfs/inode.c
30511 31355
30512 return simple_fill_super(sb, DEBUGFS_MAGIC, debug_files); 31356 return simple_fill_super(sb, DEBUGFS_MAGIC, debug_files);
30513 } 31357 }
30514diff -urNp linux-2.6.38.2/fs/dlm/lockspace.c linux-2.6.38.2/fs/dlm/lockspace.c 31358diff -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 31359--- 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 31360+++ 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, 31361@@ -200,7 +200,7 @@ static int dlm_uevent(struct kset *kset,
30518 return 0; 31362 return 0;
30519 } 31363 }
@@ -30523,9 +31367,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, 31367 .uevent = dlm_uevent,
30524 }; 31368 };
30525 31369
30526diff -urNp linux-2.6.38.2/fs/ecryptfs/inode.c linux-2.6.38.2/fs/ecryptfs/inode.c 31370diff -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 31371--- 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 31372+++ 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 31373@@ -658,7 +658,7 @@ static int ecryptfs_readlink_lower(struc
30530 old_fs = get_fs(); 31374 old_fs = get_fs();
30531 set_fs(get_ds()); 31375 set_fs(get_ds());
@@ -30553,9 +31397,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)) { 31397 if (!IS_ERR(buf)) {
30554 /* Free the char* */ 31398 /* Free the char* */
30555 kfree(buf); 31399 kfree(buf);
30556diff -urNp linux-2.6.38.2/fs/ecryptfs/miscdev.c linux-2.6.38.2/fs/ecryptfs/miscdev.c 31400diff -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 31401--- 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 31402+++ linux-2.6.38.3/fs/ecryptfs/miscdev.c 2011-04-17 15:57:32.000000000 -0400
30559@@ -328,7 +328,7 @@ check_list: 31403@@ -328,7 +328,7 @@ check_list:
30560 goto out_unlock_msg_ctx; 31404 goto out_unlock_msg_ctx;
30561 i = 5; 31405 i = 5;
@@ -30565,9 +31409,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; 31409 goto out_unlock_msg_ctx;
30566 i += packet_length_size; 31410 i += packet_length_size;
30567 if (copy_to_user(&buf[i], msg_ctx->msg, msg_ctx->msg_size)) 31411 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 31412diff -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 31413--- 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 31414+++ linux-2.6.38.3/fs/exec.c 2011-04-17 15:57:32.000000000 -0400
30571@@ -55,12 +55,24 @@ 31415@@ -55,12 +55,24 @@
30572 #include <linux/fs_struct.h> 31416 #include <linux/fs_struct.h>
30573 #include <linux/pipe_fs_i.h> 31417 #include <linux/pipe_fs_i.h>
@@ -30772,10 +31616,15 @@ diff -urNp linux-2.6.38.2/fs/exec.c linux-2.6.38.2/fs/exec.c
30772 struct linux_binprm *bprm; 31616 struct linux_binprm *bprm;
30773 struct file *file; 31617 struct file *file;
30774 struct files_struct *displaced; 31618 struct files_struct *displaced;
30775@@ -1414,6 +1448,18 @@ int do_execve(const char * filename, 31619@@ -1414,6 +1448,23 @@ int do_execve(const char * filename,
30776 bprm->filename = filename; 31620 bprm->filename = filename;
30777 bprm->interp = filename; 31621 bprm->interp = filename;
30778 31622
31623+ if (gr_process_user_ban()) {
31624+ retval = -EPERM;
31625+ goto out_file;
31626+ }
31627+
30779+ gr_learn_resource(current, RLIMIT_NPROC, atomic_read(&current->cred->user->processes), 1); 31628+ gr_learn_resource(current, RLIMIT_NPROC, atomic_read(&current->cred->user->processes), 1);
30780+ 31629+
30781+ if (gr_handle_nproc()) { 31630+ if (gr_handle_nproc()) {
@@ -30791,7 +31640,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); 31640 retval = bprm_mm_init(bprm);
30792 if (retval) 31641 if (retval)
30793 goto out_file; 31642 goto out_file;
30794@@ -1443,9 +1489,40 @@ int do_execve(const char * filename, 31643@@ -1443,9 +1494,40 @@ int do_execve(const char * filename,
30795 if (retval < 0) 31644 if (retval < 0)
30796 goto out; 31645 goto out;
30797 31646
@@ -30833,7 +31682,7 @@ diff -urNp linux-2.6.38.2/fs/exec.c linux-2.6.38.2/fs/exec.c
30833 31682
30834 /* execve succeeded */ 31683 /* execve succeeded */
30835 current->fs->in_exec = 0; 31684 current->fs->in_exec = 0;
30836@@ -1456,6 +1533,14 @@ int do_execve(const char * filename, 31685@@ -1456,6 +1538,14 @@ int do_execve(const char * filename,
30837 put_files_struct(displaced); 31686 put_files_struct(displaced);
30838 return retval; 31687 return retval;
30839 31688
@@ -30848,7 +31697,7 @@ diff -urNp linux-2.6.38.2/fs/exec.c linux-2.6.38.2/fs/exec.c
30848 out: 31697 out:
30849 if (bprm->mm) { 31698 if (bprm->mm) {
30850 acct_arg_size(bprm, 0); 31699 acct_arg_size(bprm, 0);
30851@@ -1642,6 +1727,217 @@ out: 31700@@ -1642,6 +1732,208 @@ out:
30852 return ispipe; 31701 return ispipe;
30853 } 31702 }
30854 31703
@@ -31040,25 +31889,16 @@ diff -urNp linux-2.6.38.2/fs/exec.c linux-2.6.38.2/fs/exec.c
31040+} 31889+}
31041+ 31890+
31042+ 31891+
31043+void pax_report_leak_to_user(const void *ptr, unsigned long len) 31892+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+{ 31893+{
31056+ if (current->signal->curr_ip) 31894+ if (current->signal->curr_ip)
31057+ printk(KERN_ERR "PAX: From %pI4: kernel memory overflow attempt detected to %p (%lu bytes)\n", 31895+ printk(KERN_ERR "PAX: From %pI4: kernel memory %s attempt detected %s %p (%s) (%lu bytes)\n",
31058+ &current->signal->curr_ip, ptr, len); 31896+ &current->signal->curr_ip, to ? "leak" : "overwrite", to ? "from" : "to", ptr, type ? : "unknown", len);
31059+ else 31897+ else
31060+ printk(KERN_ERR "PAX: kernel memory overflow attempt detected to %p (%lu bytes)\n", ptr, len); 31898+ printk(KERN_ERR "PAX: kernel memory %s attempt detected %s %p (%s) (%lu bytes)\n",
31899+ to ? "leak" : "overwrite", to ? "from" : "to", ptr, type ? : "unknown", len);
31061+ dump_stack(); 31900+ dump_stack();
31901+ gr_handle_kernel_exploit();
31062+ do_group_exit(SIGKILL); 31902+ do_group_exit(SIGKILL);
31063+} 31903+}
31064+#endif 31904+#endif
@@ -31066,7 +31906,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) 31906 static int zap_process(struct task_struct *start, int exit_code)
31067 { 31907 {
31068 struct task_struct *t; 31908 struct task_struct *t;
31069@@ -1852,17 +2148,17 @@ static void wait_for_dump_helpers(struct 31909@@ -1852,17 +2144,17 @@ static void wait_for_dump_helpers(struct
31070 pipe = file->f_path.dentry->d_inode->i_pipe; 31910 pipe = file->f_path.dentry->d_inode->i_pipe;
31071 31911
31072 pipe_lock(pipe); 31912 pipe_lock(pipe);
@@ -31089,20 +31929,28 @@ diff -urNp linux-2.6.38.2/fs/exec.c linux-2.6.38.2/fs/exec.c
31089 pipe_unlock(pipe); 31929 pipe_unlock(pipe);
31090 31930
31091 } 31931 }
31092@@ -1978,6 +2274,10 @@ void do_coredump(long signr, int exit_co 31932@@ -1938,6 +2230,9 @@ void do_coredump(long signr, int exit_co
31933
31934 audit_core_dumps(signr);
31935
31936+ if (signr == SIGSEGV || signr == SIGBUS || signr == SIGKILL || signr == SIGILL)
31937+ gr_handle_brute_attach(current, cprm.mm_flags);
31938+
31939 binfmt = mm->binfmt;
31940 if (!binfmt || !binfmt->core_dump)
31941 goto fail;
31942@@ -1978,6 +2273,8 @@ void do_coredump(long signr, int exit_co
31093 goto fail_corename; 31943 goto fail_corename;
31094 } 31944 }
31095 31945
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); 31946+ gr_learn_resource(current, RLIMIT_CORE, binfmt->min_coredump, 1);
31099+ 31947+
31100 if (ispipe) { 31948 if (ispipe) {
31101 int dump_count; 31949 int dump_count;
31102 char **helper_argv; 31950 char **helper_argv;
31103diff -urNp linux-2.6.38.2/fs/ext2/balloc.c linux-2.6.38.2/fs/ext2/balloc.c 31951diff -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 31952--- 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 31953+++ 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 31954@@ -1192,7 +1192,7 @@ static int ext2_has_free_blocks(struct e
31107 31955
31108 free_blocks = percpu_counter_read_positive(&sbi->s_freeblocks_counter); 31956 free_blocks = percpu_counter_read_positive(&sbi->s_freeblocks_counter);
@@ -31112,9 +31960,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() && 31960 sbi->s_resuid != current_fsuid() &&
31113 (sbi->s_resgid == 0 || !in_group_p (sbi->s_resgid))) { 31961 (sbi->s_resgid == 0 || !in_group_p (sbi->s_resgid))) {
31114 return 0; 31962 return 0;
31115diff -urNp linux-2.6.38.2/fs/ext2/xattr.c linux-2.6.38.2/fs/ext2/xattr.c 31963diff -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 31964--- 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 31965+++ linux-2.6.38.3/fs/ext2/xattr.c 2011-04-17 15:57:32.000000000 -0400
31118@@ -86,8 +86,8 @@ 31966@@ -86,8 +86,8 @@
31119 printk("\n"); \ 31967 printk("\n"); \
31120 } while (0) 31968 } while (0)
@@ -31126,9 +31974,9 @@ diff -urNp linux-2.6.38.2/fs/ext2/xattr.c linux-2.6.38.2/fs/ext2/xattr.c
31126 #endif 31974 #endif
31127 31975
31128 static int ext2_xattr_set2(struct inode *, struct buffer_head *, 31976 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 31977diff -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 31978--- 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 31979+++ 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 31980@@ -1441,7 +1441,7 @@ static int ext3_has_free_blocks(struct e
31133 31981
31134 free_blocks = percpu_counter_read_positive(&sbi->s_freeblocks_counter); 31982 free_blocks = percpu_counter_read_positive(&sbi->s_freeblocks_counter);
@@ -31138,9 +31986,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() && 31986 sbi->s_resuid != current_fsuid() &&
31139 (sbi->s_resgid == 0 || !in_group_p (sbi->s_resgid))) { 31987 (sbi->s_resgid == 0 || !in_group_p (sbi->s_resgid))) {
31140 return 0; 31988 return 0;
31141diff -urNp linux-2.6.38.2/fs/ext3/namei.c linux-2.6.38.2/fs/ext3/namei.c 31989diff -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 31990--- 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 31991+++ 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 31992@@ -1159,7 +1159,7 @@ static struct ext3_dir_entry_2 *do_split
31145 char *data1 = (*bh)->b_data, *data2; 31993 char *data1 = (*bh)->b_data, *data2;
31146 unsigned split, move, size; 31994 unsigned split, move, size;
@@ -31150,9 +31998,9 @@ diff -urNp linux-2.6.38.2/fs/ext3/namei.c linux-2.6.38.2/fs/ext3/namei.c
31150 31998
31151 bh2 = ext3_append (handle, dir, &newblock, &err); 31999 bh2 = ext3_append (handle, dir, &newblock, &err);
31152 if (!(bh2)) { 32000 if (!(bh2)) {
31153diff -urNp linux-2.6.38.2/fs/ext3/xattr.c linux-2.6.38.2/fs/ext3/xattr.c 32001diff -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 32002--- 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 32003+++ linux-2.6.38.3/fs/ext3/xattr.c 2011-04-17 15:57:32.000000000 -0400
31156@@ -89,8 +89,8 @@ 32004@@ -89,8 +89,8 @@
31157 printk("\n"); \ 32005 printk("\n"); \
31158 } while (0) 32006 } while (0)
@@ -31164,9 +32012,9 @@ diff -urNp linux-2.6.38.2/fs/ext3/xattr.c linux-2.6.38.2/fs/ext3/xattr.c
31164 #endif 32012 #endif
31165 32013
31166 static void ext3_xattr_cache_insert(struct buffer_head *); 32014 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 32015diff -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 32016--- 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 32017+++ 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 32018@@ -519,7 +519,7 @@ static int ext4_has_free_blocks(struct e
31171 /* Hm, nope. Are (enough) root reserved blocks available? */ 32019 /* Hm, nope. Are (enough) root reserved blocks available? */
31172 if (sbi->s_resuid == current_fsuid() || 32020 if (sbi->s_resuid == current_fsuid() ||
@@ -31176,9 +32024,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)) 32024 if (free_blocks >= (nblocks + dirty_blocks))
31177 return 1; 32025 return 1;
31178 } 32026 }
31179diff -urNp linux-2.6.38.2/fs/ext4/ext4.h linux-2.6.38.2/fs/ext4/ext4.h 32027diff -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 32028--- 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 32029+++ 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 { 32030@@ -1166,19 +1166,19 @@ struct ext4_sb_info {
31183 unsigned long s_mb_last_start; 32031 unsigned long s_mb_last_start;
31184 32032
@@ -31209,9 +32057,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; 32057 atomic_t s_lock_busy;
31210 32058
31211 /* locality groups */ 32059 /* locality groups */
31212diff -urNp linux-2.6.38.2/fs/ext4/mballoc.c linux-2.6.38.2/fs/ext4/mballoc.c 32060diff -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 32061--- 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 32062+++ 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 32063@@ -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); 32064 BUG_ON(ac->ac_b_ex.fe_len != ac->ac_g_ex.fe_len);
31217 32065
@@ -31325,9 +32173,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); 32173 trace_ext4_mballoc_discard(sb, NULL, group, bit, pa->pa_len);
31326 32174
31327 return 0; 32175 return 0;
31328diff -urNp linux-2.6.38.2/fs/ext4/namei.c linux-2.6.38.2/fs/ext4/namei.c 32176diff -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 32177--- 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 32178+++ 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 32179@@ -1161,7 +1161,7 @@ static struct ext4_dir_entry_2 *do_split
31332 char *data1 = (*bh)->b_data, *data2; 32180 char *data1 = (*bh)->b_data, *data2;
31333 unsigned split, move, size; 32181 unsigned split, move, size;
@@ -31337,9 +32185,9 @@ diff -urNp linux-2.6.38.2/fs/ext4/namei.c linux-2.6.38.2/fs/ext4/namei.c
31337 32185
31338 bh2 = ext4_append (handle, dir, &newblock, &err); 32186 bh2 = ext4_append (handle, dir, &newblock, &err);
31339 if (!(bh2)) { 32187 if (!(bh2)) {
31340diff -urNp linux-2.6.38.2/fs/ext4/xattr.c linux-2.6.38.2/fs/ext4/xattr.c 32188diff -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 32189--- 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 32190+++ linux-2.6.38.3/fs/ext4/xattr.c 2011-04-17 15:57:32.000000000 -0400
31343@@ -82,8 +82,8 @@ 32191@@ -82,8 +82,8 @@
31344 printk("\n"); \ 32192 printk("\n"); \
31345 } while (0) 32193 } while (0)
@@ -31351,9 +32199,9 @@ diff -urNp linux-2.6.38.2/fs/ext4/xattr.c linux-2.6.38.2/fs/ext4/xattr.c
31351 #endif 32199 #endif
31352 32200
31353 static void ext4_xattr_cache_insert(struct buffer_head *); 32201 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 32202diff -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 32203--- 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 32204+++ 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 32205@@ -224,6 +224,11 @@ int __f_setown(struct file *filp, struct
31358 if (err) 32206 if (err)
31359 return err; 32207 return err;
@@ -31391,9 +32239,9 @@ diff -urNp linux-2.6.38.2/fs/fcntl.c linux-2.6.38.2/fs/fcntl.c
31391 )); 32239 ));
31392 32240
31393 fasync_cache = kmem_cache_create("fasync_cache", 32241 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 32242diff -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 32243--- 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 32244+++ 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 32245@@ -58,10 +58,10 @@ static int fifo_open(struct inode *inode
31398 */ 32246 */
31399 filp->f_op = &read_pipefifo_fops; 32247 filp->f_op = &read_pipefifo_fops;
@@ -31464,9 +32312,9 @@ diff -urNp linux-2.6.38.2/fs/fifo.c linux-2.6.38.2/fs/fifo.c
31464 free_pipe_info(inode); 32312 free_pipe_info(inode);
31465 32313
31466 err_nocleanup: 32314 err_nocleanup:
31467diff -urNp linux-2.6.38.2/fs/file.c linux-2.6.38.2/fs/file.c 32315diff -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 32316--- 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 32317+++ linux-2.6.38.3/fs/file.c 2011-04-17 15:57:32.000000000 -0400
31470@@ -14,6 +14,7 @@ 32318@@ -14,6 +14,7 @@
31471 #include <linux/slab.h> 32319 #include <linux/slab.h>
31472 #include <linux/vmalloc.h> 32320 #include <linux/vmalloc.h>
@@ -31483,9 +32331,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)) 32331 if (nr >= rlimit(RLIMIT_NOFILE))
31484 return -EMFILE; 32332 return -EMFILE;
31485 32333
31486diff -urNp linux-2.6.38.2/fs/fs_struct.c linux-2.6.38.2/fs/fs_struct.c 32334diff -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 32335--- 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 32336+++ linux-2.6.38.3/fs/filesystems.c 2011-04-17 15:57:32.000000000 -0400
32337@@ -275,7 +275,12 @@ struct file_system_type *get_fs_type(con
32338 int len = dot ? dot - name : strlen(name);
32339
32340 fs = __get_fs_type(name, len);
32341+
32342+#ifdef CONFIG_GRKERNSEC_MODHARDEN
32343+ if (!fs && (___request_module(true, "grsec_modharden_fs", "%.*s", len, name) == 0))
32344+#else
32345 if (!fs && (request_module("%.*s", len, name) == 0))
32346+#endif
32347 fs = __get_fs_type(name, len);
32348
32349 if (dot && fs && !(fs->fs_flags & FS_HAS_SUBTYPE)) {
32350diff -urNp linux-2.6.38.3/fs/fs_struct.c linux-2.6.38.3/fs/fs_struct.c
32351--- linux-2.6.38.3/fs/fs_struct.c 2011-03-14 21:20:32.000000000 -0400
32352+++ linux-2.6.38.3/fs/fs_struct.c 2011-04-17 15:57:32.000000000 -0400
31489@@ -4,6 +4,7 @@ 32353@@ -4,6 +4,7 @@
31490 #include <linux/path.h> 32354 #include <linux/path.h>
31491 #include <linux/slab.h> 32355 #include <linux/slab.h>
@@ -31575,9 +32439,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); 32439 spin_unlock(&fs->lock);
31576 32440
31577 task_unlock(current); 32441 task_unlock(current);
31578diff -urNp linux-2.6.38.2/fs/fuse/control.c linux-2.6.38.2/fs/fuse/control.c 32442diff -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 32443--- 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 32444+++ 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 32445@@ -298,7 +298,7 @@ void fuse_ctl_remove_conn(struct fuse_co
31582 32446
31583 static int fuse_ctl_fill_super(struct super_block *sb, void *data, int silent) 32447 static int fuse_ctl_fill_super(struct super_block *sb, void *data, int silent)
@@ -31587,9 +32451,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; 32451 struct fuse_conn *fc;
31588 int err; 32452 int err;
31589 32453
31590diff -urNp linux-2.6.38.2/fs/fuse/cuse.c linux-2.6.38.2/fs/fuse/cuse.c 32454diff -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 32455--- 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 32456+++ 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 32457@@ -530,8 +530,18 @@ static int cuse_channel_release(struct i
31594 return rc; 32458 return rc;
31595 } 32459 }
@@ -31624,9 +32488,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"); 32488 cuse_class = class_create(THIS_MODULE, "cuse");
31625 if (IS_ERR(cuse_class)) 32489 if (IS_ERR(cuse_class))
31626 return PTR_ERR(cuse_class); 32490 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 32491diff -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 32492--- 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 32493+++ 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 32494@@ -1183,7 +1183,7 @@ static ssize_t fuse_dev_do_read(struct f
31631 return err; 32495 return err;
31632 } 32496 }
@@ -31708,9 +32572,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 = { 32572 const struct file_operations fuse_dev_operations = {
31709 .owner = THIS_MODULE, 32573 .owner = THIS_MODULE,
31710 .llseek = no_llseek, 32574 .llseek = no_llseek,
31711diff -urNp linux-2.6.38.2/fs/fuse/dir.c linux-2.6.38.2/fs/fuse/dir.c 32575diff -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 32576--- 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 32577+++ 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 32578@@ -1133,7 +1133,7 @@ static char *read_link(struct dentry *de
31715 return link; 32579 return link;
31716 } 32580 }
@@ -31720,9 +32584,9 @@ diff -urNp linux-2.6.38.2/fs/fuse/dir.c linux-2.6.38.2/fs/fuse/dir.c
31720 { 32584 {
31721 if (!IS_ERR(link)) 32585 if (!IS_ERR(link))
31722 free_page((unsigned long) link); 32586 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 32587diff -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 32588--- 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 32589+++ 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 32590@@ -541,6 +541,16 @@ extern const struct file_operations fuse
31727 32591
31728 extern const struct dentry_operations fuse_dentry_operations; 32592 extern const struct dentry_operations fuse_dentry_operations;
@@ -31740,9 +32604,9 @@ diff -urNp linux-2.6.38.2/fs/fuse/fuse_i.h linux-2.6.38.2/fs/fuse/fuse_i.h
31740 /** 32604 /**
31741 * Inode to nodeid comparison. 32605 * Inode to nodeid comparison.
31742 */ 32606 */
31743diff -urNp linux-2.6.38.2/fs/hfs/inode.c linux-2.6.38.2/fs/hfs/inode.c 32607diff -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 32608--- 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 32609+++ 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, 32610@@ -447,7 +447,7 @@ int hfs_write_inode(struct inode *inode,
31747 32611
31748 if (S_ISDIR(main_inode->i_mode)) { 32612 if (S_ISDIR(main_inode->i_mode)) {
@@ -31761,9 +32625,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, 32625 hfs_bnode_read(fd.bnode, &rec, fd.entryoffset,
31762 sizeof(struct hfs_cat_file)); 32626 sizeof(struct hfs_cat_file));
31763 if (rec.type != HFS_CDR_FIL || 32627 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 32628diff -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 32629--- 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 32630+++ 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 32631@@ -498,7 +498,7 @@ int hfsplus_cat_read_inode(struct inode
31768 struct hfsplus_cat_folder *folder = &entry.folder; 32632 struct hfsplus_cat_folder *folder = &entry.folder;
31769 32633
@@ -31800,9 +32664,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, 32664 hfs_bnode_read(fd.bnode, &entry, fd.entryoffset,
31801 sizeof(struct hfsplus_cat_file)); 32665 sizeof(struct hfsplus_cat_file));
31802 hfsplus_inode_write_fork(inode, &file->data_fork); 32666 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 32667diff -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 32668--- 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 32669+++ 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 32670@@ -915,7 +915,7 @@ static struct file_system_type hugetlbfs
31807 .kill_sb = kill_litter_super, 32671 .kill_sb = kill_litter_super,
31808 }; 32672 };
@@ -31812,9 +32676,9 @@ diff -urNp linux-2.6.38.2/fs/hugetlbfs/inode.c linux-2.6.38.2/fs/hugetlbfs/inode
31812 32676
31813 static int can_do_hugetlb_shm(void) 32677 static int can_do_hugetlb_shm(void)
31814 { 32678 {
31815diff -urNp linux-2.6.38.2/fs/jffs2/debug.h linux-2.6.38.2/fs/jffs2/debug.h 32679diff -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 32680--- 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 32681+++ linux-2.6.38.3/fs/jffs2/debug.h 2011-04-17 15:57:32.000000000 -0400
31818@@ -53,13 +53,13 @@ 32682@@ -53,13 +53,13 @@
31819 #if CONFIG_JFFS2_FS_DEBUG > 0 32683 #if CONFIG_JFFS2_FS_DEBUG > 0
31820 #define D1(x) x 32684 #define D1(x) x
@@ -31916,9 +32780,9 @@ diff -urNp linux-2.6.38.2/fs/jffs2/debug.h linux-2.6.38.2/fs/jffs2/debug.h
31916 #endif 32780 #endif
31917 32781
31918 /* "Sanity" checks */ 32782 /* "Sanity" checks */
31919diff -urNp linux-2.6.38.2/fs/jffs2/erase.c linux-2.6.38.2/fs/jffs2/erase.c 32783diff -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 32784--- 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 32785+++ 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 32786@@ -439,7 +439,8 @@ static void jffs2_mark_erased_block(stru
31923 struct jffs2_unknown_node marker = { 32787 struct jffs2_unknown_node marker = {
31924 .magic = cpu_to_je16(JFFS2_MAGIC_BITMASK), 32788 .magic = cpu_to_je16(JFFS2_MAGIC_BITMASK),
@@ -31929,9 +32793,9 @@ diff -urNp linux-2.6.38.2/fs/jffs2/erase.c linux-2.6.38.2/fs/jffs2/erase.c
31929 }; 32793 };
31930 32794
31931 jffs2_prealloc_raw_node_refs(c, jeb, 1); 32795 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 32796diff -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 32797--- 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 32798+++ 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_ 32799@@ -194,18 +194,18 @@ int jffs2_sum_scan_sumnode(struct jffs2_
31936 32800
31937 #define jffs2_sum_active() (0) 32801 #define jffs2_sum_active() (0)
@@ -31960,9 +32824,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) 32824 #define jffs2_sum_scan_sumnode(a,b,c,d,e) (0)
31961 32825
31962 #endif /* CONFIG_JFFS2_SUMMARY */ 32826 #endif /* CONFIG_JFFS2_SUMMARY */
31963diff -urNp linux-2.6.38.2/fs/jffs2/wbuf.c linux-2.6.38.2/fs/jffs2/wbuf.c 32827diff -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 32828--- 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 32829+++ 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 32830@@ -1012,7 +1012,8 @@ static const struct jffs2_unknown_node o
31967 { 32831 {
31968 .magic = constant_cpu_to_je16(JFFS2_MAGIC_BITMASK), 32832 .magic = constant_cpu_to_je16(JFFS2_MAGIC_BITMASK),
@@ -31973,9 +32837,9 @@ diff -urNp linux-2.6.38.2/fs/jffs2/wbuf.c linux-2.6.38.2/fs/jffs2/wbuf.c
31973 }; 32837 };
31974 32838
31975 /* 32839 /*
31976diff -urNp linux-2.6.38.2/fs/Kconfig.binfmt linux-2.6.38.2/fs/Kconfig.binfmt 32840diff -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 32841--- 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 32842+++ linux-2.6.38.3/fs/Kconfig.binfmt 2011-04-17 15:57:32.000000000 -0400
31979@@ -86,7 +86,7 @@ config HAVE_AOUT 32843@@ -86,7 +86,7 @@ config HAVE_AOUT
31980 32844
31981 config BINFMT_AOUT 32845 config BINFMT_AOUT
@@ -31985,9 +32849,35 @@ diff -urNp linux-2.6.38.2/fs/Kconfig.binfmt linux-2.6.38.2/fs/Kconfig.binfmt
31985 ---help--- 32849 ---help---
31986 A.out (Assembler.OUTput) is a set of formats for libraries and 32850 A.out (Assembler.OUTput) is a set of formats for libraries and
31987 executables used in the earliest versions of UNIX. Linux used 32851 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 32852diff -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 32853--- 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 32854+++ linux-2.6.38.3/fs/libfs.c 2011-04-17 15:57:32.000000000 -0400
32855@@ -138,6 +138,8 @@ int dcache_readdir(struct file * filp, v
32856 struct dentry *dentry = filp->f_path.dentry;
32857 struct dentry *cursor = filp->private_data;
32858 struct list_head *p, *q = &cursor->d_u.d_child;
32859+ char d_name[DNAME_INLINE_LEN];
32860+ const char *name;
32861 ino_t ino;
32862 int i = filp->f_pos;
32863
32864@@ -172,7 +174,12 @@ int dcache_readdir(struct file * filp, v
32865
32866 spin_unlock(&next->d_lock);
32867 spin_unlock(&dentry->d_lock);
32868- if (filldir(dirent, next->d_name.name,
32869+ if (next->d_name.len < DNAME_INLINE_LEN) {
32870+ memcpy(d_name, next->d_name.name, next->d_name.len);
32871+ name = d_name;
32872+ } else
32873+ name = next->d_name.name;
32874+ if (filldir(dirent, name,
32875 next->d_name.len, filp->f_pos,
32876 next->d_inode->i_ino,
32877 dt_type(next->d_inode)) < 0)
32878diff -urNp linux-2.6.38.3/fs/lockd/svc.c linux-2.6.38.3/fs/lockd/svc.c
32879--- linux-2.6.38.3/fs/lockd/svc.c 2011-03-14 21:20:32.000000000 -0400
32880+++ linux-2.6.38.3/fs/lockd/svc.c 2011-04-17 15:57:32.000000000 -0400
31991@@ -41,7 +41,7 @@ 32881@@ -41,7 +41,7 @@
31992 32882
31993 static struct svc_program nlmsvc_program; 32883 static struct svc_program nlmsvc_program;
@@ -31997,9 +32887,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); 32887 EXPORT_SYMBOL_GPL(nlmsvc_ops);
31998 32888
31999 static DEFINE_MUTEX(nlmsvc_mutex); 32889 static DEFINE_MUTEX(nlmsvc_mutex);
32000diff -urNp linux-2.6.38.2/fs/locks.c linux-2.6.38.2/fs/locks.c 32890diff -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 32891--- 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 32892+++ 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 32893@@ -2044,16 +2044,16 @@ void locks_remove_flock(struct file *fil
32004 return; 32894 return;
32005 32895
@@ -32021,9 +32911,9 @@ diff -urNp linux-2.6.38.2/fs/locks.c linux-2.6.38.2/fs/locks.c
32021 } 32911 }
32022 32912
32023 lock_flocks(); 32913 lock_flocks();
32024diff -urNp linux-2.6.38.2/fs/namei.c linux-2.6.38.2/fs/namei.c 32914diff -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 32915--- 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 32916+++ 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 32917@@ -226,14 +226,6 @@ int generic_permission(struct inode *ino
32028 return ret; 32918 return ret;
32029 32919
@@ -32482,9 +33372,34 @@ diff -urNp linux-2.6.38.2/fs/namei.c linux-2.6.38.2/fs/namei.c
32482 exit6: 33372 exit6:
32483 mnt_drop_write(oldnd.path.mnt); 33373 mnt_drop_write(oldnd.path.mnt);
32484 exit5: 33374 exit5:
32485diff -urNp linux-2.6.38.2/fs/namespace.c linux-2.6.38.2/fs/namespace.c 33375@@ -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 33376
32487+++ linux-2.6.38.2/fs/namespace.c 2011-03-28 17:42:53.000000000 -0400 33377 int vfs_readlink(struct dentry *dentry, char __user *buffer, int buflen, const char *link)
33378 {
33379+ char tmpbuf[64];
33380+ const char *newlink;
33381 int len;
33382
33383 len = PTR_ERR(link);
33384@@ -3446,7 +3609,14 @@ int vfs_readlink(struct dentry *dentry,
33385 len = strlen(link);
33386 if (len > (unsigned) buflen)
33387 len = buflen;
33388- if (copy_to_user(buffer, link, len))
33389+
33390+ if (len < sizeof(tmpbuf)) {
33391+ memcpy(tmpbuf, link, len);
33392+ newlink = tmpbuf;
33393+ } else
33394+ newlink = link;
33395+
33396+ if (copy_to_user(buffer, newlink, len))
33397 len = -EFAULT;
33398 out:
33399 return len;
33400diff -urNp linux-2.6.38.3/fs/namespace.c linux-2.6.38.3/fs/namespace.c
33401--- linux-2.6.38.3/fs/namespace.c 2011-04-18 17:27:16.000000000 -0400
33402+++ 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 33403@@ -1285,6 +1285,9 @@ static int do_umount(struct vfsmount *mn
32489 if (!(sb->s_flags & MS_RDONLY)) 33404 if (!(sb->s_flags & MS_RDONLY))
32490 retval = do_remount_sb(sb, MS_RDONLY, NULL, 0); 33405 retval = do_remount_sb(sb, MS_RDONLY, NULL, 0);
@@ -32545,9 +33460,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); 33460 get_fs_root(current->fs, &root);
32546 down_write(&namespace_sem); 33461 down_write(&namespace_sem);
32547 mutex_lock(&old.dentry->d_inode->i_mutex); 33462 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 33463diff -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 33464--- 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 33465+++ 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 33466@@ -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); 33467 return nfs_size_to_loff_t(fattr->size) > i_size_read(inode);
32553 } 33468 }
@@ -32568,9 +33483,9 @@ diff -urNp linux-2.6.38.2/fs/nfs/inode.c linux-2.6.38.2/fs/nfs/inode.c
32568 } 33483 }
32569 33484
32570 void nfs_fattr_init(struct nfs_fattr *fattr) 33485 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 33486diff -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 33487--- 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 33488+++ 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 33489@@ -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) 33490 static int nfs4_do_open_reclaim(struct nfs_open_context *ctx, struct nfs4_state *state)
32576 { 33491 {
@@ -32841,10 +33756,10 @@ diff -urNp linux-2.6.38.2/fs/nfs/nfs4proc.c linux-2.6.38.2/fs/nfs/nfs4proc.c
32841 int err; 33756 int err;
32842 33757
32843 err = nfs4_set_lock_state(state, fl); 33758 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 33759diff -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 33760--- 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 33761+++ 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) 33762@@ -60,7 +60,7 @@ nlm_fclose(struct file *filp)
32848 fput(filp); 33763 fput(filp);
32849 } 33764 }
32850 33765
@@ -32853,9 +33768,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 */ 33768 .fopen = nlm_fopen, /* open file for locking */
32854 .fclose = nlm_fclose, /* close file */ 33769 .fclose = nlm_fclose, /* close file */
32855 }; 33770 };
32856diff -urNp linux-2.6.38.2/fs/nfsd/nfsctl.c linux-2.6.38.2/fs/nfsd/nfsctl.c 33771diff -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 33772--- 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 33773+++ 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 33774@@ -180,7 +180,7 @@ static int export_features_open(struct i
32860 return single_open(file, export_features_show, NULL); 33775 return single_open(file, export_features_show, NULL);
32861 } 33776 }
@@ -32865,9 +33780,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, 33780 .open = export_features_open,
32866 .read = seq_read, 33781 .read = seq_read,
32867 .llseek = seq_lseek, 33782 .llseek = seq_lseek,
32868diff -urNp linux-2.6.38.2/fs/nfsd/vfs.c linux-2.6.38.2/fs/nfsd/vfs.c 33783diff -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 33784--- 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 33785+++ 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 33786@@ -898,7 +898,7 @@ nfsd_vfs_read(struct svc_rqst *rqstp, st
32872 } else { 33787 } else {
32873 oldfs = get_fs(); 33788 oldfs = get_fs();
@@ -32895,9 +33810,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); 33810 set_fs(oldfs);
32896 33811
32897 if (host_err < 0) 33812 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 33813diff -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 33814--- 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 33815+++ 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 33816@@ -41,7 +41,7 @@ static const struct utf8_table utf8_tabl
32902 {0xF8, 0xF0, 3*6, 0x1FFFFF, 0x10000, /* 4 byte sequence */}, 33817 {0xF8, 0xF0, 3*6, 0x1FFFFF, 0x10000, /* 4 byte sequence */},
32903 {0xFC, 0xF8, 4*6, 0x3FFFFFF, 0x200000, /* 5 byte sequence */}, 33818 {0xFC, 0xF8, 4*6, 0x3FFFFFF, 0x200000, /* 5 byte sequence */},
@@ -32907,9 +33822,21 @@ diff -urNp linux-2.6.38.2/fs/nls/nls_base.c linux-2.6.38.2/fs/nls/nls_base.c
32907 }; 33822 };
32908 33823
32909 #define UNICODE_MAX 0x0010ffff 33824 #define UNICODE_MAX 0x0010ffff
32910diff -urNp linux-2.6.38.2/fs/ntfs/dir.c linux-2.6.38.2/fs/ntfs/dir.c 33825diff -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 33826--- 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 33827+++ linux-2.6.38.3/fs/notify/dnotify/dnotify.c 2011-04-17 15:57:32.000000000 -0400
33828@@ -151,7 +151,7 @@ static void dnotify_free_mark(struct fsn
33829 kmem_cache_free(dnotify_mark_cache, dn_mark);
33830 }
33831
33832-static struct fsnotify_ops dnotify_fsnotify_ops = {
33833+static const struct fsnotify_ops dnotify_fsnotify_ops = {
33834 .handle_event = dnotify_handle_event,
33835 .should_send_event = dnotify_should_send_event,
33836 .free_group_priv = NULL,
33837diff -urNp linux-2.6.38.3/fs/ntfs/dir.c linux-2.6.38.3/fs/ntfs/dir.c
33838--- linux-2.6.38.3/fs/ntfs/dir.c 2011-03-14 21:20:32.000000000 -0400
33839+++ 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: 33840@@ -1329,7 +1329,7 @@ find_next_index_buffer:
32914 ia = (INDEX_ALLOCATION*)(kaddr + (ia_pos & ~PAGE_CACHE_MASK & 33841 ia = (INDEX_ALLOCATION*)(kaddr + (ia_pos & ~PAGE_CACHE_MASK &
32915 ~(s64)(ndir->itype.index.block_size - 1))); 33842 ~(s64)(ndir->itype.index.block_size - 1)));
@@ -32919,9 +33846,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 " 33846 ntfs_error(sb, "Out of bounds check failed. Corrupt directory "
32920 "inode 0x%lx or driver bug.", vdir->i_ino); 33847 "inode 0x%lx or driver bug.", vdir->i_ino);
32921 goto err_out; 33848 goto err_out;
32922diff -urNp linux-2.6.38.2/fs/ntfs/file.c linux-2.6.38.2/fs/ntfs/file.c 33849diff -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 33850--- 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 33851+++ 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_ 33852@@ -2222,6 +2222,6 @@ const struct inode_operations ntfs_file_
32926 #endif /* NTFS_RW */ 33853 #endif /* NTFS_RW */
32927 }; 33854 };
@@ -32931,9 +33858,9 @@ diff -urNp linux-2.6.38.2/fs/ntfs/file.c linux-2.6.38.2/fs/ntfs/file.c
32931 33858
32932-const struct inode_operations ntfs_empty_inode_ops = {}; 33859-const struct inode_operations ntfs_empty_inode_ops = {};
32933+const struct inode_operations ntfs_empty_inode_ops __read_only; 33860+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 33861diff -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 33862--- 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 33863+++ 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 33864@@ -1307,7 +1307,7 @@ static int ocfs2_local_alloc_slide_windo
32938 goto bail; 33865 goto bail;
32939 } 33866 }
@@ -32943,9 +33870,9 @@ diff -urNp linux-2.6.38.2/fs/ocfs2/localalloc.c linux-2.6.38.2/fs/ocfs2/localall
32943 33870
32944 bail: 33871 bail:
32945 if (handle) 33872 if (handle)
32946diff -urNp linux-2.6.38.2/fs/ocfs2/ocfs2.h linux-2.6.38.2/fs/ocfs2/ocfs2.h 33873diff -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 33874--- 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 33875+++ 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 33876@@ -230,11 +230,11 @@ enum ocfs2_vol_state
32950 33877
32951 struct ocfs2_alloc_stats 33878 struct ocfs2_alloc_stats
@@ -32963,9 +33890,9 @@ diff -urNp linux-2.6.38.2/fs/ocfs2/ocfs2.h linux-2.6.38.2/fs/ocfs2/ocfs2.h
32963 }; 33890 };
32964 33891
32965 enum ocfs2_local_alloc_state 33892 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 33893diff -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 33894--- 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 33895+++ 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 33896@@ -877,7 +877,7 @@ static int ocfs2_reserve_suballoc_bits(s
32970 mlog_errno(status); 33897 mlog_errno(status);
32971 goto bail; 33898 goto bail;
@@ -33011,9 +33938,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; 33938 *num_clusters = res.sr_bits;
33012 } 33939 }
33013 } 33940 }
33014diff -urNp linux-2.6.38.2/fs/ocfs2/super.c linux-2.6.38.2/fs/ocfs2/super.c 33941diff -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 33942--- 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 33943+++ 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 33944@@ -297,11 +297,11 @@ static int ocfs2_osb_dump(struct ocfs2_s
33018 "%10s => GlobalAllocs: %d LocalAllocs: %d " 33945 "%10s => GlobalAllocs: %d LocalAllocs: %d "
33019 "SubAllocs: %d LAWinMoves: %d SAExtends: %d\n", 33946 "SubAllocs: %d LAWinMoves: %d SAExtends: %d\n",
@@ -33048,9 +33975,9 @@ diff -urNp linux-2.6.38.2/fs/ocfs2/super.c linux-2.6.38.2/fs/ocfs2/super.c
33048 33975
33049 /* Copy the blockcheck stats from the superblock probe */ 33976 /* Copy the blockcheck stats from the superblock probe */
33050 osb->osb_ecc_stats = *stats; 33977 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 33978diff -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 33979--- 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 33980+++ linux-2.6.38.3/fs/ocfs2/symlink.c 2011-04-17 15:57:32.000000000 -0400
33054@@ -148,7 +148,7 @@ bail: 33981@@ -148,7 +148,7 @@ bail:
33055 33982
33056 static void ocfs2_fast_put_link(struct dentry *dentry, struct nameidata *nd, void *cookie) 33983 static void ocfs2_fast_put_link(struct dentry *dentry, struct nameidata *nd, void *cookie)
@@ -33060,9 +33987,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)) 33987 if (!IS_ERR(link))
33061 kfree(link); 33988 kfree(link);
33062 } 33989 }
33063diff -urNp linux-2.6.38.2/fs/open.c linux-2.6.38.2/fs/open.c 33990diff -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 33991--- 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 33992+++ 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 _ 33993@@ -112,6 +112,10 @@ static long do_sys_truncate(const char _
33067 error = locks_verify_truncate(inode, NULL, length); 33994 error = locks_verify_truncate(inode, NULL, length);
33068 if (!error) 33995 if (!error)
@@ -33200,10 +34127,33 @@ diff -urNp linux-2.6.38.2/fs/open.c linux-2.6.38.2/fs/open.c
33200 if (IS_ERR(f)) { 34127 if (IS_ERR(f)) {
33201 put_unused_fd(fd); 34128 put_unused_fd(fd);
33202 fd = PTR_ERR(f); 34129 fd = PTR_ERR(f);
33203diff -urNp linux-2.6.38.2/fs/partitions/ldm.c linux-2.6.38.2/fs/partitions/ldm.c 34130diff -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 34131--- 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 34132+++ 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 34133@@ -1299,6 +1299,11 @@ static bool ldm_frag_add (const u8 *data
34134
34135 BUG_ON (!data || !frags);
34136
34137+ if (size < 2 * VBLK_SIZE_HEAD) {
34138+ ldm_error("Value of size is to small.");
34139+ return false;
34140+ }
34141+
34142 group = get_unaligned_be32(data + 0x08);
34143 rec = get_unaligned_be16(data + 0x0C);
34144 num = get_unaligned_be16(data + 0x0E);
34145@@ -1307,13 +1312,18 @@ static bool ldm_frag_add (const u8 *data
34146 return false;
34147 }
34148
34149+ if (rec >= num) {
34150+ ldm_error("REC value (%d) exceeds NUM value (%d)", rec, num);
34151+ return false;
34152+ }
34153+
34154 list_for_each (item, frags) {
34155 f = list_entry (item, struct frag, list);
34156 if (f->group == group)
33207 goto found; 34157 goto found;
33208 } 34158 }
33209 34159
@@ -33212,9 +34162,23 @@ diff -urNp linux-2.6.38.2/fs/partitions/ldm.c linux-2.6.38.2/fs/partitions/ldm.c
33212 if (!f) { 34162 if (!f) {
33213 ldm_crit ("Out of memory."); 34163 ldm_crit ("Out of memory.");
33214 return false; 34164 return false;
33215diff -urNp linux-2.6.38.2/fs/pipe.c linux-2.6.38.2/fs/pipe.c 34165@@ -1334,10 +1344,9 @@ found:
33216--- linux-2.6.38.2/fs/pipe.c 2011-03-14 21:20:32.000000000 -0400 34166
33217+++ linux-2.6.38.2/fs/pipe.c 2011-03-21 18:31:35.000000000 -0400 34167 f->map |= (1 << rec);
34168
34169- if (num > 0) {
34170- data += VBLK_SIZE_HEAD;
34171- size -= VBLK_SIZE_HEAD;
34172- }
34173+ data += VBLK_SIZE_HEAD;
34174+ size -= VBLK_SIZE_HEAD;
34175+
34176 memcpy (f->data+rec*(size-VBLK_SIZE_HEAD)+VBLK_SIZE_HEAD, data, size);
34177
34178 return true;
34179diff -urNp linux-2.6.38.3/fs/pipe.c linux-2.6.38.3/fs/pipe.c
34180--- linux-2.6.38.3/fs/pipe.c 2011-03-14 21:20:32.000000000 -0400
34181+++ linux-2.6.38.3/fs/pipe.c 2011-04-17 15:57:32.000000000 -0400
33218@@ -420,9 +420,9 @@ redo: 34182@@ -420,9 +420,9 @@ redo:
33219 } 34183 }
33220 if (bufs) /* More to do? */ 34184 if (bufs) /* More to do? */
@@ -33338,9 +34302,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; 34302 inode->i_fop = &rdwr_pipefifo_fops;
33339 34303
33340 /* 34304 /*
33341diff -urNp linux-2.6.38.2/fs/proc/array.c linux-2.6.38.2/fs/proc/array.c 34305diff -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 34306--- 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 34307+++ linux-2.6.38.3/fs/proc/array.c 2011-04-20 18:14:54.000000000 -0400
33344@@ -60,6 +60,7 @@ 34308@@ -60,6 +60,7 @@
33345 #include <linux/tty.h> 34309 #include <linux/tty.h>
33346 #include <linux/string.h> 34310 #include <linux/string.h>
@@ -33432,7 +34396,7 @@ diff -urNp linux-2.6.38.2/fs/proc/array.c linux-2.6.38.2/fs/proc/array.c
33432 esp, 34396 esp,
33433 eip, 34397 eip,
33434 /* The signal information here is obsolete. 34398 /* The signal information here is obsolete.
33435@@ -544,3 +594,10 @@ int proc_pid_statm(struct seq_file *m, s 34399@@ -544,3 +594,18 @@ int proc_pid_statm(struct seq_file *m, s
33436 34400
33437 return 0; 34401 return 0;
33438 } 34402 }
@@ -33440,12 +34404,20 @@ diff -urNp linux-2.6.38.2/fs/proc/array.c linux-2.6.38.2/fs/proc/array.c
33440+#ifdef CONFIG_GRKERNSEC_PROC_IPADDR 34404+#ifdef CONFIG_GRKERNSEC_PROC_IPADDR
33441+int proc_pid_ipaddr(struct task_struct *task, char *buffer) 34405+int proc_pid_ipaddr(struct task_struct *task, char *buffer)
33442+{ 34406+{
33443+ return sprintf(buffer, "%pI4\n", &task->signal->curr_ip); 34407+ u32 curr_ip = 0;
34408+ unsigned long flags;
34409+
34410+ if (lock_task_sighand(task, &flags)) {
34411+ curr_ip = task->signal->curr_ip;
34412+ unlock_task_sighand(task, &flags);
34413+ }
34414+
34415+ return sprintf(buffer, "%pI4\n", &curr_ip);
33444+} 34416+}
33445+#endif 34417+#endif
33446diff -urNp linux-2.6.38.2/fs/proc/base.c linux-2.6.38.2/fs/proc/base.c 34418diff -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 34419--- 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 34420+++ 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 { 34421@@ -104,6 +104,22 @@ struct pid_entry {
33450 union proc_op op; 34422 union proc_op op;
33451 }; 34423 };
@@ -33811,10 +34783,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); 34783 put_task_struct(task);
33812 out: 34784 out:
33813 return result; 34785 return result;
33814@@ -3068,6 +3191,11 @@ int proc_pid_readdir(struct file * filp, 34786@@ -3066,11 +3189,21 @@ static int proc_pid_fill_cache(struct fi
33815 { 34787 /* for the /proc/ directory itself, after non-process stuff has been done */
33816 unsigned int nr = filp->f_pos - FIRST_PROCESS_ENTRY; 34788 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); 34789 {
34790- unsigned int nr = filp->f_pos - FIRST_PROCESS_ENTRY;
34791- struct task_struct *reaper = get_proc_task(filp->f_path.dentry->d_inode);
34792+ unsigned int nr;
34793+ struct task_struct *reaper;
33818+#if defined(CONFIG_GRKERNSEC_PROC_USER) || defined(CONFIG_GRKERNSEC_PROC_USERGROUP) 34794+#if defined(CONFIG_GRKERNSEC_PROC_USER) || defined(CONFIG_GRKERNSEC_PROC_USERGROUP)
33819+ const struct cred *tmpcred = current_cred(); 34795+ const struct cred *tmpcred = current_cred();
33820+ const struct cred *itercred; 34796+ const struct cred *itercred;
@@ -33823,7 +34799,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; 34799 struct tgid_iter iter;
33824 struct pid_namespace *ns; 34800 struct pid_namespace *ns;
33825 34801
33826@@ -3086,8 +3214,27 @@ int proc_pid_readdir(struct file * filp, 34802+ if (filp->f_pos >= PID_MAX_LIMIT + TGID_OFFSET)
34803+ goto out_no_task;
34804+ nr = filp->f_pos - FIRST_PROCESS_ENTRY;
34805+
34806+ reaper = get_proc_task(filp->f_path.dentry->d_inode);
34807 if (!reaper)
34808 goto out_no_task;
34809
34810@@ -3086,8 +3219,27 @@ int proc_pid_readdir(struct file * filp,
33827 for (iter = next_tgid(ns, iter); 34811 for (iter = next_tgid(ns, iter);
33828 iter.task; 34812 iter.task;
33829 iter.tgid += 1, iter = next_tgid(ns, iter)) { 34813 iter.tgid += 1, iter = next_tgid(ns, iter)) {
@@ -33852,7 +34836,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); 34836 put_task_struct(iter.task);
33853 goto out; 34837 goto out;
33854 } 34838 }
33855@@ -3114,7 +3261,7 @@ static const struct pid_entry tid_base_s 34839@@ -3114,7 +3266,7 @@ static const struct pid_entry tid_base_s
33856 REG("sched", S_IRUGO|S_IWUSR, proc_pid_sched_operations), 34840 REG("sched", S_IRUGO|S_IWUSR, proc_pid_sched_operations),
33857 #endif 34841 #endif
33858 REG("comm", S_IRUGO|S_IWUSR, proc_pid_set_comm_operations), 34842 REG("comm", S_IRUGO|S_IWUSR, proc_pid_set_comm_operations),
@@ -33861,7 +34845,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), 34845 INF("syscall", S_IRUSR, proc_pid_syscall),
33862 #endif 34846 #endif
33863 INF("cmdline", S_IRUGO, proc_pid_cmdline), 34847 INF("cmdline", S_IRUGO, proc_pid_cmdline),
33864@@ -3138,10 +3285,10 @@ static const struct pid_entry tid_base_s 34848@@ -3138,10 +3290,10 @@ static const struct pid_entry tid_base_s
33865 #ifdef CONFIG_SECURITY 34849 #ifdef CONFIG_SECURITY
33866 DIR("attr", S_IRUGO|S_IXUGO, proc_attr_dir_inode_operations, proc_attr_dir_operations), 34850 DIR("attr", S_IRUGO|S_IXUGO, proc_attr_dir_inode_operations, proc_attr_dir_operations),
33867 #endif 34851 #endif
@@ -33874,9 +34858,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), 34858 ONE("stack", S_IRUSR, proc_pid_stack),
33875 #endif 34859 #endif
33876 #ifdef CONFIG_SCHEDSTATS 34860 #ifdef CONFIG_SCHEDSTATS
33877diff -urNp linux-2.6.38.2/fs/proc/cmdline.c linux-2.6.38.2/fs/proc/cmdline.c 34861diff -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 34862--- 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 34863+++ 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 34864@@ -23,7 +23,11 @@ static const struct file_operations cmdl
33881 34865
33882 static int __init proc_cmdline_init(void) 34866 static int __init proc_cmdline_init(void)
@@ -33889,9 +34873,9 @@ diff -urNp linux-2.6.38.2/fs/proc/cmdline.c linux-2.6.38.2/fs/proc/cmdline.c
33889 return 0; 34873 return 0;
33890 } 34874 }
33891 module_init(proc_cmdline_init); 34875 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 34876diff -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 34877--- 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 34878+++ 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 34879@@ -64,7 +64,11 @@ static const struct file_operations proc
33896 34880
33897 static int __init proc_devices_init(void) 34881 static int __init proc_devices_init(void)
@@ -33904,9 +34888,9 @@ diff -urNp linux-2.6.38.2/fs/proc/devices.c linux-2.6.38.2/fs/proc/devices.c
33904 return 0; 34888 return 0;
33905 } 34889 }
33906 module_init(proc_devices_init); 34890 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 34891diff -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 34892--- 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 34893+++ 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 34894@@ -435,7 +435,11 @@ struct inode *proc_get_inode(struct supe
33911 if (de->mode) { 34895 if (de->mode) {
33912 inode->i_mode = de->mode; 34896 inode->i_mode = de->mode;
@@ -33919,9 +34903,9 @@ diff -urNp linux-2.6.38.2/fs/proc/inode.c linux-2.6.38.2/fs/proc/inode.c
33919 } 34903 }
33920 if (de->size) 34904 if (de->size)
33921 inode->i_size = de->size; 34905 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 34906diff -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 34907--- 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 34908+++ 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 34909@@ -51,6 +51,9 @@ extern int proc_pid_status(struct seq_fi
33926 struct pid *pid, struct task_struct *task); 34910 struct pid *pid, struct task_struct *task);
33927 extern int proc_pid_statm(struct seq_file *m, struct pid_namespace *ns, 34911 extern int proc_pid_statm(struct seq_file *m, struct pid_namespace *ns,
@@ -33932,9 +34916,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); 34916 extern loff_t mem_lseek(struct file *file, loff_t offset, int orig);
33933 34917
33934 extern const struct file_operations proc_maps_operations; 34918 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 34919diff -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 34920--- 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 34921+++ linux-2.6.38.3/fs/proc/Kconfig 2011-04-17 15:57:32.000000000 -0400
33938@@ -30,12 +30,12 @@ config PROC_FS 34922@@ -30,12 +30,12 @@ config PROC_FS
33939 34923
33940 config PROC_KCORE 34924 config PROC_KCORE
@@ -33962,9 +34946,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 34946 bool "Enable /proc page monitoring" if EXPERT
33963 help 34947 help
33964 Various /proc files exist to monitor process memory utilization: 34948 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 34949diff -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 34950--- 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 34951+++ 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 34952@@ -478,9 +478,10 @@ read_kcore(struct file *file, char __use
33969 * the addresses in the elf_phdr on our list. 34953 * the addresses in the elf_phdr on our list.
33970 */ 34954 */
@@ -34023,9 +35007,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)) 35007 if (!capable(CAP_SYS_RAWIO))
34024 return -EPERM; 35008 return -EPERM;
34025 if (kcore_need_update) 35009 if (kcore_need_update)
34026diff -urNp linux-2.6.38.2/fs/proc/meminfo.c linux-2.6.38.2/fs/proc/meminfo.c 35010diff -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 35011--- 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 35012+++ 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_ 35013@@ -157,7 +157,7 @@ static int meminfo_proc_show(struct seq_
34030 vmi.used >> 10, 35014 vmi.used >> 10,
34031 vmi.largest_chunk >> 10 35015 vmi.largest_chunk >> 10
@@ -34035,9 +35019,9 @@ diff -urNp linux-2.6.38.2/fs/proc/meminfo.c linux-2.6.38.2/fs/proc/meminfo.c
34035 #endif 35019 #endif
34036 #ifdef CONFIG_TRANSPARENT_HUGEPAGE 35020 #ifdef CONFIG_TRANSPARENT_HUGEPAGE
34037 ,K(global_page_state(NR_ANON_TRANSPARENT_HUGEPAGES) * 35021 ,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 35022diff -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 35023--- 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 35024+++ 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_ 35025@@ -66,7 +66,7 @@ static int nommu_region_show(struct seq_
34042 if (len < 1) 35026 if (len < 1)
34043 len = 1; 35027 len = 1;
@@ -34047,9 +35031,9 @@ diff -urNp linux-2.6.38.2/fs/proc/nommu.c linux-2.6.38.2/fs/proc/nommu.c
34047 } 35031 }
34048 35032
34049 seq_putc(m, '\n'); 35033 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 35034diff -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 35035--- 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 35036+++ 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 35037@@ -105,6 +105,17 @@ static struct net *get_proc_task_net(str
34054 struct task_struct *task; 35038 struct task_struct *task;
34055 struct nsproxy *ns; 35039 struct nsproxy *ns;
@@ -34068,9 +35052,9 @@ diff -urNp linux-2.6.38.2/fs/proc/proc_net.c linux-2.6.38.2/fs/proc/proc_net.c
34068 35052
34069 rcu_read_lock(); 35053 rcu_read_lock();
34070 task = pid_task(proc_pid(dir), PIDTYPE_PID); 35054 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 35055diff -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 35056--- 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 35057+++ linux-2.6.38.3/fs/proc/proc_sysctl.c 2011-04-17 15:57:32.000000000 -0400
34074@@ -8,6 +8,8 @@ 35058@@ -8,6 +8,8 @@
34075 #include <linux/namei.h> 35059 #include <linux/namei.h>
34076 #include "internal.h" 35060 #include "internal.h"
@@ -34110,9 +35094,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); 35094 generic_fillattr(inode, stat);
34111 if (table) 35095 if (table)
34112 stat->mode = (stat->mode & S_IFMT) | table->mode; 35096 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 35097diff -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 35098--- 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 35099+++ 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) 35100@@ -132,7 +132,15 @@ void __init proc_root_init(void)
34117 #ifdef CONFIG_PROC_DEVICETREE 35101 #ifdef CONFIG_PROC_DEVICETREE
34118 proc_device_tree_init(); 35102 proc_device_tree_init();
@@ -34129,9 +35113,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(); 35113 proc_sys_init();
34130 } 35114 }
34131 35115
34132diff -urNp linux-2.6.38.2/fs/proc/task_mmu.c linux-2.6.38.2/fs/proc/task_mmu.c 35116diff -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 35117--- 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 35118+++ 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 35119@@ -49,8 +49,13 @@ void task_mem(struct seq_file *m, struct
34136 "VmExe:\t%8lu kB\n" 35120 "VmExe:\t%8lu kB\n"
34137 "VmLib:\t%8lu kB\n" 35121 "VmLib:\t%8lu kB\n"
@@ -34163,7 +35147,17 @@ diff -urNp linux-2.6.38.2/fs/proc/task_mmu.c linux-2.6.38.2/fs/proc/task_mmu.c
34163 } 35147 }
34164 35148
34165 unsigned long task_vsize(struct mm_struct *mm) 35149 unsigned long task_vsize(struct mm_struct *mm)
34166@@ -204,6 +215,12 @@ static int do_maps_open(struct inode *in 35150@@ -180,7 +191,8 @@ static void m_stop(struct seq_file *m, v
35151 struct proc_maps_private *priv = m->private;
35152 struct vm_area_struct *vma = v;
35153
35154- vma_stop(priv, vma);
35155+ if (!IS_ERR(vma))
35156+ vma_stop(priv, vma);
35157 if (priv->task)
35158 put_task_struct(priv->task);
35159 }
35160@@ -204,6 +216,12 @@ static int do_maps_open(struct inode *in
34167 return ret; 35161 return ret;
34168 } 35162 }
34169 35163
@@ -34176,7 +35170,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) 35170 static void show_map_vma(struct seq_file *m, struct vm_area_struct *vma)
34177 { 35171 {
34178 struct mm_struct *mm = vma->vm_mm; 35172 struct mm_struct *mm = vma->vm_mm;
34179@@ -211,7 +228,6 @@ static void show_map_vma(struct seq_file 35173@@ -211,7 +229,6 @@ static void show_map_vma(struct seq_file
34180 int flags = vma->vm_flags; 35174 int flags = vma->vm_flags;
34181 unsigned long ino = 0; 35175 unsigned long ino = 0;
34182 unsigned long long pgoff = 0; 35176 unsigned long long pgoff = 0;
@@ -34184,7 +35178,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; 35178 dev_t dev = 0;
34185 int len; 35179 int len;
34186 35180
34187@@ -222,20 +238,23 @@ static void show_map_vma(struct seq_file 35181@@ -222,20 +239,23 @@ static void show_map_vma(struct seq_file
34188 pgoff = ((loff_t)vma->vm_pgoff) << PAGE_SHIFT; 35182 pgoff = ((loff_t)vma->vm_pgoff) << PAGE_SHIFT;
34189 } 35183 }
34190 35184
@@ -34215,7 +35209,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); 35209 MAJOR(dev), MINOR(dev), ino, &len);
34216 35210
34217 /* 35211 /*
34218@@ -244,16 +263,16 @@ static void show_map_vma(struct seq_file 35212@@ -244,16 +264,16 @@ static void show_map_vma(struct seq_file
34219 */ 35213 */
34220 if (file) { 35214 if (file) {
34221 pad_len_spaces(m, len); 35215 pad_len_spaces(m, len);
@@ -34237,7 +35231,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]"; 35231 name = "[stack]";
34238 } 35232 }
34239 } else { 35233 } else {
34240@@ -399,11 +418,16 @@ static int show_smap(struct seq_file *m, 35234@@ -399,11 +419,16 @@ static int show_smap(struct seq_file *m,
34241 }; 35235 };
34242 35236
34243 memset(&mss, 0, sizeof mss); 35237 memset(&mss, 0, sizeof mss);
@@ -34259,7 +35253,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); 35253 show_map_vma(m, vma);
34260 35254
34261 seq_printf(m, 35255 seq_printf(m,
34262@@ -420,7 +444,11 @@ static int show_smap(struct seq_file *m, 35256@@ -420,7 +445,11 @@ static int show_smap(struct seq_file *m,
34263 "KernelPageSize: %8lu kB\n" 35257 "KernelPageSize: %8lu kB\n"
34264 "MMUPageSize: %8lu kB\n" 35258 "MMUPageSize: %8lu kB\n"
34265 "Locked: %8lu kB\n", 35259 "Locked: %8lu kB\n",
@@ -34271,9 +35265,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, 35265 mss.resident >> 10,
34272 (unsigned long)(mss.pss >> (10 + PSS_SHIFT)), 35266 (unsigned long)(mss.pss >> (10 + PSS_SHIFT)),
34273 mss.shared_clean >> 10, 35267 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 35268diff -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 35269--- 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 35270+++ 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 35271@@ -51,7 +51,7 @@ void task_mem(struct seq_file *m, struct
34278 else 35272 else
34279 bytes += kobjsize(mm); 35273 bytes += kobjsize(mm);
@@ -34292,9 +35286,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) { 35286 } else if (mm) {
34293 if (vma->vm_start <= mm->start_stack && 35287 if (vma->vm_start <= mm->start_stack &&
34294 vma->vm_end >= mm->start_stack) { 35288 vma->vm_end >= mm->start_stack) {
34295diff -urNp linux-2.6.38.2/fs/readdir.c linux-2.6.38.2/fs/readdir.c 35289diff -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 35290--- 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 35291+++ linux-2.6.38.3/fs/readdir.c 2011-04-17 15:57:32.000000000 -0400
34298@@ -17,6 +17,7 @@ 35292@@ -17,6 +17,7 @@
34299 #include <linux/security.h> 35293 #include <linux/security.h>
34300 #include <linux/syscalls.h> 35294 #include <linux/syscalls.h>
@@ -34384,9 +35378,9 @@ diff -urNp linux-2.6.38.2/fs/readdir.c linux-2.6.38.2/fs/readdir.c
34384 buf.count = count; 35378 buf.count = count;
34385 buf.error = 0; 35379 buf.error = 0;
34386 35380
34387diff -urNp linux-2.6.38.2/fs/reiserfs/do_balan.c linux-2.6.38.2/fs/reiserfs/do_balan.c 35381diff -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 35382--- 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 35383+++ 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, 35384@@ -2051,7 +2051,7 @@ void do_balance(struct tree_balance *tb,
34391 return; 35385 return;
34392 } 35386 }
@@ -34396,9 +35390,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); 35390 do_balance_starts(tb);
34397 35391
34398 /* balance leaf returns 0 except if combining L R and S into 35392 /* 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 35393diff -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 35394--- 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 35395+++ 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 35396@@ -102,7 +102,7 @@ static void sd_print_vi(struct virtual_i
34403 vi->vi_index, vi->vi_type, vi->vi_ih); 35397 vi->vi_index, vi->vi_type, vi->vi_ih);
34404 } 35398 }
@@ -34453,9 +35447,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, 35447 &stat_data_ops,
34454 &indirect_ops, 35448 &indirect_ops,
34455 &direct_ops, 35449 &direct_ops,
34456diff -urNp linux-2.6.38.2/fs/reiserfs/procfs.c linux-2.6.38.2/fs/reiserfs/procfs.c 35450diff -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 35451--- 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 35452+++ 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 35453@@ -113,7 +113,7 @@ static int show_super(struct seq_file *m
34460 "SMALL_TAILS " : "NO_TAILS ", 35454 "SMALL_TAILS " : "NO_TAILS ",
34461 replay_only(sb) ? "REPLAY_ONLY " : "", 35455 replay_only(sb) ? "REPLAY_ONLY " : "",
@@ -34465,9 +35459,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), 35459 SF(s_disk_reads), SF(s_disk_writes), SF(s_fix_nodes),
34466 SF(s_do_balance), SF(s_unneeded_left_neighbor), 35460 SF(s_do_balance), SF(s_unneeded_left_neighbor),
34467 SF(s_good_search_by_key_reada), SF(s_bmaps), 35461 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 35462diff -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 35463--- 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 35464+++ linux-2.6.38.3/fs/select.c 2011-04-17 15:57:32.000000000 -0400
34471@@ -20,6 +20,7 @@ 35465@@ -20,6 +20,7 @@
34472 #include <linux/module.h> 35466 #include <linux/module.h>
34473 #include <linux/slab.h> 35467 #include <linux/slab.h>
@@ -34484,9 +35478,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)) 35478 if (nfds > rlimit(RLIMIT_NOFILE))
34485 return -EINVAL; 35479 return -EINVAL;
34486 35480
34487diff -urNp linux-2.6.38.2/fs/seq_file.c linux-2.6.38.2/fs/seq_file.c 35481diff -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 35482--- 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 35483+++ 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, 35484@@ -76,7 +76,8 @@ static int traverse(struct seq_file *m,
34491 return 0; 35485 return 0;
34492 } 35486 }
@@ -34527,9 +35521,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) 35521 if (!m->buf)
34528 goto Enomem; 35522 goto Enomem;
34529 m->count = 0; 35523 m->count = 0;
34530diff -urNp linux-2.6.38.2/fs/splice.c linux-2.6.38.2/fs/splice.c 35524diff -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 35525--- 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 35526+++ 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 35527@@ -186,7 +186,7 @@ ssize_t splice_to_pipe(struct pipe_inode
34534 pipe_lock(pipe); 35528 pipe_lock(pipe);
34535 35529
@@ -34668,9 +35662,9 @@ diff -urNp linux-2.6.38.2/fs/splice.c linux-2.6.38.2/fs/splice.c
34668 ret = -EAGAIN; 35662 ret = -EAGAIN;
34669 35663
34670 pipe_unlock(ipipe); 35664 pipe_unlock(ipipe);
34671diff -urNp linux-2.6.38.2/fs/sysfs/mount.c linux-2.6.38.2/fs/sysfs/mount.c 35665diff -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 35666--- 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 35667+++ 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 = { 35668@@ -36,7 +36,11 @@ struct sysfs_dirent sysfs_root = {
34675 .s_name = "", 35669 .s_name = "",
34676 .s_count = ATOMIC_INIT(1), 35670 .s_count = ATOMIC_INIT(1),
@@ -34683,9 +35677,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, 35677 .s_ino = 1,
34684 }; 35678 };
34685 35679
34686diff -urNp linux-2.6.38.2/fs/sysfs/symlink.c linux-2.6.38.2/fs/sysfs/symlink.c 35680diff -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 35681--- 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 35682+++ 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 35683@@ -286,7 +286,7 @@ static void *sysfs_follow_link(struct de
34690 35684
34691 static void sysfs_put_link(struct dentry *dentry, struct nameidata *nd, void *cookie) 35685 static void sysfs_put_link(struct dentry *dentry, struct nameidata *nd, void *cookie)
@@ -34695,10 +35689,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)) 35689 if (!IS_ERR(page))
34696 free_page((unsigned long)page); 35690 free_page((unsigned long)page);
34697 } 35691 }
34698diff -urNp linux-2.6.38.2/fs/ubifs/debug.c linux-2.6.38.2/fs/ubifs/debug.c 35692diff -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 35693--- 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 35694+++ 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 35695@@ -2844,19 +2844,19 @@ int dbg_debugfs_init_fs(struct ubifs_inf
34702 } 35696 }
34703 35697
34704 fname = "dump_lprops"; 35698 fname = "dump_lprops";
@@ -34721,9 +35715,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)) 35715 if (IS_ERR(dent))
34722 goto out_remove; 35716 goto out_remove;
34723 d->dfs_dump_tnc = dent; 35717 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 35718diff -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 35719--- 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 35720+++ 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 35721@@ -142,8 +142,8 @@ struct genericFormat *udf_add_extendedat
34728 iinfo->i_lenEAttr += size; 35722 iinfo->i_lenEAttr += size;
34729 return (struct genericFormat *)&ea[offset]; 35723 return (struct genericFormat *)&ea[offset];
@@ -34744,9 +35738,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; 35738 u8 checksum = 0;
34745 int i; 35739 int i;
34746 for (i = 0; i < sizeof(struct tag); ++i) 35740 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 35741diff -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 35742--- 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 35743+++ linux-2.6.38.3/fs/udf/udfdecl.h 2011-04-17 15:57:32.000000000 -0400
34750@@ -26,7 +26,7 @@ do { \ 35744@@ -26,7 +26,7 @@ do { \
34751 printk(f, ##a); \ 35745 printk(f, ##a); \
34752 } while (0) 35746 } while (0)
@@ -34756,9 +35750,9 @@ diff -urNp linux-2.6.38.2/fs/udf/udfdecl.h linux-2.6.38.2/fs/udf/udfdecl.h
34756 #endif 35750 #endif
34757 35751
34758 #define udf_info(f, a...) \ 35752 #define udf_info(f, a...) \
34759diff -urNp linux-2.6.38.2/fs/utimes.c linux-2.6.38.2/fs/utimes.c 35753diff -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 35754--- 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 35755+++ linux-2.6.38.3/fs/utimes.c 2011-04-17 15:57:32.000000000 -0400
34762@@ -1,6 +1,7 @@ 35756@@ -1,6 +1,7 @@
34763 #include <linux/compiler.h> 35757 #include <linux/compiler.h>
34764 #include <linux/file.h> 35758 #include <linux/file.h>
@@ -34780,9 +35774,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); 35774 mutex_lock(&inode->i_mutex);
34781 error = notify_change(path->dentry, &newattrs); 35775 error = notify_change(path->dentry, &newattrs);
34782 mutex_unlock(&inode->i_mutex); 35776 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 35777diff -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 35778--- 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 35779+++ linux-2.6.38.3/fs/xattr_acl.c 2011-04-17 15:57:32.000000000 -0400
34786@@ -17,8 +17,8 @@ 35780@@ -17,8 +17,8 @@
34787 struct posix_acl * 35781 struct posix_acl *
34788 posix_acl_from_xattr(const void *value, size_t size) 35782 posix_acl_from_xattr(const void *value, size_t size)
@@ -34794,9 +35788,9 @@ diff -urNp linux-2.6.38.2/fs/xattr_acl.c linux-2.6.38.2/fs/xattr_acl.c
34794 int count; 35788 int count;
34795 struct posix_acl *acl; 35789 struct posix_acl *acl;
34796 struct posix_acl_entry *acl_e; 35790 struct posix_acl_entry *acl_e;
34797diff -urNp linux-2.6.38.2/fs/xattr.c linux-2.6.38.2/fs/xattr.c 35791diff -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 35792--- 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 35793+++ 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); 35794@@ -247,7 +247,7 @@ EXPORT_SYMBOL_GPL(vfs_removexattr);
34801 * Extended attribute SET operations 35795 * Extended attribute SET operations
34802 */ 35796 */
@@ -34859,9 +35853,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); 35853 mnt_drop_write(f->f_path.mnt);
34860 } 35854 }
34861 fput(f); 35855 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 35856diff -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 35857--- 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 35858+++ 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( 35859@@ -73,6 +73,7 @@ xfs_compat_ioc_fsgeometry_v1(
34866 xfs_fsop_geom_t fsgeo; 35860 xfs_fsop_geom_t fsgeo;
34867 int error; 35861 int error;
@@ -34870,9 +35864,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); 35864 error = xfs_fs_geometry(mp, &fsgeo, 3);
34871 if (error) 35865 if (error)
34872 return -error; 35866 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 35867diff -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 35868--- 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 35869+++ 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( 35870@@ -128,7 +128,7 @@ xfs_find_handle(
34877 } 35871 }
34878 35872
@@ -34882,17 +35876,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))) 35876 copy_to_user(hreq->ohandlen, &hsize, sizeof(__s32)))
34883 goto out_put; 35877 goto out_put;
34884 35878
34885@@ -720,6 +720,7 @@ xfs_ioc_fsgeometry( 35879diff -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; 35880--- linux-2.6.38.3/fs/xfs/linux-2.6/xfs_iops.c 2011-03-14 21:20:32.000000000 -0400
34887 int error; 35881+++ 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( 35882@@ -436,7 +436,7 @@ xfs_vn_put_link(
34897 struct nameidata *nd, 35883 struct nameidata *nd,
34898 void *p) 35884 void *p)
@@ -34902,9 +35888,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 35888
34903 if (!IS_ERR(s)) 35889 if (!IS_ERR(s))
34904 kfree(s); 35890 kfree(s);
34905diff -urNp linux-2.6.38.2/fs/xfs/xfs_bmap.c linux-2.6.38.2/fs/xfs/xfs_bmap.c 35891diff -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 35892--- 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 35893+++ 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( 35894@@ -287,7 +287,7 @@ xfs_bmap_validate_ret(
34909 int nmap, 35895 int nmap,
34910 int ret_nmap); 35896 int ret_nmap);
@@ -34914,9 +35900,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 */ 35900 #endif /* DEBUG */
34915 35901
34916 STATIC int 35902 STATIC int
34917diff -urNp linux-2.6.38.2/grsecurity/gracl_alloc.c linux-2.6.38.2/grsecurity/gracl_alloc.c 35903diff -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 35904--- 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 35905+++ linux-2.6.38.3/fs/xfs/xfs_dir2_sf.c 2011-04-18 22:03:12.000000000 -0400
35906@@ -780,7 +780,15 @@ xfs_dir2_sf_getdents(
35907 }
35908
35909 ino = xfs_dir2_sf_get_inumber(sfp, xfs_dir2_sf_inumberp(sfep));
35910- if (filldir(dirent, (char *)sfep->name, sfep->namelen,
35911+ if (dp->i_df.if_u1.if_data == dp->i_df.if_u2.if_inline_data) {
35912+ char name[sfep->namelen];
35913+ memcpy(name, sfep->name, sfep->namelen);
35914+ if (filldir(dirent, name, sfep->namelen,
35915+ off & 0x7fffffff, ino, DT_UNKNOWN)) {
35916+ *offset = off & 0x7fffffff;
35917+ return 0;
35918+ }
35919+ } else if (filldir(dirent, (char *)sfep->name, sfep->namelen,
35920 off & 0x7fffffff, ino, DT_UNKNOWN)) {
35921 *offset = off & 0x7fffffff;
35922 return 0;
35923diff -urNp linux-2.6.38.3/grsecurity/gracl_alloc.c linux-2.6.38.3/grsecurity/gracl_alloc.c
35924--- linux-2.6.38.3/grsecurity/gracl_alloc.c 1969-12-31 19:00:00.000000000 -0500
35925+++ linux-2.6.38.3/grsecurity/gracl_alloc.c 2011-04-17 15:57:32.000000000 -0400
34920@@ -0,0 +1,105 @@ 35926@@ -0,0 +1,105 @@
34921+#include <linux/kernel.h> 35927+#include <linux/kernel.h>
34922+#include <linux/mm.h> 35928+#include <linux/mm.h>
@@ -35023,9 +36029,9 @@ diff -urNp linux-2.6.38.2/grsecurity/gracl_alloc.c linux-2.6.38.2/grsecurity/gra
35023+ else 36029+ else
35024+ return 1; 36030+ return 1;
35025+} 36031+}
35026diff -urNp linux-2.6.38.2/grsecurity/gracl.c linux-2.6.38.2/grsecurity/gracl.c 36032diff -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 36033--- 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 36034+++ linux-2.6.38.3/grsecurity/gracl.c 2011-04-17 15:57:32.000000000 -0400
35029@@ -0,0 +1,4074 @@ 36035@@ -0,0 +1,4074 @@
35030+#include <linux/kernel.h> 36036+#include <linux/kernel.h>
35031+#include <linux/module.h> 36037+#include <linux/module.h>
@@ -36856,9 +37862,9 @@ diff -urNp linux-2.6.38.2/grsecurity/gracl.c linux-2.6.38.2/grsecurity/gracl.c
36856+ write_seqlock(&rename_lock); 37862+ write_seqlock(&rename_lock);
36857+ br_read_lock(vfsmount_lock); 37863+ br_read_lock(vfsmount_lock);
36858+ 37864+
36859+ if (unlikely(mnt == shm_mnt || mnt == pipe_mnt || mnt == sock_mnt || 37865+ if (unlikely((mnt == shm_mnt && dentry->d_inode->i_nlink == 0) || mnt == pipe_mnt || mnt == sock_mnt ||
36860+#ifdef CONFIG_HUGETLBFS 37866+#ifdef CONFIG_HUGETLBFS
36861+ mnt == hugetlbfs_vfsmount || 37867+ (mnt == hugetlbfs_vfsmount && dentry->d_inode->i_nlink == 0) ||
36862+#endif 37868+#endif
36863+ /* ignore Eric Biederman */ 37869+ /* ignore Eric Biederman */
36864+ IS_PRIVATE(l_dentry->d_inode))) { 37870+ IS_PRIVATE(l_dentry->d_inode))) {
@@ -38837,7 +39843,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; 39843+ struct acl_object_label *obj, *obj2;
38838+ 39844+
38839+ if (gr_status & GR_READY && !(task->acl->mode & GR_OVERRIDE) && 39845+ 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) { 39846+ !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); 39847+ 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, 39848+ obj2 = chk_obj_label(filp->f_path.dentry, filp->f_path.mnt,
38843+ task->role->root_label); 39849+ task->role->root_label);
@@ -39101,9 +40107,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); 40107+EXPORT_SYMBOL(gr_check_group_change);
39102+#endif 40108+#endif
39103+ 40109+
39104diff -urNp linux-2.6.38.2/grsecurity/gracl_cap.c linux-2.6.38.2/grsecurity/gracl_cap.c 40110diff -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 40111--- 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 40112+++ linux-2.6.38.3/grsecurity/gracl_cap.c 2011-04-17 15:57:32.000000000 -0400
39107@@ -0,0 +1,139 @@ 40113@@ -0,0 +1,139 @@
39108+#include <linux/kernel.h> 40114+#include <linux/kernel.h>
39109+#include <linux/module.h> 40115+#include <linux/module.h>
@@ -39244,9 +40250,9 @@ diff -urNp linux-2.6.38.2/grsecurity/gracl_cap.c linux-2.6.38.2/grsecurity/gracl
39244+ return 0; 40250+ return 0;
39245+} 40251+}
39246+ 40252+
39247diff -urNp linux-2.6.38.2/grsecurity/gracl_fs.c linux-2.6.38.2/grsecurity/gracl_fs.c 40253diff -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 40254--- 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 40255+++ linux-2.6.38.3/grsecurity/gracl_fs.c 2011-04-17 15:57:32.000000000 -0400
39250@@ -0,0 +1,431 @@ 40256@@ -0,0 +1,431 @@
39251+#include <linux/kernel.h> 40257+#include <linux/kernel.h>
39252+#include <linux/sched.h> 40258+#include <linux/sched.h>
@@ -39679,9 +40685,9 @@ diff -urNp linux-2.6.38.2/grsecurity/gracl_fs.c linux-2.6.38.2/grsecurity/gracl_
39679+ 40685+
39680+ return 0; 40686+ return 0;
39681+} 40687+}
39682diff -urNp linux-2.6.38.2/grsecurity/gracl_ip.c linux-2.6.38.2/grsecurity/gracl_ip.c 40688diff -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 40689--- 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 40690+++ linux-2.6.38.3/grsecurity/gracl_ip.c 2011-04-17 15:57:32.000000000 -0400
39685@@ -0,0 +1,382 @@ 40691@@ -0,0 +1,382 @@
39686+#include <linux/kernel.h> 40692+#include <linux/kernel.h>
39687+#include <asm/uaccess.h> 40693+#include <asm/uaccess.h>
@@ -40065,9 +41071,9 @@ diff -urNp linux-2.6.38.2/grsecurity/gracl_ip.c linux-2.6.38.2/grsecurity/gracl_
40065+ 41071+
40066+ return gr_search_connectbind(GR_CONNECT | GR_CONNECTOVERRIDE, sk, &sin, SOCK_DGRAM); 41072+ return gr_search_connectbind(GR_CONNECT | GR_CONNECTOVERRIDE, sk, &sin, SOCK_DGRAM);
40067+} 41073+}
40068diff -urNp linux-2.6.38.2/grsecurity/gracl_learn.c linux-2.6.38.2/grsecurity/gracl_learn.c 41074diff -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 41075--- 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 41076+++ linux-2.6.38.3/grsecurity/gracl_learn.c 2011-04-17 15:57:32.000000000 -0400
40071@@ -0,0 +1,211 @@ 41077@@ -0,0 +1,211 @@
40072+#include <linux/kernel.h> 41078+#include <linux/kernel.h>
40073+#include <linux/mm.h> 41079+#include <linux/mm.h>
@@ -40280,9 +41286,9 @@ diff -urNp linux-2.6.38.2/grsecurity/gracl_learn.c linux-2.6.38.2/grsecurity/gra
40280+ .release = close_learn, 41286+ .release = close_learn,
40281+ .poll = poll_learn, 41287+ .poll = poll_learn,
40282+}; 41288+};
40283diff -urNp linux-2.6.38.2/grsecurity/gracl_res.c linux-2.6.38.2/grsecurity/gracl_res.c 41289diff -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 41290--- 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 41291+++ linux-2.6.38.3/grsecurity/gracl_res.c 2011-04-17 15:57:32.000000000 -0400
40286@@ -0,0 +1,68 @@ 41292@@ -0,0 +1,68 @@
40287+#include <linux/kernel.h> 41293+#include <linux/kernel.h>
40288+#include <linux/sched.h> 41294+#include <linux/sched.h>
@@ -40352,10 +41358,10 @@ diff -urNp linux-2.6.38.2/grsecurity/gracl_res.c linux-2.6.38.2/grsecurity/gracl
40352+ rcu_read_unlock(); 41358+ rcu_read_unlock();
40353+ return; 41359+ return;
40354+} 41360+}
40355diff -urNp linux-2.6.38.2/grsecurity/gracl_segv.c linux-2.6.38.2/grsecurity/gracl_segv.c 41361diff -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 41362--- 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 41363+++ linux-2.6.38.3/grsecurity/gracl_segv.c 2011-04-17 15:57:32.000000000 -0400
40358@@ -0,0 +1,326 @@ 41364@@ -0,0 +1,300 @@
40359+#include <linux/kernel.h> 41365+#include <linux/kernel.h>
40360+#include <linux/mm.h> 41366+#include <linux/mm.h>
40361+#include <asm/uaccess.h> 41367+#include <asm/uaccess.h>
@@ -40382,8 +41388,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 * 41388+extern struct acl_subject_label *
40383+ lookup_acl_subj_label(const ino_t inode, const dev_t dev, 41389+ lookup_acl_subj_label(const ino_t inode, const dev_t dev,
40384+ struct acl_role_label *role); 41390+ struct acl_role_label *role);
40385+extern int specific_send_sig_info(int sig, struct siginfo *info, struct task_struct *t);
40386+
40387+ 41391+
40388+#ifdef CONFIG_BTRFS_FS 41392+#ifdef CONFIG_BTRFS_FS
40389+extern dev_t get_btrfs_dev_from_inode(struct inode *inode); 41393+extern dev_t get_btrfs_dev_from_inode(struct inode *inode);
@@ -40533,32 +41537,8 @@ diff -urNp linux-2.6.38.2/grsecurity/gracl_segv.c linux-2.6.38.2/grsecurity/grac
40533+ 41537+
40534+ return 0; 41538+ return 0;
40535+} 41539+}
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+
40543+ spin_lock_irqsave(&t->sighand->siglock, flags);
40544+ action = &t->sighand->action[sig-1];
40545+ ignored = action->sa.sa_handler == SIG_IGN;
40546+ blocked = sigismember(&t->blocked, sig);
40547+ if (blocked || ignored) {
40548+ action->sa.sa_handler = SIG_DFL;
40549+ if (blocked) {
40550+ sigdelset(&t->blocked, sig);
40551+ recalc_sigpending_and_wake(t);
40552+ }
40553+ }
40554+ if (action->sa.sa_handler == SIG_DFL)
40555+ t->signal->flags &= ~SIGNAL_UNKILLABLE;
40556+ ret = specific_send_sig_info(sig, SEND_SIG_PRIV, t);
40557+ 41540+
40558+ spin_unlock_irqrestore(&t->sighand->siglock, flags); 41541+extern int gr_fake_force_sig(int sig, struct task_struct *t);
40559+
40560+ return ret;
40561+}
40562+ 41542+
40563+void 41543+void
40564+gr_handle_crash(struct task_struct *task, const int sig) 41544+gr_handle_crash(struct task_struct *task, const int sig)
@@ -40682,9 +41662,9 @@ diff -urNp linux-2.6.38.2/grsecurity/gracl_segv.c linux-2.6.38.2/grsecurity/grac
40682+ 41662+
40683+ return; 41663+ return;
40684+} 41664+}
40685diff -urNp linux-2.6.38.2/grsecurity/gracl_shm.c linux-2.6.38.2/grsecurity/gracl_shm.c 41665diff -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 41666--- 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 41667+++ linux-2.6.38.3/grsecurity/gracl_shm.c 2011-04-17 15:57:32.000000000 -0400
40688@@ -0,0 +1,40 @@ 41668@@ -0,0 +1,40 @@
40689+#include <linux/kernel.h> 41669+#include <linux/kernel.h>
40690+#include <linux/mm.h> 41670+#include <linux/mm.h>
@@ -40726,9 +41706,9 @@ diff -urNp linux-2.6.38.2/grsecurity/gracl_shm.c linux-2.6.38.2/grsecurity/gracl
40726+ 41706+
40727+ return 1; 41707+ return 1;
40728+} 41708+}
40729diff -urNp linux-2.6.38.2/grsecurity/grsec_chdir.c linux-2.6.38.2/grsecurity/grsec_chdir.c 41709diff -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 41710--- 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 41711+++ linux-2.6.38.3/grsecurity/grsec_chdir.c 2011-04-17 15:57:32.000000000 -0400
40732@@ -0,0 +1,19 @@ 41712@@ -0,0 +1,19 @@
40733+#include <linux/kernel.h> 41713+#include <linux/kernel.h>
40734+#include <linux/sched.h> 41714+#include <linux/sched.h>
@@ -40749,10 +41729,10 @@ diff -urNp linux-2.6.38.2/grsecurity/grsec_chdir.c linux-2.6.38.2/grsecurity/grs
40749+#endif 41729+#endif
40750+ return; 41730+ return;
40751+} 41731+}
40752diff -urNp linux-2.6.38.2/grsecurity/grsec_chroot.c linux-2.6.38.2/grsecurity/grsec_chroot.c 41732diff -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 41733--- 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 41734+++ linux-2.6.38.3/grsecurity/grsec_chroot.c 2011-04-17 15:57:32.000000000 -0400
40755@@ -0,0 +1,351 @@ 41735@@ -0,0 +1,355 @@
40756+#include <linux/kernel.h> 41736+#include <linux/kernel.h>
40757+#include <linux/module.h> 41737+#include <linux/module.h>
40758+#include <linux/sched.h> 41738+#include <linux/sched.h>
@@ -40802,7 +41782,7 @@ diff -urNp linux-2.6.38.2/grsecurity/grsec_chroot.c linux-2.6.38.2/grsecurity/gr
40802+ rcu_read_lock(); 41782+ rcu_read_lock();
40803+ read_lock(&tasklist_lock); 41783+ read_lock(&tasklist_lock);
40804+ p = pid_task(pid, PIDTYPE_PID); 41784+ p = pid_task(pid, PIDTYPE_PID);
40805+ if (unlikely(!have_same_root(current, p))) { 41785+ if (unlikely(p && !have_same_root(current, p))) {
40806+ read_unlock(&tasklist_lock); 41786+ read_unlock(&tasklist_lock);
40807+ rcu_read_unlock(); 41787+ rcu_read_unlock();
40808+ gr_log_noargs(GR_DONT_AUDIT, GR_UNIX_CHROOT_MSG); 41788+ gr_log_noargs(GR_DONT_AUDIT, GR_UNIX_CHROOT_MSG);
@@ -40945,6 +41925,8 @@ diff -urNp linux-2.6.38.2/grsecurity/grsec_chroot.c linux-2.6.38.2/grsecurity/gr
40945+ if (pid) { 41925+ if (pid) {
40946+ struct task_struct *p; 41926+ struct task_struct *p;
40947+ p = pid_task(pid, PIDTYPE_PID); 41927+ p = pid_task(pid, PIDTYPE_PID);
41928+ if (p == NULL)
41929+ goto unlock;
40948+ starttime = p->start_time.tv_sec; 41930+ starttime = p->start_time.tv_sec;
40949+ if (unlikely(!have_same_root(current, p) && 41931+ if (unlikely(!have_same_root(current, p) &&
40950+ time_before_eq((unsigned long)starttime, (unsigned long)shm_createtime))) { 41932+ time_before_eq((unsigned long)starttime, (unsigned long)shm_createtime))) {
@@ -40958,6 +41940,8 @@ diff -urNp linux-2.6.38.2/grsecurity/grsec_chroot.c linux-2.6.38.2/grsecurity/gr
40958+ if (pid) { 41940+ if (pid) {
40959+ struct task_struct *p; 41941+ struct task_struct *p;
40960+ p = pid_task(pid, PIDTYPE_PID); 41942+ p = pid_task(pid, PIDTYPE_PID);
41943+ if (p == NULL)
41944+ goto unlock;
40961+ if (unlikely(!have_same_root(current, p))) { 41945+ if (unlikely(!have_same_root(current, p))) {
40962+ read_unlock(&tasklist_lock); 41946+ read_unlock(&tasklist_lock);
40963+ rcu_read_unlock(); 41947+ rcu_read_unlock();
@@ -40966,7 +41950,7 @@ diff -urNp linux-2.6.38.2/grsecurity/grsec_chroot.c linux-2.6.38.2/grsecurity/gr
40966+ } 41950+ }
40967+ } 41951+ }
40968+ } 41952+ }
40969+ 41953+unlock:
40970+ read_unlock(&tasklist_lock); 41954+ read_unlock(&tasklist_lock);
40971+ rcu_read_unlock(); 41955+ rcu_read_unlock();
40972+#endif 41956+#endif
@@ -41104,9 +42088,9 @@ diff -urNp linux-2.6.38.2/grsecurity/grsec_chroot.c linux-2.6.38.2/grsecurity/gr
41104+#ifdef CONFIG_SECURITY 42088+#ifdef CONFIG_SECURITY
41105+EXPORT_SYMBOL(gr_handle_chroot_caps); 42089+EXPORT_SYMBOL(gr_handle_chroot_caps);
41106+#endif 42090+#endif
41107diff -urNp linux-2.6.38.2/grsecurity/grsec_disabled.c linux-2.6.38.2/grsecurity/grsec_disabled.c 42091diff -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 42092--- 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 42093+++ linux-2.6.38.3/grsecurity/grsec_disabled.c 2011-04-17 15:57:32.000000000 -0400
41110@@ -0,0 +1,447 @@ 42094@@ -0,0 +1,447 @@
41111+#include <linux/kernel.h> 42095+#include <linux/kernel.h>
41112+#include <linux/module.h> 42096+#include <linux/module.h>
@@ -41555,9 +42539,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); 42539+EXPORT_SYMBOL(gr_check_user_change);
41556+EXPORT_SYMBOL(gr_check_group_change); 42540+EXPORT_SYMBOL(gr_check_group_change);
41557+#endif 42541+#endif
41558diff -urNp linux-2.6.38.2/grsecurity/grsec_exec.c linux-2.6.38.2/grsecurity/grsec_exec.c 42542diff -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 42543--- 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 42544+++ linux-2.6.38.3/grsecurity/grsec_exec.c 2011-04-17 15:57:32.000000000 -0400
41561@@ -0,0 +1,147 @@ 42545@@ -0,0 +1,147 @@
41562+#include <linux/kernel.h> 42546+#include <linux/kernel.h>
41563+#include <linux/sched.h> 42547+#include <linux/sched.h>
@@ -41706,9 +42690,9 @@ diff -urNp linux-2.6.38.2/grsecurity/grsec_exec.c linux-2.6.38.2/grsecurity/grse
41706+ return; 42690+ return;
41707+} 42691+}
41708+#endif 42692+#endif
41709diff -urNp linux-2.6.38.2/grsecurity/grsec_fifo.c linux-2.6.38.2/grsecurity/grsec_fifo.c 42693diff -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 42694--- 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 42695+++ linux-2.6.38.3/grsecurity/grsec_fifo.c 2011-04-17 15:57:32.000000000 -0400
41712@@ -0,0 +1,24 @@ 42696@@ -0,0 +1,24 @@
41713+#include <linux/kernel.h> 42697+#include <linux/kernel.h>
41714+#include <linux/sched.h> 42698+#include <linux/sched.h>
@@ -41734,9 +42718,9 @@ diff -urNp linux-2.6.38.2/grsecurity/grsec_fifo.c linux-2.6.38.2/grsecurity/grse
41734+#endif 42718+#endif
41735+ return 0; 42719+ return 0;
41736+} 42720+}
41737diff -urNp linux-2.6.38.2/grsecurity/grsec_fork.c linux-2.6.38.2/grsecurity/grsec_fork.c 42721diff -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 42722--- 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 42723+++ linux-2.6.38.3/grsecurity/grsec_fork.c 2011-04-17 15:57:32.000000000 -0400
41740@@ -0,0 +1,23 @@ 42724@@ -0,0 +1,23 @@
41741+#include <linux/kernel.h> 42725+#include <linux/kernel.h>
41742+#include <linux/sched.h> 42726+#include <linux/sched.h>
@@ -41761,9 +42745,9 @@ diff -urNp linux-2.6.38.2/grsecurity/grsec_fork.c linux-2.6.38.2/grsecurity/grse
41761+#endif 42745+#endif
41762+ return; 42746+ return;
41763+} 42747+}
41764diff -urNp linux-2.6.38.2/grsecurity/grsec_init.c linux-2.6.38.2/grsecurity/grsec_init.c 42748diff -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 42749--- 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 42750+++ linux-2.6.38.3/grsecurity/grsec_init.c 2011-04-17 15:57:32.000000000 -0400
41767@@ -0,0 +1,270 @@ 42751@@ -0,0 +1,270 @@
41768+#include <linux/kernel.h> 42752+#include <linux/kernel.h>
41769+#include <linux/sched.h> 42753+#include <linux/sched.h>
@@ -42035,9 +43019,9 @@ diff -urNp linux-2.6.38.2/grsecurity/grsec_init.c linux-2.6.38.2/grsecurity/grse
42035+ 43019+
42036+ return; 43020+ return;
42037+} 43021+}
42038diff -urNp linux-2.6.38.2/grsecurity/grsec_link.c linux-2.6.38.2/grsecurity/grsec_link.c 43022diff -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 43023--- 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 43024+++ linux-2.6.38.3/grsecurity/grsec_link.c 2011-04-17 15:57:32.000000000 -0400
42041@@ -0,0 +1,43 @@ 43025@@ -0,0 +1,43 @@
42042+#include <linux/kernel.h> 43026+#include <linux/kernel.h>
42043+#include <linux/sched.h> 43027+#include <linux/sched.h>
@@ -42082,9 +43066,9 @@ diff -urNp linux-2.6.38.2/grsecurity/grsec_link.c linux-2.6.38.2/grsecurity/grse
42082+#endif 43066+#endif
42083+ return 0; 43067+ return 0;
42084+} 43068+}
42085diff -urNp linux-2.6.38.2/grsecurity/grsec_log.c linux-2.6.38.2/grsecurity/grsec_log.c 43069diff -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 43070--- 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 43071+++ linux-2.6.38.3/grsecurity/grsec_log.c 2011-04-17 15:57:32.000000000 -0400
42088@@ -0,0 +1,310 @@ 43072@@ -0,0 +1,310 @@
42089+#include <linux/kernel.h> 43073+#include <linux/kernel.h>
42090+#include <linux/sched.h> 43074+#include <linux/sched.h>
@@ -42396,10 +43380,10 @@ diff -urNp linux-2.6.38.2/grsecurity/grsec_log.c linux-2.6.38.2/grsecurity/grsec
42396+ gr_log_end(audit); 43380+ gr_log_end(audit);
42397+ END_LOCKS(audit); 43381+ END_LOCKS(audit);
42398+} 43382+}
42399diff -urNp linux-2.6.38.2/grsecurity/grsec_mem.c linux-2.6.38.2/grsecurity/grsec_mem.c 43383diff -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 43384--- 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 43385+++ linux-2.6.38.3/grsecurity/grsec_mem.c 2011-04-17 15:57:32.000000000 -0400
42402@@ -0,0 +1,100 @@ 43386@@ -0,0 +1,33 @@
42403+#include <linux/kernel.h> 43387+#include <linux/kernel.h>
42404+#include <linux/sched.h> 43388+#include <linux/sched.h>
42405+#include <linux/mm.h> 43389+#include <linux/mm.h>
@@ -42421,88 +43405,21 @@ diff -urNp linux-2.6.38.2/grsecurity/grsec_mem.c linux-2.6.38.2/grsecurity/grsec
42421+} 43405+}
42422+ 43406+
42423+void 43407+void
42424+gr_handle_mem_write(void) 43408+gr_handle_mem_readwrite(u64 from, u64 to)
42425+{ 43409+{
42426+ gr_log_noargs(GR_DONT_AUDIT, GR_MEM_WRITE_MSG); 43410+ gr_log_two_u64(GR_DONT_AUDIT, GR_MEM_READWRITE_MSG, from, to);
42427+ return; 43411+ return;
42428+} 43412+}
42429+ 43413+
42430+void 43414+void
42431+gr_handle_kmem_write(void)
42432+{
42433+ gr_log_noargs(GR_DONT_AUDIT, GR_KMEM_MSG);
42434+ return;
42435+}
42436+
42437+void
42438+gr_handle_open_port(void)
42439+{
42440+ gr_log_noargs(GR_DONT_AUDIT, GR_PORT_OPEN_MSG);
42441+ return;
42442+}
42443+
42444+int
42445+gr_handle_mem_mmap(const unsigned long offset, struct vm_area_struct *vma)
42446+{
42447+ unsigned long start, end;
42448+
42449+ start = offset;
42450+ end = start + vma->vm_end - vma->vm_start;
42451+
42452+ if (start > end) {
42453+ gr_log_noargs(GR_DONT_AUDIT, GR_MEM_MMAP_MSG);
42454+ return -EPERM;
42455+ }
42456+
42457+/* if raw i/o is disabled, prevent writes to /dev/mem entirely */
42458+#ifndef CONFIG_GRKERNSEC_IO
42459+ /* allowed ranges : ISA I/O BIOS */
42460+ if ((start >= __pa(high_memory))
42461+#if defined(CONFIG_X86) || defined(CONFIG_PPC)
42462+ || (start >= 0x000a0000 && end <= 0x00100000)
42463+ || (start >= 0x00000000 && end <= 0x00001000)
42464+#endif
42465+ )
42466+ return 0;
42467+#endif
42468+
42469+ if (vma->vm_flags & VM_WRITE) {
42470+ gr_log_noargs(GR_DONT_AUDIT, GR_MEM_MMAP_MSG);
42471+ return -EPERM;
42472+ } else
42473+ vma->vm_flags &= ~VM_MAYWRITE;
42474+
42475+ return 0;
42476+}
42477+
42478+void
42479+gr_log_nonroot_mod_load(const char *modname)
42480+{
42481+ if (1
42482+#if !defined(CONFIG_IPV6) && !defined(CONFIG_IPV6_MODULE)
42483+ /* There are known knowns. These are things we know
42484+ that we know. There are known unknowns. That is to say,
42485+ there are things that we know we don't know. But there are
42486+ also unknown unknowns. There are things we don't know
42487+ we don't know.
42488+ This here is a known unknown.
42489+ */
42490+ && strcmp(modname, "net-pf-10")
42491+#endif
42492+ )
42493+ gr_log_str(GR_DONT_AUDIT, GR_NONROOT_MODLOAD_MSG, modname);
42494+ return;
42495+}
42496+
42497+void
42498+gr_handle_vm86(void) 43415+gr_handle_vm86(void)
42499+{ 43416+{
42500+ gr_log_noargs(GR_DONT_AUDIT, GR_VM86_MSG); 43417+ gr_log_noargs(GR_DONT_AUDIT, GR_VM86_MSG);
42501+ return; 43418+ return;
42502+} 43419+}
42503diff -urNp linux-2.6.38.2/grsecurity/grsec_mount.c linux-2.6.38.2/grsecurity/grsec_mount.c 43420diff -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 43421--- 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 43422+++ linux-2.6.38.3/grsecurity/grsec_mount.c 2011-04-17 15:57:32.000000000 -0400
42506@@ -0,0 +1,62 @@ 43423@@ -0,0 +1,62 @@
42507+#include <linux/kernel.h> 43424+#include <linux/kernel.h>
42508+#include <linux/sched.h> 43425+#include <linux/sched.h>
@@ -42566,9 +43483,9 @@ diff -urNp linux-2.6.38.2/grsecurity/grsec_mount.c linux-2.6.38.2/grsecurity/grs
42566+#endif 43483+#endif
42567+ return 0; 43484+ return 0;
42568+} 43485+}
42569diff -urNp linux-2.6.38.2/grsecurity/grsec_pax.c linux-2.6.38.2/grsecurity/grsec_pax.c 43486diff -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 43487--- 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 43488+++ linux-2.6.38.3/grsecurity/grsec_pax.c 2011-04-17 15:57:32.000000000 -0400
42572@@ -0,0 +1,36 @@ 43489@@ -0,0 +1,36 @@
42573+#include <linux/kernel.h> 43490+#include <linux/kernel.h>
42574+#include <linux/sched.h> 43491+#include <linux/sched.h>
@@ -42606,9 +43523,9 @@ diff -urNp linux-2.6.38.2/grsecurity/grsec_pax.c linux-2.6.38.2/grsecurity/grsec
42606+#endif 43523+#endif
42607+ return; 43524+ return;
42608+} 43525+}
42609diff -urNp linux-2.6.38.2/grsecurity/grsec_ptrace.c linux-2.6.38.2/grsecurity/grsec_ptrace.c 43526diff -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 43527--- 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 43528+++ linux-2.6.38.3/grsecurity/grsec_ptrace.c 2011-04-17 15:57:32.000000000 -0400
42612@@ -0,0 +1,14 @@ 43529@@ -0,0 +1,14 @@
42613+#include <linux/kernel.h> 43530+#include <linux/kernel.h>
42614+#include <linux/sched.h> 43531+#include <linux/sched.h>
@@ -42624,15 +43541,16 @@ diff -urNp linux-2.6.38.2/grsecurity/grsec_ptrace.c linux-2.6.38.2/grsecurity/gr
42624+#endif 43541+#endif
42625+ return; 43542+ return;
42626+} 43543+}
42627diff -urNp linux-2.6.38.2/grsecurity/grsec_sig.c linux-2.6.38.2/grsecurity/grsec_sig.c 43544diff -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 43545--- 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 43546+++ linux-2.6.38.3/grsecurity/grsec_sig.c 2011-04-17 15:57:32.000000000 -0400
42630@@ -0,0 +1,65 @@ 43547@@ -0,0 +1,197 @@
42631+#include <linux/kernel.h> 43548+#include <linux/kernel.h>
42632+#include <linux/sched.h> 43549+#include <linux/sched.h>
42633+#include <linux/delay.h> 43550+#include <linux/delay.h>
42634+#include <linux/grsecurity.h> 43551+#include <linux/grsecurity.h>
42635+#include <linux/grinternal.h> 43552+#include <linux/grinternal.h>
43553+#include <linux/hardirq.h>
42636+ 43554+
42637+char *signames[] = { 43555+char *signames[] = {
42638+ [SIGSEGV] = "Segmentation fault", 43556+ [SIGSEGV] = "Segmentation fault",
@@ -42671,15 +43589,91 @@ diff -urNp linux-2.6.38.2/grsecurity/grsec_sig.c linux-2.6.38.2/grsecurity/grsec
42671+ return 0; 43589+ return 0;
42672+} 43590+}
42673+ 43591+
42674+void gr_handle_brute_attach(struct task_struct *p) 43592+#ifdef CONFIG_GRKERNSEC
43593+extern int specific_send_sig_info(int sig, struct siginfo *info, struct task_struct *t);
43594+
43595+int gr_fake_force_sig(int sig, struct task_struct *t)
43596+{
43597+ unsigned long int flags;
43598+ int ret, blocked, ignored;
43599+ struct k_sigaction *action;
43600+
43601+ spin_lock_irqsave(&t->sighand->siglock, flags);
43602+ action = &t->sighand->action[sig-1];
43603+ ignored = action->sa.sa_handler == SIG_IGN;
43604+ blocked = sigismember(&t->blocked, sig);
43605+ if (blocked || ignored) {
43606+ action->sa.sa_handler = SIG_DFL;
43607+ if (blocked) {
43608+ sigdelset(&t->blocked, sig);
43609+ recalc_sigpending_and_wake(t);
43610+ }
43611+ }
43612+ if (action->sa.sa_handler == SIG_DFL)
43613+ t->signal->flags &= ~SIGNAL_UNKILLABLE;
43614+ ret = specific_send_sig_info(sig, SEND_SIG_PRIV, t);
43615+
43616+ spin_unlock_irqrestore(&t->sighand->siglock, flags);
43617+
43618+ return ret;
43619+}
43620+#endif
43621+
43622+#ifdef CONFIG_GRKERNSEC_BRUTE
43623+#define GR_USER_BAN_TIME (15 * 60)
43624+
43625+static int __get_dumpable(unsigned long mm_flags)
43626+{
43627+ int ret;
43628+
43629+ ret = mm_flags & MMF_DUMPABLE_MASK;
43630+ return (ret >= 2) ? 2 : ret;
43631+}
43632+#endif
43633+
43634+void gr_handle_brute_attach(struct task_struct *p, unsigned long mm_flags)
42675+{ 43635+{
42676+#ifdef CONFIG_GRKERNSEC_BRUTE 43636+#ifdef CONFIG_GRKERNSEC_BRUTE
43637+ uid_t uid = 0;
43638+
43639+ rcu_read_lock();
42677+ read_lock(&tasklist_lock); 43640+ read_lock(&tasklist_lock);
42678+ read_lock(&grsec_exec_file_lock); 43641+ read_lock(&grsec_exec_file_lock);
42679+ if (p->real_parent && p->real_parent->exec_file == p->exec_file) 43642+ if (p->real_parent && p->real_parent->exec_file == p->exec_file)
42680+ p->real_parent->brute = 1; 43643+ p->real_parent->brute = 1;
43644+ else {
43645+ const struct cred *cred = __task_cred(p), *cred2;
43646+ struct task_struct *tsk, *tsk2;
43647+
43648+ if (!__get_dumpable(mm_flags) && cred->uid) {
43649+ struct user_struct *user;
43650+
43651+ uid = cred->uid;
43652+
43653+ /* this is put upon execution past expiration */
43654+ user = find_user(uid);
43655+ if (user == NULL)
43656+ goto unlock;
43657+ user->banned = 1;
43658+ user->ban_expires = get_seconds() + GR_USER_BAN_TIME;
43659+ if (user->ban_expires == ~0UL)
43660+ user->ban_expires--;
43661+
43662+ do_each_thread(tsk2, tsk) {
43663+ cred2 = __task_cred(tsk);
43664+ if (tsk != p && cred2->uid == uid)
43665+ gr_fake_force_sig(SIGKILL, tsk);
43666+ } while_each_thread(tsk2, tsk);
43667+ }
43668+ }
43669+unlock:
42681+ read_unlock(&grsec_exec_file_lock); 43670+ read_unlock(&grsec_exec_file_lock);
42682+ read_unlock(&tasklist_lock); 43671+ read_unlock(&tasklist_lock);
43672+ rcu_read_unlock();
43673+
43674+ if (uid)
43675+ printk(KERN_ALERT "grsec: bruteforce prevention initiated against uid %u, banning for %d minutes\n", uid, GR_USER_BAN_TIME / 60);
43676+
42683+#endif 43677+#endif
42684+ return; 43678+ return;
42685+} 43679+}
@@ -42693,9 +43687,64 @@ diff -urNp linux-2.6.38.2/grsecurity/grsec_sig.c linux-2.6.38.2/grsecurity/grsec
42693+ return; 43687+ return;
42694+} 43688+}
42695+ 43689+
42696diff -urNp linux-2.6.38.2/grsecurity/grsec_sock.c linux-2.6.38.2/grsecurity/grsec_sock.c 43690+void gr_handle_kernel_exploit(void)
42697--- linux-2.6.38.2/grsecurity/grsec_sock.c 1969-12-31 19:00:00.000000000 -0500 43691+{
42698+++ linux-2.6.38.2/grsecurity/grsec_sock.c 2011-03-21 18:31:35.000000000 -0400 43692+#ifdef CONFIG_GRKERNSEC_KERN_LOCKOUT
43693+ const struct cred *cred;
43694+ struct task_struct *tsk, *tsk2;
43695+ struct user_struct *user;
43696+ uid_t uid;
43697+
43698+ if (in_irq() || in_serving_softirq() || in_nmi())
43699+ panic("grsec: halting the system due to suspicious kernel crash caused in interrupt context");
43700+
43701+ uid = current_uid();
43702+
43703+ if (uid == 0)
43704+ panic("grsec: halting the system due to suspicious kernel crash caused by root");
43705+ else {
43706+ /* kill all the processes of this user, hold a reference
43707+ to their creds struct, and prevent them from creating
43708+ another process until system reset
43709+ */
43710+ printk(KERN_ALERT "grsec: banning user with uid %u until system restart for suspicious kernel crash\n", uid);
43711+ /* we intentionally leak this ref */
43712+ user = get_uid(current->cred->user);
43713+ if (user) {
43714+ user->banned = 1;
43715+ user->ban_expires = ~0UL;
43716+ }
43717+
43718+ read_lock(&tasklist_lock);
43719+ do_each_thread(tsk2, tsk) {
43720+ cred = __task_cred(tsk);
43721+ if (cred->uid == uid)
43722+ gr_fake_force_sig(SIGKILL, tsk);
43723+ } while_each_thread(tsk2, tsk);
43724+ read_unlock(&tasklist_lock);
43725+ }
43726+#endif
43727+}
43728+
43729+int gr_process_user_ban(void)
43730+{
43731+#if defined(CONFIG_GRKERNSEC_KERN_LOCKOUT) || defined(CONFIG_GRKERNSEC_BRUTE)
43732+ if (unlikely(current->cred->user->banned)) {
43733+ struct user_struct *user = current->cred->user;
43734+ if (user->ban_expires != ~0UL && time_after_eq(get_seconds(), user->ban_expires)) {
43735+ user->banned = 0;
43736+ user->ban_expires = 0;
43737+ free_uid(user);
43738+ } else
43739+ return -EPERM;
43740+ }
43741+#endif
43742+ return 0;
43743+
43744+}
43745diff -urNp linux-2.6.38.3/grsecurity/grsec_sock.c linux-2.6.38.3/grsecurity/grsec_sock.c
43746--- linux-2.6.38.3/grsecurity/grsec_sock.c 1969-12-31 19:00:00.000000000 -0500
43747+++ linux-2.6.38.3/grsecurity/grsec_sock.c 2011-04-17 15:57:32.000000000 -0400
42699@@ -0,0 +1,275 @@ 43748@@ -0,0 +1,275 @@
42700+#include <linux/kernel.h> 43749+#include <linux/kernel.h>
42701+#include <linux/module.h> 43750+#include <linux/module.h>
@@ -42972,9 +44021,9 @@ diff -urNp linux-2.6.38.2/grsecurity/grsec_sock.c linux-2.6.38.2/grsecurity/grse
42972+ return current_cap(); 44021+ return current_cap();
42973+#endif 44022+#endif
42974+} 44023+}
42975diff -urNp linux-2.6.38.2/grsecurity/grsec_sysctl.c linux-2.6.38.2/grsecurity/grsec_sysctl.c 44024diff -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 44025--- 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 44026+++ linux-2.6.38.3/grsecurity/grsec_sysctl.c 2011-04-17 15:57:32.000000000 -0400
42978@@ -0,0 +1,433 @@ 44027@@ -0,0 +1,433 @@
42979+#include <linux/kernel.h> 44028+#include <linux/kernel.h>
42980+#include <linux/sched.h> 44029+#include <linux/sched.h>
@@ -43409,9 +44458,9 @@ diff -urNp linux-2.6.38.2/grsecurity/grsec_sysctl.c linux-2.6.38.2/grsecurity/gr
43409+ { } 44458+ { }
43410+}; 44459+};
43411+#endif 44460+#endif
43412diff -urNp linux-2.6.38.2/grsecurity/grsec_time.c linux-2.6.38.2/grsecurity/grsec_time.c 44461diff -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 44462--- 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 44463+++ linux-2.6.38.3/grsecurity/grsec_time.c 2011-04-17 15:57:32.000000000 -0400
43415@@ -0,0 +1,16 @@ 44464@@ -0,0 +1,16 @@
43416+#include <linux/kernel.h> 44465+#include <linux/kernel.h>
43417+#include <linux/sched.h> 44466+#include <linux/sched.h>
@@ -43429,9 +44478,9 @@ diff -urNp linux-2.6.38.2/grsecurity/grsec_time.c linux-2.6.38.2/grsecurity/grse
43429+} 44478+}
43430+ 44479+
43431+EXPORT_SYMBOL(gr_log_timechange); 44480+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 44481diff -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 44482--- 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 44483+++ linux-2.6.38.3/grsecurity/grsec_tpe.c 2011-04-17 15:57:32.000000000 -0400
43435@@ -0,0 +1,39 @@ 44484@@ -0,0 +1,39 @@
43436+#include <linux/kernel.h> 44485+#include <linux/kernel.h>
43437+#include <linux/sched.h> 44486+#include <linux/sched.h>
@@ -43472,9 +44521,9 @@ diff -urNp linux-2.6.38.2/grsecurity/grsec_tpe.c linux-2.6.38.2/grsecurity/grsec
43472+#endif 44521+#endif
43473+ return 1; 44522+ return 1;
43474+} 44523+}
43475diff -urNp linux-2.6.38.2/grsecurity/grsum.c linux-2.6.38.2/grsecurity/grsum.c 44524diff -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 44525--- 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 44526+++ linux-2.6.38.3/grsecurity/grsum.c 2011-04-17 15:57:32.000000000 -0400
43478@@ -0,0 +1,61 @@ 44527@@ -0,0 +1,61 @@
43479+#include <linux/err.h> 44528+#include <linux/err.h>
43480+#include <linux/kernel.h> 44529+#include <linux/kernel.h>
@@ -43537,10 +44586,10 @@ diff -urNp linux-2.6.38.2/grsecurity/grsum.c linux-2.6.38.2/grsecurity/grsum.c
43537+ 44586+
43538+ return retval; 44587+ return retval;
43539+} 44588+}
43540diff -urNp linux-2.6.38.2/grsecurity/Kconfig linux-2.6.38.2/grsecurity/Kconfig 44589diff -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 44590--- 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 44591+++ linux-2.6.38.3/grsecurity/Kconfig 2011-04-17 15:57:32.000000000 -0400
43543@@ -0,0 +1,1020 @@ 44592@@ -0,0 +1,1045 @@
43544+# 44593+#
43545+# grecurity configuration 44594+# grecurity configuration
43546+# 44595+#
@@ -43683,6 +44732,7 @@ diff -urNp linux-2.6.38.2/grsecurity/Kconfig linux-2.6.38.2/grsecurity/Kconfig
43683+ select GRKERNSEC_MODHARDEN if (MODULES) 44732+ select GRKERNSEC_MODHARDEN if (MODULES)
43684+ select GRKERNSEC_HARDEN_PTRACE 44733+ select GRKERNSEC_HARDEN_PTRACE
43685+ select GRKERNSEC_VM86 if (X86_32) 44734+ select GRKERNSEC_VM86 if (X86_32)
44735+ select GRKERNSEC_KERN_LOCKOUT if (X86)
43686+ select PAX 44736+ select PAX
43687+ select PAX_RANDUSTACK 44737+ select PAX_RANDUSTACK
43688+ select PAX_ASLR 44738+ select PAX_ASLR
@@ -43694,7 +44744,7 @@ diff -urNp linux-2.6.38.2/grsecurity/Kconfig linux-2.6.38.2/grsecurity/Kconfig
43694+ select PAX_HAVE_ACL_FLAGS 44744+ select PAX_HAVE_ACL_FLAGS
43695+ select PAX_KERNEXEC if ((PPC || X86) && (!X86_32 || X86_WP_WORKS_OK) && !XEN) 44745+ select PAX_KERNEXEC if ((PPC || X86) && (!X86_32 || X86_WP_WORKS_OK) && !XEN)
43696+ select PAX_MEMORY_UDEREF if (X86 && !XEN) 44746+ select PAX_MEMORY_UDEREF if (X86 && !XEN)
43697+ select PAX_RANDKSTACK if (X86_TSC && !X86_64) 44747+ select PAX_RANDKSTACK if (X86_TSC && X86)
43698+ select PAX_SEGMEXEC if (X86_32) 44748+ select PAX_SEGMEXEC if (X86_32)
43699+ select PAX_PAGEEXEC 44749+ select PAX_PAGEEXEC
43700+ select PAX_EMUPLT if (ALPHA || PARISC || SPARC32 || SPARC64) 44750+ select PAX_EMUPLT if (ALPHA || PARISC || SPARC32 || SPARC64)
@@ -43735,6 +44785,7 @@ diff -urNp linux-2.6.38.2/grsecurity/Kconfig linux-2.6.38.2/grsecurity/Kconfig
43735+ - Ptrace restrictions 44785+ - Ptrace restrictions
43736+ - Restricted vm86 mode 44786+ - Restricted vm86 mode
43737+ - Restricted sysfs/debugfs 44787+ - Restricted sysfs/debugfs
44788+ - Active kernel exploit response
43738+ 44789+
43739+config GRKERNSEC_CUSTOM 44790+config GRKERNSEC_CUSTOM
43740+ bool "Custom" 44791+ bool "Custom"
@@ -43753,6 +44804,7 @@ diff -urNp linux-2.6.38.2/grsecurity/Kconfig linux-2.6.38.2/grsecurity/Kconfig
43753+ 44804+
43754+config GRKERNSEC_KMEM 44805+config GRKERNSEC_KMEM
43755+ bool "Deny writing to /dev/kmem, /dev/mem, and /dev/port" 44806+ bool "Deny writing to /dev/kmem, /dev/mem, and /dev/port"
44807+ select STRICT_DEVMEM if (X86 || ARM || TILE || S390)
43756+ help 44808+ help
43757+ If you say Y here, /dev/kmem and /dev/mem won't be allowed to 44809+ 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. 44810+ be written to via mmap or otherwise to modify the running kernel.
@@ -43819,13 +44871,18 @@ diff -urNp linux-2.6.38.2/grsecurity/Kconfig linux-2.6.38.2/grsecurity/Kconfig
43819+ bool "Deter exploit bruteforcing" 44871+ bool "Deter exploit bruteforcing"
43820+ help 44872+ help
43821+ If you say Y here, attempts to bruteforce exploits against forking 44873+ 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 44874+ 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 44875+ 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 44876+ or crashes due to an illegal instruction or other suspicious signal,
43825+ subsequent fork until the administrator is able to assess the 44877+ the parent process will be delayed 30 seconds upon every subsequent
43826+ situation and restart the daemon. It is recommended that you also 44878+ fork until the administrator is able to assess the situation and
43827+ enable signal logging in the auditing section so that logs are 44879+ restart the daemon.
43828+ generated when a process performs an illegal instruction. 44880+ In the suid/sgid case, the attempt is logged, the user has all their
44881+ processes terminated, and they are prevented from executing any further
44882+ processes for 15 minutes.
44883+ It is recommended that you also enable signal logging in the auditing
44884+ section so that logs are generated when a process triggers a suspicious
44885+ signal.
43829+ 44886+
43830+config GRKERNSEC_MODHARDEN 44887+config GRKERNSEC_MODHARDEN
43831+ bool "Harden module auto-loading" 44888+ bool "Harden module auto-loading"
@@ -43873,6 +44930,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 44930+ useful protection against local kernel exploitation of overflows
43874+ and arbitrary read/write vulnerabilities. 44931+ and arbitrary read/write vulnerabilities.
43875+ 44932+
44933+config GRKERNSEC_KERN_LOCKOUT
44934+ bool "Active kernel exploit response"
44935+ depends on X86
44936+ help
44937+ If you say Y here, when a PaX alert is triggered due to suspicious
44938+ activity in the kernel (from KERNEXEC/UDEREF/USERCOPY)
44939+ or an OOPs occurs due to bad memory accesses, instead of just
44940+ terminating the offending process (and potentially allowing
44941+ a subsequent exploit from the same user), we will take one of two
44942+ actions:
44943+ If the user was root, we will panic the system
44944+ If the user was non-root, we will log the attempt, terminate
44945+ all processes owned by the user, then prevent them from creating
44946+ any new processes until the system is restarted
44947+ This deters repeated kernel exploitation/bruteforcing attempts
44948+ and is useful for later forensics.
44949+
43876+endmenu 44950+endmenu
43877+menu "Role Based Access Control Options" 44951+menu "Role Based Access Control Options"
43878+depends on GRKERNSEC 44952+depends on GRKERNSEC
@@ -44561,9 +45635,9 @@ diff -urNp linux-2.6.38.2/grsecurity/Kconfig linux-2.6.38.2/grsecurity/Kconfig
44561+endmenu 45635+endmenu
44562+ 45636+
44563+endmenu 45637+endmenu
44564diff -urNp linux-2.6.38.2/grsecurity/Makefile linux-2.6.38.2/grsecurity/Makefile 45638diff -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 45639--- 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 45640+++ linux-2.6.38.3/grsecurity/Makefile 2011-04-17 15:57:32.000000000 -0400
44567@@ -0,0 +1,29 @@ 45641@@ -0,0 +1,29 @@
44568+# grsecurity's ACL system was originally written in 2001 by Michael Dalton 45642+# grsecurity's ACL system was originally written in 2001 by Michael Dalton
44569+# during 2001-2009 it has been completely redesigned by Brad Spengler 45643+# during 2001-2009 it has been completely redesigned by Brad Spengler
@@ -44594,9 +45668,9 @@ diff -urNp linux-2.6.38.2/grsecurity/Makefile linux-2.6.38.2/grsecurity/Makefile
44594+ @-chmod -f 700 . 45668+ @-chmod -f 700 .
44595+ @echo ' grsec: protected kernel image paths' 45669+ @echo ' grsec: protected kernel image paths'
44596+endif 45670+endif
44597diff -urNp linux-2.6.38.2/include/acpi/acoutput.h linux-2.6.38.2/include/acpi/acoutput.h 45671diff -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 45672--- 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 45673+++ linux-2.6.38.3/include/acpi/acoutput.h 2011-04-17 15:57:32.000000000 -0400
44600@@ -269,8 +269,8 @@ 45674@@ -269,8 +269,8 @@
44601 * leaving no executable debug code! 45675 * leaving no executable debug code!
44602 */ 45676 */
@@ -44608,9 +45682,9 @@ diff -urNp linux-2.6.38.2/include/acpi/acoutput.h linux-2.6.38.2/include/acpi/ac
44608 45682
44609 #endif /* ACPI_DEBUG_OUTPUT */ 45683 #endif /* ACPI_DEBUG_OUTPUT */
44610 45684
44611diff -urNp linux-2.6.38.2/include/acpi/acpi_drivers.h linux-2.6.38.2/include/acpi/acpi_drivers.h 45685diff -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 45686--- 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 45687+++ 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); 45688@@ -119,8 +119,8 @@ void pci_acpi_crs_quirks(void);
44615 Dock Station 45689 Dock Station
44616 -------------------------------------------------------------------------- */ 45690 -------------------------------------------------------------------------- */
@@ -44640,9 +45714,9 @@ diff -urNp linux-2.6.38.2/include/acpi/acpi_drivers.h linux-2.6.38.2/include/acp
44640 void *context) 45714 void *context)
44641 { 45715 {
44642 return -ENODEV; 45716 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 45717diff -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 45718--- 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 45719+++ linux-2.6.38.3/include/asm-generic/atomic-long.h 2011-04-17 15:57:32.000000000 -0400
44646@@ -22,6 +22,12 @@ 45720@@ -22,6 +22,12 @@
44647 45721
44648 typedef atomic64_t atomic_long_t; 45722 typedef atomic64_t atomic_long_t;
@@ -44935,9 +46009,9 @@ diff -urNp linux-2.6.38.2/include/asm-generic/atomic-long.h linux-2.6.38.2/inclu
44935+#endif 46009+#endif
44936+ 46010+
44937 #endif /* _ASM_GENERIC_ATOMIC_LONG_H */ 46011 #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 46012diff -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 46013--- 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 46014+++ 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_ 46015@@ -11,7 +11,7 @@ static inline dma_addr_t dma_map_single_
44942 enum dma_data_direction dir, 46016 enum dma_data_direction dir,
44943 struct dma_attrs *attrs) 46017 struct dma_attrs *attrs)
@@ -45028,9 +46102,9 @@ diff -urNp linux-2.6.38.2/include/asm-generic/dma-mapping-common.h linux-2.6.38.
45028 46102
45029 BUG_ON(!valid_dma_direction(dir)); 46103 BUG_ON(!valid_dma_direction(dir));
45030 if (ops->sync_sg_for_device) 46104 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 46105diff -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 46106--- 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 46107+++ linux-2.6.38.3/include/asm-generic/futex.h 2011-04-17 15:57:32.000000000 -0400
45034@@ -6,7 +6,7 @@ 46108@@ -6,7 +6,7 @@
45035 #include <asm/errno.h> 46109 #include <asm/errno.h>
45036 46110
@@ -45049,9 +46123,9 @@ diff -urNp linux-2.6.38.2/include/asm-generic/futex.h linux-2.6.38.2/include/asm
45049 { 46123 {
45050 return -ENOSYS; 46124 return -ENOSYS;
45051 } 46125 }
45052diff -urNp linux-2.6.38.2/include/asm-generic/int-l64.h linux-2.6.38.2/include/asm-generic/int-l64.h 46126diff -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 46127--- 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 46128+++ 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; 46129@@ -46,6 +46,8 @@ typedef unsigned int u32;
45056 typedef signed long s64; 46130 typedef signed long s64;
45057 typedef unsigned long u64; 46131 typedef unsigned long u64;
@@ -45061,9 +46135,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 46135 #define S8_C(x) x
45062 #define U8_C(x) x ## U 46136 #define U8_C(x) x ## U
45063 #define S16_C(x) x 46137 #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 46138diff -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 46139--- 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 46140+++ 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; 46141@@ -51,6 +51,8 @@ typedef unsigned int u32;
45068 typedef signed long long s64; 46142 typedef signed long long s64;
45069 typedef unsigned long long u64; 46143 typedef unsigned long long u64;
@@ -45073,9 +46147,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 46147 #define S8_C(x) x
45074 #define U8_C(x) x ## U 46148 #define U8_C(x) x ## U
45075 #define S16_C(x) x 46149 #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 46150diff -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 46151--- 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 46152+++ 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, 46153@@ -29,10 +29,11 @@ KMAP_D(16) KM_IRQ_PTE,
45080 KMAP_D(17) KM_NMI, 46154 KMAP_D(17) KM_NMI,
45081 KMAP_D(18) KM_NMI_PTE, 46155 KMAP_D(18) KM_NMI_PTE,
@@ -45089,9 +46163,9 @@ diff -urNp linux-2.6.38.2/include/asm-generic/kmap_types.h linux-2.6.38.2/includ
45089 }; 46163 };
45090 46164
45091 #undef KMAP_D 46165 #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 46166diff -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 46167--- 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 46168+++ 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) 46169@@ -447,6 +447,14 @@ static inline int pmd_write(pmd_t pmd)
45096 #endif /* __HAVE_ARCH_PMD_WRITE */ 46170 #endif /* __HAVE_ARCH_PMD_WRITE */
45097 #endif 46171 #endif
@@ -45107,9 +46181,9 @@ diff -urNp linux-2.6.38.2/include/asm-generic/pgtable.h linux-2.6.38.2/include/a
45107 #endif /* !__ASSEMBLY__ */ 46181 #endif /* !__ASSEMBLY__ */
45108 46182
45109 #endif /* _ASM_GENERIC_PGTABLE_H */ 46183 #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 46184diff -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 46185--- 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 46186+++ linux-2.6.38.3/include/asm-generic/pgtable-nopmd.h 2011-04-17 15:57:32.000000000 -0400
45113@@ -1,14 +1,19 @@ 46187@@ -1,14 +1,19 @@
45114 #ifndef _PGTABLE_NOPMD_H 46188 #ifndef _PGTABLE_NOPMD_H
45115 #define _PGTABLE_NOPMD_H 46189 #define _PGTABLE_NOPMD_H
@@ -45146,9 +46220,9 @@ diff -urNp linux-2.6.38.2/include/asm-generic/pgtable-nopmd.h linux-2.6.38.2/inc
45146 /* 46220 /*
45147 * The "pud_xxx()" functions here are trivial for a folded two-level 46221 * 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 46222 * 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 46223diff -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 46224--- 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 46225+++ linux-2.6.38.3/include/asm-generic/pgtable-nopud.h 2011-04-17 15:57:32.000000000 -0400
45152@@ -1,10 +1,15 @@ 46226@@ -1,10 +1,15 @@
45153 #ifndef _PGTABLE_NOPUD_H 46227 #ifndef _PGTABLE_NOPUD_H
45154 #define _PGTABLE_NOPUD_H 46228 #define _PGTABLE_NOPUD_H
@@ -45179,9 +46253,9 @@ diff -urNp linux-2.6.38.2/include/asm-generic/pgtable-nopud.h linux-2.6.38.2/inc
45179 /* 46253 /*
45180 * The "pgd_xxx()" functions here are trivial for a folded two-level 46254 * 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 46255 * 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 46256diff -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 46257--- 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 46258+++ linux-2.6.38.3/include/asm-generic/vmlinux.lds.h 2011-04-17 15:57:32.000000000 -0400
45185@@ -213,6 +213,7 @@ 46259@@ -213,6 +213,7 @@
45186 .rodata : AT(ADDR(.rodata) - LOAD_OFFSET) { \ 46260 .rodata : AT(ADDR(.rodata) - LOAD_OFFSET) { \
45187 VMLINUX_SYMBOL(__start_rodata) = .; \ 46261 VMLINUX_SYMBOL(__start_rodata) = .; \
@@ -45218,19 +46292,19 @@ diff -urNp linux-2.6.38.2/include/asm-generic/vmlinux.lds.h linux-2.6.38.2/inclu
45218 46292
45219 /** 46293 /**
45220 * PERCPU - define output section for percpu area, simple version 46294 * 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 46295diff -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 46296--- 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 46297+++ linux-2.6.38.3/include/drm/drm_pciids.h 2011-04-17 16:58:34.000000000 -0400
45224@@ -458,7 +458,7 @@ 46298@@ -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}, \ 46299 {0x1002, 0x9805, PCI_ANY_ID, PCI_ANY_ID, 0, 0, CHIP_PALM|RADEON_NEW_MEMMAP|RADEON_IS_IGP}, \
46300 {0x1002, 0x9806, PCI_ANY_ID, PCI_ANY_ID, 0, 0, CHIP_PALM|RADEON_NEW_MEMMAP|RADEON_IS_IGP}, \
46301 {0x1002, 0x9807, PCI_ANY_ID, PCI_ANY_ID, 0, 0, CHIP_PALM|RADEON_NEW_MEMMAP|RADEON_IS_IGP}, \
45228- {0, 0, 0} 46302- {0, 0, 0}
45229+ {0, 0, 0, 0, 0, 0} 46303+ {0, 0, 0, 0, 0, 0}
45230 46304
45231 #define r128_PCI_IDS \ 46305 #define r128_PCI_IDS \
45232 {0x1002, 0x4c45, PCI_ANY_ID, PCI_ANY_ID, 0, 0, 0}, \ 46306 {0x1002, 0x4c45, PCI_ANY_ID, PCI_ANY_ID, 0, 0, 0}, \
45233@@ -498,14 +498,14 @@ 46307@@ -500,14 +500,14 @@
45234 {0x1002, 0x5446, PCI_ANY_ID, PCI_ANY_ID, 0, 0, 0}, \ 46308 {0x1002, 0x5446, PCI_ANY_ID, PCI_ANY_ID, 0, 0, 0}, \
45235 {0x1002, 0x544C, PCI_ANY_ID, PCI_ANY_ID, 0, 0, 0}, \ 46309 {0x1002, 0x544C, PCI_ANY_ID, PCI_ANY_ID, 0, 0, 0}, \
45236 {0x1002, 0x5452, PCI_ANY_ID, PCI_ANY_ID, 0, 0, 0}, \ 46310 {0x1002, 0x5452, PCI_ANY_ID, PCI_ANY_ID, 0, 0, 0}, \
@@ -45247,7 +46321,7 @@ diff -urNp linux-2.6.38.2/include/drm/drm_pciids.h linux-2.6.38.2/include/drm/dr
45247 46321
45248 #define mach64_PCI_IDS \ 46322 #define mach64_PCI_IDS \
45249 {0x1002, 0x4749, PCI_ANY_ID, PCI_ANY_ID, 0, 0, 0}, \ 46323 {0x1002, 0x4749, PCI_ANY_ID, PCI_ANY_ID, 0, 0, 0}, \
45250@@ -528,7 +528,7 @@ 46324@@ -530,7 +530,7 @@
45251 {0x1002, 0x4c53, PCI_ANY_ID, PCI_ANY_ID, 0, 0, 0}, \ 46325 {0x1002, 0x4c53, PCI_ANY_ID, PCI_ANY_ID, 0, 0, 0}, \
45252 {0x1002, 0x4c4d, PCI_ANY_ID, PCI_ANY_ID, 0, 0, 0}, \ 46326 {0x1002, 0x4c4d, PCI_ANY_ID, PCI_ANY_ID, 0, 0, 0}, \
45253 {0x1002, 0x4c4e, PCI_ANY_ID, PCI_ANY_ID, 0, 0, 0}, \ 46327 {0x1002, 0x4c4e, PCI_ANY_ID, PCI_ANY_ID, 0, 0, 0}, \
@@ -45256,7 +46330,7 @@ diff -urNp linux-2.6.38.2/include/drm/drm_pciids.h linux-2.6.38.2/include/drm/dr
45256 46330
45257 #define sisdrv_PCI_IDS \ 46331 #define sisdrv_PCI_IDS \
45258 {0x1039, 0x0300, PCI_ANY_ID, PCI_ANY_ID, 0, 0, 0}, \ 46332 {0x1039, 0x0300, PCI_ANY_ID, PCI_ANY_ID, 0, 0, 0}, \
45259@@ -539,7 +539,7 @@ 46333@@ -541,7 +541,7 @@
45260 {0x1039, 0x7300, PCI_ANY_ID, PCI_ANY_ID, 0, 0, 0}, \ 46334 {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}, \ 46335 {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}, \ 46336 {0x18CA, 0x0042, PCI_ANY_ID, PCI_ANY_ID, 0, 0, SIS_CHIP_315}, \
@@ -45265,7 +46339,7 @@ diff -urNp linux-2.6.38.2/include/drm/drm_pciids.h linux-2.6.38.2/include/drm/dr
45265 46339
45266 #define tdfx_PCI_IDS \ 46340 #define tdfx_PCI_IDS \
45267 {0x121a, 0x0003, PCI_ANY_ID, PCI_ANY_ID, 0, 0, 0}, \ 46341 {0x121a, 0x0003, PCI_ANY_ID, PCI_ANY_ID, 0, 0, 0}, \
45268@@ -548,7 +548,7 @@ 46342@@ -550,7 +550,7 @@
45269 {0x121a, 0x0007, PCI_ANY_ID, PCI_ANY_ID, 0, 0, 0}, \ 46343 {0x121a, 0x0007, PCI_ANY_ID, PCI_ANY_ID, 0, 0, 0}, \
45270 {0x121a, 0x0009, PCI_ANY_ID, PCI_ANY_ID, 0, 0, 0}, \ 46344 {0x121a, 0x0009, PCI_ANY_ID, PCI_ANY_ID, 0, 0, 0}, \
45271 {0x121a, 0x000b, PCI_ANY_ID, PCI_ANY_ID, 0, 0, 0}, \ 46345 {0x121a, 0x000b, PCI_ANY_ID, PCI_ANY_ID, 0, 0, 0}, \
@@ -45274,7 +46348,7 @@ diff -urNp linux-2.6.38.2/include/drm/drm_pciids.h linux-2.6.38.2/include/drm/dr
45274 46348
45275 #define viadrv_PCI_IDS \ 46349 #define viadrv_PCI_IDS \
45276 {0x1106, 0x3022, PCI_ANY_ID, PCI_ANY_ID, 0, 0, 0}, \ 46350 {0x1106, 0x3022, PCI_ANY_ID, PCI_ANY_ID, 0, 0, 0}, \
45277@@ -560,14 +560,14 @@ 46351@@ -562,14 +562,14 @@
45278 {0x1106, 0x3343, PCI_ANY_ID, PCI_ANY_ID, 0, 0, 0}, \ 46352 {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}, \ 46353 {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}, \ 46354 {0x1106, 0x3157, PCI_ANY_ID, PCI_ANY_ID, 0, 0, VIA_PRO_GROUP_A}, \
@@ -45291,7 +46365,7 @@ diff -urNp linux-2.6.38.2/include/drm/drm_pciids.h linux-2.6.38.2/include/drm/dr
45291 46365
45292 #define i830_PCI_IDS \ 46366 #define i830_PCI_IDS \
45293 {0x8086, 0x3577, PCI_ANY_ID, PCI_ANY_ID, 0, 0, 0}, \ 46367 {0x8086, 0x3577, PCI_ANY_ID, PCI_ANY_ID, 0, 0, 0}, \
45294@@ -575,11 +575,11 @@ 46368@@ -577,11 +577,11 @@
45295 {0x8086, 0x3582, PCI_ANY_ID, PCI_ANY_ID, 0, 0, 0}, \ 46369 {0x8086, 0x3582, PCI_ANY_ID, PCI_ANY_ID, 0, 0, 0}, \
45296 {0x8086, 0x2572, PCI_ANY_ID, PCI_ANY_ID, 0, 0, 0}, \ 46370 {0x8086, 0x2572, PCI_ANY_ID, PCI_ANY_ID, 0, 0, 0}, \
45297 {0x8086, 0x358e, PCI_ANY_ID, PCI_ANY_ID, 0, 0, 0}, \ 46371 {0x8086, 0x358e, PCI_ANY_ID, PCI_ANY_ID, 0, 0, 0}, \
@@ -45305,7 +46379,7 @@ diff -urNp linux-2.6.38.2/include/drm/drm_pciids.h linux-2.6.38.2/include/drm/dr
45305 46379
45306 #define savage_PCI_IDS \ 46380 #define savage_PCI_IDS \
45307 {0x5333, 0x8a20, PCI_ANY_ID, PCI_ANY_ID, 0, 0, S3_SAVAGE3D}, \ 46381 {0x5333, 0x8a20, PCI_ANY_ID, PCI_ANY_ID, 0, 0, S3_SAVAGE3D}, \
45308@@ -605,10 +605,10 @@ 46382@@ -607,10 +607,10 @@
45309 {0x5333, 0x8d02, PCI_ANY_ID, PCI_ANY_ID, 0, 0, S3_TWISTER}, \ 46383 {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}, \ 46384 {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}, \ 46385 {0x5333, 0x8d04, PCI_ANY_ID, PCI_ANY_ID, 0, 0, S3_PROSAVAGEDDR}, \
@@ -45318,15 +46392,15 @@ diff -urNp linux-2.6.38.2/include/drm/drm_pciids.h linux-2.6.38.2/include/drm/dr
45318 46392
45319 #define i915_PCI_IDS \ 46393 #define i915_PCI_IDS \
45320 {0x8086, 0x3577, PCI_ANY_ID, PCI_ANY_ID, PCI_CLASS_DISPLAY_VGA << 8, 0xffff00, 0}, \ 46394 {0x8086, 0x3577, PCI_ANY_ID, PCI_ANY_ID, PCI_CLASS_DISPLAY_VGA << 8, 0xffff00, 0}, \
45321@@ -642,4 +642,4 @@ 46395@@ -644,4 +644,4 @@
45322 {0x8086, 0x0042, PCI_ANY_ID, PCI_ANY_ID, PCI_CLASS_DISPLAY_VGA << 8, 0xffff00, 0}, \ 46396 {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}, \ 46397 {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}, \ 46398 {0x8086, 0x0102, PCI_ANY_ID, PCI_ANY_ID, PCI_CLASS_DISPLAY_VGA << 8, 0xffff00, 0}, \
45325- {0, 0, 0} 46399- {0, 0, 0}
45326+ {0, 0, 0, 0, 0, 0} 46400+ {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 46401diff -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 46402--- 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 46403+++ linux-2.6.38.3/include/drm/drmP.h 2011-04-17 15:57:32.000000000 -0400
45330@@ -73,6 +73,7 @@ 46404@@ -73,6 +73,7 @@
45331 #include <linux/workqueue.h> 46405 #include <linux/workqueue.h>
45332 #include <linux/poll.h> 46406 #include <linux/poll.h>
@@ -45380,9 +46454,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 */ 46454 void *dev_private; /**< device private data */
45381 void *mm_private; 46455 void *mm_private;
45382 struct address_space *dev_mapping; 46456 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 46457diff -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 46458--- 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 46459+++ 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 { 46460@@ -39,6 +39,14 @@ enum machine_type {
45387 M_MIPS2 = 152 /* MIPS R6000/R4000 binary */ 46461 M_MIPS2 = 152 /* MIPS R6000/R4000 binary */
45388 }; 46462 };
@@ -45398,9 +46472,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) 46472 #if !defined (N_MAGIC)
45399 #define N_MAGIC(exec) ((exec).a_info & 0xffff) 46473 #define N_MAGIC(exec) ((exec).a_info & 0xffff)
45400 #endif 46474 #endif
45401diff -urNp linux-2.6.38.2/include/linux/atmdev.h linux-2.6.38.2/include/linux/atmdev.h 46475diff -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 46476--- 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 46477+++ 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 { 46478@@ -237,7 +237,7 @@ struct compat_atm_iobuf {
45405 #endif 46479 #endif
45406 46480
@@ -45410,9 +46484,9 @@ diff -urNp linux-2.6.38.2/include/linux/atmdev.h linux-2.6.38.2/include/linux/at
45410 __AAL_STAT_ITEMS 46484 __AAL_STAT_ITEMS
45411 #undef __HANDLE_ITEM 46485 #undef __HANDLE_ITEM
45412 }; 46486 };
45413diff -urNp linux-2.6.38.2/include/linux/binfmts.h linux-2.6.38.2/include/linux/binfmts.h 46487diff -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 46488--- 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 46489+++ 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 { 46490@@ -92,6 +92,7 @@ struct linux_binfmt {
45417 int (*load_binary)(struct linux_binprm *, struct pt_regs * regs); 46491 int (*load_binary)(struct linux_binprm *, struct pt_regs * regs);
45418 int (*load_shlib)(struct file *); 46492 int (*load_shlib)(struct file *);
@@ -45421,9 +46495,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 */ 46495 unsigned long min_coredump; /* minimal dump size */
45422 }; 46496 };
45423 46497
45424diff -urNp linux-2.6.38.2/include/linux/blkdev.h linux-2.6.38.2/include/linux/blkdev.h 46498diff -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 46499--- 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 46500+++ 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 46501@@ -1247,22 +1247,22 @@ queue_max_integrity_segments(struct requ
45428 #endif /* CONFIG_BLK_DEV_INTEGRITY */ 46502 #endif /* CONFIG_BLK_DEV_INTEGRITY */
45429 46503
@@ -45459,9 +46533,9 @@ diff -urNp linux-2.6.38.2/include/linux/blkdev.h linux-2.6.38.2/include/linux/bl
45459 }; 46533 };
45460 46534
45461 extern int __blkdev_driver_ioctl(struct block_device *, fmode_t, unsigned int, 46535 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 46536diff -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 46537--- 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 46538+++ linux-2.6.38.3/include/linux/byteorder/little_endian.h 2011-04-17 15:57:32.000000000 -0400
45465@@ -42,51 +42,51 @@ 46539@@ -42,51 +42,51 @@
45466 46540
45467 static inline __le64 __cpu_to_le64p(const __u64 *p) 46541 static inline __le64 __cpu_to_le64p(const __u64 *p)
@@ -45526,9 +46600,9 @@ diff -urNp linux-2.6.38.2/include/linux/byteorder/little_endian.h linux-2.6.38.2
45526 } 46600 }
45527 #define __cpu_to_le64s(x) do { (void)(x); } while (0) 46601 #define __cpu_to_le64s(x) do { (void)(x); } while (0)
45528 #define __le64_to_cpus(x) do { (void)(x); } while (0) 46602 #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 46603diff -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 46604--- 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 46605+++ linux-2.6.38.3/include/linux/cache.h 2011-04-17 15:57:32.000000000 -0400
45532@@ -16,6 +16,10 @@ 46606@@ -16,6 +16,10 @@
45533 #define __read_mostly 46607 #define __read_mostly
45534 #endif 46608 #endif
@@ -45540,9 +46614,9 @@ diff -urNp linux-2.6.38.2/include/linux/cache.h linux-2.6.38.2/include/linux/cac
45540 #ifndef ____cacheline_aligned 46614 #ifndef ____cacheline_aligned
45541 #define ____cacheline_aligned __attribute__((__aligned__(SMP_CACHE_BYTES))) 46615 #define ____cacheline_aligned __attribute__((__aligned__(SMP_CACHE_BYTES)))
45542 #endif 46616 #endif
45543diff -urNp linux-2.6.38.2/include/linux/capability.h linux-2.6.38.2/include/linux/capability.h 46617diff -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 46618--- 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 46619+++ 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 46620@@ -561,6 +561,7 @@ extern const kernel_cap_t __cap_init_eff
45547 (security_real_capable_noaudit((t), (cap)) == 0) 46621 (security_real_capable_noaudit((t), (cap)) == 0)
45548 46622
@@ -45551,9 +46625,9 @@ diff -urNp linux-2.6.38.2/include/linux/capability.h linux-2.6.38.2/include/linu
45551 46625
45552 /* audit system wants to get cap info from files as well */ 46626 /* audit system wants to get cap info from files as well */
45553 struct dentry; 46627 struct dentry;
45554diff -urNp linux-2.6.38.2/include/linux/compiler-gcc4.h linux-2.6.38.2/include/linux/compiler-gcc4.h 46628diff -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 46629--- 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 46630+++ linux-2.6.38.3/include/linux/compiler-gcc4.h 2011-04-17 15:57:32.000000000 -0400
45557@@ -54,6 +54,10 @@ 46631@@ -54,6 +54,10 @@
45558 46632
45559 #endif 46633 #endif
@@ -45565,9 +46639,9 @@ diff -urNp linux-2.6.38.2/include/linux/compiler-gcc4.h linux-2.6.38.2/include/l
45565 #endif 46639 #endif
45566 46640
45567 #if __GNUC_MINOR__ > 0 46641 #if __GNUC_MINOR__ > 0
45568diff -urNp linux-2.6.38.2/include/linux/compiler.h linux-2.6.38.2/include/linux/compiler.h 46642diff -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 46643--- 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 46644+++ 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_ 46645@@ -273,6 +273,22 @@ void ftrace_likely_update(struct ftrace_
45572 #define __cold 46646 #define __cold
45573 #endif 46647 #endif
@@ -45600,9 +46674,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)) 46674+#define ACCESS_ONCE_RW(x) (*(volatile typeof(x) *)&(x))
45601 46675
45602 #endif /* __LINUX_COMPILER_H */ 46676 #endif /* __LINUX_COMPILER_H */
45603diff -urNp linux-2.6.38.2/include/linux/cpuset.h linux-2.6.38.2/include/linux/cpuset.h 46677diff -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 46678--- 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 46679+++ 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 46680@@ -118,7 +118,7 @@ static inline void put_mems_allowed(void
45607 * nodemask. 46681 * nodemask.
45608 */ 46682 */
@@ -45612,9 +46686,9 @@ diff -urNp linux-2.6.38.2/include/linux/cpuset.h linux-2.6.38.2/include/linux/cp
45612 } 46686 }
45613 46687
45614 static inline void set_mems_allowed(nodemask_t nodemask) 46688 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 46689diff -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 46690--- 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 46691+++ 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) 46692@@ -77,7 +77,7 @@ static void free(void *where)
45619 * warnings when not needed (indeed large_malloc / large_free are not 46693 * warnings when not needed (indeed large_malloc / large_free are not
45620 * needed by inflate */ 46694 * needed by inflate */
@@ -45624,9 +46698,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) 46698 #define free(a) kfree(a)
45625 46699
45626 #define large_malloc(a) vmalloc(a) 46700 #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 46701diff -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 46702--- 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 46703+++ 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 { 46704@@ -16,40 +16,40 @@ enum dma_data_direction {
45631 }; 46705 };
45632 46706
@@ -45682,9 +46756,9 @@ diff -urNp linux-2.6.38.2/include/linux/dma-mapping.h linux-2.6.38.2/include/lin
45682 }; 46756 };
45683 46757
45684 #define DMA_BIT_MASK(n) (((n) == 64) ? ~0ULL : ((1ULL<<(n))-1)) 46758 #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 46759diff -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 46760--- 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 46761+++ 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; 46762@@ -49,6 +49,17 @@ typedef __s64 Elf64_Sxword;
45689 #define PT_GNU_EH_FRAME 0x6474e550 46763 #define PT_GNU_EH_FRAME 0x6474e550
45690 46764
@@ -45757,9 +46831,9 @@ diff -urNp linux-2.6.38.2/include/linux/elf.h linux-2.6.38.2/include/linux/elf.h
45757 46831
45758 #endif 46832 #endif
45759 46833
45760diff -urNp linux-2.6.38.2/include/linux/fs.h linux-2.6.38.2/include/linux/fs.h 46834diff -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 46835--- 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 46836+++ 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 { 46837@@ -105,6 +105,11 @@ struct inodes_stat_t {
45764 /* File was opened by fanotify and shouldn't generate fanotify events */ 46838 /* File was opened by fanotify and shouldn't generate fanotify events */
45765 #define FMODE_NONOTIFY ((__force fmode_t)0x1000000) 46839 #define FMODE_NONOTIFY ((__force fmode_t)0x1000000)
@@ -45908,9 +46982,9 @@ diff -urNp linux-2.6.38.2/include/linux/fs.h linux-2.6.38.2/include/linux/fs.h
45908 }; 46982 };
45909 46983
45910 /* 46984 /*
45911diff -urNp linux-2.6.38.2/include/linux/fs_struct.h linux-2.6.38.2/include/linux/fs_struct.h 46985diff -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 46986--- 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 46987+++ linux-2.6.38.3/include/linux/fs_struct.h 2011-04-17 15:57:32.000000000 -0400
45914@@ -6,7 +6,7 @@ 46988@@ -6,7 +6,7 @@
45915 #include <linux/seqlock.h> 46989 #include <linux/seqlock.h>
45916 46990
@@ -45920,9 +46994,9 @@ diff -urNp linux-2.6.38.2/include/linux/fs_struct.h linux-2.6.38.2/include/linux
45920 spinlock_t lock; 46994 spinlock_t lock;
45921 seqcount_t seq; 46995 seqcount_t seq;
45922 int umask; 46996 int umask;
45923diff -urNp linux-2.6.38.2/include/linux/genhd.h linux-2.6.38.2/include/linux/genhd.h 46997diff -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 46998--- 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 46999+++ linux-2.6.38.3/include/linux/genhd.h 2011-04-17 15:57:32.000000000 -0400
45926@@ -183,7 +183,7 @@ struct gendisk { 47000@@ -183,7 +183,7 @@ struct gendisk {
45927 struct kobject *slave_dir; 47001 struct kobject *slave_dir;
45928 47002
@@ -45932,9 +47006,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; 47006 struct disk_events *ev;
45933 #ifdef CONFIG_BLK_DEV_INTEGRITY 47007 #ifdef CONFIG_BLK_DEV_INTEGRITY
45934 struct blk_integrity *integrity; 47008 struct blk_integrity *integrity;
45935diff -urNp linux-2.6.38.2/include/linux/gracl.h linux-2.6.38.2/include/linux/gracl.h 47009diff -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 47010--- 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 47011+++ linux-2.6.38.3/include/linux/gracl.h 2011-04-17 15:57:32.000000000 -0400
45938@@ -0,0 +1,317 @@ 47012@@ -0,0 +1,317 @@
45939+#ifndef GR_ACL_H 47013+#ifndef GR_ACL_H
45940+#define GR_ACL_H 47014+#define GR_ACL_H
@@ -46253,9 +47327,9 @@ diff -urNp linux-2.6.38.2/include/linux/gracl.h linux-2.6.38.2/include/linux/gra
46253+ 47327+
46254+#endif 47328+#endif
46255+ 47329+
46256diff -urNp linux-2.6.38.2/include/linux/gralloc.h linux-2.6.38.2/include/linux/gralloc.h 47330diff -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 47331--- 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 47332+++ linux-2.6.38.3/include/linux/gralloc.h 2011-04-17 15:57:32.000000000 -0400
46259@@ -0,0 +1,9 @@ 47333@@ -0,0 +1,9 @@
46260+#ifndef __GRALLOC_H 47334+#ifndef __GRALLOC_H
46261+#define __GRALLOC_H 47335+#define __GRALLOC_H
@@ -46266,9 +47340,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); 47340+void *acl_alloc_num(unsigned long num, unsigned long len);
46267+ 47341+
46268+#endif 47342+#endif
46269diff -urNp linux-2.6.38.2/include/linux/grdefs.h linux-2.6.38.2/include/linux/grdefs.h 47343diff -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 47344--- 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 47345+++ linux-2.6.38.3/include/linux/grdefs.h 2011-04-17 15:57:32.000000000 -0400
46272@@ -0,0 +1,139 @@ 47346@@ -0,0 +1,139 @@
46273+#ifndef GRDEFS_H 47347+#ifndef GRDEFS_H
46274+#define GRDEFS_H 47348+#define GRDEFS_H
@@ -46409,10 +47483,10 @@ diff -urNp linux-2.6.38.2/include/linux/grdefs.h linux-2.6.38.2/include/linux/gr
46409+}; 47483+};
46410+ 47484+
46411+#endif 47485+#endif
46412diff -urNp linux-2.6.38.2/include/linux/grinternal.h linux-2.6.38.2/include/linux/grinternal.h 47486diff -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 47487--- 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 47488+++ linux-2.6.38.3/include/linux/grinternal.h 2011-04-17 15:57:32.000000000 -0400
46415@@ -0,0 +1,217 @@ 47489@@ -0,0 +1,219 @@
46416+#ifndef __GRINTERNAL_H 47490+#ifndef __GRINTERNAL_H
46417+#define __GRINTERNAL_H 47491+#define __GRINTERNAL_H
46418+ 47492+
@@ -46569,6 +47643,7 @@ diff -urNp linux-2.6.38.2/include/linux/grinternal.h linux-2.6.38.2/include/linu
46569+ GR_STR_INT, 47643+ GR_STR_INT,
46570+ GR_TWO_STR_INT, 47644+ GR_TWO_STR_INT,
46571+ GR_TWO_INT, 47645+ GR_TWO_INT,
47646+ GR_TWO_U64,
46572+ GR_THREE_INT, 47647+ GR_THREE_INT,
46573+ GR_FIVE_INT_TWO_STR, 47648+ GR_FIVE_INT_TWO_STR,
46574+ GR_TWO_STR, 47649+ GR_TWO_STR,
@@ -46604,6 +47679,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) 47679+#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) 47680+#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) 47681+#define gr_log_int_int(audit, msg, num1, num2) gr_log_varargs(audit, msg, GR_TWO_INT, num1, num2)
47682+#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) 47683+#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) 47684+#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) 47685+#define gr_log_str_str(audit, msg, str1, str2) gr_log_varargs(audit, msg, GR_TWO_STR, str1, str2)
@@ -46630,10 +47706,10 @@ diff -urNp linux-2.6.38.2/include/linux/grinternal.h linux-2.6.38.2/include/linu
46630+#endif 47706+#endif
46631+ 47707+
46632+#endif 47708+#endif
46633diff -urNp linux-2.6.38.2/include/linux/grmsg.h linux-2.6.38.2/include/linux/grmsg.h 47709diff -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 47710--- 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 47711+++ linux-2.6.38.3/include/linux/grmsg.h 2011-04-17 15:57:32.000000000 -0400
46636@@ -0,0 +1,112 @@ 47712@@ -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" 47713+#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" 47714+#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 " 47715+#define GR_PTRACE_ACL_MSG "denied ptrace of %.950s(%.16s:%d) by "
@@ -46645,10 +47721,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 " 47721+#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 " 47722+#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 " 47723+#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 " 47724+#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 " 47725+#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" 47726+#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" 47727+#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 +47815,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 " 47815+#define GR_RWXMMAP_MSG "denied RWX mmap of %.950s by "
46743+#define GR_RWXMPROTECT_MSG "denied RWX mprotect of %.950s by " 47816+#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 " 47817+#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 " 47818+#define GR_VM86_MSG "denied use of vm86 by "
46747+#define GR_PTRACE_AUDIT_MSG "process %.950s(%.16s:%d) attached to via ptrace by " 47819+#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 " 47820+#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 47821diff -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 47822--- 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 47823+++ linux-2.6.38.3/include/linux/grsecurity.h 2011-04-17 15:57:32.000000000 -0400
46752@@ -0,0 +1,215 @@ 47824@@ -0,0 +1,212 @@
46753+#ifndef GR_SECURITY_H 47825+#ifndef GR_SECURITY_H
46754+#define GR_SECURITY_H 47826+#define GR_SECURITY_H
46755+#include <linux/fs.h> 47827+#include <linux/fs.h>
@@ -46775,8 +47847,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." 47847+#error "CONFIG_PAX enabled, but no PaX options are enabled."
46776+#endif 47848+#endif
46777+ 47849+
46778+void gr_handle_brute_attach(struct task_struct *p); 47850+void gr_handle_brute_attach(struct task_struct *p, unsigned long mm_flags);
46779+void gr_handle_brute_check(void); 47851+void gr_handle_brute_check(void);
47852+void gr_handle_kernel_exploit(void);
47853+int gr_process_user_ban(void);
46780+ 47854+
46781+char gr_roletype_to_char(void); 47855+char gr_roletype_to_char(void);
46782+ 47856+
@@ -46952,22 +48026,17 @@ diff -urNp linux-2.6.38.2/include/linux/grsecurity.h linux-2.6.38.2/include/linu
46952+ 48026+
46953+#ifdef CONFIG_GRKERNSEC 48027+#ifdef CONFIG_GRKERNSEC
46954+void task_grsec_rbac(struct seq_file *m, struct task_struct *p); 48028+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); 48029+void gr_handle_vm86(void);
46957+void gr_handle_mem_write(void); 48030+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+ 48031+
46963+extern int grsec_enable_dmesg; 48032+extern int grsec_enable_dmesg;
46964+extern int grsec_disable_privio; 48033+extern int grsec_disable_privio;
46965+#endif 48034+#endif
46966+ 48035+
46967+#endif 48036+#endif
46968diff -urNp linux-2.6.38.2/include/linux/grsock.h linux-2.6.38.2/include/linux/grsock.h 48037diff -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 48038--- 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 48039+++ linux-2.6.38.3/include/linux/grsock.h 2011-04-17 15:57:32.000000000 -0400
46971@@ -0,0 +1,19 @@ 48040@@ -0,0 +1,19 @@
46972+#ifndef __GRSOCK_H 48041+#ifndef __GRSOCK_H
46973+#define __GRSOCK_H 48042+#define __GRSOCK_H
@@ -46988,9 +48057,9 @@ diff -urNp linux-2.6.38.2/include/linux/grsock.h linux-2.6.38.2/include/linux/gr
46988+ const int protocol); 48057+ const int protocol);
46989+ 48058+
46990+#endif 48059+#endif
46991diff -urNp linux-2.6.38.2/include/linux/highmem.h linux-2.6.38.2/include/linux/highmem.h 48060diff -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 48061--- 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 48062+++ 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 48063@@ -185,6 +185,18 @@ static inline void clear_highpage(struct
46995 kunmap_atomic(kaddr, KM_USER0); 48064 kunmap_atomic(kaddr, KM_USER0);
46996 } 48065 }
@@ -47010,9 +48079,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, 48079 static inline void zero_user_segments(struct page *page,
47011 unsigned start1, unsigned end1, 48080 unsigned start1, unsigned end1,
47012 unsigned start2, unsigned end2) 48081 unsigned start2, unsigned end2)
47013diff -urNp linux-2.6.38.2/include/linux/init.h linux-2.6.38.2/include/linux/init.h 48082diff -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 48083--- 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 48084+++ 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 48085@@ -293,13 +293,13 @@ void __init parse_early_options(char *cm
47017 48086
47018 /* Each module must use one module_init(). */ 48087 /* Each module must use one module_init(). */
@@ -47029,9 +48098,33 @@ diff -urNp linux-2.6.38.2/include/linux/init.h linux-2.6.38.2/include/linux/init
47029 { return exitfn; } \ 48098 { return exitfn; } \
47030 void cleanup_module(void) __attribute__((alias(#exitfn))); 48099 void cleanup_module(void) __attribute__((alias(#exitfn)));
47031 48100
47032diff -urNp linux-2.6.38.2/include/linux/interrupt.h linux-2.6.38.2/include/linux/interrupt.h 48101diff -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 48102--- 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 48103+++ linux-2.6.38.3/include/linux/init_task.h 2011-04-18 18:02:13.000000000 -0400
48104@@ -83,6 +83,12 @@ extern struct group_info init_groups;
48105 #define INIT_IDS
48106 #endif
48107
48108+#ifdef CONFIG_X86
48109+#define INIT_TASK_THREAD_INFO .tinfo = INIT_THREAD_INFO,
48110+#else
48111+#define INIT_TASK_THREAD_INFO
48112+#endif
48113+
48114 /*
48115 * Because of the reduced scope of CAP_SETPCAP when filesystem
48116 * capabilities are in effect, it is safe to allow CAP_SETPCAP to
48117@@ -163,6 +169,7 @@ extern struct cred init_cred;
48118 RCU_INIT_POINTER(.cred, &init_cred), \
48119 .comm = "swapper", \
48120 .thread = INIT_THREAD, \
48121+ INIT_TASK_THREAD_INFO \
48122 .fs = &init_fs, \
48123 .files = &init_files, \
48124 .signal = &init_signals, \
48125diff -urNp linux-2.6.38.3/include/linux/interrupt.h linux-2.6.38.3/include/linux/interrupt.h
48126--- linux-2.6.38.3/include/linux/interrupt.h 2011-03-14 21:20:32.000000000 -0400
48127+++ linux-2.6.38.3/include/linux/interrupt.h 2011-04-17 15:57:32.000000000 -0400
47035@@ -393,7 +393,7 @@ enum 48128@@ -393,7 +393,7 @@ enum
47036 /* map softirq index to softirq name. update 'softirq_to_name' in 48129 /* map softirq index to softirq name. update 'softirq_to_name' in
47037 * kernel/softirq.c when adding a new softirq. 48130 * kernel/softirq.c when adding a new softirq.
@@ -47056,9 +48149,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); 48149 extern void softirq_init(void);
47057 static inline void __raise_softirq_irqoff(unsigned int nr) 48150 static inline void __raise_softirq_irqoff(unsigned int nr)
47058 { 48151 {
47059diff -urNp linux-2.6.38.2/include/linux/jbd2.h linux-2.6.38.2/include/linux/jbd2.h 48152diff -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 48153--- 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 48154+++ 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; 48155@@ -67,7 +67,7 @@ extern u8 jbd2_journal_enable_debug;
47063 } \ 48156 } \
47064 } while (0) 48157 } while (0)
@@ -47068,9 +48161,9 @@ diff -urNp linux-2.6.38.2/include/linux/jbd2.h linux-2.6.38.2/include/linux/jbd2
47068 #endif 48161 #endif
47069 48162
47070 extern void *jbd2_alloc(size_t size, gfp_t flags); 48163 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 48164diff -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 48165--- 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 48166+++ 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; 48167@@ -67,7 +67,7 @@ extern u8 journal_enable_debug;
47075 } \ 48168 } \
47076 } while (0) 48169 } while (0)
@@ -47080,9 +48173,9 @@ diff -urNp linux-2.6.38.2/include/linux/jbd.h linux-2.6.38.2/include/linux/jbd.h
47080 #endif 48173 #endif
47081 48174
47082 static inline void *jbd_alloc(size_t size, gfp_t flags) 48175 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 48176diff -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 48177--- 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 48178+++ linux-2.6.38.3/include/linux/kallsyms.h 2011-04-17 15:57:32.000000000 -0400
47086@@ -15,7 +15,8 @@ 48179@@ -15,7 +15,8 @@
47087 48180
47088 struct module; 48181 struct module;
@@ -47109,9 +48202,9 @@ diff -urNp linux-2.6.38.2/include/linux/kallsyms.h linux-2.6.38.2/include/linux/
47109 48202
47110 /* This macro allows us to keep printk typechecking */ 48203 /* This macro allows us to keep printk typechecking */
47111 static void __check_printsym_format(const char *fmt, ...) 48204 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 48205diff -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 48206--- 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 48207+++ 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 { 48208@@ -269,22 +269,22 @@ struct kgdb_arch {
47116 */ 48209 */
47117 struct kgdb_io { 48210 struct kgdb_io {
@@ -47145,9 +48238,21 @@ diff -urNp linux-2.6.38.2/include/linux/kgdb.h linux-2.6.38.2/include/linux/kgdb
47145 48238
47146 extern int kgdb_hex2long(char **ptr, unsigned long *long_val); 48239 extern int kgdb_hex2long(char **ptr, unsigned long *long_val);
47147 extern char *kgdb_mem2hex(char *mem, char *buf, int count); 48240 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 48241diff -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 48242--- 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 48243+++ linux-2.6.38.3/include/linux/kmod.h 2011-04-17 15:57:32.000000000 -0400
48244@@ -33,6 +33,8 @@ extern char modprobe_path[]; /* for sysc
48245 * usually useless though. */
48246 extern int __request_module(bool wait, const char *name, ...) \
48247 __attribute__((format(printf, 2, 3)));
48248+extern int ___request_module(bool wait, char *param_name, const char *name, ...) \
48249+ __attribute__((format(printf, 3, 4)));
48250 #define request_module(mod...) __request_module(true, mod)
48251 #define request_module_nowait(mod...) __request_module(false, mod)
48252 #define try_then_request_module(x, mod...) \
48253diff -urNp linux-2.6.38.3/include/linux/kvm_host.h linux-2.6.38.3/include/linux/kvm_host.h
48254--- linux-2.6.38.3/include/linux/kvm_host.h 2011-03-14 21:20:32.000000000 -0400
48255+++ 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 48256@@ -288,7 +288,7 @@ void kvm_vcpu_uninit(struct kvm_vcpu *vc
47152 void vcpu_load(struct kvm_vcpu *vcpu); 48257 void vcpu_load(struct kvm_vcpu *vcpu);
47153 void vcpu_put(struct kvm_vcpu *vcpu); 48258 void vcpu_put(struct kvm_vcpu *vcpu);
@@ -47166,9 +48271,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); 48271 void kvm_arch_exit(void);
47167 48272
47168 int kvm_arch_vcpu_init(struct kvm_vcpu *vcpu); 48273 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 48274diff -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 48275--- 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 48276+++ linux-2.6.38.3/include/linux/libata.h 2011-04-17 15:57:32.000000000 -0400
47172@@ -65,11 +65,11 @@ 48277@@ -65,11 +65,11 @@
47173 #ifdef ATA_VERBOSE_DEBUG 48278 #ifdef ATA_VERBOSE_DEBUG
47174 #define VPRINTK(fmt, args...) printk(KERN_ERR "%s: " fmt, __func__, ## args) 48279 #define VPRINTK(fmt, args...) printk(KERN_ERR "%s: " fmt, __func__, ## args)
@@ -47234,9 +48339,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); 48339 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); 48340 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); 48341 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 48342diff -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 48343--- 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 48344+++ 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; 48345@@ -23,13 +23,13 @@ struct svc_rqst;
47241 * This is the set of functions for lockd->nfsd communication 48346 * This is the set of functions for lockd->nfsd communication
47242 */ 48347 */
@@ -47254,9 +48359,9 @@ diff -urNp linux-2.6.38.2/include/linux/lockd/bind.h linux-2.6.38.2/include/linu
47254 48359
47255 /* 48360 /*
47256 * Similar to nfs_client_initdata, but without the NFS-specific 48361 * 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 48362diff -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 48363--- 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 48364+++ 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 48365@@ -113,7 +113,14 @@ extern unsigned int kobjsize(const void
47261 48366
47262 #define VM_CAN_NONLINEAR 0x08000000 /* Has ->fault & does nonlinear pages */ 48367 #define VM_CAN_NONLINEAR 0x08000000 /* Has ->fault & does nonlinear pages */
@@ -47357,9 +48462,9 @@ diff -urNp linux-2.6.38.2/include/linux/mm.h linux-2.6.38.2/include/linux/mm.h
47357+ 48462+
47358 #endif /* __KERNEL__ */ 48463 #endif /* __KERNEL__ */
47359 #endif /* _LINUX_MM_H */ 48464 #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 48465diff -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 48466--- 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 48467+++ 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 { 48468@@ -183,6 +183,8 @@ struct vm_area_struct {
47364 #ifdef CONFIG_NUMA 48469 #ifdef CONFIG_NUMA
47365 struct mempolicy *vm_policy; /* NUMA policy for the VMA */ 48470 struct mempolicy *vm_policy; /* NUMA policy for the VMA */
@@ -47394,9 +48499,9 @@ diff -urNp linux-2.6.38.2/include/linux/mm_types.h linux-2.6.38.2/include/linux/
47394 }; 48499 };
47395 48500
47396 /* Future-safe accessor for struct mm_struct's cpu_vm_mask. */ 48501 /* 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 48502diff -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 48503--- 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 48504+++ 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 48505@@ -255,12 +255,12 @@ static inline void mmu_notifier_mm_destr
47401 */ 48506 */
47402 #define ptep_clear_flush_notify(__vma, __address, __ptep) \ 48507 #define ptep_clear_flush_notify(__vma, __address, __ptep) \
@@ -47413,9 +48518,9 @@ diff -urNp linux-2.6.38.2/include/linux/mmu_notifier.h linux-2.6.38.2/include/li
47413 }) 48518 })
47414 48519
47415 #define pmdp_clear_flush_notify(__vma, __address, __pmdp) \ 48520 #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 48521diff -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 48522--- 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 48523+++ linux-2.6.38.3/include/linux/mmzone.h 2011-04-17 15:57:32.000000000 -0400
47419@@ -355,7 +355,7 @@ struct zone { 48524@@ -355,7 +355,7 @@ struct zone {
47420 unsigned long flags; /* zone flags, see below */ 48525 unsigned long flags; /* zone flags, see below */
47421 48526
@@ -47425,9 +48530,9 @@ diff -urNp linux-2.6.38.2/include/linux/mmzone.h linux-2.6.38.2/include/linux/mm
47425 48530
47426 /* 48531 /*
47427 * The target ratio of ACTIVE_ANON to INACTIVE_ANON pages on 48532 * 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 48533diff -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 48534--- 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 48535+++ linux-2.6.38.3/include/linux/mod_devicetable.h 2011-04-17 15:57:32.000000000 -0400
47431@@ -12,7 +12,7 @@ 48536@@ -12,7 +12,7 @@
47432 typedef unsigned long kernel_ulong_t; 48537 typedef unsigned long kernel_ulong_t;
47433 #endif 48538 #endif
@@ -47446,9 +48551,9 @@ diff -urNp linux-2.6.38.2/include/linux/mod_devicetable.h linux-2.6.38.2/include
47446 48551
47447 struct hid_device_id { 48552 struct hid_device_id {
47448 __u16 bus; 48553 __u16 bus;
47449diff -urNp linux-2.6.38.2/include/linux/module.h linux-2.6.38.2/include/linux/module.h 48554diff -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 48555--- 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 48556+++ linux-2.6.38.3/include/linux/module.h 2011-04-17 15:57:32.000000000 -0400
47452@@ -324,19 +324,16 @@ struct module 48557@@ -324,19 +324,16 @@ struct module
47453 int (*init)(void); 48558 int (*init)(void);
47454 48559
@@ -47524,9 +48629,9 @@ diff -urNp linux-2.6.38.2/include/linux/module.h linux-2.6.38.2/include/linux/mo
47524 } 48629 }
47525 48630
47526 /* Search for module by name: must hold module_mutex. */ 48631 /* 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 48632diff -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 48633--- 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 48634+++ 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 48635@@ -20,9 +20,21 @@ unsigned int arch_mod_section_prepend(st
47531 sections. Returns NULL on failure. */ 48636 sections. Returns NULL on failure. */
47532 void *module_alloc(unsigned long size); 48637 void *module_alloc(unsigned long size);
@@ -47549,9 +48654,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 48654 /* Apply the given relocation to the (simplified) ELF. Return -error
47550 or 0. */ 48655 or 0. */
47551 int apply_relocate(Elf_Shdr *sechdrs, 48656 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 48657diff -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 48658--- 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 48659+++ 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 48660@@ -255,7 +255,7 @@ static inline void __kernel_param_unlock
47556 * @len is usually just sizeof(string). 48661 * @len is usually just sizeof(string).
47557 */ 48662 */
@@ -47570,9 +48675,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, \ 48675 = { ARRAY_SIZE(array), nump, &param_ops_##type, \
47571 sizeof(array[0]), array }; \ 48676 sizeof(array[0]), array }; \
47572 __module_param_call(MODULE_PARAM_PREFIX, name, \ 48677 __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 48678diff -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 48679--- 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 48680+++ linux-2.6.38.3/include/linux/mutex.h 2011-04-17 17:44:37.000000000 -0400
48681@@ -51,7 +51,7 @@ struct mutex {
48682 spinlock_t wait_lock;
48683 struct list_head wait_list;
48684 #if defined(CONFIG_DEBUG_MUTEXES) || defined(CONFIG_SMP)
48685- struct thread_info *owner;
48686+ struct task_struct *owner;
48687 #endif
48688 #ifdef CONFIG_DEBUG_MUTEXES
48689 const char *name;
48690diff -urNp linux-2.6.38.3/include/linux/namei.h linux-2.6.38.3/include/linux/namei.h
48691--- linux-2.6.38.3/include/linux/namei.h 2011-03-14 21:20:32.000000000 -0400
48692+++ linux-2.6.38.3/include/linux/namei.h 2011-04-17 15:57:32.000000000 -0400
47576@@ -25,7 +25,7 @@ struct nameidata { 48693@@ -25,7 +25,7 @@ struct nameidata {
47577 unsigned seq; 48694 unsigned seq;
47578 int last_type; 48695 int last_type;
@@ -47597,9 +48714,9 @@ diff -urNp linux-2.6.38.2/include/linux/namei.h linux-2.6.38.2/include/linux/nam
47597 { 48714 {
47598 return nd->saved_names[nd->depth]; 48715 return nd->saved_names[nd->depth];
47599 } 48716 }
47600diff -urNp linux-2.6.38.2/include/linux/netfilter/xt_gradm.h linux-2.6.38.2/include/linux/netfilter/xt_gradm.h 48717diff -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 48718--- 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 48719+++ linux-2.6.38.3/include/linux/netfilter/xt_gradm.h 2011-04-17 15:57:32.000000000 -0400
47603@@ -0,0 +1,9 @@ 48720@@ -0,0 +1,9 @@
47604+#ifndef _LINUX_NETFILTER_XT_GRADM_H 48721+#ifndef _LINUX_NETFILTER_XT_GRADM_H
47605+#define _LINUX_NETFILTER_XT_GRADM_H 1 48722+#define _LINUX_NETFILTER_XT_GRADM_H 1
@@ -47610,9 +48727,9 @@ diff -urNp linux-2.6.38.2/include/linux/netfilter/xt_gradm.h linux-2.6.38.2/incl
47610+}; 48727+};
47611+ 48728+
47612+#endif 48729+#endif
47613diff -urNp linux-2.6.38.2/include/linux/oprofile.h linux-2.6.38.2/include/linux/oprofile.h 48730diff -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 48731--- 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 48732+++ 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 48733@@ -132,9 +132,9 @@ int oprofilefs_create_ulong(struct super
47617 int oprofilefs_create_ro_ulong(struct super_block * sb, struct dentry * root, 48734 int oprofilefs_create_ro_ulong(struct super_block * sb, struct dentry * root,
47618 char const * name, ulong * val); 48735 char const * name, ulong * val);
@@ -47625,9 +48742,21 @@ diff -urNp linux-2.6.38.2/include/linux/oprofile.h linux-2.6.38.2/include/linux/
47625 48742
47626 /** create a directory */ 48743 /** create a directory */
47627 struct dentry * oprofilefs_mkdir(struct super_block * sb, struct dentry * root, 48744 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 48745diff -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 48746--- 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 48747+++ linux-2.6.38.3/include/linux/pid.h 2011-04-18 19:21:21.000000000 -0400
48748@@ -117,7 +117,7 @@ extern struct pid *find_vpid(int nr);
48749 */
48750 extern struct pid *find_get_pid(int nr);
48751 extern struct pid *find_ge_pid(int nr, struct pid_namespace *);
48752-int next_pidmap(struct pid_namespace *pid_ns, int last);
48753+int next_pidmap(struct pid_namespace *pid_ns, unsigned int last);
48754
48755 extern struct pid *alloc_pid(struct pid_namespace *ns);
48756 extern void free_pid(struct pid *pid);
48757diff -urNp linux-2.6.38.3/include/linux/pipe_fs_i.h linux-2.6.38.3/include/linux/pipe_fs_i.h
48758--- linux-2.6.38.3/include/linux/pipe_fs_i.h 2011-03-14 21:20:32.000000000 -0400
48759+++ 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 { 48760@@ -46,9 +46,9 @@ struct pipe_buffer {
47632 struct pipe_inode_info { 48761 struct pipe_inode_info {
47633 wait_queue_head_t wait; 48762 wait_queue_head_t wait;
@@ -47641,9 +48770,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; 48770 unsigned int r_counter;
47642 unsigned int w_counter; 48771 unsigned int w_counter;
47643 struct page *tmp_page; 48772 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 48773diff -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 48774--- 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 48775+++ 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 48776@@ -89,7 +89,7 @@ static inline bool pm_runtime_enabled(st
47648 48777
47649 static inline void pm_runtime_mark_last_busy(struct device *dev) 48778 static inline void pm_runtime_mark_last_busy(struct device *dev)
@@ -47653,9 +48782,9 @@ diff -urNp linux-2.6.38.2/include/linux/pm_runtime.h linux-2.6.38.2/include/linu
47653 } 48782 }
47654 48783
47655 #else /* !CONFIG_PM_RUNTIME */ 48784 #else /* !CONFIG_PM_RUNTIME */
47656diff -urNp linux-2.6.38.2/include/linux/poison.h linux-2.6.38.2/include/linux/poison.h 48785diff -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 48786--- 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 48787+++ linux-2.6.38.3/include/linux/poison.h 2011-04-17 15:57:32.000000000 -0400
47659@@ -19,8 +19,8 @@ 48788@@ -19,8 +19,8 @@
47660 * under normal circumstances, used to verify that nobody uses 48789 * under normal circumstances, used to verify that nobody uses
47661 * non-initialized list entries. 48790 * non-initialized list entries.
@@ -47667,9 +48796,9 @@ diff -urNp linux-2.6.38.2/include/linux/poison.h linux-2.6.38.2/include/linux/po
47667 48796
47668 /********** include/linux/timer.h **********/ 48797 /********** include/linux/timer.h **********/
47669 /* 48798 /*
47670diff -urNp linux-2.6.38.2/include/linux/proc_fs.h linux-2.6.38.2/include/linux/proc_fs.h 48799diff -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 48800--- 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 48801+++ 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 48802@@ -155,6 +155,19 @@ static inline struct proc_dir_entry *pro
47674 return proc_create_data(name, mode, parent, proc_fops, NULL); 48803 return proc_create_data(name, mode, parent, proc_fops, NULL);
47675 } 48804 }
@@ -47690,9 +48819,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, 48819 static inline struct proc_dir_entry *create_proc_read_entry(const char *name,
47691 mode_t mode, struct proc_dir_entry *base, 48820 mode_t mode, struct proc_dir_entry *base,
47692 read_proc_t *read_proc, void * data) 48821 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 48822diff -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 48823--- 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 48824+++ 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_ 48825@@ -115,10 +115,10 @@ extern void __ptrace_unlink(struct task_
47697 extern void exit_ptrace(struct task_struct *tracer); 48826 extern void exit_ptrace(struct task_struct *tracer);
47698 #define PTRACE_MODE_READ 1 48827 #define PTRACE_MODE_READ 1
@@ -47706,9 +48835,9 @@ diff -urNp linux-2.6.38.2/include/linux/ptrace.h linux-2.6.38.2/include/linux/pt
47706 48835
47707 static inline int ptrace_reparented(struct task_struct *child) 48836 static inline int ptrace_reparented(struct task_struct *child)
47708 { 48837 {
47709diff -urNp linux-2.6.38.2/include/linux/random.h linux-2.6.38.2/include/linux/random.h 48838diff -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 48839--- 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 48840+++ 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); 48841@@ -80,12 +80,17 @@ void srandom32(u32 seed);
47713 48842
47714 u32 prandom32(struct rnd_state *); 48843 u32 prandom32(struct rnd_state *);
@@ -47728,9 +48857,9 @@ diff -urNp linux-2.6.38.2/include/linux/random.h linux-2.6.38.2/include/linux/ra
47728 } 48857 }
47729 48858
47730 /** 48859 /**
47731diff -urNp linux-2.6.38.2/include/linux/reiserfs_fs.h linux-2.6.38.2/include/linux/reiserfs_fs.h 48860diff -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 48861--- 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 48862+++ 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 48863@@ -1403,7 +1403,7 @@ static inline loff_t max_reiserfs_offset
47735 #define REISERFS_USER_MEM 1 /* reiserfs user memory mode */ 48864 #define REISERFS_USER_MEM 1 /* reiserfs user memory mode */
47736 48865
@@ -47777,9 +48906,9 @@ diff -urNp linux-2.6.38.2/include/linux/reiserfs_fs.h linux-2.6.38.2/include/lin
47777 48906
47778 #define op_bytes_number(ih,bsize) item_ops[le_ih_k_type (ih)]->bytes_number (ih, bsize) 48907 #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) 48908 #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 48909diff -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 48910--- 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 48911+++ 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 { 48912@@ -386,7 +386,7 @@ struct reiserfs_sb_info {
47784 /* Comment? -Hans */ 48913 /* Comment? -Hans */
47785 wait_queue_head_t s_wait; 48914 wait_queue_head_t s_wait;
@@ -47789,9 +48918,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 48918 // tree gets re-balanced
47790 unsigned long s_properties; /* File system properties. Currently holds 48919 unsigned long s_properties; /* File system properties. Currently holds
47791 on-disk FS format */ 48920 on-disk FS format */
47792diff -urNp linux-2.6.38.2/include/linux/rmap.h linux-2.6.38.2/include/linux/rmap.h 48921diff -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 48922--- 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 48923+++ 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 48924@@ -145,8 +145,8 @@ static inline void anon_vma_unlock(struc
47796 void anon_vma_init(void); /* create anon_vma_cachep */ 48925 void anon_vma_init(void); /* create anon_vma_cachep */
47797 int anon_vma_prepare(struct vm_area_struct *); 48926 int anon_vma_prepare(struct vm_area_struct *);
@@ -47803,9 +48932,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 *); 48932 void __anon_vma_link(struct vm_area_struct *);
47804 void anon_vma_free(struct anon_vma *); 48933 void anon_vma_free(struct anon_vma *);
47805 48934
47806diff -urNp linux-2.6.38.2/include/linux/sched.h linux-2.6.38.2/include/linux/sched.h 48935diff -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 48936--- 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 48937+++ 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; 48938@@ -99,6 +99,7 @@ struct robust_list_head;
47810 struct bio_list; 48939 struct bio_list;
47811 struct fs_struct; 48940 struct fs_struct;
@@ -47814,6 +48943,15 @@ diff -urNp linux-2.6.38.2/include/linux/sched.h linux-2.6.38.2/include/linux/sch
47814 48943
47815 /* 48944 /*
47816 * List of flags we want to share for kernel threads, 48945 * List of flags we want to share for kernel threads,
48946@@ -359,7 +360,7 @@ extern signed long schedule_timeout_inte
48947 extern signed long schedule_timeout_killable(signed long timeout);
48948 extern signed long schedule_timeout_uninterruptible(signed long timeout);
48949 asmlinkage void schedule(void);
48950-extern int mutex_spin_on_owner(struct mutex *lock, struct thread_info *owner);
48951+extern int mutex_spin_on_owner(struct mutex *lock, struct task_struct *owner);
48952
48953 struct nsproxy;
48954 struct user_namespace;
47817@@ -380,10 +381,13 @@ struct user_namespace; 48955@@ -380,10 +381,13 @@ struct user_namespace;
47818 #define DEFAULT_MAX_MAP_COUNT (USHRT_MAX - MAPCOUNT_ELF_CORE_MARGIN) 48956 #define DEFAULT_MAX_MAP_COUNT (USHRT_MAX - MAPCOUNT_ELF_CORE_MARGIN)
47819 48957
@@ -47846,16 +48984,19 @@ diff -urNp linux-2.6.38.2/include/linux/sched.h linux-2.6.38.2/include/linux/sch
47846 #ifdef CONFIG_AUDIT 48984 #ifdef CONFIG_AUDIT
47847 unsigned audit_tty; 48985 unsigned audit_tty;
47848 struct tty_audit_buf *tty_audit_buf; 48986 struct tty_audit_buf *tty_audit_buf;
47849@@ -1192,7 +1207,7 @@ enum perf_event_task_context { 48987@@ -700,6 +715,11 @@ struct user_struct {
47850 48988 struct key *session_keyring; /* UID's default session keyring */
47851 struct task_struct { 48989 #endif
47852 volatile long state; /* -1 unrunnable, 0 runnable, >0 stopped */ 48990
47853- void *stack; 48991+#if defined(CONFIG_GRKERNSEC_KERN_LOCKOUT) || defined(CONFIG_GRKERNSEC_BRUTE)
47854+ struct thread_info *stack; 48992+ unsigned int banned;
47855 atomic_t usage; 48993+ unsigned long ban_expires;
47856 unsigned int flags; /* per process flags, defined below */ 48994+#endif
47857 unsigned int ptrace; 48995+
47858@@ -1307,8 +1322,8 @@ struct task_struct { 48996 /* Hash table maintenance information */
48997 struct hlist_node uidhash_node;
48998 uid_t uid;
48999@@ -1307,8 +1327,8 @@ struct task_struct {
47859 struct list_head thread_group; 49000 struct list_head thread_group;
47860 49001
47861 struct completion *vfork_done; /* for vfork() */ 49002 struct completion *vfork_done; /* for vfork() */
@@ -47866,7 +49007,7 @@ diff -urNp linux-2.6.38.2/include/linux/sched.h linux-2.6.38.2/include/linux/sch
47866 49007
47867 cputime_t utime, stime, utimescaled, stimescaled; 49008 cputime_t utime, stime, utimescaled, stimescaled;
47868 cputime_t gtime; 49009 cputime_t gtime;
47869@@ -1324,13 +1339,6 @@ struct task_struct { 49010@@ -1324,13 +1344,6 @@ struct task_struct {
47870 struct task_cputime cputime_expires; 49011 struct task_cputime cputime_expires;
47871 struct list_head cpu_timers[3]; 49012 struct list_head cpu_timers[3];
47872 49013
@@ -47880,8 +49021,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 49021 char comm[TASK_COMM_LEN]; /* executable name excluding path
47881 - access with [gs]et_task_comm (which lock 49022 - access with [gs]et_task_comm (which lock
47882 it with task_lock()) 49023 it with task_lock())
47883@@ -1349,6 +1357,10 @@ struct task_struct { 49024@@ -1347,8 +1360,16 @@ struct task_struct {
49025 #endif
49026 /* CPU-specific state of this task */
47884 struct thread_struct thread; 49027 struct thread_struct thread;
49028+/* thread_info moved to task_struct */
49029+#ifdef CONFIG_X86
49030+ struct thread_info tinfo;
49031+#endif
47885 /* filesystem information */ 49032 /* filesystem information */
47886 struct fs_struct *fs; 49033 struct fs_struct *fs;
47887+ 49034+
@@ -47891,7 +49038,7 @@ diff -urNp linux-2.6.38.2/include/linux/sched.h linux-2.6.38.2/include/linux/sch
47891 /* open file information */ 49038 /* open file information */
47892 struct files_struct *files; 49039 struct files_struct *files;
47893 /* namespaces */ 49040 /* namespaces */
47894@@ -1395,6 +1407,11 @@ struct task_struct { 49041@@ -1395,6 +1416,11 @@ struct task_struct {
47895 struct rt_mutex_waiter *pi_blocked_on; 49042 struct rt_mutex_waiter *pi_blocked_on;
47896 #endif 49043 #endif
47897 49044
@@ -47903,7 +49050,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 49050 #ifdef CONFIG_DEBUG_MUTEXES
47904 /* mutex deadlock detection */ 49051 /* mutex deadlock detection */
47905 struct mutex_waiter *blocked_on; 49052 struct mutex_waiter *blocked_on;
47906@@ -1499,6 +1516,21 @@ struct task_struct { 49053@@ -1499,6 +1525,21 @@ struct task_struct {
47907 unsigned long default_timer_slack_ns; 49054 unsigned long default_timer_slack_ns;
47908 49055
47909 struct list_head *scm_work_list; 49056 struct list_head *scm_work_list;
@@ -47925,7 +49072,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 49072 #ifdef CONFIG_FUNCTION_GRAPH_TRACER
47926 /* Index of current stored address in ret_stack */ 49073 /* Index of current stored address in ret_stack */
47927 int curr_ret_stack; 49074 int curr_ret_stack;
47928@@ -1530,6 +1562,52 @@ struct task_struct { 49075@@ -1530,6 +1571,51 @@ struct task_struct {
47929 #endif 49076 #endif
47930 }; 49077 };
47931 49078
@@ -47972,13 +49119,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); 49119+void pax_report_fault(struct pt_regs *regs, void *pc, void *sp);
47973+void pax_report_insns(void *pc, void *sp); 49120+void pax_report_insns(void *pc, void *sp);
47974+void pax_report_refcount_overflow(struct pt_regs *regs); 49121+void pax_report_refcount_overflow(struct pt_regs *regs);
47975+void pax_report_leak_to_user(const void *ptr, unsigned long len); 49122+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+ 49123+
47978 /* Future-safe accessor for struct task_struct's cpus_allowed. */ 49124 /* Future-safe accessor for struct task_struct's cpus_allowed. */
47979 #define tsk_cpus_allowed(tsk) (&(tsk)->cpus_allowed) 49125 #define tsk_cpus_allowed(tsk) (&(tsk)->cpus_allowed)
47980 49126
47981@@ -2169,7 +2247,7 @@ extern void __cleanup_sighand(struct sig 49127@@ -1999,7 +2085,9 @@ void yield(void);
49128 extern struct exec_domain default_exec_domain;
49129
49130 union thread_union {
49131+#ifndef CONFIG_X86
49132 struct thread_info thread_info;
49133+#endif
49134 unsigned long stack[THREAD_SIZE/sizeof(long)];
49135 };
49136
49137@@ -2169,7 +2257,7 @@ extern void __cleanup_sighand(struct sig
47982 extern void exit_itimers(struct signal_struct *); 49138 extern void exit_itimers(struct signal_struct *);
47983 extern void flush_itimer_signals(void); 49139 extern void flush_itimer_signals(void);
47984 49140
@@ -47987,18 +49143,7 @@ diff -urNp linux-2.6.38.2/include/linux/sched.h linux-2.6.38.2/include/linux/sch
47987 49143
47988 extern void daemonize(const char *, ...); 49144 extern void daemonize(const char *, ...);
47989 extern int allow_signal(int); 49145 extern int allow_signal(int);
47990@@ -2294,8 +2372,8 @@ static inline void unlock_task_sighand(s 49146@@ -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 49147
48003 #endif 49148 #endif
48004 49149
@@ -48018,9 +49163,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); 49163 extern void thread_info_cache_init(void);
48019 49164
48020 #ifdef CONFIG_DEBUG_STACK_USAGE 49165 #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 49166diff -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 49167--- 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 49168+++ 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 { 49169@@ -43,7 +43,8 @@ struct screen_info {
48025 __u16 pages; /* 0x32 */ 49170 __u16 pages; /* 0x32 */
48026 __u16 vesa_attributes; /* 0x34 */ 49171 __u16 vesa_attributes; /* 0x34 */
@@ -48031,9 +49176,9 @@ diff -urNp linux-2.6.38.2/include/linux/screen_info.h linux-2.6.38.2/include/lin
48031 } __attribute__((packed)); 49176 } __attribute__((packed));
48032 49177
48033 #define VIDEO_TYPE_MDA 0x10 /* Monochrome Text Display */ 49178 #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 49179diff -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 49180--- 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 49181+++ linux-2.6.38.3/include/linux/security.h 2011-04-17 15:57:32.000000000 -0400
48037@@ -35,6 +35,7 @@ 49182@@ -35,6 +35,7 @@
48038 #include <linux/key.h> 49183 #include <linux/key.h>
48039 #include <linux/xfrm.h> 49184 #include <linux/xfrm.h>
@@ -48042,9 +49187,9 @@ diff -urNp linux-2.6.38.2/include/linux/security.h linux-2.6.38.2/include/linux/
48042 #include <net/flow.h> 49187 #include <net/flow.h>
48043 49188
48044 /* Maximum number of letters for an LSM name string */ 49189 /* 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 49190diff -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 49191--- 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 49192+++ 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 49193@@ -95,6 +95,10 @@ struct shmid_kernel /* private to the ke
48049 pid_t shm_cprid; 49194 pid_t shm_cprid;
48050 pid_t shm_lprid; 49195 pid_t shm_lprid;
@@ -48056,9 +49201,9 @@ diff -urNp linux-2.6.38.2/include/linux/shm.h linux-2.6.38.2/include/linux/shm.h
48056 }; 49201 };
48057 49202
48058 /* shm_mode upper byte flags */ 49203 /* 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 49204diff -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 49205--- 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 49206+++ 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 49207@@ -589,7 +589,7 @@ static inline struct skb_shared_hwtstamp
48063 */ 49208 */
48064 static inline int skb_queue_empty(const struct sk_buff_head *list) 49209 static inline int skb_queue_empty(const struct sk_buff_head *list)
@@ -48086,10 +49231,10 @@ diff -urNp linux-2.6.38.2/include/linux/skbuff.h linux-2.6.38.2/include/linux/sk
48086 } 49231 }
48087 49232
48088 /** 49233 /**
48089diff -urNp linux-2.6.38.2/include/linux/slab.h linux-2.6.38.2/include/linux/slab.h 49234diff -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 49235--- 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 49236+++ linux-2.6.38.3/include/linux/slab.h 2011-04-17 15:57:32.000000000 -0400
48092@@ -11,6 +11,7 @@ 49237@@ -11,12 +11,20 @@
48093 49238
48094 #include <linux/gfp.h> 49239 #include <linux/gfp.h>
48095 #include <linux/types.h> 49240 #include <linux/types.h>
@@ -48097,7 +49242,20 @@ diff -urNp linux-2.6.38.2/include/linux/slab.h linux-2.6.38.2/include/linux/slab
48097 49242
48098 /* 49243 /*
48099 * Flags to pass to kmem_cache_create(). 49244 * Flags to pass to kmem_cache_create().
48100@@ -87,10 +88,13 @@ 49245 * The ones marked DEBUG are only valid if CONFIG_SLAB_DEBUG is set.
49246 */
49247 #define SLAB_DEBUG_FREE 0x00000100UL /* DEBUG: Perform (expensive) checks on free */
49248+
49249+#ifdef CONFIG_PAX_USERCOPY
49250+#define SLAB_USERCOPY 0x00000200UL /* PaX: Allow copying objs to/from userland */
49251+#else
49252+#define SLAB_USERCOPY 0x00000000UL
49253+#endif
49254+
49255 #define SLAB_RED_ZONE 0x00000400UL /* DEBUG: Red zone objs in a cache */
49256 #define SLAB_POISON 0x00000800UL /* DEBUG: Poison objects */
49257 #define SLAB_HWCACHE_ALIGN 0x00002000UL /* Align objs on cache lines */
49258@@ -87,10 +95,13 @@
48101 * ZERO_SIZE_PTR can be passed to kfree though in the same way that NULL can. 49259 * ZERO_SIZE_PTR can be passed to kfree though in the same way that NULL can.
48102 * Both make kfree a no-op. 49260 * Both make kfree a no-op.
48103 */ 49261 */
@@ -48114,7 +49272,7 @@ diff -urNp linux-2.6.38.2/include/linux/slab.h linux-2.6.38.2/include/linux/slab
48114 49272
48115 /* 49273 /*
48116 * struct kmem_cache related prototypes 49274 * struct kmem_cache related prototypes
48117@@ -142,6 +146,7 @@ void * __must_check krealloc(const void 49275@@ -142,6 +153,7 @@ void * __must_check krealloc(const void
48118 void kfree(const void *); 49276 void kfree(const void *);
48119 void kzfree(const void *); 49277 void kzfree(const void *);
48120 size_t ksize(const void *); 49278 size_t ksize(const void *);
@@ -48122,7 +49280,7 @@ diff -urNp linux-2.6.38.2/include/linux/slab.h linux-2.6.38.2/include/linux/slab
48122 49280
48123 /* 49281 /*
48124 * Allocator specific definitions. These are mainly used to establish optimized 49282 * Allocator specific definitions. These are mainly used to establish optimized
48125@@ -334,4 +339,37 @@ static inline void *kzalloc_node(size_t 49283@@ -334,4 +346,37 @@ static inline void *kzalloc_node(size_t
48126 49284
48127 void __init kmem_cache_init_late(void); 49285 void __init kmem_cache_init_late(void);
48128 49286
@@ -48160,9 +49318,9 @@ diff -urNp linux-2.6.38.2/include/linux/slab.h linux-2.6.38.2/include/linux/slab
48160+}) 49318+})
48161+ 49319+
48162 #endif /* _LINUX_SLAB_H */ 49320 #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 49321diff -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 49322--- 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 49323+++ 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 { 49324@@ -79,7 +79,7 @@ struct kmem_cache {
48167 struct kmem_cache_order_objects max; 49325 struct kmem_cache_order_objects max;
48168 struct kmem_cache_order_objects min; 49326 struct kmem_cache_order_objects min;
@@ -48172,9 +49330,9 @@ diff -urNp linux-2.6.38.2/include/linux/slub_def.h linux-2.6.38.2/include/linux/
48172 void (*ctor)(void *); 49330 void (*ctor)(void *);
48173 int inuse; /* Offset to metadata */ 49331 int inuse; /* Offset to metadata */
48174 int align; /* Alignment */ 49332 int align; /* Alignment */
48175diff -urNp linux-2.6.38.2/include/linux/sonet.h linux-2.6.38.2/include/linux/sonet.h 49333diff -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 49334--- 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 49335+++ 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 { 49336@@ -61,7 +61,7 @@ struct sonet_stats {
48179 #include <asm/atomic.h> 49337 #include <asm/atomic.h>
48180 49338
@@ -48184,9 +49342,9 @@ diff -urNp linux-2.6.38.2/include/linux/sonet.h linux-2.6.38.2/include/linux/son
48184 __SONET_ITEMS 49342 __SONET_ITEMS
48185 #undef __HANDLE_ITEM 49343 #undef __HANDLE_ITEM
48186 }; 49344 };
48187diff -urNp linux-2.6.38.2/include/linux/sunrpc/clnt.h linux-2.6.38.2/include/linux/sunrpc/clnt.h 49345diff -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 49346--- 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 49347+++ 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 49348@@ -168,9 +168,9 @@ static inline unsigned short rpc_get_por
48191 { 49349 {
48192 switch (sap->sa_family) { 49350 switch (sap->sa_family) {
@@ -48217,9 +49375,9 @@ diff -urNp linux-2.6.38.2/include/linux/sunrpc/clnt.h linux-2.6.38.2/include/lin
48217 } 49375 }
48218 49376
48219 #endif /* __KERNEL__ */ 49377 #endif /* __KERNEL__ */
48220diff -urNp linux-2.6.38.2/include/linux/suspend.h linux-2.6.38.2/include/linux/suspend.h 49378diff -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 49379--- 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 49380+++ 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; 49381@@ -106,15 +106,15 @@ typedef int __bitwise suspend_state_t;
48224 * which require special recovery actions in that situation. 49382 * which require special recovery actions in that situation.
48225 */ 49383 */
@@ -48272,9 +49430,9 @@ diff -urNp linux-2.6.38.2/include/linux/suspend.h linux-2.6.38.2/include/linux/s
48272 }; 49430 };
48273 49431
48274 #ifdef CONFIG_HIBERNATION 49432 #ifdef CONFIG_HIBERNATION
48275diff -urNp linux-2.6.38.2/include/linux/sysctl.h linux-2.6.38.2/include/linux/sysctl.h 49433diff -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 49434--- 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 49435+++ linux-2.6.38.3/include/linux/sysctl.h 2011-04-17 15:57:32.000000000 -0400
48278@@ -155,7 +155,11 @@ enum 49436@@ -155,7 +155,11 @@ enum
48279 KERN_PANIC_ON_NMI=76, /* int: whether we will panic on an unrecovered */ 49437 KERN_PANIC_ON_NMI=76, /* int: whether we will panic on an unrecovered */
48280 }; 49438 };
@@ -48297,9 +49455,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, 49455 extern int proc_dointvec(struct ctl_table *, int,
48298 void __user *, size_t *, loff_t *); 49456 void __user *, size_t *, loff_t *);
48299 extern int proc_dointvec_minmax(struct ctl_table *, int, 49457 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 49458diff -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 49459--- 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 49460+++ 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 { 49461@@ -110,8 +110,8 @@ struct bin_attribute {
48304 #define sysfs_bin_attr_init(bin_attr) sysfs_attr_init(&(bin_attr)->attr) 49462 #define sysfs_bin_attr_init(bin_attr) sysfs_attr_init(&(bin_attr)->attr)
48305 49463
@@ -48311,9 +49469,9 @@ diff -urNp linux-2.6.38.2/include/linux/sysfs.h linux-2.6.38.2/include/linux/sys
48311 }; 49469 };
48312 49470
48313 struct sysfs_dirent; 49471 struct sysfs_dirent;
48314diff -urNp linux-2.6.38.2/include/linux/tty.h linux-2.6.38.2/include/linux/tty.h 49472diff -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 49473--- 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 49474+++ linux-2.6.38.3/include/linux/tty.h 2011-04-17 15:57:32.000000000 -0400
48317@@ -13,6 +13,8 @@ 49475@@ -13,6 +13,8 @@
48318 #include <linux/tty_driver.h> 49476 #include <linux/tty_driver.h>
48319 #include <linux/tty_ldisc.h> 49477 #include <linux/tty_ldisc.h>
@@ -48350,9 +49508,9 @@ diff -urNp linux-2.6.38.2/include/linux/tty.h linux-2.6.38.2/include/linux/tty.h
48350 49508
48351 /* n_tty.c */ 49509 /* n_tty.c */
48352 extern struct tty_ldisc_ops tty_ldisc_N_TTY; 49510 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 49511diff -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 49512--- 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 49513+++ 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 { 49514@@ -148,7 +148,7 @@ struct tty_ldisc_ops {
48357 49515
48358 struct module *owner; 49516 struct module *owner;
@@ -48362,9 +49520,9 @@ diff -urNp linux-2.6.38.2/include/linux/tty_ldisc.h linux-2.6.38.2/include/linux
48362 }; 49520 };
48363 49521
48364 struct tty_ldisc { 49522 struct tty_ldisc {
48365diff -urNp linux-2.6.38.2/include/linux/types.h linux-2.6.38.2/include/linux/types.h 49523diff -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 49524--- 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 49525+++ linux-2.6.38.3/include/linux/types.h 2011-04-17 15:57:32.000000000 -0400
48368@@ -207,10 +207,26 @@ typedef struct { 49526@@ -207,10 +207,26 @@ typedef struct {
48369 int counter; 49527 int counter;
48370 } atomic_t; 49528 } atomic_t;
@@ -48392,9 +49550,9 @@ diff -urNp linux-2.6.38.2/include/linux/types.h linux-2.6.38.2/include/linux/typ
48392 #endif 49550 #endif
48393 49551
48394 struct list_head { 49552 struct list_head {
48395diff -urNp linux-2.6.38.2/include/linux/uaccess.h linux-2.6.38.2/include/linux/uaccess.h 49553diff -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 49554--- 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 49555+++ 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_ 49556@@ -76,11 +76,11 @@ static inline unsigned long __copy_from_
48399 long ret; \ 49557 long ret; \
48400 mm_segment_t old_fs = get_fs(); \ 49558 mm_segment_t old_fs = get_fs(); \
@@ -48430,9 +49588,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); 49588+extern long notrace __probe_kernel_write(void *dst, const void *src, size_t size);
48431 49589
48432 #endif /* __LINUX_UACCESS_H__ */ 49590 #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 49591diff -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 49592--- 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 49593+++ linux-2.6.38.3/include/linux/unaligned/access_ok.h 2011-04-17 15:57:32.000000000 -0400
48436@@ -6,32 +6,32 @@ 49594@@ -6,32 +6,32 @@
48437 49595
48438 static inline u16 get_unaligned_le16(const void *p) 49596 static inline u16 get_unaligned_le16(const void *p)
@@ -48472,9 +49630,9 @@ diff -urNp linux-2.6.38.2/include/linux/unaligned/access_ok.h linux-2.6.38.2/inc
48472 } 49630 }
48473 49631
48474 static inline void put_unaligned_le16(u16 val, void *p) 49632 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 49633diff -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 49634--- 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 49635+++ 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 { 49636@@ -589,7 +589,7 @@ struct usb_mon_operations {
48479 /* void (*urb_unlink)(struct usb_bus *bus, struct urb *urb); */ 49637 /* void (*urb_unlink)(struct usb_bus *bus, struct urb *urb); */
48480 }; 49638 };
@@ -48493,9 +49651,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); 49651 void usb_mon_deregister(void);
48494 49652
48495 #else 49653 #else
48496diff -urNp linux-2.6.38.2/include/linux/vmalloc.h linux-2.6.38.2/include/linux/vmalloc.h 49654diff -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 49655--- 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 49656+++ 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 49657@@ -13,6 +13,11 @@ struct vm_area_struct; /* vma defining
48500 #define VM_MAP 0x00000004 /* vmap()ed pages */ 49658 #define VM_MAP 0x00000004 /* vmap()ed pages */
48501 #define VM_USERMAP 0x00000008 /* suitable for remap_vmalloc_range */ 49659 #define VM_USERMAP 0x00000008 /* suitable for remap_vmalloc_range */
@@ -48612,9 +49770,9 @@ diff -urNp linux-2.6.38.2/include/linux/vmalloc.h linux-2.6.38.2/include/linux/v
48612+}) 49770+})
48613+ 49771+
48614 #endif /* _LINUX_VMALLOC_H */ 49772 #endif /* _LINUX_VMALLOC_H */
48615diff -urNp linux-2.6.38.2/include/linux/vmstat.h linux-2.6.38.2/include/linux/vmstat.h 49773diff -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 49774--- 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 49775+++ 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 49776@@ -140,18 +140,18 @@ static inline void vm_events_fold_cpu(in
48619 /* 49777 /*
48620 * Zone based page accounting with per cpu differentials. 49778 * Zone based page accounting with per cpu differentials.
@@ -48678,9 +49836,9 @@ diff -urNp linux-2.6.38.2/include/linux/vmstat.h linux-2.6.38.2/include/linux/vm
48678 } 49836 }
48679 49837
48680 static inline void __dec_zone_page_state(struct page *page, 49838 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 49839diff -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 49840--- 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 49841+++ 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 { 49842@@ -38,8 +38,8 @@ struct inet_peer {
48685 */ 49843 */
48686 union { 49844 union {
@@ -48701,9 +49859,9 @@ diff -urNp linux-2.6.38.2/include/net/inetpeer.h linux-2.6.38.2/include/net/inet
48701 } 49859 }
48702 49860
48703 #endif /* _NET_INETPEER_H */ 49861 #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 49862diff -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 49863--- 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 49864+++ linux-2.6.38.3/include/net/irda/ircomm_tty.h 2011-04-17 15:57:32.000000000 -0400
48707@@ -35,6 +35,7 @@ 49865@@ -35,6 +35,7 @@
48708 #include <linux/termios.h> 49866 #include <linux/termios.h>
48709 #include <linux/timer.h> 49867 #include <linux/timer.h>
@@ -48723,9 +49881,9 @@ diff -urNp linux-2.6.38.2/include/net/irda/ircomm_tty.h linux-2.6.38.2/include/n
48723 49881
48724 /* Protect concurent access to : 49882 /* Protect concurent access to :
48725 * o self->open_count 49883 * o self->open_count
48726diff -urNp linux-2.6.38.2/include/net/neighbour.h linux-2.6.38.2/include/net/neighbour.h 49884diff -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 49885--- 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 49886+++ linux-2.6.38.3/include/net/neighbour.h 2011-04-17 15:57:32.000000000 -0400
48729@@ -118,12 +118,12 @@ struct neighbour { 49887@@ -118,12 +118,12 @@ struct neighbour {
48730 49888
48731 struct neigh_ops { 49889 struct neigh_ops {
@@ -48745,9 +49903,9 @@ diff -urNp linux-2.6.38.2/include/net/neighbour.h linux-2.6.38.2/include/net/nei
48745 }; 49903 };
48746 49904
48747 struct pneigh_entry { 49905 struct pneigh_entry {
48748diff -urNp linux-2.6.38.2/include/net/netlink.h linux-2.6.38.2/include/net/netlink.h 49906diff -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 49907--- 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 49908+++ 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 49909@@ -562,7 +562,7 @@ static inline void *nlmsg_get_pos(struct
48752 static inline void nlmsg_trim(struct sk_buff *skb, const void *mark) 49910 static inline void nlmsg_trim(struct sk_buff *skb, const void *mark)
48753 { 49911 {
@@ -48757,9 +49915,9 @@ diff -urNp linux-2.6.38.2/include/net/netlink.h linux-2.6.38.2/include/net/netli
48757 } 49915 }
48758 49916
48759 /** 49917 /**
48760diff -urNp linux-2.6.38.2/include/net/sctp/sctp.h linux-2.6.38.2/include/net/sctp/sctp.h 49918diff -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 49919--- 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 49920+++ linux-2.6.38.3/include/net/sctp/sctp.h 2011-04-17 15:57:32.000000000 -0400
48763@@ -316,9 +316,9 @@ do { \ 49921@@ -316,9 +316,9 @@ do { \
48764 49922
48765 #else /* SCTP_DEBUG */ 49923 #else /* SCTP_DEBUG */
@@ -48773,9 +49931,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 49931 #define SCTP_ENABLE_DEBUG
48774 #define SCTP_DISABLE_DEBUG 49932 #define SCTP_DISABLE_DEBUG
48775 #define SCTP_ASSERT(expr, str, func) 49933 #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 49934diff -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 49935--- 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 49936+++ 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 { 49937@@ -1382,7 +1382,7 @@ enum tcp_seq_states {
48780 struct tcp_seq_afinfo { 49938 struct tcp_seq_afinfo {
48781 char *name; 49939 char *name;
@@ -48785,9 +49943,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; 49943 struct seq_operations seq_ops;
48786 }; 49944 };
48787 49945
48788diff -urNp linux-2.6.38.2/include/net/udp.h linux-2.6.38.2/include/net/udp.h 49946diff -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 49947--- 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 49948+++ 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 { 49949@@ -223,7 +223,7 @@ struct udp_seq_afinfo {
48792 char *name; 49950 char *name;
48793 sa_family_t family; 49951 sa_family_t family;
@@ -48797,9 +49955,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; 49955 struct seq_operations seq_ops;
48798 }; 49956 };
48799 49957
48800diff -urNp linux-2.6.38.2/include/sound/ac97_codec.h linux-2.6.38.2/include/sound/ac97_codec.h 49958diff -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 49959--- 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 49960+++ linux-2.6.38.3/include/sound/ac97_codec.h 2011-04-17 15:57:32.000000000 -0400
48803@@ -419,15 +419,15 @@ 49961@@ -419,15 +419,15 @@
48804 struct snd_ac97; 49962 struct snd_ac97;
48805 49963
@@ -48823,9 +49981,9 @@ diff -urNp linux-2.6.38.2/include/sound/ac97_codec.h linux-2.6.38.2/include/soun
48823 }; 49981 };
48824 49982
48825 struct snd_ac97_bus_ops { 49983 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 49984diff -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 49985--- 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 49986+++ 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; 49987@@ -36,7 +36,7 @@ struct softirq_action;
48830 */ 49988 */
48831 TRACE_EVENT(irq_handler_entry, 49989 TRACE_EVENT(irq_handler_entry,
@@ -48844,9 +50002,9 @@ diff -urNp linux-2.6.38.2/include/trace/events/irq.h linux-2.6.38.2/include/trac
48844 50002
48845 TP_ARGS(irq, action, ret), 50003 TP_ARGS(irq, action, ret),
48846 50004
48847diff -urNp linux-2.6.38.2/include/video/uvesafb.h linux-2.6.38.2/include/video/uvesafb.h 50005diff -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 50006--- 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 50007+++ 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 { 50008@@ -177,6 +177,7 @@ struct uvesafb_par {
48851 u8 ypan; /* 0 - nothing, 1 - ypan, 2 - ywrap */ 50009 u8 ypan; /* 0 - nothing, 1 - ypan, 2 - ywrap */
48852 u8 pmi_setpal; /* PMI for palette changes */ 50010 u8 pmi_setpal; /* PMI for palette changes */
@@ -48855,9 +50013,9 @@ diff -urNp linux-2.6.38.2/include/video/uvesafb.h linux-2.6.38.2/include/video/u
48855 void *pmi_start; 50013 void *pmi_start;
48856 void *pmi_pal; 50014 void *pmi_pal;
48857 u8 *vbe_state_orig; /* 50015 u8 *vbe_state_orig; /*
48858diff -urNp linux-2.6.38.2/init/do_mounts.c linux-2.6.38.2/init/do_mounts.c 50016diff -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 50017--- 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 50018+++ 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 50019@@ -287,7 +287,7 @@ static void __init get_fs_names(char *pa
48862 50020
48863 static int __init do_mount_root(char *name, char *fs, int flags, void *data) 50021 static int __init do_mount_root(char *name, char *fs, int flags, void *data)
@@ -48897,9 +50055,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); 50055+ sys_mount((__force char __user *)".", (__force char __user *)"/", NULL, MS_MOVE, NULL);
48898 sys_chroot((const char __user __force *)"."); 50056 sys_chroot((const char __user __force *)".");
48899 } 50057 }
48900diff -urNp linux-2.6.38.2/init/do_mounts.h linux-2.6.38.2/init/do_mounts.h 50058diff -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 50059--- 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 50060+++ 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; 50061@@ -15,15 +15,15 @@ extern int root_mountflags;
48904 50062
48905 static inline int create_dev(char *name, dev_t dev) 50063 static inline int create_dev(char *name, dev_t dev)
@@ -48919,9 +50077,9 @@ diff -urNp linux-2.6.38.2/init/do_mounts.h linux-2.6.38.2/init/do_mounts.h
48919 return 0; 50077 return 0;
48920 if (!S_ISBLK(stat.st_mode)) 50078 if (!S_ISBLK(stat.st_mode))
48921 return 0; 50079 return 0;
48922diff -urNp linux-2.6.38.2/init/do_mounts_initrd.c linux-2.6.38.2/init/do_mounts_initrd.c 50080diff -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 50081--- 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 50082+++ 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) 50083@@ -44,13 +44,13 @@ static void __init handle_initrd(void)
48926 create_dev("/dev/root.old", Root_RAM0); 50084 create_dev("/dev/root.old", Root_RAM0);
48927 /* mount initrd on rootfs' /root */ 50085 /* mount initrd on rootfs' /root */
@@ -48996,9 +50154,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"); 50154+ sys_unlink((__force const char __user *)"/initrd.image");
48997 return 0; 50155 return 0;
48998 } 50156 }
48999diff -urNp linux-2.6.38.2/init/do_mounts_md.c linux-2.6.38.2/init/do_mounts_md.c 50157diff -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 50158--- 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 50159+++ 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) 50160@@ -170,7 +170,7 @@ static void __init md_setup_drive(void)
49003 partitioned ? "_d" : "", minor, 50161 partitioned ? "_d" : "", minor,
49004 md_setup_args[ent].device_names); 50162 md_setup_args[ent].device_names);
@@ -49017,9 +50175,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); 50175 sys_ioctl(fd, BLKRRPART, 0);
49018 } 50176 }
49019 sys_close(fd); 50177 sys_close(fd);
49020diff -urNp linux-2.6.38.2/init/initramfs.c linux-2.6.38.2/init/initramfs.c 50178diff -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 50179--- 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 50180+++ 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) 50181@@ -74,7 +74,7 @@ static void __init free_hash(void)
49024 } 50182 }
49025 } 50183 }
@@ -49128,9 +50286,9 @@ diff -urNp linux-2.6.38.2/init/initramfs.c linux-2.6.38.2/init/initramfs.c
49128 state = SkipIt; 50286 state = SkipIt;
49129 next_state = Reset; 50287 next_state = Reset;
49130 return 0; 50288 return 0;
49131diff -urNp linux-2.6.38.2/init/Kconfig linux-2.6.38.2/init/Kconfig 50289diff -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 50290--- 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 50291+++ linux-2.6.38.3/init/Kconfig 2011-04-17 15:57:32.000000000 -0400
49134@@ -1185,7 +1185,7 @@ config SLUB_DEBUG 50292@@ -1185,7 +1185,7 @@ config SLUB_DEBUG
49135 50293
49136 config COMPAT_BRK 50294 config COMPAT_BRK
@@ -49140,9 +50298,9 @@ diff -urNp linux-2.6.38.2/init/Kconfig linux-2.6.38.2/init/Kconfig
49140 help 50298 help
49141 Randomizing heap placement makes heap exploits harder, but it 50299 Randomizing heap placement makes heap exploits harder, but it
49142 also breaks ancient binaries (including anything libc5 based). 50300 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 50301diff -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 50302--- 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 50303+++ 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) 50304@@ -96,6 +96,8 @@ static inline void mark_rodata_ro(void)
49147 extern void tc_init(void); 50305 extern void tc_init(void);
49148 #endif 50306 #endif
@@ -49252,9 +50410,9 @@ diff -urNp linux-2.6.38.2/init/main.c linux-2.6.38.2/init/main.c
49252 /* 50410 /*
49253 * Ok, we have completed the initial bootup, and 50411 * Ok, we have completed the initial bootup, and
49254 * we're essentially up and running. Get rid of the 50412 * 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 50413diff -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 50414--- 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 50415+++ 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 50416@@ -154,6 +154,7 @@ static struct inode *mqueue_get_inode(st
49259 mq_bytes = (mq_msg_tblsz + 50417 mq_bytes = (mq_msg_tblsz +
49260 (info->attr.mq_maxmsg * info->attr.mq_msgsize)); 50418 (info->attr.mq_maxmsg * info->attr.mq_msgsize));
@@ -49263,9 +50421,9 @@ diff -urNp linux-2.6.38.2/ipc/mqueue.c linux-2.6.38.2/ipc/mqueue.c
49263 spin_lock(&mq_lock); 50421 spin_lock(&mq_lock);
49264 if (u->mq_bytes + mq_bytes < u->mq_bytes || 50422 if (u->mq_bytes + mq_bytes < u->mq_bytes ||
49265 u->mq_bytes + mq_bytes > 50423 u->mq_bytes + mq_bytes >
49266diff -urNp linux-2.6.38.2/ipc/shm.c linux-2.6.38.2/ipc/shm.c 50424diff -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 50425--- 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 50426+++ 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 50427@@ -69,6 +69,14 @@ static void shm_destroy (struct ipc_name
49270 static int sysvipc_shm_proc_show(struct seq_file *s, void *it); 50428 static int sysvipc_shm_proc_show(struct seq_file *s, void *it);
49271 #endif 50429 #endif
@@ -49327,9 +50485,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); 50485 size = i_size_read(path.dentry->d_inode);
49328 shm_unlock(shp); 50486 shm_unlock(shp);
49329 50487
49330diff -urNp linux-2.6.38.2/kernel/acct.c linux-2.6.38.2/kernel/acct.c 50488diff -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 50489--- 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 50490+++ 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 50491@@ -570,7 +570,7 @@ static void do_acct_process(struct bsd_a
49334 */ 50492 */
49335 flim = current->signal->rlim[RLIMIT_FSIZE].rlim_cur; 50493 flim = current->signal->rlim[RLIMIT_FSIZE].rlim_cur;
@@ -49339,9 +50497,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); 50497 sizeof(acct_t), &file->f_pos);
49340 current->signal->rlim[RLIMIT_FSIZE].rlim_cur = flim; 50498 current->signal->rlim[RLIMIT_FSIZE].rlim_cur = flim;
49341 set_fs(fs); 50499 set_fs(fs);
49342diff -urNp linux-2.6.38.2/kernel/capability.c linux-2.6.38.2/kernel/capability.c 50500diff -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 50501--- 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 50502+++ 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_ 50503@@ -205,6 +205,9 @@ SYSCALL_DEFINE2(capget, cap_user_header_
49346 * before modification is attempted and the application 50504 * before modification is attempted and the application
49347 * fails. 50505 * fails.
@@ -49380,9 +50538,9 @@ diff -urNp linux-2.6.38.2/kernel/capability.c linux-2.6.38.2/kernel/capability.c
49380+ 50538+
49381 EXPORT_SYMBOL(capable); 50539 EXPORT_SYMBOL(capable);
49382+EXPORT_SYMBOL(capable_nolog); 50540+EXPORT_SYMBOL(capable_nolog);
49383diff -urNp linux-2.6.38.2/kernel/compat.c linux-2.6.38.2/kernel/compat.c 50541diff -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 50542--- 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 50543+++ linux-2.6.38.3/kernel/compat.c 2011-04-17 15:57:32.000000000 -0400
49386@@ -13,6 +13,7 @@ 50544@@ -13,6 +13,7 @@
49387 50545
49388 #include <linux/linkage.h> 50546 #include <linux/linkage.h>
@@ -49391,9 +50549,9 @@ diff -urNp linux-2.6.38.2/kernel/compat.c linux-2.6.38.2/kernel/compat.c
49391 #include <linux/errno.h> 50549 #include <linux/errno.h>
49392 #include <linux/time.h> 50550 #include <linux/time.h>
49393 #include <linux/signal.h> 50551 #include <linux/signal.h>
49394diff -urNp linux-2.6.38.2/kernel/configs.c linux-2.6.38.2/kernel/configs.c 50552diff -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 50553--- 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 50554+++ 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) 50555@@ -74,8 +74,19 @@ static int __init ikconfig_init(void)
49398 struct proc_dir_entry *entry; 50556 struct proc_dir_entry *entry;
49399 50557
@@ -49414,9 +50572,9 @@ diff -urNp linux-2.6.38.2/kernel/configs.c linux-2.6.38.2/kernel/configs.c
49414 if (!entry) 50572 if (!entry)
49415 return -ENOMEM; 50573 return -ENOMEM;
49416 50574
49417diff -urNp linux-2.6.38.2/kernel/cred.c linux-2.6.38.2/kernel/cred.c 50575diff -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 50576--- 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 50577+++ 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) 50578@@ -483,6 +483,8 @@ int commit_creds(struct cred *new)
49421 50579
49422 get_cred(new); /* we will require a ref for the subj creds too */ 50580 get_cred(new); /* we will require a ref for the subj creds too */
@@ -49426,9 +50584,9 @@ diff -urNp linux-2.6.38.2/kernel/cred.c linux-2.6.38.2/kernel/cred.c
49426 /* dumpability changes */ 50584 /* dumpability changes */
49427 if (old->euid != new->euid || 50585 if (old->euid != new->euid ||
49428 old->egid != new->egid || 50586 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 50587diff -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 50588--- 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 50589+++ 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; 50590@@ -72,7 +72,7 @@ int kgdb_io_module_registered;
49433 /* Guard for recursive entry */ 50591 /* Guard for recursive entry */
49434 static int exception_level; 50592 static int exception_level;
@@ -49456,9 +50614,9 @@ diff -urNp linux-2.6.38.2/kernel/debug/debug_core.c linux-2.6.38.2/kernel/debug/
49456 { 50614 {
49457 BUG_ON(kgdb_connected); 50615 BUG_ON(kgdb_connected);
49458 50616
49459diff -urNp linux-2.6.38.2/kernel/debug/kdb/kdb_main.c linux-2.6.38.2/kernel/debug/kdb/kdb_main.c 50617diff -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 50618--- 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 50619+++ 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 50620@@ -1980,7 +1980,7 @@ static int kdb_lsmod(int argc, const cha
49463 list_for_each_entry(mod, kdb_modules, list) { 50621 list_for_each_entry(mod, kdb_modules, list) {
49464 50622
@@ -49477,9 +50635,9 @@ diff -urNp linux-2.6.38.2/kernel/debug/kdb/kdb_main.c linux-2.6.38.2/kernel/debu
49477 50635
49478 #ifdef CONFIG_MODULE_UNLOAD 50636 #ifdef CONFIG_MODULE_UNLOAD
49479 { 50637 {
49480diff -urNp linux-2.6.38.2/kernel/exit.c linux-2.6.38.2/kernel/exit.c 50638diff -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 50639--- 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 50640+++ linux-2.6.38.3/kernel/exit.c 2011-04-17 15:57:32.000000000 -0400
49483@@ -57,6 +57,10 @@ 50641@@ -57,6 +57,10 @@
49484 #include <asm/pgtable.h> 50642 #include <asm/pgtable.h>
49485 #include <asm/mmu_context.h> 50643 #include <asm/mmu_context.h>
@@ -49599,9 +50757,9 @@ diff -urNp linux-2.6.38.2/kernel/exit.c linux-2.6.38.2/kernel/exit.c
49599 exit_mm(tsk); 50757 exit_mm(tsk);
49600 50758
49601 if (group_dead) 50759 if (group_dead)
49602diff -urNp linux-2.6.38.2/kernel/fork.c linux-2.6.38.2/kernel/fork.c 50760diff -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 50761--- 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 50762+++ 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 50763@@ -280,7 +280,7 @@ static struct task_struct *dup_task_stru
49606 *stackend = STACK_END_MAGIC; /* for overflow detection */ 50764 *stackend = STACK_END_MAGIC; /* for overflow detection */
49607 50765
@@ -49898,9 +51056,9 @@ diff -urNp linux-2.6.38.2/kernel/fork.c linux-2.6.38.2/kernel/fork.c
49898 new_fs = NULL; 51056 new_fs = NULL;
49899 else 51057 else
49900 new_fs = fs; 51058 new_fs = fs;
49901diff -urNp linux-2.6.38.2/kernel/futex.c linux-2.6.38.2/kernel/futex.c 51059diff -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 51060--- 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 51061+++ linux-2.6.38.3/kernel/futex.c 2011-04-17 15:57:32.000000000 -0400
49904@@ -54,6 +54,7 @@ 51062@@ -54,6 +54,7 @@
49905 #include <linux/mount.h> 51063 #include <linux/mount.h>
49906 #include <linux/pagemap.h> 51064 #include <linux/pagemap.h>
@@ -49967,9 +51125,9 @@ diff -urNp linux-2.6.38.2/kernel/futex.c linux-2.6.38.2/kernel/futex.c
49967 if (curval == -EFAULT) 51125 if (curval == -EFAULT)
49968 futex_cmpxchg_enabled = 1; 51126 futex_cmpxchg_enabled = 1;
49969 51127
49970diff -urNp linux-2.6.38.2/kernel/futex_compat.c linux-2.6.38.2/kernel/futex_compat.c 51128diff -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 51129--- 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 51130+++ linux-2.6.38.3/kernel/futex_compat.c 2011-04-17 15:57:32.000000000 -0400
49973@@ -10,6 +10,7 @@ 51131@@ -10,6 +10,7 @@
49974 #include <linux/compat.h> 51132 #include <linux/compat.h>
49975 #include <linux/nsproxy.h> 51133 #include <linux/nsproxy.h>
@@ -50007,9 +51165,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; 51165 head = p->compat_robust_list;
50008 rcu_read_unlock(); 51166 rcu_read_unlock();
50009 } 51167 }
50010diff -urNp linux-2.6.38.2/kernel/gcov/base.c linux-2.6.38.2/kernel/gcov/base.c 51168diff -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 51169--- 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 51170+++ 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) 51171@@ -102,11 +102,6 @@ void gcov_enable_events(void)
50014 } 51172 }
50015 51173
@@ -50031,9 +51189,9 @@ diff -urNp linux-2.6.38.2/kernel/gcov/base.c linux-2.6.38.2/kernel/gcov/base.c
50031 if (prev) 51189 if (prev)
50032 prev->next = info->next; 51190 prev->next = info->next;
50033 else 51191 else
50034diff -urNp linux-2.6.38.2/kernel/hrtimer.c linux-2.6.38.2/kernel/hrtimer.c 51192diff -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 51193--- 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 51194+++ 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) 51195@@ -1371,7 +1371,7 @@ void hrtimer_peek_ahead_timers(void)
50038 local_irq_restore(flags); 51196 local_irq_restore(flags);
50039 } 51197 }
@@ -50043,9 +51201,9 @@ diff -urNp linux-2.6.38.2/kernel/hrtimer.c linux-2.6.38.2/kernel/hrtimer.c
50043 { 51201 {
50044 hrtimer_peek_ahead_timers(); 51202 hrtimer_peek_ahead_timers();
50045 } 51203 }
50046diff -urNp linux-2.6.38.2/kernel/jump_label.c linux-2.6.38.2/kernel/jump_label.c 51204diff -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 51205--- 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 51206+++ 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) 51207@@ -49,6 +49,17 @@ void jump_label_unlock(void)
50050 mutex_unlock(&jump_label_mutex); 51208 mutex_unlock(&jump_label_mutex);
50051 } 51209 }
@@ -50086,9 +51244,9 @@ diff -urNp linux-2.6.38.2/kernel/jump_label.c linux-2.6.38.2/kernel/jump_label.c
50086 iter++; 51244 iter++;
50087 } 51245 }
50088 } 51246 }
50089diff -urNp linux-2.6.38.2/kernel/kallsyms.c linux-2.6.38.2/kernel/kallsyms.c 51247diff -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 51248--- 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 51249+++ linux-2.6.38.3/kernel/kallsyms.c 2011-04-17 15:57:32.000000000 -0400
50092@@ -11,6 +11,9 @@ 51250@@ -11,6 +11,9 @@
50093 * Changed the compression method from stem compression to "table lookup" 51251 * Changed the compression method from stem compression to "table lookup"
50094 * compression (see scripts/kallsyms.c for a more complete description) 51252 * compression (see scripts/kallsyms.c for a more complete description)
@@ -50191,31 +51349,108 @@ diff -urNp linux-2.6.38.2/kernel/kallsyms.c linux-2.6.38.2/kernel/kallsyms.c
50191 if (!iter) 51349 if (!iter)
50192 return -ENOMEM; 51350 return -ENOMEM;
50193 reset_iter(iter, 0); 51351 reset_iter(iter, 0);
50194diff -urNp linux-2.6.38.2/kernel/kmod.c linux-2.6.38.2/kernel/kmod.c 51352diff -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 51353--- 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 51354+++ 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 51355@@ -65,13 +65,12 @@ char modprobe_path[KMOD_PATH_LEN] = "/sb
51356 * If module auto-loading support is disabled then this function
51357 * becomes a no-operation.
51358 */
51359-int __request_module(bool wait, const char *fmt, ...)
51360+static int ____request_module(bool wait, char *module_param, const char *fmt, va_list ap)
51361 {
51362- va_list args;
51363 char module_name[MODULE_NAME_LEN];
51364 unsigned int max_modprobes;
51365 int ret;
51366- char *argv[] = { modprobe_path, "-q", "--", module_name, NULL };
51367+ char *argv[] = { modprobe_path, "-q", "--", module_name, module_param, NULL };
51368 static char *envp[] = { "HOME=/",
51369 "TERM=linux",
51370 "PATH=/sbin:/usr/sbin:/bin:/usr/bin",
51371@@ -80,9 +79,7 @@ int __request_module(bool wait, const ch
51372 #define MAX_KMOD_CONCURRENT 50 /* Completely arbitrary value - KAO */
51373 static int kmod_loop_msg;
51374
51375- va_start(args, fmt);
51376- ret = vsnprintf(module_name, MODULE_NAME_LEN, fmt, args);
51377- va_end(args);
51378+ ret = vsnprintf(module_name, MODULE_NAME_LEN, fmt, ap);
51379 if (ret >= MODULE_NAME_LEN)
51380 return -ENAMETOOLONG;
51381
51382@@ -90,6 +87,20 @@ int __request_module(bool wait, const ch
50198 if (ret) 51383 if (ret)
50199 return ret; 51384 return ret;
50200 51385
50201+#ifdef CONFIG_GRKERNSEC_MODHARDEN 51386+#ifdef CONFIG_GRKERNSEC_MODHARDEN
50202+ /* we could do a tighter check here, but some distros 51387+ if (!current_uid()) {
50203+ are taking it upon themselves to remove CAP_SYS_MODULE 51388+ /* hack to workaround consolekit/udisks stupidity */
50204+ from even root-running apps which cause modules to be 51389+ read_lock(&tasklist_lock);
50205+ auto-loaded 51390+ if (!strcmp(current->comm, "mount") &&
50206+ */ 51391+ current->real_parent && !strncmp(current->real_parent->comm, "udisk", 5)) {
50207+ if (current_uid()) { 51392+ read_unlock(&tasklist_lock);
50208+ gr_log_nonroot_mod_load(module_name); 51393+ printk(KERN_ALERT "grsec: denied attempt to auto-load fs module %.64s by udisks\n", module_name);
50209+ return -EPERM; 51394+ return -EPERM;
51395+ }
51396+ read_unlock(&tasklist_lock);
50210+ } 51397+ }
50211+#endif 51398+#endif
50212+ 51399+
50213 /* If modprobe needs a service that is in a module, we get a recursive 51400 /* 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 51401 * loop. Limit the number of running kmod threads to max_threads/2 or
50215 * MAX_KMOD_CONCURRENT, whichever is the smaller. A cleaner method 51402 * 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 51403@@ -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 51404 atomic_dec(&kmod_concurrent);
50218+++ linux-2.6.38.2/kernel/kprobes.c 2011-03-21 18:31:35.000000000 -0400 51405 return ret;
51406 }
51407+
51408+int ___request_module(bool wait, char *module_param, const char *fmt, ...)
51409+{
51410+ va_list args;
51411+ int ret;
51412+
51413+ va_start(args, fmt);
51414+ ret = ____request_module(wait, module_param, fmt, args);
51415+ va_end(args);
51416+
51417+ return ret;
51418+}
51419+
51420+int __request_module(bool wait, const char *fmt, ...)
51421+{
51422+ va_list args;
51423+ int ret;
51424+
51425+#ifdef CONFIG_GRKERNSEC_MODHARDEN
51426+ if (current_uid()) {
51427+ char module_param[MODULE_NAME_LEN];
51428+
51429+ memset(module_param, 0, sizeof(module_param));
51430+
51431+ snprintf(module_param, sizeof(module_param) - 1, "grsec_modharden_normal%u_", current_uid());
51432+
51433+ va_start(args, fmt);
51434+ ret = ____request_module(wait, module_param, fmt, args);
51435+ va_end(args);
51436+
51437+ return ret;
51438+ }
51439+#endif
51440+
51441+ va_start(args, fmt);
51442+ ret = ____request_module(wait, NULL, fmt, args);
51443+ va_end(args);
51444+
51445+ return ret;
51446+}
51447+
51448 EXPORT_SYMBOL(__request_module);
51449 #endif /* CONFIG_MODULES */
51450
51451diff -urNp linux-2.6.38.3/kernel/kprobes.c linux-2.6.38.3/kernel/kprobes.c
51452--- linux-2.6.38.3/kernel/kprobes.c 2011-03-14 21:20:32.000000000 -0400
51453+++ 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_ 51454@@ -185,7 +185,7 @@ static kprobe_opcode_t __kprobes *__get_
50220 * kernel image and loaded module images reside. This is required 51455 * kernel image and loaded module images reside. This is required
50221 * so x86_64 can correctly handle the %rip-relative fixups. 51456 * so x86_64 can correctly handle the %rip-relative fixups.
@@ -50252,9 +51487,9 @@ diff -urNp linux-2.6.38.2/kernel/kprobes.c linux-2.6.38.2/kernel/kprobes.c
50252 51487
50253 head = &kprobe_table[i]; 51488 head = &kprobe_table[i];
50254 preempt_disable(); 51489 preempt_disable();
50255diff -urNp linux-2.6.38.2/kernel/lockdep.c linux-2.6.38.2/kernel/lockdep.c 51490diff -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 51491--- 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 51492+++ 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) 51493@@ -571,6 +571,10 @@ static int static_obj(void *obj)
50259 end = (unsigned long) &_end, 51494 end = (unsigned long) &_end,
50260 addr = (unsigned long) obj; 51495 addr = (unsigned long) obj;
@@ -50283,9 +51518,9 @@ diff -urNp linux-2.6.38.2/kernel/lockdep.c linux-2.6.38.2/kernel/lockdep.c
50283 if (very_verbose(class)) { 51518 if (very_verbose(class)) {
50284 printk("\nacquire class [%p] %s", class->key, class->name); 51519 printk("\nacquire class [%p] %s", class->key, class->name);
50285 if (class->name_version > 1) 51520 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 51521diff -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 51522--- 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 51523+++ 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 51524@@ -39,7 +39,7 @@ static void l_stop(struct seq_file *m, v
50290 51525
50291 static void print_name(struct seq_file *m, struct lock_class *class) 51526 static void print_name(struct seq_file *m, struct lock_class *class)
@@ -50295,10 +51530,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; 51530 const char *name = class->name;
50296 51531
50297 if (!name) { 51532 if (!name) {
50298diff -urNp linux-2.6.38.2/kernel/module.c linux-2.6.38.2/kernel/module.c 51533diff -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 51534--- 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 51535+++ 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 51536@@ -57,6 +57,7 @@
51537 #include <linux/kmemleak.h>
51538 #include <linux/jump_label.h>
51539 #include <linux/pfn.h>
51540+#include <linux/grsecurity.h>
51541
51542 #define CREATE_TRACE_POINTS
51543 #include <trace/events/module.h>
51544@@ -118,7 +119,8 @@ static BLOCKING_NOTIFIER_HEAD(module_not
50302 51545
50303 /* Bounds of module allocation, for speeding __module_address. 51546 /* Bounds of module allocation, for speeding __module_address.
50304 * Protected by module_mutex. */ 51547 * Protected by module_mutex. */
@@ -50308,7 +51551,7 @@ diff -urNp linux-2.6.38.2/kernel/module.c linux-2.6.38.2/kernel/module.c
50308 51551
50309 int register_module_notifier(struct notifier_block * nb) 51552 int register_module_notifier(struct notifier_block * nb)
50310 { 51553 {
50311@@ -282,7 +283,7 @@ bool each_symbol(bool (*fn)(const struct 51554@@ -282,7 +284,7 @@ bool each_symbol(bool (*fn)(const struct
50312 return true; 51555 return true;
50313 51556
50314 list_for_each_entry_rcu(mod, &modules, list) { 51557 list_for_each_entry_rcu(mod, &modules, list) {
@@ -50317,7 +51560,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, 51560 { mod->syms, mod->syms + mod->num_syms, mod->crcs,
50318 NOT_GPL_ONLY, false }, 51561 NOT_GPL_ONLY, false },
50319 { mod->gpl_syms, mod->gpl_syms + mod->num_gpl_syms, 51562 { mod->gpl_syms, mod->gpl_syms + mod->num_gpl_syms,
50320@@ -304,7 +305,7 @@ bool each_symbol(bool (*fn)(const struct 51563@@ -304,7 +306,7 @@ bool each_symbol(bool (*fn)(const struct
50321 #endif 51564 #endif
50322 }; 51565 };
50323 51566
@@ -50326,7 +51569,7 @@ diff -urNp linux-2.6.38.2/kernel/module.c linux-2.6.38.2/kernel/module.c
50326 return true; 51569 return true;
50327 } 51570 }
50328 return false; 51571 return false;
50329@@ -415,7 +416,7 @@ static inline void __percpu *mod_percpu( 51572@@ -415,7 +417,7 @@ static inline void __percpu *mod_percpu(
50330 static int percpu_modalloc(struct module *mod, 51573 static int percpu_modalloc(struct module *mod,
50331 unsigned long size, unsigned long align) 51574 unsigned long size, unsigned long align)
50332 { 51575 {
@@ -50335,7 +51578,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", 51578 printk(KERN_WARNING "%s: per-cpu alignment %li > %li\n",
50336 mod->name, align, PAGE_SIZE); 51579 mod->name, align, PAGE_SIZE);
50337 align = PAGE_SIZE; 51580 align = PAGE_SIZE;
50338@@ -1143,7 +1144,7 @@ resolve_symbol_wait(struct module *mod, 51581@@ -1143,7 +1145,7 @@ resolve_symbol_wait(struct module *mod,
50339 */ 51582 */
50340 #ifdef CONFIG_SYSFS 51583 #ifdef CONFIG_SYSFS
50341 51584
@@ -50344,7 +51587,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) 51587 static inline bool sect_empty(const Elf_Shdr *sect)
50345 { 51588 {
50346 return !(sect->sh_flags & SHF_ALLOC) || sect->sh_size == 0; 51589 return !(sect->sh_flags & SHF_ALLOC) || sect->sh_size == 0;
50347@@ -1612,17 +1613,17 @@ void unset_section_ro_nx(struct module * 51590@@ -1612,17 +1614,17 @@ void unset_section_ro_nx(struct module *
50348 { 51591 {
50349 unsigned long total_pages; 51592 unsigned long total_pages;
50350 51593
@@ -50370,7 +51613,7 @@ diff -urNp linux-2.6.38.2/kernel/module.c linux-2.6.38.2/kernel/module.c
50370 } 51613 }
50371 } 51614 }
50372 51615
50373@@ -1633,14 +1634,14 @@ void set_all_modules_text_rw() 51616@@ -1633,14 +1635,14 @@ void set_all_modules_text_rw()
50374 51617
50375 mutex_lock(&module_mutex); 51618 mutex_lock(&module_mutex);
50376 list_for_each_entry_rcu(mod, &modules, list) { 51619 list_for_each_entry_rcu(mod, &modules, list) {
@@ -50391,7 +51634,7 @@ diff -urNp linux-2.6.38.2/kernel/module.c linux-2.6.38.2/kernel/module.c
50391 set_memory_rw); 51634 set_memory_rw);
50392 } 51635 }
50393 } 51636 }
50394@@ -1654,14 +1655,14 @@ void set_all_modules_text_ro() 51637@@ -1654,14 +1656,14 @@ void set_all_modules_text_ro()
50395 51638
50396 mutex_lock(&module_mutex); 51639 mutex_lock(&module_mutex);
50397 list_for_each_entry_rcu(mod, &modules, list) { 51640 list_for_each_entry_rcu(mod, &modules, list) {
@@ -50412,7 +51655,7 @@ diff -urNp linux-2.6.38.2/kernel/module.c linux-2.6.38.2/kernel/module.c
50412 set_memory_ro); 51655 set_memory_ro);
50413 } 51656 }
50414 } 51657 }
50415@@ -1696,17 +1697,20 @@ static void free_module(struct module *m 51658@@ -1696,17 +1698,20 @@ static void free_module(struct module *m
50416 destroy_params(mod->kp, mod->num_kp); 51659 destroy_params(mod->kp, mod->num_kp);
50417 51660
50418 /* This may be NULL, but that's OK */ 51661 /* This may be NULL, but that's OK */
@@ -50438,7 +51681,33 @@ diff -urNp linux-2.6.38.2/kernel/module.c linux-2.6.38.2/kernel/module.c
50438 51681
50439 #ifdef CONFIG_MPU 51682 #ifdef CONFIG_MPU
50440 update_protections(current->mm); 51683 update_protections(current->mm);
50441@@ -1799,7 +1803,9 @@ static int simplify_symbols(struct modul 51684@@ -1775,10 +1780,25 @@ static int simplify_symbols(struct modul
51685 unsigned int i;
51686 int ret = 0;
51687 const struct kernel_symbol *ksym;
51688+#ifdef CONFIG_GRKERNSEC_MODHARDEN
51689+ int is_fs_load = 0;
51690+ int register_filesystem_found = 0;
51691+
51692+ if (strstr(mod->args, "grsec_modharden_fs"))
51693+ is_fs_load = 1;
51694+#endif
51695
51696 for (i = 1; i < symsec->sh_size / sizeof(Elf_Sym); i++) {
51697 const char *name = info->strtab + sym[i].st_name;
51698
51699+#ifdef CONFIG_GRKERNSEC_MODHARDEN
51700+ /* it's a real shame this will never get ripped and copied
51701+ upstream! ;(
51702+ */
51703+ if (is_fs_load && !strcmp(name, "register_filesystem"))
51704+ register_filesystem_found = 1;
51705+#endif
51706+
51707 switch (sym[i].st_shndx) {
51708 case SHN_COMMON:
51709 /* We compiled with -fno-common. These are not
51710@@ -1799,7 +1819,9 @@ static int simplify_symbols(struct modul
50442 ksym = resolve_symbol_wait(mod, info, name); 51711 ksym = resolve_symbol_wait(mod, info, name);
50443 /* Ok if resolved. */ 51712 /* Ok if resolved. */
50444 if (ksym && !IS_ERR(ksym)) { 51713 if (ksym && !IS_ERR(ksym)) {
@@ -50448,7 +51717,7 @@ diff -urNp linux-2.6.38.2/kernel/module.c linux-2.6.38.2/kernel/module.c
50448 break; 51717 break;
50449 } 51718 }
50450 51719
50451@@ -1818,7 +1824,9 @@ static int simplify_symbols(struct modul 51720@@ -1818,11 +1840,20 @@ static int simplify_symbols(struct modul
50452 secbase = (unsigned long)mod_percpu(mod); 51721 secbase = (unsigned long)mod_percpu(mod);
50453 else 51722 else
50454 secbase = info->sechdrs[sym[i].st_shndx].sh_addr; 51723 secbase = info->sechdrs[sym[i].st_shndx].sh_addr;
@@ -50458,7 +51727,18 @@ diff -urNp linux-2.6.38.2/kernel/module.c linux-2.6.38.2/kernel/module.c
50458 break; 51727 break;
50459 } 51728 }
50460 } 51729 }
50461@@ -1906,22 +1914,12 @@ static void layout_sections(struct modul 51730
51731+#ifdef CONFIG_GRKERNSEC_MODHARDEN
51732+ if (is_fs_load && !register_filesystem_found) {
51733+ printk(KERN_ALERT "grsec: Denied attempt to load non-fs module %.64s through mount\n", mod->name);
51734+ ret = -EPERM;
51735+ }
51736+#endif
51737+
51738 return ret;
51739 }
51740
51741@@ -1906,22 +1937,12 @@ static void layout_sections(struct modul
50462 || s->sh_entsize != ~0UL 51742 || s->sh_entsize != ~0UL
50463 || strstarts(sname, ".init")) 51743 || strstarts(sname, ".init"))
50464 continue; 51744 continue;
@@ -50485,7 +51765,7 @@ diff -urNp linux-2.6.38.2/kernel/module.c linux-2.6.38.2/kernel/module.c
50485 } 51765 }
50486 51766
50487 DEBUGP("Init section allocation order:\n"); 51767 DEBUGP("Init section allocation order:\n");
50488@@ -1935,23 +1933,13 @@ static void layout_sections(struct modul 51768@@ -1935,23 +1956,13 @@ static void layout_sections(struct modul
50489 || s->sh_entsize != ~0UL 51769 || s->sh_entsize != ~0UL
50490 || !strstarts(sname, ".init")) 51770 || !strstarts(sname, ".init"))
50491 continue; 51771 continue;
@@ -50514,7 +51794,7 @@ diff -urNp linux-2.6.38.2/kernel/module.c linux-2.6.38.2/kernel/module.c
50514 } 51794 }
50515 } 51795 }
50516 51796
50517@@ -2119,7 +2107,7 @@ static void layout_symtab(struct module 51797@@ -2119,7 +2130,7 @@ static void layout_symtab(struct module
50518 51798
50519 /* Put symbol section at end of init part of module. */ 51799 /* Put symbol section at end of init part of module. */
50520 symsect->sh_flags |= SHF_ALLOC; 51800 symsect->sh_flags |= SHF_ALLOC;
@@ -50523,7 +51803,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; 51803 info->index.sym) | INIT_OFFSET_MASK;
50524 DEBUGP("\t%s\n", info->secstrings + symsect->sh_name); 51804 DEBUGP("\t%s\n", info->secstrings + symsect->sh_name);
50525 51805
50526@@ -2136,19 +2124,19 @@ static void layout_symtab(struct module 51806@@ -2136,19 +2147,19 @@ static void layout_symtab(struct module
50527 } 51807 }
50528 51808
50529 /* Append room for core symbols at end of core part. */ 51809 /* Append room for core symbols at end of core part. */
@@ -50548,7 +51828,7 @@ diff -urNp linux-2.6.38.2/kernel/module.c linux-2.6.38.2/kernel/module.c
50548 } 51828 }
50549 51829
50550 static void add_kallsyms(struct module *mod, const struct load_info *info) 51830 static void add_kallsyms(struct module *mod, const struct load_info *info)
50551@@ -2164,11 +2152,13 @@ static void add_kallsyms(struct module * 51831@@ -2164,11 +2175,13 @@ static void add_kallsyms(struct module *
50552 /* Make sure we get permanent strtab: don't use info->strtab. */ 51832 /* Make sure we get permanent strtab: don't use info->strtab. */
50553 mod->strtab = (void *)info->sechdrs[info->index.str].sh_addr; 51833 mod->strtab = (void *)info->sechdrs[info->index.str].sh_addr;
50554 51834
@@ -50563,7 +51843,7 @@ diff -urNp linux-2.6.38.2/kernel/module.c linux-2.6.38.2/kernel/module.c
50563 src = mod->symtab; 51843 src = mod->symtab;
50564 *dst = *src; 51844 *dst = *src;
50565 for (ndst = i = 1; i < mod->num_symtab; ++i, ++src) { 51845 for (ndst = i = 1; i < mod->num_symtab; ++i, ++src) {
50566@@ -2181,10 +2171,12 @@ static void add_kallsyms(struct module * 51846@@ -2181,10 +2194,12 @@ static void add_kallsyms(struct module *
50567 } 51847 }
50568 mod->core_num_syms = ndst; 51848 mod->core_num_syms = ndst;
50569 51849
@@ -50577,7 +51857,7 @@ diff -urNp linux-2.6.38.2/kernel/module.c linux-2.6.38.2/kernel/module.c
50577 } 51857 }
50578 #else 51858 #else
50579 static inline void layout_symtab(struct module *mod, struct load_info *info) 51859 static inline void layout_symtab(struct module *mod, struct load_info *info)
50580@@ -2213,17 +2205,33 @@ static void dynamic_debug_remove(struct 51860@@ -2213,17 +2228,33 @@ static void dynamic_debug_remove(struct
50581 ddebug_remove_module(debug->modname); 51861 ddebug_remove_module(debug->modname);
50582 } 51862 }
50583 51863
@@ -50616,7 +51896,7 @@ diff -urNp linux-2.6.38.2/kernel/module.c linux-2.6.38.2/kernel/module.c
50616 mutex_unlock(&module_mutex); 51896 mutex_unlock(&module_mutex);
50617 } 51897 }
50618 return ret; 51898 return ret;
50619@@ -2516,7 +2524,7 @@ static int move_module(struct module *mo 51899@@ -2516,7 +2547,7 @@ static int move_module(struct module *mo
50620 void *ptr; 51900 void *ptr;
50621 51901
50622 /* Do the allocs. */ 51902 /* Do the allocs. */
@@ -50625,7 +51905,7 @@ diff -urNp linux-2.6.38.2/kernel/module.c linux-2.6.38.2/kernel/module.c
50625 /* 51905 /*
50626 * The pointer to this block is stored in the module structure 51906 * The pointer to this block is stored in the module structure
50627 * which is inside the block. Just mark it as not being a 51907 * which is inside the block. Just mark it as not being a
50628@@ -2526,23 +2534,50 @@ static int move_module(struct module *mo 51908@@ -2526,23 +2557,50 @@ static int move_module(struct module *mo
50629 if (!ptr) 51909 if (!ptr)
50630 return -ENOMEM; 51910 return -ENOMEM;
50631 51911
@@ -50684,7 +51964,7 @@ diff -urNp linux-2.6.38.2/kernel/module.c linux-2.6.38.2/kernel/module.c
50684 51964
50685 /* Transfer each section which specifies SHF_ALLOC */ 51965 /* Transfer each section which specifies SHF_ALLOC */
50686 DEBUGP("final section addresses:\n"); 51966 DEBUGP("final section addresses:\n");
50687@@ -2553,16 +2588,45 @@ static int move_module(struct module *mo 51967@@ -2553,16 +2611,45 @@ static int move_module(struct module *mo
50688 if (!(shdr->sh_flags & SHF_ALLOC)) 51968 if (!(shdr->sh_flags & SHF_ALLOC))
50689 continue; 51969 continue;
50690 51970
@@ -50737,7 +52017,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", 52017 DEBUGP("\t0x%lx %s\n",
50738 shdr->sh_addr, info->secstrings + shdr->sh_name); 52018 shdr->sh_addr, info->secstrings + shdr->sh_name);
50739 } 52019 }
50740@@ -2613,12 +2677,12 @@ static void flush_module_icache(const st 52020@@ -2613,12 +2700,12 @@ static void flush_module_icache(const st
50741 * Do it before processing of module parameters, so the module 52021 * Do it before processing of module parameters, so the module
50742 * can provide parameter accessor functions of its own. 52022 * can provide parameter accessor functions of its own.
50743 */ 52023 */
@@ -50756,7 +52036,7 @@ diff -urNp linux-2.6.38.2/kernel/module.c linux-2.6.38.2/kernel/module.c
50756 52036
50757 set_fs(old_fs); 52037 set_fs(old_fs);
50758 } 52038 }
50759@@ -2690,8 +2754,10 @@ static void module_deallocate(struct mod 52039@@ -2690,8 +2777,10 @@ static void module_deallocate(struct mod
50760 { 52040 {
50761 kfree(info->strmap); 52041 kfree(info->strmap);
50762 percpu_modfree(mod); 52042 percpu_modfree(mod);
@@ -50769,7 +52049,73 @@ diff -urNp linux-2.6.38.2/kernel/module.c linux-2.6.38.2/kernel/module.c
50769 } 52049 }
50770 52050
50771 static int post_relocation(struct module *mod, const struct load_info *info) 52051 static int post_relocation(struct module *mod, const struct load_info *info)
50772@@ -2877,16 +2943,16 @@ SYSCALL_DEFINE3(init_module, void __user 52052@@ -2748,9 +2837,38 @@ static struct module *load_module(void _
52053 if (err)
52054 goto free_unload;
52055
52056+ /* Now copy in args */
52057+ mod->args = strndup_user(uargs, ~0UL >> 1);
52058+ if (IS_ERR(mod->args)) {
52059+ err = PTR_ERR(mod->args);
52060+ goto free_unload;
52061+ }
52062+
52063 /* Set up MODINFO_ATTR fields */
52064 setup_modinfo(mod, &info);
52065
52066+#ifdef CONFIG_GRKERNSEC_MODHARDEN
52067+ {
52068+ char *p, *p2;
52069+
52070+ if (strstr(mod->args, "grsec_modharden_netdev")) {
52071+ 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);
52072+ err = -EPERM;
52073+ goto free_modinfo;
52074+ } else if ((p = strstr(mod->args, "grsec_modharden_normal"))) {
52075+ p += strlen("grsec_modharden_normal");
52076+ p2 = strstr(p, "_");
52077+ if (p2) {
52078+ *p2 = '\0';
52079+ printk(KERN_ALERT "grsec: denied kernel module auto-load of %.64s by uid %.9s\n", mod->name, p);
52080+ *p2 = '_';
52081+ }
52082+ err = -EPERM;
52083+ goto free_modinfo;
52084+ }
52085+ }
52086+#endif
52087+
52088 /* Fix up syms, so that st_value is a pointer to location. */
52089 err = simplify_symbols(mod, &info);
52090 if (err < 0)
52091@@ -2766,13 +2884,6 @@ static struct module *load_module(void _
52092
52093 flush_module_icache(mod);
52094
52095- /* Now copy in args */
52096- mod->args = strndup_user(uargs, ~0UL >> 1);
52097- if (IS_ERR(mod->args)) {
52098- err = PTR_ERR(mod->args);
52099- goto free_arch_cleanup;
52100- }
52101-
52102 /* Mark state as coming so strong_try_module_get() ignores us. */
52103 mod->state = MODULE_STATE_COMING;
52104
52105@@ -2832,11 +2943,10 @@ static struct module *load_module(void _
52106 unlock:
52107 mutex_unlock(&module_mutex);
52108 synchronize_sched();
52109- kfree(mod->args);
52110- free_arch_cleanup:
52111 module_arch_cleanup(mod);
52112 free_modinfo:
52113 free_modinfo(mod);
52114+ kfree(mod->args);
52115 free_unload:
52116 module_unload_free(mod);
52117 free_module:
52118@@ -2877,16 +2987,16 @@ SYSCALL_DEFINE3(init_module, void __user
50773 MODULE_STATE_COMING, mod); 52119 MODULE_STATE_COMING, mod);
50774 52120
50775 /* Set RO and NX regions for core */ 52121 /* Set RO and NX regions for core */
@@ -50794,7 +52140,7 @@ diff -urNp linux-2.6.38.2/kernel/module.c linux-2.6.38.2/kernel/module.c
50794 52140
50795 do_mod_ctors(mod); 52141 do_mod_ctors(mod);
50796 /* Start the module */ 52142 /* Start the module */
50797@@ -2931,11 +2997,13 @@ SYSCALL_DEFINE3(init_module, void __user 52143@@ -2931,11 +3041,13 @@ SYSCALL_DEFINE3(init_module, void __user
50798 mod->symtab = mod->core_symtab; 52144 mod->symtab = mod->core_symtab;
50799 mod->strtab = mod->core_strtab; 52145 mod->strtab = mod->core_strtab;
50800 #endif 52146 #endif
@@ -50813,7 +52159,7 @@ diff -urNp linux-2.6.38.2/kernel/module.c linux-2.6.38.2/kernel/module.c
50813 mutex_unlock(&module_mutex); 52159 mutex_unlock(&module_mutex);
50814 52160
50815 return 0; 52161 return 0;
50816@@ -2966,10 +3034,16 @@ static const char *get_ksymbol(struct mo 52162@@ -2966,10 +3078,16 @@ static const char *get_ksymbol(struct mo
50817 unsigned long nextval; 52163 unsigned long nextval;
50818 52164
50819 /* At worse, next value is at end of module */ 52165 /* At worse, next value is at end of module */
@@ -50833,7 +52179,7 @@ diff -urNp linux-2.6.38.2/kernel/module.c linux-2.6.38.2/kernel/module.c
50833 52179
50834 /* Scan for closest preceeding symbol, and next symbol. (ELF 52180 /* Scan for closest preceeding symbol, and next symbol. (ELF
50835 starts real symbols at 1). */ 52181 starts real symbols at 1). */
50836@@ -3215,7 +3289,7 @@ static int m_show(struct seq_file *m, vo 52182@@ -3215,7 +3333,7 @@ static int m_show(struct seq_file *m, vo
50837 char buf[8]; 52183 char buf[8];
50838 52184
50839 seq_printf(m, "%s %u", 52185 seq_printf(m, "%s %u",
@@ -50842,7 +52188,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); 52188 print_unload_info(m, mod);
50843 52189
50844 /* Informative for users. */ 52190 /* Informative for users. */
50845@@ -3224,7 +3298,7 @@ static int m_show(struct seq_file *m, vo 52191@@ -3224,7 +3342,7 @@ static int m_show(struct seq_file *m, vo
50846 mod->state == MODULE_STATE_COMING ? "Loading": 52192 mod->state == MODULE_STATE_COMING ? "Loading":
50847 "Live"); 52193 "Live");
50848 /* Used by oprofile and other similar tools. */ 52194 /* Used by oprofile and other similar tools. */
@@ -50851,7 +52197,7 @@ diff -urNp linux-2.6.38.2/kernel/module.c linux-2.6.38.2/kernel/module.c
50851 52197
50852 /* Taints info */ 52198 /* Taints info */
50853 if (mod->taints) 52199 if (mod->taints)
50854@@ -3260,7 +3334,17 @@ static const struct file_operations proc 52200@@ -3260,7 +3378,17 @@ static const struct file_operations proc
50855 52201
50856 static int __init proc_modules_init(void) 52202 static int __init proc_modules_init(void)
50857 { 52203 {
@@ -50869,7 +52215,7 @@ diff -urNp linux-2.6.38.2/kernel/module.c linux-2.6.38.2/kernel/module.c
50869 return 0; 52215 return 0;
50870 } 52216 }
50871 module_init(proc_modules_init); 52217 module_init(proc_modules_init);
50872@@ -3319,12 +3403,12 @@ struct module *__module_address(unsigned 52218@@ -3319,12 +3447,12 @@ struct module *__module_address(unsigned
50873 { 52219 {
50874 struct module *mod; 52220 struct module *mod;
50875 52221
@@ -50885,7 +52231,7 @@ diff -urNp linux-2.6.38.2/kernel/module.c linux-2.6.38.2/kernel/module.c
50885 return mod; 52231 return mod;
50886 return NULL; 52232 return NULL;
50887 } 52233 }
50888@@ -3358,11 +3442,20 @@ bool is_module_text_address(unsigned lon 52234@@ -3358,11 +3486,20 @@ bool is_module_text_address(unsigned lon
50889 */ 52235 */
50890 struct module *__module_text_address(unsigned long addr) 52236 struct module *__module_text_address(unsigned long addr)
50891 { 52237 {
@@ -50909,9 +52255,124 @@ diff -urNp linux-2.6.38.2/kernel/module.c linux-2.6.38.2/kernel/module.c
50909 mod = NULL; 52255 mod = NULL;
50910 } 52256 }
50911 return mod; 52257 return mod;
50912diff -urNp linux-2.6.38.2/kernel/panic.c linux-2.6.38.2/kernel/panic.c 52258diff -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 52259--- 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 52260+++ linux-2.6.38.3/kernel/mutex.c 2011-04-17 16:24:38.000000000 -0400
52261@@ -160,7 +160,7 @@ __mutex_lock_common(struct mutex *lock,
52262 */
52263
52264 for (;;) {
52265- struct thread_info *owner;
52266+ struct task_struct *owner;
52267
52268 /*
52269 * If we own the BKL, then don't spin. The owner of
52270@@ -205,7 +205,7 @@ __mutex_lock_common(struct mutex *lock,
52271 spin_lock_mutex(&lock->wait_lock, flags);
52272
52273 debug_mutex_lock_common(lock, &waiter);
52274- debug_mutex_add_waiter(lock, &waiter, task_thread_info(task));
52275+ debug_mutex_add_waiter(lock, &waiter, task);
52276
52277 /* add waiting tasks to the end of the waitqueue (FIFO): */
52278 list_add_tail(&waiter.list, &lock->wait_list);
52279@@ -234,8 +234,7 @@ __mutex_lock_common(struct mutex *lock,
52280 * TASK_UNINTERRUPTIBLE case.)
52281 */
52282 if (unlikely(signal_pending_state(state, task))) {
52283- mutex_remove_waiter(lock, &waiter,
52284- task_thread_info(task));
52285+ mutex_remove_waiter(lock, &waiter, task);
52286 mutex_release(&lock->dep_map, 1, ip);
52287 spin_unlock_mutex(&lock->wait_lock, flags);
52288
52289@@ -256,7 +255,7 @@ __mutex_lock_common(struct mutex *lock,
52290 done:
52291 lock_acquired(&lock->dep_map, ip);
52292 /* got the lock - rejoice! */
52293- mutex_remove_waiter(lock, &waiter, current_thread_info());
52294+ mutex_remove_waiter(lock, &waiter, current);
52295 mutex_set_owner(lock);
52296
52297 /* set it to 0 if there are no waiters left: */
52298diff -urNp linux-2.6.38.3/kernel/mutex-debug.c linux-2.6.38.3/kernel/mutex-debug.c
52299--- linux-2.6.38.3/kernel/mutex-debug.c 2011-03-14 21:20:32.000000000 -0400
52300+++ linux-2.6.38.3/kernel/mutex-debug.c 2011-04-17 16:23:07.000000000 -0400
52301@@ -49,21 +49,21 @@ void debug_mutex_free_waiter(struct mute
52302 }
52303
52304 void debug_mutex_add_waiter(struct mutex *lock, struct mutex_waiter *waiter,
52305- struct thread_info *ti)
52306+ struct task_struct *task)
52307 {
52308 SMP_DEBUG_LOCKS_WARN_ON(!spin_is_locked(&lock->wait_lock));
52309
52310 /* Mark the current thread as blocked on the lock: */
52311- ti->task->blocked_on = waiter;
52312+ task->blocked_on = waiter;
52313 }
52314
52315 void mutex_remove_waiter(struct mutex *lock, struct mutex_waiter *waiter,
52316- struct thread_info *ti)
52317+ struct task_struct *task)
52318 {
52319 DEBUG_LOCKS_WARN_ON(list_empty(&waiter->list));
52320- DEBUG_LOCKS_WARN_ON(waiter->task != ti->task);
52321- DEBUG_LOCKS_WARN_ON(ti->task->blocked_on != waiter);
52322- ti->task->blocked_on = NULL;
52323+ DEBUG_LOCKS_WARN_ON(waiter->task != task);
52324+ DEBUG_LOCKS_WARN_ON(task->blocked_on != waiter->task);
52325+ task->blocked_on = NULL;
52326
52327 list_del_init(&waiter->list);
52328 waiter->task = NULL;
52329@@ -75,7 +75,7 @@ void debug_mutex_unlock(struct mutex *lo
52330 return;
52331
52332 DEBUG_LOCKS_WARN_ON(lock->magic != lock);
52333- DEBUG_LOCKS_WARN_ON(lock->owner != current_thread_info());
52334+ DEBUG_LOCKS_WARN_ON(lock->owner != current);
52335 DEBUG_LOCKS_WARN_ON(!lock->wait_list.prev && !lock->wait_list.next);
52336 mutex_clear_owner(lock);
52337 }
52338diff -urNp linux-2.6.38.3/kernel/mutex-debug.h linux-2.6.38.3/kernel/mutex-debug.h
52339--- linux-2.6.38.3/kernel/mutex-debug.h 2011-03-14 21:20:32.000000000 -0400
52340+++ linux-2.6.38.3/kernel/mutex-debug.h 2011-04-17 16:26:49.000000000 -0400
52341@@ -20,16 +20,16 @@ extern void debug_mutex_wake_waiter(stru
52342 extern void debug_mutex_free_waiter(struct mutex_waiter *waiter);
52343 extern void debug_mutex_add_waiter(struct mutex *lock,
52344 struct mutex_waiter *waiter,
52345- struct thread_info *ti);
52346+ struct task_struct *task);
52347 extern void mutex_remove_waiter(struct mutex *lock, struct mutex_waiter *waiter,
52348- struct thread_info *ti);
52349+ struct task_struct *task);
52350 extern void debug_mutex_unlock(struct mutex *lock);
52351 extern void debug_mutex_init(struct mutex *lock, const char *name,
52352 struct lock_class_key *key);
52353
52354 static inline void mutex_set_owner(struct mutex *lock)
52355 {
52356- lock->owner = current_thread_info();
52357+ lock->owner = current;
52358 }
52359
52360 static inline void mutex_clear_owner(struct mutex *lock)
52361diff -urNp linux-2.6.38.3/kernel/mutex.h linux-2.6.38.3/kernel/mutex.h
52362--- linux-2.6.38.3/kernel/mutex.h 2011-03-14 21:20:32.000000000 -0400
52363+++ linux-2.6.38.3/kernel/mutex.h 2011-04-17 16:24:51.000000000 -0400
52364@@ -19,7 +19,7 @@
52365 #ifdef CONFIG_SMP
52366 static inline void mutex_set_owner(struct mutex *lock)
52367 {
52368- lock->owner = current_thread_info();
52369+ lock->owner = current;
52370 }
52371
52372 static inline void mutex_clear_owner(struct mutex *lock)
52373diff -urNp linux-2.6.38.3/kernel/panic.c linux-2.6.38.3/kernel/panic.c
52374--- linux-2.6.38.3/kernel/panic.c 2011-03-14 21:20:32.000000000 -0400
52375+++ 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 52376@@ -369,7 +369,7 @@ static void warn_slowpath_common(const c
50916 const char *board; 52377 const char *board;
50917 52378
@@ -50931,9 +52392,9 @@ diff -urNp linux-2.6.38.2/kernel/panic.c linux-2.6.38.2/kernel/panic.c
50931 __builtin_return_address(0)); 52392 __builtin_return_address(0));
50932 } 52393 }
50933 EXPORT_SYMBOL(__stack_chk_fail); 52394 EXPORT_SYMBOL(__stack_chk_fail);
50934diff -urNp linux-2.6.38.2/kernel/pid.c linux-2.6.38.2/kernel/pid.c 52395diff -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 52396--- 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 52397+++ linux-2.6.38.3/kernel/pid.c 2011-04-18 19:22:06.000000000 -0400
50937@@ -33,6 +33,7 @@ 52398@@ -33,6 +33,7 @@
50938 #include <linux/rculist.h> 52399 #include <linux/rculist.h>
50939 #include <linux/bootmem.h> 52400 #include <linux/bootmem.h>
@@ -50951,7 +52412,23 @@ diff -urNp linux-2.6.38.2/kernel/pid.c linux-2.6.38.2/kernel/pid.c
50951 52412
50952 int pid_max_min = RESERVED_PIDS + 1; 52413 int pid_max_min = RESERVED_PIDS + 1;
50953 int pid_max_max = PID_MAX_LIMIT; 52414 int pid_max_max = PID_MAX_LIMIT;
50954@@ -416,8 +417,15 @@ EXPORT_SYMBOL(pid_task); 52415@@ -217,11 +218,14 @@ static int alloc_pidmap(struct pid_names
52416 return -1;
52417 }
52418
52419-int next_pidmap(struct pid_namespace *pid_ns, int last)
52420+int next_pidmap(struct pid_namespace *pid_ns, unsigned int last)
52421 {
52422 int offset;
52423 struct pidmap *map, *end;
52424
52425+ if (last >= PID_MAX_LIMIT)
52426+ return -1;
52427+
52428 offset = (last + 1) & BITS_PER_PAGE_MASK;
52429 map = &pid_ns->pidmap[(last + 1)/BITS_PER_PAGE];
52430 end = &pid_ns->pidmap[PIDMAP_ENTRIES];
52431@@ -416,8 +420,15 @@ EXPORT_SYMBOL(pid_task);
50955 */ 52432 */
50956 struct task_struct *find_task_by_pid_ns(pid_t nr, struct pid_namespace *ns) 52433 struct task_struct *find_task_by_pid_ns(pid_t nr, struct pid_namespace *ns)
50957 { 52434 {
@@ -50968,9 +52445,9 @@ diff -urNp linux-2.6.38.2/kernel/pid.c linux-2.6.38.2/kernel/pid.c
50968 } 52445 }
50969 52446
50970 struct task_struct *find_task_by_vpid(pid_t vnr) 52447 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 52448diff -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 52449--- 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 52450+++ linux-2.6.38.3/kernel/posix-cpu-timers.c 2011-04-17 15:57:32.000000000 -0400
50974@@ -6,6 +6,7 @@ 52451@@ -6,6 +6,7 @@
50975 #include <linux/posix-timers.h> 52452 #include <linux/posix-timers.h>
50976 #include <linux/errno.h> 52453 #include <linux/errno.h>
@@ -50979,9 +52456,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> 52456 #include <asm/uaccess.h>
50980 #include <linux/kernel_stat.h> 52457 #include <linux/kernel_stat.h>
50981 #include <trace/events/timer.h> 52458 #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 52459diff -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 52460--- 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 52461+++ linux-2.6.38.3/kernel/posix-timers.c 2011-04-17 15:57:33.000000000 -0400
50985@@ -42,6 +42,7 @@ 52462@@ -42,6 +42,7 @@
50986 #include <linux/compiler.h> 52463 #include <linux/compiler.h>
50987 #include <linux/idr.h> 52464 #include <linux/idr.h>
@@ -51004,9 +52481,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)); 52481 return CLOCK_DISPATCH(which_clock, clock_set, (which_clock, &new_tp));
51005 } 52482 }
51006 52483
51007diff -urNp linux-2.6.38.2/kernel/power/poweroff.c linux-2.6.38.2/kernel/power/poweroff.c 52484diff -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 52485--- 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 52486+++ 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 52487@@ -37,7 +37,7 @@ static struct sysrq_key_op sysrq_powerof
51011 .enable_mask = SYSRQ_ENABLE_BOOT, 52488 .enable_mask = SYSRQ_ENABLE_BOOT,
51012 }; 52489 };
@@ -51016,9 +52493,9 @@ diff -urNp linux-2.6.38.2/kernel/power/poweroff.c linux-2.6.38.2/kernel/power/po
51016 { 52493 {
51017 register_sysrq_key('o', &sysrq_poweroff_op); 52494 register_sysrq_key('o', &sysrq_poweroff_op);
51018 return 0; 52495 return 0;
51019diff -urNp linux-2.6.38.2/kernel/power/process.c linux-2.6.38.2/kernel/power/process.c 52496diff -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 52497--- 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 52498+++ 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_ 52499@@ -41,6 +41,7 @@ static int try_to_freeze_tasks(bool sig_
51023 u64 elapsed_csecs64; 52500 u64 elapsed_csecs64;
51024 unsigned int elapsed_csecs; 52501 unsigned int elapsed_csecs;
@@ -51061,9 +52538,9 @@ diff -urNp linux-2.6.38.2/kernel/power/process.c linux-2.6.38.2/kernel/power/pro
51061 break; 52538 break;
51062 52539
51063 if (pm_wakeup_pending()) { 52540 if (pm_wakeup_pending()) {
51064diff -urNp linux-2.6.38.2/kernel/printk.c linux-2.6.38.2/kernel/printk.c 52541diff -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 52542--- 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 52543+++ 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 52544@@ -279,12 +279,17 @@ static int check_syslog_permissions(int
51068 if (from_file && type != SYSLOG_ACTION_OPEN) 52545 if (from_file && type != SYSLOG_ACTION_OPEN)
51069 return 0; 52546 return 0;
@@ -51083,9 +52560,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"); 52560 "but no CAP_SYSLOG (deprecated).\n");
51084 return 0; 52561 return 0;
51085 } 52562 }
51086diff -urNp linux-2.6.38.2/kernel/ptrace.c linux-2.6.38.2/kernel/ptrace.c 52563diff -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 52564--- 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 52565+++ 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 52566@@ -116,7 +116,8 @@ int ptrace_check_attach(struct task_stru
51090 return ret; 52567 return ret;
51091 } 52568 }
@@ -51227,9 +52704,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; 52704 goto out_put_task_struct;
51228 } 52705 }
51229 52706
51230diff -urNp linux-2.6.38.2/kernel/rcutree.c linux-2.6.38.2/kernel/rcutree.c 52707diff -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 52708--- 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 52709+++ 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 52710@@ -1389,7 +1389,7 @@ __rcu_process_callbacks(struct rcu_state
51234 /* 52711 /*
51235 * Do softirq processing for the current CPU. 52712 * Do softirq processing for the current CPU.
@@ -51239,9 +52716,9 @@ diff -urNp linux-2.6.38.2/kernel/rcutree.c linux-2.6.38.2/kernel/rcutree.c
51239 { 52716 {
51240 /* 52717 /*
51241 * Memory references from any prior RCU read-side critical sections 52718 * 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 52719diff -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 52720--- 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 52721+++ 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) 52722@@ -730,7 +730,7 @@ void synchronize_rcu_expedited(void)
51246 52723
51247 /* Clean up and exit. */ 52724 /* Clean up and exit. */
@@ -51251,9 +52728,9 @@ diff -urNp linux-2.6.38.2/kernel/rcutree_plugin.h linux-2.6.38.2/kernel/rcutree_
51251 unlock_mb_ret: 52728 unlock_mb_ret:
51252 mutex_unlock(&sync_rcu_preempt_exp_mutex); 52729 mutex_unlock(&sync_rcu_preempt_exp_mutex);
51253 mb_ret: 52730 mb_ret:
51254diff -urNp linux-2.6.38.2/kernel/resource.c linux-2.6.38.2/kernel/resource.c 52731diff -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 52732--- 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 52733+++ 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 52734@@ -133,8 +133,18 @@ static const struct file_operations proc
51258 52735
51259 static int __init ioresources_init(void) 52736 static int __init ioresources_init(void)
@@ -51273,9 +52750,9 @@ diff -urNp linux-2.6.38.2/kernel/resource.c linux-2.6.38.2/kernel/resource.c
51273 return 0; 52750 return 0;
51274 } 52751 }
51275 __initcall(ioresources_init); 52752 __initcall(ioresources_init);
51276diff -urNp linux-2.6.38.2/kernel/rtmutex.c linux-2.6.38.2/kernel/rtmutex.c 52753diff -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 52754--- 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 52755+++ 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 52756@@ -511,7 +511,7 @@ static void wakeup_next_waiter(struct rt
51280 */ 52757 */
51281 raw_spin_lock_irqsave(&pendowner->pi_lock, flags); 52758 raw_spin_lock_irqsave(&pendowner->pi_lock, flags);
@@ -51285,9 +52762,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); 52762 WARN_ON(pendowner->pi_blocked_on != waiter);
51286 WARN_ON(pendowner->pi_blocked_on->lock != lock); 52763 WARN_ON(pendowner->pi_blocked_on->lock != lock);
51287 52764
51288diff -urNp linux-2.6.38.2/kernel/sched.c linux-2.6.38.2/kernel/sched.c 52765diff -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 52766--- 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 52767+++ linux-2.6.38.3/kernel/sched.c 2011-04-17 16:29:21.000000000 -0400
52768@@ -4024,7 +4024,7 @@ EXPORT_SYMBOL(schedule);
52769 * Look out! "owner" is an entirely speculative pointer
52770 * access and not reliable.
52771 */
52772-int mutex_spin_on_owner(struct mutex *lock, struct thread_info *owner)
52773+int mutex_spin_on_owner(struct mutex *lock, struct task_struct *owner)
52774 {
52775 unsigned int cpu;
52776 struct rq *rq;
52777@@ -4038,10 +4038,10 @@ int mutex_spin_on_owner(struct mutex *lo
52778 * DEBUG_PAGEALLOC could have unmapped it if
52779 * the mutex owner just released it and exited.
52780 */
52781- if (probe_kernel_address(&owner->cpu, cpu))
52782+ if (probe_kernel_address(&task_thread_info(owner)->cpu, cpu))
52783 return 0;
52784 #else
52785- cpu = owner->cpu;
52786+ cpu = task_thread_info(owner)->cpu;
52787 #endif
52788
52789 /*
52790@@ -4078,7 +4078,7 @@ int mutex_spin_on_owner(struct mutex *lo
52791 /*
52792 * Is that owner really running on that cpu?
52793 */
52794- if (task_thread_info(rq->curr) != owner || need_resched())
52795+ if (rq->curr != owner || need_resched())
52796 return 0;
52797
52798 arch_mutex_cpu_relax();
51291@@ -4638,6 +4638,8 @@ int can_nice(const struct task_struct *p 52799@@ -4638,6 +4638,8 @@ int can_nice(const struct task_struct *p
51292 /* convert nice value [19,-20] to rlimit style value [1,40] */ 52800 /* convert nice value [19,-20] to rlimit style value [1,40] */
51293 int nice_rlim = 20 - nice; 52801 int nice_rlim = 20 - nice;
@@ -51324,9 +52832,9 @@ diff -urNp linux-2.6.38.2/kernel/sched.c linux-2.6.38.2/kernel/sched.c
51324 52832
51325 if (cpu != group_first_cpu(sd->groups)) 52833 if (cpu != group_first_cpu(sd->groups))
51326 return; 52834 return;
51327diff -urNp linux-2.6.38.2/kernel/sched_fair.c linux-2.6.38.2/kernel/sched_fair.c 52835diff -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 52836--- 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 52837+++ 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 52838@@ -3960,7 +3960,7 @@ static void nohz_idle_balance(int this_c
51331 * run_rebalance_domains is triggered when needed from the scheduler tick. 52839 * run_rebalance_domains is triggered when needed from the scheduler tick.
51332 * Also triggered for nohz idle balancing (with nohz_balancing_kick set). 52840 * Also triggered for nohz idle balancing (with nohz_balancing_kick set).
@@ -51336,9 +52844,9 @@ diff -urNp linux-2.6.38.2/kernel/sched_fair.c linux-2.6.38.2/kernel/sched_fair.c
51336 { 52844 {
51337 int this_cpu = smp_processor_id(); 52845 int this_cpu = smp_processor_id();
51338 struct rq *this_rq = cpu_rq(this_cpu); 52846 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 52847diff -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 52848--- 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 52849+++ 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 52850@@ -45,12 +45,12 @@ static struct kmem_cache *sigqueue_cache
51343 52851
51344 int print_fatal_signals __read_mostly; 52852 int print_fatal_signals __read_mostly;
@@ -51441,9 +52949,9 @@ diff -urNp linux-2.6.38.2/kernel/signal.c linux-2.6.38.2/kernel/signal.c
51441 52949
51442 return ret; 52950 return ret;
51443 } 52951 }
51444diff -urNp linux-2.6.38.2/kernel/smp.c linux-2.6.38.2/kernel/smp.c 52952diff -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 52953--- 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 52954+++ 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 52955@@ -583,22 +583,22 @@ int smp_call_function(smp_call_func_t fu
51448 } 52956 }
51449 EXPORT_SYMBOL(smp_call_function); 52957 EXPORT_SYMBOL(smp_call_function);
@@ -51471,9 +52979,9 @@ diff -urNp linux-2.6.38.2/kernel/smp.c linux-2.6.38.2/kernel/smp.c
51471 { 52979 {
51472 raw_spin_unlock_irq(&call_function.lock); 52980 raw_spin_unlock_irq(&call_function.lock);
51473 } 52981 }
51474diff -urNp linux-2.6.38.2/kernel/softirq.c linux-2.6.38.2/kernel/softirq.c 52982diff -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 52983--- 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 52984+++ 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 52985@@ -56,7 +56,7 @@ static struct softirq_action softirq_vec
51478 52986
51479 static DEFINE_PER_CPU(struct task_struct *, ksoftirqd); 52987 static DEFINE_PER_CPU(struct task_struct *, ksoftirqd);
@@ -51528,9 +53036,9 @@ diff -urNp linux-2.6.38.2/kernel/softirq.c linux-2.6.38.2/kernel/softirq.c
51528 { 53036 {
51529 struct tasklet_struct *list; 53037 struct tasklet_struct *list;
51530 53038
51531diff -urNp linux-2.6.38.2/kernel/sys.c linux-2.6.38.2/kernel/sys.c 53039diff -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 53040--- 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 53041+++ 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 53042@@ -136,6 +136,12 @@ static int set_one_prio(struct task_stru
51535 error = -EACCES; 53043 error = -EACCES;
51536 goto out; 53044 goto out;
@@ -51652,9 +53160,9 @@ diff -urNp linux-2.6.38.2/kernel/sys.c linux-2.6.38.2/kernel/sys.c
51652 error = -EINVAL; 53160 error = -EINVAL;
51653 break; 53161 break;
51654 } 53162 }
51655diff -urNp linux-2.6.38.2/kernel/sysctl.c linux-2.6.38.2/kernel/sysctl.c 53163diff -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 53164--- 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 53165+++ linux-2.6.38.3/kernel/sysctl.c 2011-04-17 15:57:33.000000000 -0400
51658@@ -84,6 +84,13 @@ 53166@@ -84,6 +84,13 @@
51659 53167
51660 53168
@@ -51843,9 +53351,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); 53351 EXPORT_SYMBOL(proc_doulongvec_minmax);
51844 EXPORT_SYMBOL(proc_doulongvec_ms_jiffies_minmax); 53352 EXPORT_SYMBOL(proc_doulongvec_ms_jiffies_minmax);
51845 EXPORT_SYMBOL(register_sysctl_table); 53353 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 53354diff -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 53355--- 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 53356+++ 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 53357@@ -131,6 +131,7 @@ int sysctl_check_table(struct nsproxy *n
51850 set_fail(&fail, table, "Directory with extra2"); 53358 set_fail(&fail, table, "Directory with extra2");
51851 } else { 53359 } else {
@@ -51854,9 +53362,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) || 53362 (table->proc_handler == proc_dointvec) ||
51855 (table->proc_handler == proc_dointvec_minmax) || 53363 (table->proc_handler == proc_dointvec_minmax) ||
51856 (table->proc_handler == proc_dointvec_jiffies) || 53364 (table->proc_handler == proc_dointvec_jiffies) ||
51857diff -urNp linux-2.6.38.2/kernel/taskstats.c linux-2.6.38.2/kernel/taskstats.c 53365diff -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 53366--- 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 53367+++ linux-2.6.38.3/kernel/taskstats.c 2011-04-17 15:57:33.000000000 -0400
51860@@ -27,9 +27,12 @@ 53368@@ -27,9 +27,12 @@
51861 #include <linux/cgroup.h> 53369 #include <linux/cgroup.h>
51862 #include <linux/fs.h> 53370 #include <linux/fs.h>
@@ -51880,9 +53388,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]) 53388 if (info->attrs[TASKSTATS_CMD_ATTR_REGISTER_CPUMASK])
51881 return cmd_attr_register_cpumask(info); 53389 return cmd_attr_register_cpumask(info);
51882 else if (info->attrs[TASKSTATS_CMD_ATTR_DEREGISTER_CPUMASK]) 53390 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 53391diff -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 53392--- 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 53393+++ 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 53394@@ -116,7 +116,7 @@ int tick_device_uses_broadcast(struct cl
51887 * then clear the broadcast bit. 53395 * then clear the broadcast bit.
51888 */ 53396 */
@@ -51892,9 +53400,9 @@ diff -urNp linux-2.6.38.2/kernel/time/tick-broadcast.c linux-2.6.38.2/kernel/tim
51892 53400
51893 cpumask_clear_cpu(cpu, tick_get_broadcast_mask()); 53401 cpumask_clear_cpu(cpu, tick_get_broadcast_mask());
51894 tick_broadcast_clear_oneshot(cpu); 53402 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 53403diff -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 53404--- 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 53405+++ linux-2.6.38.3/kernel/time/timekeeping.c 2011-04-17 15:57:33.000000000 -0400
51898@@ -14,6 +14,7 @@ 53406@@ -14,6 +14,7 @@
51899 #include <linux/init.h> 53407 #include <linux/init.h>
51900 #include <linux/mm.h> 53408 #include <linux/mm.h>
@@ -51912,9 +53420,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); 53420 write_seqlock_irqsave(&xtime_lock, flags);
51913 53421
51914 timekeeping_forward_now(); 53422 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 53423diff -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 53424--- 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 53425+++ 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, 53426@@ -38,12 +38,16 @@ DECLARE_PER_CPU(struct hrtimer_cpu_base,
51919 53427
51920 static void print_name_offset(struct seq_file *m, void *sym) 53428 static void print_name_offset(struct seq_file *m, void *sym)
@@ -51956,9 +53464,9 @@ diff -urNp linux-2.6.38.2/kernel/time/timer_list.c linux-2.6.38.2/kernel/time/ti
51956 if (!pe) 53464 if (!pe)
51957 return -ENOMEM; 53465 return -ENOMEM;
51958 return 0; 53466 return 0;
51959diff -urNp linux-2.6.38.2/kernel/time/timer_stats.c linux-2.6.38.2/kernel/time/timer_stats.c 53467diff -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 53468--- 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 53469+++ 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 53470@@ -269,12 +269,16 @@ void timer_stats_update_stats(void *time
51963 53471
51964 static void print_name_offset(struct seq_file *m, unsigned long addr) 53472 static void print_name_offset(struct seq_file *m, unsigned long addr)
@@ -51988,9 +53496,9 @@ diff -urNp linux-2.6.38.2/kernel/time/timer_stats.c linux-2.6.38.2/kernel/time/t
51988 if (!pe) 53496 if (!pe)
51989 return -ENOMEM; 53497 return -ENOMEM;
51990 return 0; 53498 return 0;
51991diff -urNp linux-2.6.38.2/kernel/time.c linux-2.6.38.2/kernel/time.c 53499diff -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 53500--- 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 53501+++ 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 53502@@ -163,6 +163,11 @@ int do_sys_settimeofday(struct timespec
51995 return error; 53503 return error;
51996 53504
@@ -52003,9 +53511,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. */ 53511 /* SMP safe, global irq locking makes it work. */
52004 sys_tz = *tz; 53512 sys_tz = *tz;
52005 update_vsyscall_tz(); 53513 update_vsyscall_tz();
52006diff -urNp linux-2.6.38.2/kernel/timer.c linux-2.6.38.2/kernel/timer.c 53514diff -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 53515--- 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 53516+++ 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) 53517@@ -1276,7 +1276,7 @@ void update_process_times(int user_tick)
52010 /* 53518 /*
52011 * This function runs timers and the timer-tq in bottom half context. 53519 * This function runs timers and the timer-tq in bottom half context.
@@ -52015,9 +53523,9 @@ diff -urNp linux-2.6.38.2/kernel/timer.c linux-2.6.38.2/kernel/timer.c
52015 { 53523 {
52016 struct tvec_base *base = __this_cpu_read(tvec_bases); 53524 struct tvec_base *base = __this_cpu_read(tvec_bases);
52017 53525
52018diff -urNp linux-2.6.38.2/kernel/trace/ftrace.c linux-2.6.38.2/kernel/trace/ftrace.c 53526diff -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 53527--- 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 53528+++ 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, 53529@@ -1107,13 +1107,18 @@ ftrace_code_disable(struct module *mod,
52022 53530
52023 ip = rec->ip; 53531 ip = rec->ip;
@@ -52039,9 +53547,9 @@ diff -urNp linux-2.6.38.2/kernel/trace/ftrace.c linux-2.6.38.2/kernel/trace/ftra
52039 } 53547 }
52040 53548
52041 /* 53549 /*
52042diff -urNp linux-2.6.38.2/kernel/trace/ring_buffer.c linux-2.6.38.2/kernel/trace/ring_buffer.c 53550diff -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 53551--- 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 53552+++ 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 53553@@ -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, 53554 * the reader page). But if the next page is a header page,
52047 * its flags will be non zero. 53555 * its flags will be non zero.
@@ -52051,9 +53559,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, 53559 rb_is_head_page(struct ring_buffer_per_cpu *cpu_buffer,
52052 struct buffer_page *page, struct list_head *list) 53560 struct buffer_page *page, struct list_head *list)
52053 { 53561 {
52054diff -urNp linux-2.6.38.2/kernel/trace/trace.c linux-2.6.38.2/kernel/trace/trace.c 53562diff -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 53563--- 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 53564+++ 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 53565@@ -3967,10 +3967,9 @@ static const struct file_operations trac
52058 }; 53566 };
52059 #endif 53567 #endif
@@ -52078,9 +53586,9 @@ diff -urNp linux-2.6.38.2/kernel/trace/trace.c linux-2.6.38.2/kernel/trace/trace
52078 static int once; 53586 static int once;
52079 struct dentry *d_tracer; 53587 struct dentry *d_tracer;
52080 53588
52081diff -urNp linux-2.6.38.2/kernel/trace/trace_events.c linux-2.6.38.2/kernel/trace/trace_events.c 53589diff -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 53590--- 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 53591+++ 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 53592@@ -1240,10 +1240,10 @@ static LIST_HEAD(ftrace_module_file_list
52085 struct ftrace_module_file_ops { 53593 struct ftrace_module_file_ops {
52086 struct list_head list; 53594 struct list_head list;
@@ -52096,9 +53604,9 @@ diff -urNp linux-2.6.38.2/kernel/trace/trace_events.c linux-2.6.38.2/kernel/trac
52096 }; 53604 };
52097 53605
52098 static struct ftrace_module_file_ops * 53606 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 53607diff -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 53608--- 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 53609+++ 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, 53610@@ -278,7 +278,7 @@ int trace_seq_path(struct trace_seq *s,
52103 53611
52104 p = d_path(path, s->buffer + s->len, PAGE_SIZE - s->len); 53612 p = d_path(path, s->buffer + s->len, PAGE_SIZE - s->len);
@@ -52108,9 +53616,9 @@ diff -urNp linux-2.6.38.2/kernel/trace/trace_output.c linux-2.6.38.2/kernel/trac
52108 if (p) { 53616 if (p) {
52109 s->len = p - s->buffer; 53617 s->len = p - s->buffer;
52110 return 1; 53618 return 1;
52111diff -urNp linux-2.6.38.2/kernel/trace/trace_stack.c linux-2.6.38.2/kernel/trace/trace_stack.c 53619diff -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 53620--- 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 53621+++ 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) 53622@@ -50,7 +50,7 @@ static inline void check_stack(void)
52115 return; 53623 return;
52116 53624
@@ -52120,9 +53628,39 @@ diff -urNp linux-2.6.38.2/kernel/trace/trace_stack.c linux-2.6.38.2/kernel/trace
52120 return; 53628 return;
52121 53629
52122 local_irq_save(flags); 53630 local_irq_save(flags);
52123diff -urNp linux-2.6.38.2/lib/bug.c linux-2.6.38.2/lib/bug.c 53631diff -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 53632--- 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 53633+++ linux-2.6.38.3/kernel/trace/trace_workqueue.c 2011-04-17 15:57:33.000000000 -0400
53634@@ -22,7 +22,7 @@ struct cpu_workqueue_stats {
53635 int cpu;
53636 pid_t pid;
53637 /* Can be inserted from interrupt or user context, need to be atomic */
53638- atomic_t inserted;
53639+ atomic_unchecked_t inserted;
53640 /*
53641 * Don't need to be atomic, works are serialized in a single workqueue thread
53642 * on a single CPU.
53643@@ -60,7 +60,7 @@ probe_workqueue_insertion(void *ignore,
53644 spin_lock_irqsave(&workqueue_cpu_stat(cpu)->lock, flags);
53645 list_for_each_entry(node, &workqueue_cpu_stat(cpu)->list, list) {
53646 if (node->pid == wq_thread->pid) {
53647- atomic_inc(&node->inserted);
53648+ atomic_inc_unchecked(&node->inserted);
53649 goto found;
53650 }
53651 }
53652@@ -210,7 +210,7 @@ static int workqueue_stat_show(struct se
53653 tsk = get_pid_task(pid, PIDTYPE_PID);
53654 if (tsk) {
53655 seq_printf(s, "%3d %6d %6u %s\n", cws->cpu,
53656- atomic_read(&cws->inserted), cws->executed,
53657+ atomic_read_unchecked(&cws->inserted), cws->executed,
53658 tsk->comm);
53659 put_task_struct(tsk);
53660 }
53661diff -urNp linux-2.6.38.3/lib/bug.c linux-2.6.38.3/lib/bug.c
53662--- linux-2.6.38.3/lib/bug.c 2011-03-14 21:20:32.000000000 -0400
53663+++ 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 53664@@ -133,6 +133,8 @@ enum bug_trap_type report_bug(unsigned l
52127 return BUG_TRAP_TYPE_NONE; 53665 return BUG_TRAP_TYPE_NONE;
52128 53666
@@ -52132,9 +53670,9 @@ diff -urNp linux-2.6.38.2/lib/bug.c linux-2.6.38.2/lib/bug.c
52132 53670
52133 file = NULL; 53671 file = NULL;
52134 line = 0; 53672 line = 0;
52135diff -urNp linux-2.6.38.2/lib/debugobjects.c linux-2.6.38.2/lib/debugobjects.c 53673diff -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 53674--- 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 53675+++ 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 53676@@ -281,7 +281,7 @@ static void debug_object_is_on_stack(voi
52139 if (limit > 4) 53677 if (limit > 4)
52140 return; 53678 return;
@@ -52144,9 +53682,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) 53682 if (is_on_stack == onstack)
52145 return; 53683 return;
52146 53684
52147diff -urNp linux-2.6.38.2/lib/dma-debug.c linux-2.6.38.2/lib/dma-debug.c 53685diff -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 53686--- 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 53687+++ linux-2.6.38.3/lib/dma-debug.c 2011-04-17 15:57:33.000000000 -0400
52150@@ -862,7 +862,7 @@ out: 53688@@ -862,7 +862,7 @@ out:
52151 53689
52152 static void check_for_stack(struct device *dev, void *addr) 53690 static void check_for_stack(struct device *dev, void *addr)
@@ -52156,9 +53694,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" 53694 err_printk(dev, NULL, "DMA-API: device driver maps memory from"
52157 "stack [addr=%p]\n", addr); 53695 "stack [addr=%p]\n", addr);
52158 } 53696 }
52159diff -urNp linux-2.6.38.2/lib/inflate.c linux-2.6.38.2/lib/inflate.c 53697diff -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 53698--- 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 53699+++ 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) 53700@@ -269,7 +269,7 @@ static void free(void *where)
52163 malloc_ptr = free_mem_ptr; 53701 malloc_ptr = free_mem_ptr;
52164 } 53702 }
@@ -52168,9 +53706,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) 53706 #define free(a) kfree(a)
52169 #endif 53707 #endif
52170 53708
52171diff -urNp linux-2.6.38.2/lib/Kconfig.debug linux-2.6.38.2/lib/Kconfig.debug 53709diff -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 53710--- 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 53711+++ linux-2.6.38.3/lib/Kconfig.debug 2011-04-17 15:57:33.000000000 -0400
52174@@ -1066,6 +1066,7 @@ config LATENCYTOP 53712@@ -1066,6 +1066,7 @@ config LATENCYTOP
52175 depends on DEBUG_KERNEL 53713 depends on DEBUG_KERNEL
52176 depends on STACKTRACE_SUPPORT 53714 depends on STACKTRACE_SUPPORT
@@ -52179,9 +53717,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 53717 select FRAME_POINTER if !MIPS && !PPC && !S390 && !MICROBLAZE
52180 select KALLSYMS 53718 select KALLSYMS
52181 select KALLSYMS_ALL 53719 select KALLSYMS_ALL
52182diff -urNp linux-2.6.38.2/lib/kref.c linux-2.6.38.2/lib/kref.c 53720diff -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 53721--- 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 53722+++ 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) 53723@@ -52,7 +52,7 @@ void kref_get(struct kref *kref)
52186 */ 53724 */
52187 int kref_put(struct kref *kref, void (*release)(struct kref *kref)) 53725 int kref_put(struct kref *kref, void (*release)(struct kref *kref))
@@ -52191,9 +53729,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); 53729 WARN_ON(release == (void (*)(struct kref *))kfree);
52192 53730
52193 if (atomic_dec_and_test(&kref->refcount)) { 53731 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 53732diff -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 53733--- 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 53734+++ 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 { 53735@@ -80,7 +80,7 @@ struct radix_tree_preload {
52198 int nr; 53736 int nr;
52199 struct radix_tree_node *nodes[RADIX_TREE_MAX_PATH]; 53737 struct radix_tree_node *nodes[RADIX_TREE_MAX_PATH];
@@ -52203,9 +53741,9 @@ diff -urNp linux-2.6.38.2/lib/radix-tree.c linux-2.6.38.2/lib/radix-tree.c
52203 53741
52204 static inline void *ptr_to_indirect(void *ptr) 53742 static inline void *ptr_to_indirect(void *ptr)
52205 { 53743 {
52206diff -urNp linux-2.6.38.2/lib/vsprintf.c linux-2.6.38.2/lib/vsprintf.c 53744diff -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 53745--- 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 53746+++ linux-2.6.38.3/lib/vsprintf.c 2011-04-17 15:57:33.000000000 -0400
52209@@ -16,6 +16,9 @@ 53747@@ -16,6 +16,9 @@
52210 * - scnprintf and vscnprintf 53748 * - scnprintf and vscnprintf
52211 */ 53749 */
@@ -52299,14 +53837,14 @@ diff -urNp linux-2.6.38.2/lib/vsprintf.c linux-2.6.38.2/lib/vsprintf.c
52299 break; 53837 break;
52300 } 53838 }
52301 53839
52302diff -urNp linux-2.6.38.2/localversion-grsec linux-2.6.38.2/localversion-grsec 53840diff -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 53841--- 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 53842+++ linux-2.6.38.3/localversion-grsec 2011-04-17 15:57:33.000000000 -0400
52305@@ -0,0 +1 @@ 53843@@ -0,0 +1 @@
52306+-grsec 53844+-grsec
52307diff -urNp linux-2.6.38.2/Makefile linux-2.6.38.2/Makefile 53845diff -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 53846--- 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 53847+++ 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" 53848@@ -233,8 +233,8 @@ CONFIG_SHELL := $(shell if [ -x "$$BASH"
52311 53849
52312 HOSTCC = gcc 53850 HOSTCC = gcc
@@ -52327,9 +53865,9 @@ diff -urNp linux-2.6.38.2/Makefile linux-2.6.38.2/Makefile
52327 53865
52328 vmlinux-dirs := $(patsubst %/,%,$(filter %/, $(init-y) $(init-m) \ 53866 vmlinux-dirs := $(patsubst %/,%,$(filter %/, $(init-y) $(init-m) \
52329 $(core-y) $(core-m) $(drivers-y) $(drivers-m) \ 53867 $(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 53868diff -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 53869--- 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 53870+++ 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 53871@@ -201,19 +201,30 @@ static void __init __free_pages_memory(u
52334 unsigned long __init free_all_memory_core_early(int nodeid) 53872 unsigned long __init free_all_memory_core_early(int nodeid)
52335 { 53873 {
@@ -52363,9 +53901,9 @@ diff -urNp linux-2.6.38.2/mm/bootmem.c linux-2.6.38.2/mm/bootmem.c
52363 53901
52364 return count; 53902 return count;
52365 } 53903 }
52366diff -urNp linux-2.6.38.2/mm/filemap.c linux-2.6.38.2/mm/filemap.c 53904diff -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 53905--- 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 53906+++ 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 53907@@ -1664,7 +1664,7 @@ int generic_file_mmap(struct file * file
52370 struct address_space *mapping = file->f_mapping; 53908 struct address_space *mapping = file->f_mapping;
52371 53909
@@ -52383,9 +53921,9 @@ diff -urNp linux-2.6.38.2/mm/filemap.c linux-2.6.38.2/mm/filemap.c
52383 if (*pos >= limit) { 53921 if (*pos >= limit) {
52384 send_sig(SIGXFSZ, current, 0); 53922 send_sig(SIGXFSZ, current, 0);
52385 return -EFBIG; 53923 return -EFBIG;
52386diff -urNp linux-2.6.38.2/mm/fremap.c linux-2.6.38.2/mm/fremap.c 53924diff -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 53925--- 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 53926+++ 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 53927@@ -156,6 +156,11 @@ SYSCALL_DEFINE5(remap_file_pages, unsign
52390 retry: 53928 retry:
52391 vma = find_vma(mm, start); 53929 vma = find_vma(mm, start);
@@ -52407,9 +53945,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); 53945 munlock_vma_pages_range(vma, start, start + size);
52408 vma->vm_flags = saved_flags; 53946 vma->vm_flags = saved_flags;
52409 } 53947 }
52410diff -urNp linux-2.6.38.2/mm/highmem.c linux-2.6.38.2/mm/highmem.c 53948diff -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 53949--- 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 53950+++ 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) 53951@@ -125,9 +125,10 @@ static void flush_all_zero_pkmaps(void)
52414 * So no dangers, even with speculative execution. 53952 * So no dangers, even with speculative execution.
52415 */ 53953 */
@@ -52435,9 +53973,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; 53973 pkmap_count[last_pkmap_nr] = 1;
52436 set_page_address(page, (void *)vaddr); 53974 set_page_address(page, (void *)vaddr);
52437 53975
52438diff -urNp linux-2.6.38.2/mm/hugetlb.c linux-2.6.38.2/mm/hugetlb.c 53976diff -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 53977--- 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 53978+++ 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 53979@@ -2333,6 +2333,27 @@ static int unmap_ref_private(struct mm_s
52442 return 1; 53980 return 1;
52443 } 53981 }
@@ -52527,9 +54065,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)); 54065 ptep = huge_pte_alloc(mm, address, huge_page_size(h));
52528 if (!ptep) 54066 if (!ptep)
52529 return VM_FAULT_OOM; 54067 return VM_FAULT_OOM;
52530diff -urNp linux-2.6.38.2/mm/Kconfig linux-2.6.38.2/mm/Kconfig 54068diff -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 54069--- 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 54070+++ linux-2.6.38.3/mm/Kconfig 2011-04-17 15:57:33.000000000 -0400
52533@@ -240,7 +240,7 @@ config KSM 54071@@ -240,7 +240,7 @@ config KSM
52534 config DEFAULT_MMAP_MIN_ADDR 54072 config DEFAULT_MMAP_MIN_ADDR
52535 int "Low address space to protect from user allocation" 54073 int "Low address space to protect from user allocation"
@@ -52539,9 +54077,9 @@ diff -urNp linux-2.6.38.2/mm/Kconfig linux-2.6.38.2/mm/Kconfig
52539 help 54077 help
52540 This is the portion of low virtual memory which should be protected 54078 This is the portion of low virtual memory which should be protected
52541 from userspace allocation. Keeping a user from writing to low pages 54079 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 54080diff -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 54081--- 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 54082+++ 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 54083@@ -357,7 +357,7 @@ static void print_unreferenced(struct se
52546 54084
52547 for (i = 0; i < object->trace_len; i++) { 54085 for (i = 0; i < object->trace_len; i++) {
@@ -52551,9 +54089,9 @@ diff -urNp linux-2.6.38.2/mm/kmemleak.c linux-2.6.38.2/mm/kmemleak.c
52551 } 54089 }
52552 } 54090 }
52553 54091
52554diff -urNp linux-2.6.38.2/mm/maccess.c linux-2.6.38.2/mm/maccess.c 54092diff -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 54093--- 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 54094+++ linux-2.6.38.3/mm/maccess.c 2011-04-17 15:57:33.000000000 -0400
52557@@ -15,10 +15,10 @@ 54095@@ -15,10 +15,10 @@
52558 * happens, handle that and return -EFAULT. 54096 * happens, handle that and return -EFAULT.
52559 */ 54097 */
@@ -52580,9 +54118,9 @@ diff -urNp linux-2.6.38.2/mm/maccess.c linux-2.6.38.2/mm/maccess.c
52580 { 54118 {
52581 long ret; 54119 long ret;
52582 mm_segment_t old_fs = get_fs(); 54120 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 54121diff -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 54122--- 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 54123+++ 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 54124@@ -45,6 +45,10 @@ static long madvise_behavior(struct vm_a
52587 pgoff_t pgoff; 54125 pgoff_t pgoff;
52588 unsigned long new_flags = vma->vm_flags; 54126 unsigned long new_flags = vma->vm_flags;
@@ -52659,9 +54197,9 @@ diff -urNp linux-2.6.38.2/mm/madvise.c linux-2.6.38.2/mm/madvise.c
52659 error = 0; 54197 error = 0;
52660 if (end == start) 54198 if (end == start)
52661 goto out; 54199 goto out;
52662diff -urNp linux-2.6.38.2/mm/memory.c linux-2.6.38.2/mm/memory.c 54200diff -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 54201--- 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 54202+++ 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 54203@@ -259,8 +259,12 @@ static inline void free_pmd_range(struct
52666 return; 54204 return;
52667 54205
@@ -53191,9 +54729,9 @@ diff -urNp linux-2.6.38.2/mm/memory.c linux-2.6.38.2/mm/memory.c
53191 /* 54729 /*
53192 * Make sure the vDSO gets into every core dump. 54730 * Make sure the vDSO gets into every core dump.
53193 * Dumping its contents makes post-mortem fully interpretable later 54731 * 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 54732diff -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 54733--- 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 54734+++ 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 54735@@ -58,7 +58,7 @@ int sysctl_memory_failure_early_kill __r
53198 54736
53199 int sysctl_memory_failure_recovery __read_mostly = 1; 54737 int sysctl_memory_failure_recovery __read_mostly = 1;
@@ -53266,9 +54804,9 @@ diff -urNp linux-2.6.38.2/mm/memory-failure.c linux-2.6.38.2/mm/memory-failure.c
53266 SetPageHWPoison(page); 54804 SetPageHWPoison(page);
53267 /* keep elevated page count for bad page */ 54805 /* keep elevated page count for bad page */
53268 return ret; 54806 return ret;
53269diff -urNp linux-2.6.38.2/mm/mempolicy.c linux-2.6.38.2/mm/mempolicy.c 54807diff -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 54808--- 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 54809+++ 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 54810@@ -643,6 +643,10 @@ static int mbind_range(struct mm_struct
53273 unsigned long vmstart; 54811 unsigned long vmstart;
53274 unsigned long vmend; 54812 unsigned long vmend;
@@ -53349,9 +54887,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) { 54887 } else if (vma->vm_start <= mm->brk && vma->vm_end >= mm->start_brk) {
53350 seq_printf(m, " heap"); 54888 seq_printf(m, " heap");
53351 } else if (vma->vm_start <= mm->start_stack && 54889 } 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 54890diff -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 54891--- 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 54892+++ 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, 54893@@ -1299,6 +1299,14 @@ SYSCALL_DEFINE6(move_pages, pid_t, pid,
53356 if (!mm) 54894 if (!mm)
53357 return -EINVAL; 54895 return -EINVAL;
@@ -53377,9 +54915,9 @@ diff -urNp linux-2.6.38.2/mm/migrate.c linux-2.6.38.2/mm/migrate.c
53377 rcu_read_unlock(); 54915 rcu_read_unlock();
53378 err = -EPERM; 54916 err = -EPERM;
53379 goto out; 54917 goto out;
53380diff -urNp linux-2.6.38.2/mm/mlock.c linux-2.6.38.2/mm/mlock.c 54918diff -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 54919--- 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 54920+++ linux-2.6.38.3/mm/mlock.c 2011-04-17 15:57:33.000000000 -0400
53383@@ -13,6 +13,7 @@ 54921@@ -13,6 +13,7 @@
53384 #include <linux/pagemap.h> 54922 #include <linux/pagemap.h>
53385 #include <linux/mempolicy.h> 54923 #include <linux/mempolicy.h>
@@ -53481,9 +55019,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) || 55019 if (!(flags & MCL_CURRENT) || (current->mm->total_vm <= lock_limit) ||
53482 capable(CAP_IPC_LOCK)) 55020 capable(CAP_IPC_LOCK))
53483 ret = do_mlockall(flags); 55021 ret = do_mlockall(flags);
53484diff -urNp linux-2.6.38.2/mm/mmap.c linux-2.6.38.2/mm/mmap.c 55022diff -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 55023--- 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 55024+++ linux-2.6.38.3/mm/mmap.c 2011-04-17 15:57:33.000000000 -0400
53487@@ -46,6 +46,16 @@ 55025@@ -46,6 +46,16 @@
53488 #define arch_rebalance_pgtables(addr, len) (addr) 55026 #define arch_rebalance_pgtables(addr, len) (addr)
53489 #endif 55027 #endif
@@ -54744,9 +56282,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; 56282 vma->vm_flags = vm_flags | mm->def_flags | VM_DONTEXPAND;
54745 vma->vm_page_prot = vm_get_page_prot(vma->vm_flags); 56283 vma->vm_page_prot = vm_get_page_prot(vma->vm_flags);
54746 56284
54747diff -urNp linux-2.6.38.2/mm/mprotect.c linux-2.6.38.2/mm/mprotect.c 56285diff -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 56286--- 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 56287+++ linux-2.6.38.3/mm/mprotect.c 2011-04-17 15:57:33.000000000 -0400
54750@@ -23,10 +23,16 @@ 56288@@ -23,10 +23,16 @@
54751 #include <linux/mmu_notifier.h> 56289 #include <linux/mmu_notifier.h>
54752 #include <linux/migrate.h> 56290 #include <linux/migrate.h>
@@ -54973,9 +56511,9 @@ diff -urNp linux-2.6.38.2/mm/mprotect.c linux-2.6.38.2/mm/mprotect.c
54973 nstart = tmp; 56511 nstart = tmp;
54974 56512
54975 if (nstart < prev->vm_end) 56513 if (nstart < prev->vm_end)
54976diff -urNp linux-2.6.38.2/mm/mremap.c linux-2.6.38.2/mm/mremap.c 56514diff -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 56515--- 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 56516+++ 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 56517@@ -114,6 +114,12 @@ static void move_ptes(struct vm_area_str
54980 continue; 56518 continue;
54981 pte = ptep_clear_flush(vma, old_addr, old_pte); 56519 pte = ptep_clear_flush(vma, old_addr, old_pte);
@@ -55001,7 +56539,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 */ 56539 /* We can't remap across vm area boundaries */
55002 if (old_len > vma->vm_end - addr) 56540 if (old_len > vma->vm_end - addr)
55003 goto Efault; 56541 goto Efault;
55004@@ -322,20 +333,25 @@ static unsigned long mremap_to(unsigned 56542@@ -329,20 +340,25 @@ static unsigned long mremap_to(unsigned
55005 unsigned long ret = -EINVAL; 56543 unsigned long ret = -EINVAL;
55006 unsigned long charged = 0; 56544 unsigned long charged = 0;
55007 unsigned long map_flags; 56545 unsigned long map_flags;
@@ -55032,7 +56570,7 @@ diff -urNp linux-2.6.38.2/mm/mremap.c linux-2.6.38.2/mm/mremap.c
55032 goto out; 56570 goto out;
55033 56571
55034 ret = security_file_mmap(NULL, 0, 0, 0, new_addr, 1); 56572 ret = security_file_mmap(NULL, 0, 0, 0, new_addr, 1);
55035@@ -407,6 +423,7 @@ unsigned long do_mremap(unsigned long ad 56573@@ -414,6 +430,7 @@ unsigned long do_mremap(unsigned long ad
55036 struct vm_area_struct *vma; 56574 struct vm_area_struct *vma;
55037 unsigned long ret = -EINVAL; 56575 unsigned long ret = -EINVAL;
55038 unsigned long charged = 0; 56576 unsigned long charged = 0;
@@ -55040,7 +56578,7 @@ diff -urNp linux-2.6.38.2/mm/mremap.c linux-2.6.38.2/mm/mremap.c
55040 56578
55041 if (flags & ~(MREMAP_FIXED | MREMAP_MAYMOVE)) 56579 if (flags & ~(MREMAP_FIXED | MREMAP_MAYMOVE))
55042 goto out; 56580 goto out;
55043@@ -425,6 +442,17 @@ unsigned long do_mremap(unsigned long ad 56581@@ -432,6 +449,17 @@ unsigned long do_mremap(unsigned long ad
55044 if (!new_len) 56582 if (!new_len)
55045 goto out; 56583 goto out;
55046 56584
@@ -55058,7 +56596,7 @@ diff -urNp linux-2.6.38.2/mm/mremap.c linux-2.6.38.2/mm/mremap.c
55058 if (flags & MREMAP_FIXED) { 56596 if (flags & MREMAP_FIXED) {
55059 if (flags & MREMAP_MAYMOVE) 56597 if (flags & MREMAP_MAYMOVE)
55060 ret = mremap_to(addr, old_len, new_addr, new_len); 56598 ret = mremap_to(addr, old_len, new_addr, new_len);
55061@@ -474,6 +502,7 @@ unsigned long do_mremap(unsigned long ad 56599@@ -481,6 +509,7 @@ unsigned long do_mremap(unsigned long ad
55062 addr + new_len); 56600 addr + new_len);
55063 } 56601 }
55064 ret = addr; 56602 ret = addr;
@@ -55066,7 +56604,7 @@ diff -urNp linux-2.6.38.2/mm/mremap.c linux-2.6.38.2/mm/mremap.c
55066 goto out; 56604 goto out;
55067 } 56605 }
55068 } 56606 }
55069@@ -500,7 +529,13 @@ unsigned long do_mremap(unsigned long ad 56607@@ -507,7 +536,13 @@ unsigned long do_mremap(unsigned long ad
55070 ret = security_file_mmap(NULL, 0, 0, 0, new_addr, 1); 56608 ret = security_file_mmap(NULL, 0, 0, 0, new_addr, 1);
55071 if (ret) 56609 if (ret)
55072 goto out; 56610 goto out;
@@ -55080,9 +56618,9 @@ diff -urNp linux-2.6.38.2/mm/mremap.c linux-2.6.38.2/mm/mremap.c
55080 } 56618 }
55081 out: 56619 out:
55082 if (ret & ~PAGE_MASK) 56620 if (ret & ~PAGE_MASK)
55083diff -urNp linux-2.6.38.2/mm/nommu.c linux-2.6.38.2/mm/nommu.c 56621diff -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 56622--- 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 56623+++ 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 56624@@ -63,7 +63,6 @@ int sysctl_overcommit_memory = OVERCOMMI
55087 int sysctl_overcommit_ratio = 50; /* default is 50% */ 56625 int sysctl_overcommit_ratio = 50; /* default is 50% */
55088 int sysctl_max_map_count = DEFAULT_MAX_MAP_COUNT; 56626 int sysctl_max_map_count = DEFAULT_MAX_MAP_COUNT;
@@ -55115,9 +56653,9 @@ diff -urNp linux-2.6.38.2/mm/nommu.c linux-2.6.38.2/mm/nommu.c
55115 *region = *vma->vm_region; 56653 *region = *vma->vm_region;
55116 new->vm_region = region; 56654 new->vm_region = region;
55117 56655
55118diff -urNp linux-2.6.38.2/mm/page_alloc.c linux-2.6.38.2/mm/page_alloc.c 56656diff -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 56657--- 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 56658+++ 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 56659@@ -644,6 +644,10 @@ static bool free_pages_prepare(struct pa
55122 int i; 56660 int i;
55123 int bad = 0; 56661 int bad = 0;
@@ -55153,9 +56691,9 @@ diff -urNp linux-2.6.38.2/mm/page_alloc.c linux-2.6.38.2/mm/page_alloc.c
55153 56691
55154 if (order && (gfp_flags & __GFP_COMP)) 56692 if (order && (gfp_flags & __GFP_COMP))
55155 prep_compound_page(page, order); 56693 prep_compound_page(page, order);
55156diff -urNp linux-2.6.38.2/mm/percpu.c linux-2.6.38.2/mm/percpu.c 56694diff -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 56695--- 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 56696+++ 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 56697@@ -121,7 +121,7 @@ static unsigned int pcpu_first_unit_cpu
55160 static unsigned int pcpu_last_unit_cpu __read_mostly; 56698 static unsigned int pcpu_last_unit_cpu __read_mostly;
55161 56699
@@ -55165,9 +56703,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); 56703 EXPORT_SYMBOL_GPL(pcpu_base_addr);
55166 56704
55167 static const int *pcpu_unit_map __read_mostly; /* cpu -> unit */ 56705 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 56706diff -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 56707--- 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 56708+++ 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 56709@@ -117,6 +117,10 @@ int anon_vma_prepare(struct vm_area_stru
55172 struct anon_vma *anon_vma = vma->anon_vma; 56710 struct anon_vma *anon_vma = vma->anon_vma;
55173 struct anon_vma_chain *avc; 56711 struct anon_vma_chain *avc;
@@ -55257,9 +56795,9 @@ diff -urNp linux-2.6.38.2/mm/rmap.c linux-2.6.38.2/mm/rmap.c
55257 { 56795 {
55258 struct anon_vma_chain *avc; 56796 struct anon_vma_chain *avc;
55259 struct anon_vma *anon_vma; 56797 struct anon_vma *anon_vma;
55260diff -urNp linux-2.6.38.2/mm/shmem.c linux-2.6.38.2/mm/shmem.c 56798diff -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 56799--- 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 56800+++ linux-2.6.38.3/mm/shmem.c 2011-04-18 22:03:12.000000000 -0400
55263@@ -31,7 +31,7 @@ 56801@@ -31,7 +31,7 @@
55264 #include <linux/percpu_counter.h> 56802 #include <linux/percpu_counter.h>
55265 #include <linux/swap.h> 56803 #include <linux/swap.h>
@@ -55278,9 +56816,36 @@ diff -urNp linux-2.6.38.2/mm/shmem.c linux-2.6.38.2/mm/shmem.c
55278 if (entry->val) { 56816 if (entry->val) {
55279 /* 56817 /*
55280 * The more uptodate page coming down from a stacked 56818 * 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 56819@@ -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 56820
55283+++ linux-2.6.38.2/mm/slab.c 2011-03-28 17:42:53.000000000 -0400 56821 info = SHMEM_I(inode);
56822 inode->i_size = len-1;
56823- if (len <= (char *)inode - (char *)info) {
56824+ if (len <= min((char *)inode - (char *)info, 64)) {
56825 /* do it inline */
56826 memcpy(info, symname, len);
56827 inode->i_op = &shmem_symlink_inline_operations;
56828diff -urNp linux-2.6.38.3/mm/slab.c linux-2.6.38.3/mm/slab.c
56829--- linux-2.6.38.3/mm/slab.c 2011-04-18 17:27:16.000000000 -0400
56830+++ linux-2.6.38.3/mm/slab.c 2011-04-18 22:03:34.000000000 -0400
56831@@ -150,7 +150,7 @@
56832
56833 /* Legal flag mask for kmem_cache_create(). */
56834 #if DEBUG
56835-# define CREATE_MASK (SLAB_RED_ZONE | \
56836+# define CREATE_MASK (SLAB_USERCOPY | SLAB_RED_ZONE | \
56837 SLAB_POISON | SLAB_HWCACHE_ALIGN | \
56838 SLAB_CACHE_DMA | \
56839 SLAB_STORE_USER | \
56840@@ -158,7 +158,7 @@
56841 SLAB_DESTROY_BY_RCU | SLAB_MEM_SPREAD | \
56842 SLAB_DEBUG_OBJECTS | SLAB_NOLEAKTRACE | SLAB_NOTRACK)
56843 #else
56844-# define CREATE_MASK (SLAB_HWCACHE_ALIGN | \
56845+# define CREATE_MASK (SLAB_USERCOPY | SLAB_HWCACHE_ALIGN | \
56846 SLAB_CACHE_DMA | \
56847 SLAB_RECLAIM_ACCOUNT | SLAB_PANIC | \
56848 SLAB_DESTROY_BY_RCU | SLAB_MEM_SPREAD | \
55284@@ -284,7 +284,7 @@ struct kmem_list3 { 56849@@ -284,7 +284,7 @@ struct kmem_list3 {
55285 * Need this for bootstrapping a per node allocator. 56850 * Need this for bootstrapping a per node allocator.
55286 */ 56851 */
@@ -55317,6 +56882,33 @@ diff -urNp linux-2.6.38.2/mm/slab.c linux-2.6.38.2/mm/slab.c
55317 56882
55318 /* internal cache of cache description objs */ 56883 /* internal cache of cache description objs */
55319 static struct kmem_cache cache_cache = { 56884 static struct kmem_cache cache_cache = {
56885@@ -1526,7 +1526,7 @@ void __init kmem_cache_init(void)
56886 sizes[INDEX_AC].cs_cachep = kmem_cache_create(names[INDEX_AC].name,
56887 sizes[INDEX_AC].cs_size,
56888 ARCH_KMALLOC_MINALIGN,
56889- ARCH_KMALLOC_FLAGS|SLAB_PANIC,
56890+ ARCH_KMALLOC_FLAGS|SLAB_PANIC|SLAB_USERCOPY,
56891 NULL);
56892
56893 if (INDEX_AC != INDEX_L3) {
56894@@ -1534,7 +1534,7 @@ void __init kmem_cache_init(void)
56895 kmem_cache_create(names[INDEX_L3].name,
56896 sizes[INDEX_L3].cs_size,
56897 ARCH_KMALLOC_MINALIGN,
56898- ARCH_KMALLOC_FLAGS|SLAB_PANIC,
56899+ ARCH_KMALLOC_FLAGS|SLAB_PANIC|SLAB_USERCOPY,
56900 NULL);
56901 }
56902
56903@@ -1552,7 +1552,7 @@ void __init kmem_cache_init(void)
56904 sizes->cs_cachep = kmem_cache_create(names->name,
56905 sizes->cs_size,
56906 ARCH_KMALLOC_MINALIGN,
56907- ARCH_KMALLOC_FLAGS|SLAB_PANIC,
56908+ ARCH_KMALLOC_FLAGS|SLAB_PANIC|SLAB_USERCOPY,
56909 NULL);
56910 }
56911 #ifdef CONFIG_ZONE_DMA
55320@@ -4535,15 +4535,66 @@ static const struct file_operations proc 56912@@ -4535,15 +4535,66 @@ static const struct file_operations proc
55321 56913
55322 static int __init slab_proc_init(void) 56914 static int __init slab_proc_init(void)
@@ -55342,9 +56934,9 @@ diff -urNp linux-2.6.38.2/mm/slab.c linux-2.6.38.2/mm/slab.c
55342+{ 56934+{
55343+ 56935+
55344+#ifdef CONFIG_PAX_USERCOPY 56936+#ifdef CONFIG_PAX_USERCOPY
55345+ struct kmem_cache *cachep;
55346+ struct slab *slabp;
55347+ struct page *page; 56937+ struct page *page;
56938+ struct kmem_cache *cachep = NULL;
56939+ struct slab *slabp;
55348+ unsigned int objnr; 56940+ unsigned int objnr;
55349+ unsigned long offset; 56941+ unsigned long offset;
55350+ 56942+
@@ -55366,6 +56958,9 @@ diff -urNp linux-2.6.38.2/mm/slab.c linux-2.6.38.2/mm/slab.c
55366+ } 56958+ }
55367+ 56959+
55368+ cachep = page_get_cache(page); 56960+ cachep = page_get_cache(page);
56961+ if (!(cachep->flags & SLAB_USERCOPY))
56962+ goto report;
56963+
55369+ slabp = page_get_slab(page); 56964+ slabp = page_get_slab(page);
55370+ objnr = obj_to_index(cachep, slabp, ptr); 56965+ objnr = obj_to_index(cachep, slabp, ptr);
55371+ BUG_ON(objnr >= cachep->num); 56966+ BUG_ON(objnr >= cachep->num);
@@ -55374,10 +56969,7 @@ diff -urNp linux-2.6.38.2/mm/slab.c linux-2.6.38.2/mm/slab.c
55374+ return; 56969+ return;
55375+ 56970+
55376+report: 56971+report:
55377+ if (to) 56972+ 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 56973+#endif
55382+ 56974+
55383+} 56975+}
@@ -55386,9 +56978,9 @@ diff -urNp linux-2.6.38.2/mm/slab.c linux-2.6.38.2/mm/slab.c
55386 /** 56978 /**
55387 * ksize - get the actual amount of memory allocated for a given object 56979 * ksize - get the actual amount of memory allocated for a given object
55388 * @objp: Pointer to the object 56980 * @objp: Pointer to the object
55389diff -urNp linux-2.6.38.2/mm/slob.c linux-2.6.38.2/mm/slob.c 56981diff -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 56982--- 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 56983+++ linux-2.6.38.3/mm/slob.c 2011-04-17 15:57:33.000000000 -0400
55392@@ -29,7 +29,7 @@ 56984@@ -29,7 +29,7 @@
55393 * If kmalloc is asked for objects of PAGE_SIZE or larger, it calls 56985 * If kmalloc is asked for objects of PAGE_SIZE or larger, it calls
55394 * alloc_pages() directly, allocating compound pages so the page order 56986 * alloc_pages() directly, allocating compound pages so the page order
@@ -55534,7 +57126,7 @@ diff -urNp linux-2.6.38.2/mm/slob.c linux-2.6.38.2/mm/slob.c
55534 EXPORT_SYMBOL(__kmalloc_node); 57126 EXPORT_SYMBOL(__kmalloc_node);
55535 57127
55536 void kfree(const void *block) 57128 void kfree(const void *block)
55537@@ -531,13 +543,84 @@ void kfree(const void *block) 57129@@ -531,13 +543,81 @@ void kfree(const void *block)
55538 sp = slob_page(block); 57130 sp = slob_page(block);
55539 if (is_slob_page(sp)) { 57131 if (is_slob_page(sp)) {
55540 int align = max(ARCH_KMALLOC_MINALIGN, ARCH_SLAB_MINALIGN); 57132 int align = max(ARCH_KMALLOC_MINALIGN, ARCH_SLAB_MINALIGN);
@@ -55610,10 +57202,7 @@ diff -urNp linux-2.6.38.2/mm/slob.c linux-2.6.38.2/mm/slob.c
55610+ } 57202+ }
55611+ 57203+
55612+report: 57204+report:
55613+ if (to) 57205+ 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 57206+#endif
55618+ 57207+
55619+} 57208+}
@@ -55622,7 +57211,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 */ 57211 /* can't use ksize for kmem_cache_alloc memory, only kmalloc */
55623 size_t ksize(const void *block) 57212 size_t ksize(const void *block)
55624 { 57213 {
55625@@ -550,10 +633,10 @@ size_t ksize(const void *block) 57214@@ -550,10 +630,10 @@ size_t ksize(const void *block)
55626 sp = slob_page(block); 57215 sp = slob_page(block);
55627 if (is_slob_page(sp)) { 57216 if (is_slob_page(sp)) {
55628 int align = max(ARCH_KMALLOC_MINALIGN, ARCH_SLAB_MINALIGN); 57217 int align = max(ARCH_KMALLOC_MINALIGN, ARCH_SLAB_MINALIGN);
@@ -55636,7 +57225,7 @@ diff -urNp linux-2.6.38.2/mm/slob.c linux-2.6.38.2/mm/slob.c
55636 } 57225 }
55637 EXPORT_SYMBOL(ksize); 57226 EXPORT_SYMBOL(ksize);
55638 57227
55639@@ -608,17 +691,25 @@ void *kmem_cache_alloc_node(struct kmem_ 57228@@ -608,17 +688,25 @@ void *kmem_cache_alloc_node(struct kmem_
55640 { 57229 {
55641 void *b; 57230 void *b;
55642 57231
@@ -55662,7 +57251,7 @@ diff -urNp linux-2.6.38.2/mm/slob.c linux-2.6.38.2/mm/slob.c
55662 57251
55663 if (c->ctor) 57252 if (c->ctor)
55664 c->ctor(b); 57253 c->ctor(b);
55665@@ -630,10 +721,16 @@ EXPORT_SYMBOL(kmem_cache_alloc_node); 57254@@ -630,10 +718,16 @@ EXPORT_SYMBOL(kmem_cache_alloc_node);
55666 57255
55667 static void __kmem_cache_free(void *b, int size) 57256 static void __kmem_cache_free(void *b, int size)
55668 { 57257 {
@@ -55681,7 +57270,7 @@ diff -urNp linux-2.6.38.2/mm/slob.c linux-2.6.38.2/mm/slob.c
55681 } 57270 }
55682 57271
55683 static void kmem_rcu_free(struct rcu_head *head) 57272 static void kmem_rcu_free(struct rcu_head *head)
55684@@ -646,14 +743,23 @@ static void kmem_rcu_free(struct rcu_hea 57273@@ -646,14 +740,23 @@ static void kmem_rcu_free(struct rcu_hea
55685 57274
55686 void kmem_cache_free(struct kmem_cache *c, void *b) 57275 void kmem_cache_free(struct kmem_cache *c, void *b)
55687 { 57276 {
@@ -55708,9 +57297,9 @@ diff -urNp linux-2.6.38.2/mm/slob.c linux-2.6.38.2/mm/slob.c
55708 } 57297 }
55709 57298
55710 trace_kmem_cache_free(_RET_IP_, b); 57299 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 57300diff -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 57301--- 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 57302+++ 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 57303@@ -390,7 +390,7 @@ static void print_track(const char *s, s
55715 if (!t->addr) 57304 if (!t->addr)
55716 return; 57305 return;
@@ -55766,7 +57355,7 @@ diff -urNp linux-2.6.38.2/mm/slub.c linux-2.6.38.2/mm/slub.c
55766+ 57355+
55767+#ifdef CONFIG_PAX_USERCOPY 57356+#ifdef CONFIG_PAX_USERCOPY
55768+ struct page *page; 57357+ struct page *page;
55769+ struct kmem_cache *s; 57358+ struct kmem_cache *s = NULL;
55770+ unsigned long offset; 57359+ unsigned long offset;
55771+ 57360+
55772+ if (!n) 57361+ if (!n)
@@ -55787,15 +57376,15 @@ diff -urNp linux-2.6.38.2/mm/slub.c linux-2.6.38.2/mm/slub.c
55787+ } 57376+ }
55788+ 57377+
55789+ s = page->slab; 57378+ s = page->slab;
57379+ if (!(s->flags & SLAB_USERCOPY))
57380+ goto report;
57381+
55790+ offset = (ptr - page_address(page)) % s->size; 57382+ offset = (ptr - page_address(page)) % s->size;
55791+ if (offset <= s->objsize && n <= s->objsize - offset) 57383+ if (offset <= s->objsize && n <= s->objsize - offset)
55792+ return; 57384+ return;
55793+ 57385+
55794+report: 57386+report:
55795+ if (to) 57387+ 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 57388+#endif
55800+ 57389+
55801+} 57390+}
@@ -55813,6 +57402,27 @@ diff -urNp linux-2.6.38.2/mm/slub.c linux-2.6.38.2/mm/slub.c
55813 57402
55814 for_each_node_state(node, N_NORMAL_MEMORY) { 57403 for_each_node_state(node, N_NORMAL_MEMORY) {
55815 struct kmem_cache_node *n = get_node(s, node); 57404 struct kmem_cache_node *n = get_node(s, node);
57405@@ -3075,17 +3116,17 @@ void __init kmem_cache_init(void)
57406
57407 /* Caches that are not of the two-to-the-power-of size */
57408 if (KMALLOC_MIN_SIZE <= 32) {
57409- kmalloc_caches[1] = create_kmalloc_cache("kmalloc-96", 96, 0);
57410+ kmalloc_caches[1] = create_kmalloc_cache("kmalloc-96", 96, SLAB_USERCOPY);
57411 caches++;
57412 }
57413
57414 if (KMALLOC_MIN_SIZE <= 64) {
57415- kmalloc_caches[2] = create_kmalloc_cache("kmalloc-192", 192, 0);
57416+ kmalloc_caches[2] = create_kmalloc_cache("kmalloc-192", 192, SLAB_USERCOPY);
57417 caches++;
57418 }
57419
57420 for (i = KMALLOC_SHIFT_LOW; i < SLUB_PAGE_SHIFT; i++) {
57421- kmalloc_caches[i] = create_kmalloc_cache("kmalloc", 1 << i, 0);
57422+ kmalloc_caches[i] = create_kmalloc_cache("kmalloc", 1 << i, SLAB_USERCOPY);
57423 caches++;
57424 }
57425
55816@@ -3153,7 +3194,7 @@ static int slab_unmergeable(struct kmem_ 57426@@ -3153,7 +3194,7 @@ static int slab_unmergeable(struct kmem_
55817 /* 57427 /*
55818 * We may have set a slab to be unmergeable during bootstrap. 57428 * We may have set a slab to be unmergeable during bootstrap.
@@ -55864,9 +57474,9 @@ diff -urNp linux-2.6.38.2/mm/slub.c linux-2.6.38.2/mm/slub.c
55864 return 0; 57474 return 0;
55865 } 57475 }
55866 module_init(slab_proc_init); 57476 module_init(slab_proc_init);
55867diff -urNp linux-2.6.38.2/mm/util.c linux-2.6.38.2/mm/util.c 57477diff -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 57478--- 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 57479+++ 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); 57480@@ -219,6 +219,12 @@ EXPORT_SYMBOL(strndup_user);
55871 void arch_pick_mmap_layout(struct mm_struct *mm) 57481 void arch_pick_mmap_layout(struct mm_struct *mm)
55872 { 57482 {
@@ -55880,9 +57490,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; 57490 mm->get_unmapped_area = arch_get_unmapped_area;
55881 mm->unmap_area = arch_unmap_area; 57491 mm->unmap_area = arch_unmap_area;
55882 } 57492 }
55883diff -urNp linux-2.6.38.2/mm/vmalloc.c linux-2.6.38.2/mm/vmalloc.c 57493diff -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 57494--- 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 57495+++ 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, 57496@@ -39,8 +39,19 @@ static void vunmap_pte_range(pmd_t *pmd,
55887 57497
55888 pte = pte_offset_kernel(pmd, addr); 57498 pte = pte_offset_kernel(pmd, addr);
@@ -56115,9 +57725,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) 57725 if ((PAGE_SIZE-1) & (unsigned long)addr)
56116 return -EINVAL; 57726 return -EINVAL;
56117 57727
56118diff -urNp linux-2.6.38.2/mm/vmstat.c linux-2.6.38.2/mm/vmstat.c 57728diff -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 57729--- 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 57730+++ 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) 57731@@ -78,7 +78,7 @@ void vm_events_fold_cpu(int cpu)
56122 * 57732 *
56123 * vm_stat contains the global counters 57733 * vm_stat contains the global counters
@@ -56170,9 +57780,9 @@ diff -urNp linux-2.6.38.2/mm/vmstat.c linux-2.6.38.2/mm/vmstat.c
56170 #endif 57780 #endif
56171 return 0; 57781 return 0;
56172 } 57782 }
56173diff -urNp linux-2.6.38.2/net/8021q/vlan.c linux-2.6.38.2/net/8021q/vlan.c 57783diff -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 57784--- 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 57785+++ 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 57786@@ -589,8 +589,7 @@ static int vlan_ioctl_handler(struct net
56177 err = -EPERM; 57787 err = -EPERM;
56178 if (!capable(CAP_NET_ADMIN)) 57788 if (!capable(CAP_NET_ADMIN))
@@ -56183,9 +57793,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; 57793 struct vlan_net *vn;
56184 57794
56185 vn = net_generic(net, vlan_net_id); 57795 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 57796diff -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 57797--- 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 57798+++ 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 57799@@ -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) 57800 if (atomic_read(&sk_atm(vcc)->sk_rmem_alloc) <= sk_atm(vcc)->sk_rcvbuf)
56191 return 1; 57801 return 1;
@@ -56222,9 +57832,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 57832 __SONET_ITEMS
56223 #undef __HANDLE_ITEM 57833 #undef __HANDLE_ITEM
56224 } 57834 }
56225diff -urNp linux-2.6.38.2/net/atm/proc.c linux-2.6.38.2/net/atm/proc.c 57835diff -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 57836--- 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 57837+++ 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 57838@@ -45,9 +45,9 @@ static void add_stats(struct seq_file *s
56229 const struct k_atm_aal_stats *stats) 57839 const struct k_atm_aal_stats *stats)
56230 { 57840 {
@@ -56263,9 +57873,9 @@ diff -urNp linux-2.6.38.2/net/atm/proc.c linux-2.6.38.2/net/atm/proc.c
56263 else 57873 else
56264 seq_printf(seq, "%3d %3d %5d ", 57874 seq_printf(seq, "%3d %3d %5d ",
56265 vcc->dev->number, vcc->vpi, vcc->vci); 57875 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 57876diff -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 57877--- 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 57878+++ 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); 57879@@ -160,7 +160,7 @@ EXPORT_SYMBOL(atm_dev_deregister);
56270 static void copy_aal_stats(struct k_atm_aal_stats *from, 57880 static void copy_aal_stats(struct k_atm_aal_stats *from,
56271 struct atm_aal_stats *to) 57881 struct atm_aal_stats *to)
@@ -56284,31 +57894,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 57894 __AAL_STAT_ITEMS
56285 #undef __HANDLE_ITEM 57895 #undef __HANDLE_ITEM
56286 } 57896 }
56287diff -urNp linux-2.6.38.2/net/bluetooth/bnep/sock.c linux-2.6.38.2/net/bluetooth/bnep/sock.c 57897diff -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 57898--- 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 57899+++ 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 57900@@ -1482,7 +1482,7 @@ static int br_multicast_ipv6_rcv(struct
56313 nexthdr = ip6h->nexthdr; 57901 nexthdr = ip6h->nexthdr;
56314 offset = ipv6_skip_exthdr(skb, sizeof(*ip6h), &nexthdr); 57902 offset = ipv6_skip_exthdr(skb, sizeof(*ip6h), &nexthdr);
@@ -56318,19 +57906,10 @@ diff -urNp linux-2.6.38.2/net/bridge/br_multicast.c linux-2.6.38.2/net/bridge/br
56318 return 0; 57906 return 0;
56319 57907
56320 /* Okay, we found ICMPv6 header */ 57908 /* 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 57909diff -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 57910--- 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 57911+++ 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 57912@@ -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; 57913 tmp.valid_hooks = t->table->valid_hooks;
56335 } 57914 }
56336 mutex_unlock(&ebt_mutex); 57915 mutex_unlock(&ebt_mutex);
@@ -56339,9 +57918,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"); 57918 BUGPRINT("c2u Didn't work\n");
56340 ret = -EFAULT; 57919 ret = -EFAULT;
56341 break; 57920 break;
56342diff -urNp linux-2.6.38.2/net/can/bcm.c linux-2.6.38.2/net/can/bcm.c 57921diff -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 57922--- 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 57923+++ 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 57924@@ -165,9 +165,15 @@ static int bcm_proc_show(struct seq_file
56346 struct bcm_sock *bo = bcm_sk(sk); 57925 struct bcm_sock *bo = bcm_sk(sk);
56347 struct bcm_op *op; 57926 struct bcm_op *op;
@@ -56358,19 +57937,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); 57937 seq_printf(m, " / dropped %lu", bo->dropped_usr_msgs);
56359 seq_printf(m, " / bound %s", bcm_proc_getifname(ifname, bo->ifindex)); 57938 seq_printf(m, " / bound %s", bcm_proc_getifname(ifname, bo->ifindex));
56360 seq_printf(m, " <<<\n"); 57939 seq_printf(m, " <<<\n");
56361diff -urNp linux-2.6.38.2/net/core/dev.c linux-2.6.38.2/net/core/dev.c 57940diff -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 57941--- 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 57942+++ 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 57943@@ -1124,10 +1124,14 @@ void dev_load(struct net *net, const cha
56365 if (no_module && capable(CAP_NET_ADMIN)) 57944 if (no_module && capable(CAP_NET_ADMIN))
56366 no_module = request_module("netdev-%s", name); 57945 no_module = request_module("netdev-%s", name);
56367 if (no_module && capable(CAP_SYS_MODULE)) { 57946 if (no_module && capable(CAP_SYS_MODULE)) {
56368- if (!request_module("%s", name)) 57947+#ifdef CONFIG_GRKERNSEC_MODHARDEN
56369+ if (!request_module("%s", name)) 57948+ ___request_module(true, "grsec_modharden_netdev", "%s", name);
57949+#else
57950 if (!request_module("%s", name))
56370 pr_err("Loading kernel module for a network device " 57951 pr_err("Loading kernel module for a network device "
56371 "with CAP_SYS_MODULE (deprecated). Use CAP_NET_ADMIN and alias netdev-%s " 57952 "with CAP_SYS_MODULE (deprecated). Use CAP_NET_ADMIN and alias netdev-%s "
56372 "instead\n", name); 57953 "instead\n", name);
56373@@ -2787,7 +2787,7 @@ int netif_rx_ni(struct sk_buff *skb) 57954+#endif
57955 }
57956 }
57957 EXPORT_SYMBOL(dev_load);
57958@@ -2787,7 +2791,7 @@ int netif_rx_ni(struct sk_buff *skb)
56374 } 57959 }
56375 EXPORT_SYMBOL(netif_rx_ni); 57960 EXPORT_SYMBOL(netif_rx_ni);
56376 57961
@@ -56379,7 +57964,7 @@ diff -urNp linux-2.6.38.2/net/core/dev.c linux-2.6.38.2/net/core/dev.c
56379 { 57964 {
56380 struct softnet_data *sd = &__get_cpu_var(softnet_data); 57965 struct softnet_data *sd = &__get_cpu_var(softnet_data);
56381 57966
56382@@ -3697,7 +3697,7 @@ void netif_napi_del(struct napi_struct * 57967@@ -3697,7 +3701,7 @@ void netif_napi_del(struct napi_struct *
56383 } 57968 }
56384 EXPORT_SYMBOL(netif_napi_del); 57969 EXPORT_SYMBOL(netif_napi_del);
56385 57970
@@ -56388,9 +57973,9 @@ diff -urNp linux-2.6.38.2/net/core/dev.c linux-2.6.38.2/net/core/dev.c
56388 { 57973 {
56389 struct softnet_data *sd = &__get_cpu_var(softnet_data); 57974 struct softnet_data *sd = &__get_cpu_var(softnet_data);
56390 unsigned long time_limit = jiffies + 2; 57975 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 57976diff -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 57977--- 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 57978+++ 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, 57979@@ -934,7 +934,7 @@ int sock_getsockopt(struct socket *sock,
56395 return -ENOTCONN; 57980 return -ENOTCONN;
56396 if (lv < len) 57981 if (lv < len)
@@ -56409,9 +57994,9 @@ diff -urNp linux-2.6.38.2/net/core/sock.c linux-2.6.38.2/net/core/sock.c
56409 return -EFAULT; 57994 return -EFAULT;
56410 lenout: 57995 lenout:
56411 if (put_user(len, optlen)) 57996 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 57997diff -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 57998--- 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 57999+++ linux-2.6.38.3/net/dccp/ccids/ccid3.c 2011-04-17 15:57:33.000000000 -0400
56415@@ -41,7 +41,7 @@ 58000@@ -41,7 +41,7 @@
56416 static int ccid3_debug; 58001 static int ccid3_debug;
56417 #define ccid3_pr_debug(format, a...) DCCP_PR_DEBUG(ccid3_debug, format, ##a) 58002 #define ccid3_pr_debug(format, a...) DCCP_PR_DEBUG(ccid3_debug, format, ##a)
@@ -56421,9 +58006,9 @@ diff -urNp linux-2.6.38.2/net/dccp/ccids/ccid3.c linux-2.6.38.2/net/dccp/ccids/c
56421 #endif 58006 #endif
56422 58007
56423 /* 58008 /*
56424diff -urNp linux-2.6.38.2/net/dccp/dccp.h linux-2.6.38.2/net/dccp/dccp.h 58009diff -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 58010--- 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 58011+++ 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; 58012@@ -44,9 +44,9 @@ extern int dccp_debug;
56428 #define dccp_pr_debug_cat(format, a...) DCCP_PRINTK(dccp_debug, format, ##a) 58013 #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) 58014 #define dccp_debug(fmt, a...) dccp_pr_debug_cat(KERN_DEBUG fmt, ##a)
@@ -56437,9 +58022,9 @@ diff -urNp linux-2.6.38.2/net/dccp/dccp.h linux-2.6.38.2/net/dccp/dccp.h
56437 #endif 58022 #endif
56438 58023
56439 extern struct inet_hashinfo dccp_hashinfo; 58024 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 58025diff -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 58026--- 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 58027+++ 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 58028@@ -173,7 +173,7 @@ static int dn_node_address_handler(ctl_t
56444 58029
56445 if (len > *lenp) len = *lenp; 58030 if (len > *lenp) len = *lenp;
@@ -56458,9 +58043,9 @@ diff -urNp linux-2.6.38.2/net/decnet/sysctl_net_decnet.c linux-2.6.38.2/net/decn
56458 return -EFAULT; 58043 return -EFAULT;
56459 58044
56460 *lenp = len; 58045 *lenp = len;
56461diff -urNp linux-2.6.38.2/net/econet/Kconfig linux-2.6.38.2/net/econet/Kconfig 58046diff -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 58047--- 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 58048+++ linux-2.6.38.3/net/econet/Kconfig 2011-04-17 15:57:33.000000000 -0400
56464@@ -4,7 +4,7 @@ 58049@@ -4,7 +4,7 @@
56465 58050
56466 config ECONET 58051 config ECONET
@@ -56470,9 +58055,9 @@ diff -urNp linux-2.6.38.2/net/econet/Kconfig linux-2.6.38.2/net/econet/Kconfig
56470 ---help--- 58055 ---help---
56471 Econet is a fairly old and slow networking protocol mainly used by 58056 Econet is a fairly old and slow networking protocol mainly used by
56472 Acorn computers to access file and print servers. It uses native 58057 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 58058diff -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 58059--- 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 58060+++ 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 58061@@ -114,8 +114,14 @@ static int inet_csk_diag_fill(struct soc
56477 r->idiag_retrans = 0; 58062 r->idiag_retrans = 0;
56478 58063
@@ -56534,9 +58119,9 @@ diff -urNp linux-2.6.38.2/net/ipv4/inet_diag.c linux-2.6.38.2/net/ipv4/inet_diag
56534 58119
56535 tmo = req->expires - jiffies; 58120 tmo = req->expires - jiffies;
56536 if (tmo < 0) 58121 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 58122diff -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 58123--- 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 58124+++ linux-2.6.38.3/net/ipv4/inet_hashtables.c 2011-04-17 15:57:33.000000000 -0400
56540@@ -18,11 +18,14 @@ 58125@@ -18,11 +18,14 @@
56541 #include <linux/sched.h> 58126 #include <linux/sched.h>
56542 #include <linux/slab.h> 58127 #include <linux/slab.h>
@@ -56561,9 +58146,9 @@ diff -urNp linux-2.6.38.2/net/ipv4/inet_hashtables.c linux-2.6.38.2/net/ipv4/ine
56561 if (tw) { 58146 if (tw) {
56562 inet_twsk_deschedule(tw, death_row); 58147 inet_twsk_deschedule(tw, death_row);
56563 while (twrefcnt) { 58148 while (twrefcnt) {
56564diff -urNp linux-2.6.38.2/net/ipv4/inetpeer.c linux-2.6.38.2/net/ipv4/inetpeer.c 58149diff -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 58150--- 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 58151+++ 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 58152@@ -509,8 +509,8 @@ struct inet_peer *inet_getpeer(struct in
56568 if (p) { 58153 if (p) {
56569 p->daddr = *daddr; 58154 p->daddr = *daddr;
@@ -56575,9 +58160,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; 58160 p->tcp_ts_stamp = 0;
56576 INIT_LIST_HEAD(&p->unused); 58161 INIT_LIST_HEAD(&p->unused);
56577 58162
56578diff -urNp linux-2.6.38.2/net/ipv4/ip_fragment.c linux-2.6.38.2/net/ipv4/ip_fragment.c 58163diff -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 58164--- 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 58165+++ 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 58166@@ -298,7 +298,7 @@ static inline int ip_frag_too_far(struct
56582 return 0; 58167 return 0;
56583 58168
@@ -56587,9 +58172,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; 58172 qp->rid = end;
56588 58173
56589 rc = qp->q.fragments && (end - start) > max; 58174 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 58175diff -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 58176--- 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 58177+++ 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( 58178@@ -398,7 +398,7 @@ static unsigned char asn1_octets_decode(
56594 58179
56595 *len = 0; 58180 *len = 0;
@@ -56599,9 +58184,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) { 58184 if (*octets == NULL) {
56600 if (net_ratelimit()) 58185 if (net_ratelimit())
56601 pr_notice("OOM in bsalg (%d)\n", __LINE__); 58186 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 58187diff -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 58188--- 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 58189+++ linux-2.6.38.3/net/ipv4/raw.c 2011-04-17 15:57:33.000000000 -0400
58190@@ -724,15 +724,19 @@ static int raw_init(struct sock *sk)
58191
58192 static int raw_seticmpfilter(struct sock *sk, char __user *optval, int optlen)
58193 {
58194+ struct icmp_filter filter;
58195+
58196 if (optlen > sizeof(struct icmp_filter))
58197 optlen = sizeof(struct icmp_filter);
58198- if (copy_from_user(&raw_sk(sk)->filter, optval, optlen))
58199+ if (copy_from_user(&filter, optval, optlen))
58200 return -EFAULT;
58201+ memcpy(&raw_sk(sk)->filter, &filter, sizeof(filter));
58202 return 0;
58203 }
58204
58205 static int raw_geticmpfilter(struct sock *sk, char __user *optval, int __user *optlen)
58206 {
58207+ struct icmp_filter filter;
58208 int len, ret = -EFAULT;
58209
58210 if (get_user(len, optlen))
58211@@ -743,8 +747,9 @@ static int raw_geticmpfilter(struct sock
58212 if (len > sizeof(struct icmp_filter))
58213 len = sizeof(struct icmp_filter);
58214 ret = -EFAULT;
58215+ memcpy(&filter, &raw_sk(sk)->filter, len);
58216 if (put_user(len, optlen) ||
58217- copy_to_user(optval, &raw_sk(sk)->filter, len))
58218+ copy_to_user(optval, &filter, len))
58219 goto out;
58220 ret = 0;
58221 out: return ret;
58222diff -urNp linux-2.6.38.3/net/ipv4/route.c linux-2.6.38.3/net/ipv4/route.c
58223--- linux-2.6.38.3/net/ipv4/route.c 2011-03-14 21:20:32.000000000 -0400
58224+++ 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, 58225@@ -2857,7 +2857,7 @@ static int rt_fill_info(struct net *net,
56606 expires = rt->dst.expires ? rt->dst.expires - jiffies : 0; 58226 expires = rt->dst.expires ? rt->dst.expires - jiffies : 0;
56607 if (rt->peer) { 58227 if (rt->peer) {
@@ -56611,9 +58231,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) { 58231 if (rt->peer->tcp_ts_stamp) {
56612 ts = rt->peer->tcp_ts; 58232 ts = rt->peer->tcp_ts;
56613 tsage = get_seconds() - rt->peer->tcp_ts_stamp; 58233 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 58234diff -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 58235--- 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 58236+++ 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; 58237@@ -86,6 +86,9 @@ int sysctl_tcp_tw_reuse __read_mostly;
56618 int sysctl_tcp_low_latency __read_mostly; 58238 int sysctl_tcp_low_latency __read_mostly;
56619 EXPORT_SYMBOL(sysctl_tcp_low_latency); 58239 EXPORT_SYMBOL(sysctl_tcp_low_latency);
@@ -56709,9 +58329,9 @@ diff -urNp linux-2.6.38.2/net/ipv4/tcp_ipv4.c linux-2.6.38.2/net/ipv4/tcp_ipv4.c
56709 } 58329 }
56710 58330
56711 #define TMPSZ 150 58331 #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 58332diff -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 58333--- 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 58334+++ linux-2.6.38.3/net/ipv4/tcp_minisocks.c 2011-04-17 15:57:33.000000000 -0400
56715@@ -27,6 +27,10 @@ 58335@@ -27,6 +27,10 @@
56716 #include <net/inet_common.h> 58336 #include <net/inet_common.h>
56717 #include <net/xfrm.h> 58337 #include <net/xfrm.h>
@@ -56734,9 +58354,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)) 58354 if (!(flg & TCP_FLAG_RST))
56735 req->rsk_ops->send_reset(sk, skb); 58355 req->rsk_ops->send_reset(sk, skb);
56736 58356
56737diff -urNp linux-2.6.38.2/net/ipv4/tcp_probe.c linux-2.6.38.2/net/ipv4/tcp_probe.c 58357diff -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 58358--- 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 58359+++ 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 58360@@ -202,7 +202,7 @@ static ssize_t tcpprobe_read(struct file
56741 if (cnt + width >= len) 58361 if (cnt + width >= len)
56742 break; 58362 break;
@@ -56746,9 +58366,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; 58366 return -EFAULT;
56747 cnt += width; 58367 cnt += width;
56748 } 58368 }
56749diff -urNp linux-2.6.38.2/net/ipv4/tcp_timer.c linux-2.6.38.2/net/ipv4/tcp_timer.c 58369diff -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 58370--- 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 58371+++ linux-2.6.38.3/net/ipv4/tcp_timer.c 2011-04-17 15:57:33.000000000 -0400
56752@@ -22,6 +22,10 @@ 58372@@ -22,6 +22,10 @@
56753 #include <linux/gfp.h> 58373 #include <linux/gfp.h>
56754 #include <net/tcp.h> 58374 #include <net/tcp.h>
@@ -56774,9 +58394,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, 58394 if (retransmits_timed_out(sk, retry_until,
56775 syn_set ? 0 : icsk->icsk_user_timeout, syn_set)) { 58395 syn_set ? 0 : icsk->icsk_user_timeout, syn_set)) {
56776 /* Has it gone just too far? */ 58396 /* 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 58397diff -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 58398--- 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 58399+++ linux-2.6.38.3/net/ipv4/udp.c 2011-04-17 15:57:33.000000000 -0400
56780@@ -86,6 +86,7 @@ 58400@@ -86,6 +86,7 @@
56781 #include <linux/types.h> 58401 #include <linux/types.h>
56782 #include <linux/fcntl.h> 58402 #include <linux/fcntl.h>
@@ -56860,9 +58480,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); 58480 atomic_read(&sp->sk_drops), len);
56861 } 58481 }
56862 58482
56863diff -urNp linux-2.6.38.2/net/ipv6/exthdrs.c linux-2.6.38.2/net/ipv6/exthdrs.c 58483diff -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 58484--- 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 58485+++ 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 58486@@ -634,7 +634,7 @@ static struct tlvtype_proc tlvprochopopt
56867 .type = IPV6_TLV_JUMBO, 58487 .type = IPV6_TLV_JUMBO,
56868 .func = ipv6_hop_jumbo, 58488 .func = ipv6_hop_jumbo,
@@ -56872,9 +58492,9 @@ diff -urNp linux-2.6.38.2/net/ipv6/exthdrs.c linux-2.6.38.2/net/ipv6/exthdrs.c
56872 }; 58492 };
56873 58493
56874 int ipv6_parse_hopopts(struct sk_buff *skb) 58494 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 58495diff -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 58496--- 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 58497+++ linux-2.6.38.3/net/ipv6/raw.c 2011-04-17 15:57:33.000000000 -0400
56878@@ -602,7 +602,7 @@ out: 58498@@ -602,7 +602,7 @@ out:
56879 return err; 58499 return err;
56880 } 58500 }
@@ -56884,7 +58504,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, 58504 struct flowi *fl, struct dst_entry **dstp,
56885 unsigned int flags) 58505 unsigned int flags)
56886 { 58506 {
56887@@ -1262,7 +1262,13 @@ static void raw6_sock_seq_show(struct se 58507@@ -919,12 +919,15 @@ do_confirm:
58508 static int rawv6_seticmpfilter(struct sock *sk, int level, int optname,
58509 char __user *optval, int optlen)
58510 {
58511+ struct icmp6_filter filter;
58512+
58513 switch (optname) {
58514 case ICMPV6_FILTER:
58515 if (optlen > sizeof(struct icmp6_filter))
58516 optlen = sizeof(struct icmp6_filter);
58517- if (copy_from_user(&raw6_sk(sk)->filter, optval, optlen))
58518+ if (copy_from_user(&filter, optval, optlen))
58519 return -EFAULT;
58520+ memcpy(&raw6_sk(sk)->filter, &filter, optlen);
58521 return 0;
58522 default:
58523 return -ENOPROTOOPT;
58524@@ -936,6 +939,7 @@ static int rawv6_seticmpfilter(struct so
58525 static int rawv6_geticmpfilter(struct sock *sk, int level, int optname,
58526 char __user *optval, int __user *optlen)
58527 {
58528+ struct icmp6_filter filter;
58529 int len;
58530
58531 switch (optname) {
58532@@ -948,7 +952,8 @@ static int rawv6_geticmpfilter(struct so
58533 len = sizeof(struct icmp6_filter);
58534 if (put_user(len, optlen))
58535 return -EFAULT;
58536- if (copy_to_user(optval, &raw6_sk(sk)->filter, len))
58537+ memcpy(&filter, &raw6_sk(sk)->filter, len);
58538+ if (copy_to_user(optval, &filter, len))
58539 return -EFAULT;
58540 return 0;
58541 default:
58542@@ -1262,7 +1267,13 @@ static void raw6_sock_seq_show(struct se
56888 0, 0L, 0, 58543 0, 0L, 0,
56889 sock_i_uid(sp), 0, 58544 sock_i_uid(sp), 0,
56890 sock_i_ino(sp), 58545 sock_i_ino(sp),
@@ -56899,9 +58554,9 @@ diff -urNp linux-2.6.38.2/net/ipv6/raw.c linux-2.6.38.2/net/ipv6/raw.c
56899 } 58554 }
56900 58555
56901 static int raw6_seq_show(struct seq_file *seq, void *v) 58556 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 58557diff -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 58558--- 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 58559+++ 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 58560@@ -92,6 +92,10 @@ static struct tcp_md5sig_key *tcp_v6_md5
56906 } 58561 }
56907 #endif 58562 #endif
@@ -57001,9 +58656,9 @@ diff -urNp linux-2.6.38.2/net/ipv6/tcp_ipv6.c linux-2.6.38.2/net/ipv6/tcp_ipv6.c
57001 } 58656 }
57002 58657
57003 static int tcp6_seq_show(struct seq_file *seq, void *v) 58658 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 58659diff -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 58660--- 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 58661+++ linux-2.6.38.3/net/ipv6/udp.c 2011-04-17 15:57:33.000000000 -0400
57007@@ -50,6 +50,10 @@ 58662@@ -50,6 +50,10 @@
57008 #include <linux/seq_file.h> 58663 #include <linux/seq_file.h>
57009 #include "udp_impl.h" 58664 #include "udp_impl.h"
@@ -57039,9 +58694,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)); 58694 atomic_read(&sp->sk_drops));
57040 } 58695 }
57041 58696
57042diff -urNp linux-2.6.38.2/net/irda/ircomm/ircomm_tty.c linux-2.6.38.2/net/irda/ircomm/ircomm_tty.c 58697diff -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 58698--- 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 58699+++ 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 58700@@ -281,16 +281,16 @@ static int ircomm_tty_block_til_ready(st
57046 add_wait_queue(&self->open_wait, &wait); 58701 add_wait_queue(&self->open_wait, &wait);
57047 58702
@@ -57164,9 +58819,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); 58819 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); 58820 seq_printf(m, "Max header size: %d\n", self->max_header_size);
57166 58821
57167diff -urNp linux-2.6.38.2/net/key/af_key.c linux-2.6.38.2/net/key/af_key.c 58822diff -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 58823--- 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 58824+++ 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 58825@@ -3644,7 +3644,11 @@ static int pfkey_seq_show(struct seq_fil
57171 seq_printf(f ,"sk RefCnt Rmem Wmem User Inode\n"); 58826 seq_printf(f ,"sk RefCnt Rmem Wmem User Inode\n");
57172 else 58827 else
@@ -57179,9 +58834,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), 58834 atomic_read(&s->sk_refcnt),
57180 sk_rmem_alloc_get(s), 58835 sk_rmem_alloc_get(s),
57181 sk_wmem_alloc_get(s), 58836 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 58837diff -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 58838--- 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 58839+++ linux-2.6.38.3/net/mac80211/cfg.c 2011-04-17 15:57:33.000000000 -0400
58840@@ -1939,7 +1939,7 @@ static int ieee80211_get_antenna(struct
58841 return drv_get_antenna(local, tx_ant, rx_ant);
58842 }
58843
58844-struct cfg80211_ops mac80211_config_ops = {
58845+const struct cfg80211_ops mac80211_config_ops = {
58846 .add_virtual_intf = ieee80211_add_iface,
58847 .del_virtual_intf = ieee80211_del_iface,
58848 .change_virtual_intf = ieee80211_change_iface,
58849diff -urNp linux-2.6.38.3/net/mac80211/cfg.h linux-2.6.38.3/net/mac80211/cfg.h
58850--- linux-2.6.38.3/net/mac80211/cfg.h 2011-03-14 21:20:32.000000000 -0400
58851+++ linux-2.6.38.3/net/mac80211/cfg.h 2011-04-17 15:57:33.000000000 -0400
58852@@ -4,6 +4,6 @@
58853 #ifndef __CFG_H
58854 #define __CFG_H
58855
58856-extern struct cfg80211_ops mac80211_config_ops;
58857+extern const struct cfg80211_ops mac80211_config_ops;
58858
58859 #endif /* __CFG_H */
58860diff -urNp linux-2.6.38.3/net/mac80211/ieee80211_i.h linux-2.6.38.3/net/mac80211/ieee80211_i.h
58861--- linux-2.6.38.3/net/mac80211/ieee80211_i.h 2011-03-14 21:20:32.000000000 -0400
58862+++ linux-2.6.38.3/net/mac80211/ieee80211_i.h 2011-04-17 15:57:33.000000000 -0400
57185@@ -27,6 +27,7 @@ 58863@@ -27,6 +27,7 @@
57186 #include <net/ieee80211_radiotap.h> 58864 #include <net/ieee80211_radiotap.h>
57187 #include <net/cfg80211.h> 58865 #include <net/cfg80211.h>
@@ -57199,9 +58877,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; 58877 int monitors, cooked_mntrs;
57200 /* number of interfaces with corresponding FIF_ flags */ 58878 /* number of interfaces with corresponding FIF_ flags */
57201 int fif_fcsfail, fif_plcpfail, fif_control, fif_other_bss, fif_pspoll, 58879 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 58880diff -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 58881--- 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 58882+++ 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_ 58883@@ -211,7 +211,7 @@ static int ieee80211_do_open(struct net_
57206 break; 58884 break;
57207 } 58885 }
@@ -57256,9 +58934,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) 58934 if (local->ops->napi_poll)
57257 napi_disable(&local->napi); 58935 napi_disable(&local->napi);
57258 ieee80211_clear_tx_pending(local); 58936 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 58937diff -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 58938--- 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 58939+++ 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 58940@@ -161,7 +161,7 @@ int ieee80211_hw_config(struct ieee80211
57263 local->hw.conf.power_level = power; 58941 local->hw.conf.power_level = power;
57264 } 58942 }
@@ -57268,9 +58946,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); 58946 ret = drv_config(local, changed);
57269 /* 58947 /*
57270 * Goal: 58948 * Goal:
57271diff -urNp linux-2.6.38.2/net/mac80211/pm.c linux-2.6.38.2/net/mac80211/pm.c 58949diff -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 58950--- 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 58951+++ 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 58952@@ -95,7 +95,7 @@ int __ieee80211_suspend(struct ieee80211
57275 } 58953 }
57276 58954
@@ -57280,9 +58958,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); 58958 ieee80211_stop_device(local);
57281 58959
57282 local->suspended = true; 58960 local->suspended = true;
57283diff -urNp linux-2.6.38.2/net/mac80211/rate.c linux-2.6.38.2/net/mac80211/rate.c 58961diff -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 58962--- 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 58963+++ 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 58964@@ -371,7 +371,7 @@ int ieee80211_init_rate_ctrl_alg(struct
57287 58965
57288 ASSERT_RTNL(); 58966 ASSERT_RTNL();
@@ -57292,9 +58970,9 @@ diff -urNp linux-2.6.38.2/net/mac80211/rate.c linux-2.6.38.2/net/mac80211/rate.c
57292 return -EBUSY; 58970 return -EBUSY;
57293 58971
57294 if (local->hw.flags & IEEE80211_HW_HAS_RATE_CONTROL) { 58972 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 58973diff -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 58974--- 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 58975+++ 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 58976@@ -192,7 +192,7 @@ static ssize_t rate_control_pid_events_r
57299 58977
57300 spin_unlock_irqrestore(&events->lock, status); 58978 spin_unlock_irqrestore(&events->lock, status);
@@ -57304,9 +58982,9 @@ diff -urNp linux-2.6.38.2/net/mac80211/rc80211_pid_debugfs.c linux-2.6.38.2/net/
57304 return -EFAULT; 58982 return -EFAULT;
57305 58983
57306 return p; 58984 return p;
57307diff -urNp linux-2.6.38.2/net/mac80211/tx.c linux-2.6.38.2/net/mac80211/tx.c 58985diff -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 58986--- 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 58987+++ 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 58988@@ -173,7 +173,7 @@ static __le16 ieee80211_duration(struct
57311 return cpu_to_le16(dur); 58989 return cpu_to_le16(dur);
57312 } 58990 }
@@ -57316,9 +58994,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) 58994 struct net_device *dev)
57317 { 58995 {
57318 return local == wdev_priv(dev->ieee80211_ptr); 58996 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 58997diff -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 58998--- 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 58999+++ 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_ 59000@@ -1135,7 +1135,7 @@ int ieee80211_reconfig(struct ieee80211_
57323 local->resuming = true; 59001 local->resuming = true;
57324 59002
@@ -57328,9 +59006,9 @@ diff -urNp linux-2.6.38.2/net/mac80211/util.c linux-2.6.38.2/net/mac80211/util.c
57328 /* 59006 /*
57329 * Upon resume hardware can sometimes be goofy due to 59007 * Upon resume hardware can sometimes be goofy due to
57330 * various platform / driver / bus issues, so restarting 59008 * 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 59009diff -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 59010--- 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 59011+++ 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 59012@@ -709,6 +709,16 @@ config NETFILTER_XT_MATCH_ESP
57335 59013
57336 To compile it as a module, choose M here. If unsure, say N. 59014 To compile it as a module, choose M here. If unsure, say N.
@@ -57348,9 +59026,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 59026 config NETFILTER_XT_MATCH_HASHLIMIT
57349 tristate '"hashlimit" match support' 59027 tristate '"hashlimit" match support'
57350 depends on (IP6_NF_IPTABLES || IP6_NF_IPTABLES=n) 59028 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 59029diff -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 59030--- 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 59031+++ 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) += 59032@@ -74,6 +74,7 @@ obj-$(CONFIG_NETFILTER_XT_MATCH_CPU) +=
57355 obj-$(CONFIG_NETFILTER_XT_MATCH_DCCP) += xt_dccp.o 59033 obj-$(CONFIG_NETFILTER_XT_MATCH_DCCP) += xt_dccp.o
57356 obj-$(CONFIG_NETFILTER_XT_MATCH_DSCP) += xt_dscp.o 59034 obj-$(CONFIG_NETFILTER_XT_MATCH_DSCP) += xt_dscp.o
@@ -57359,9 +59037,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 59037 obj-$(CONFIG_NETFILTER_XT_MATCH_HASHLIMIT) += xt_hashlimit.o
57360 obj-$(CONFIG_NETFILTER_XT_MATCH_HELPER) += xt_helper.o 59038 obj-$(CONFIG_NETFILTER_XT_MATCH_HELPER) += xt_helper.o
57361 obj-$(CONFIG_NETFILTER_XT_MATCH_HL) += xt_hl.o 59039 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 59040diff -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 59041--- 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 59042+++ 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 59043@@ -761,7 +761,7 @@ static const struct nla_policy tuple_nla
57366 static int 59044 static int
57367 ctnetlink_parse_tuple(const struct nlattr * const cda[], 59045 ctnetlink_parse_tuple(const struct nlattr * const cda[],
@@ -57371,9 +59049,9 @@ diff -urNp linux-2.6.38.2/net/netfilter/nf_conntrack_netlink.c linux-2.6.38.2/ne
57371 { 59049 {
57372 struct nlattr *tb[CTA_TUPLE_MAX+1]; 59050 struct nlattr *tb[CTA_TUPLE_MAX+1];
57373 int err; 59051 int err;
57374diff -urNp linux-2.6.38.2/net/netfilter/xt_gradm.c linux-2.6.38.2/net/netfilter/xt_gradm.c 59052diff -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 59053--- 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 59054+++ linux-2.6.38.3/net/netfilter/xt_gradm.c 2011-04-17 15:57:33.000000000 -0400
57377@@ -0,0 +1,51 @@ 59055@@ -0,0 +1,51 @@
57378+/* 59056+/*
57379+ * gradm match for netfilter 59057+ * gradm match for netfilter
@@ -57426,9 +59104,9 @@ diff -urNp linux-2.6.38.2/net/netfilter/xt_gradm.c linux-2.6.38.2/net/netfilter/
57426+MODULE_LICENSE("GPL"); 59104+MODULE_LICENSE("GPL");
57427+MODULE_ALIAS("ipt_gradm"); 59105+MODULE_ALIAS("ipt_gradm");
57428+MODULE_ALIAS("ip6t_gradm"); 59106+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 59107diff -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 59108--- 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 59109+++ 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 59110@@ -2001,13 +2001,21 @@ static int netlink_seq_show(struct seq_f
57433 struct netlink_sock *nlk = nlk_sk(s); 59111 struct netlink_sock *nlk = nlk_sk(s);
57434 59112
@@ -57451,9 +59129,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), 59129 atomic_read(&s->sk_refcnt),
57452 atomic_read(&s->sk_drops), 59130 atomic_read(&s->sk_drops),
57453 sock_i_ino(s) 59131 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 59132diff -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 59133--- 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 59134+++ 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 59135@@ -840,6 +840,7 @@ static int nr_getname(struct socket *soc
57458 struct sock *sk = sock->sk; 59136 struct sock *sk = sock->sk;
57459 struct nr_sock *nr = nr_sk(sk); 59137 struct nr_sock *nr = nr_sk(sk);
@@ -57470,9 +59148,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; 59148 sax->fsa_ax25.sax25_call = nr->source_addr;
57471 *uaddr_len = sizeof(struct sockaddr_ax25); 59149 *uaddr_len = sizeof(struct sockaddr_ax25);
57472 } 59150 }
57473diff -urNp linux-2.6.38.2/net/packet/af_packet.c linux-2.6.38.2/net/packet/af_packet.c 59151diff -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 59152--- 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 59153+++ 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 59154@@ -2134,7 +2134,7 @@ static int packet_getsockopt(struct sock
57477 case PACKET_HDRLEN: 59155 case PACKET_HDRLEN:
57478 if (len > sizeof(int)) 59156 if (len > sizeof(int))
@@ -57503,9 +59181,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), 59181 atomic_read(&s->sk_refcnt),
57504 s->sk_type, 59182 s->sk_type,
57505 ntohs(po->num), 59183 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 59184diff -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 59185--- 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 59186+++ 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 59187@@ -41,7 +41,7 @@ static struct phonet_protocol *phonet_pr
57510 { 59188 {
57511 struct phonet_protocol *pp; 59189 struct phonet_protocol *pp;
@@ -57524,9 +59202,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; 59202 return -EINVAL;
57525 59203
57526 err = proto_register(pp->prot, 1); 59204 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 59205diff -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 59206--- 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 59207+++ 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 59208@@ -637,7 +637,12 @@ static int pn_sock_seq_show(struct seq_f
57531 sk->sk_state, 59209 sk->sk_state,
57532 sk_wmem_alloc_get(sk), sk_rmem_alloc_get(sk), 59210 sk_wmem_alloc_get(sk), sk_rmem_alloc_get(sk),
@@ -57541,9 +59219,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); 59219 atomic_read(&sk->sk_drops), &len);
57542 } 59220 }
57543 seq_printf(seq, "%*s\n", 127 - len, ""); 59221 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 59222diff -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 59223--- 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 59224+++ 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_ 59225@@ -212,7 +212,12 @@ static int sctp_eps_seq_show(struct seq_
57548 sctp_for_each_hentry(epb, node, &head->chain) { 59226 sctp_for_each_hentry(epb, node, &head->chain) {
57549 ep = sctp_ep(epb); 59227 ep = sctp_ep(epb);
@@ -57572,9 +59250,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, 59250 assoc->state, hash,
57573 assoc->assoc_id, 59251 assoc->assoc_id,
57574 assoc->sndbuf_used, 59252 assoc->sndbuf_used,
57575diff -urNp linux-2.6.38.2/net/sctp/socket.c linux-2.6.38.2/net/sctp/socket.c 59253diff -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 59254--- 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 59255+++ 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 59256@@ -1496,7 +1496,7 @@ SCTP_STATIC int sctp_sendmsg(struct kioc
57579 struct sctp_sndrcvinfo *sinfo; 59257 struct sctp_sndrcvinfo *sinfo;
57580 struct sctp_initmsg *sinit; 59258 struct sctp_initmsg *sinit;
@@ -57593,9 +59271,9 @@ diff -urNp linux-2.6.38.2/net/sctp/socket.c linux-2.6.38.2/net/sctp/socket.c
57593 return -EFAULT; 59271 return -EFAULT;
57594 to += addrlen; 59272 to += addrlen;
57595 cnt++; 59273 cnt++;
57596diff -urNp linux-2.6.38.2/net/socket.c linux-2.6.38.2/net/socket.c 59274diff -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 59275--- 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 59276+++ linux-2.6.38.3/net/socket.c 2011-04-17 15:57:33.000000000 -0400
57599@@ -88,6 +88,7 @@ 59277@@ -88,6 +88,7 @@
57600 #include <linux/nsproxy.h> 59278 #include <linux/nsproxy.h>
57601 #include <linux/magic.h> 59279 #include <linux/magic.h>
@@ -57746,9 +59424,9 @@ diff -urNp linux-2.6.38.2/net/socket.c linux-2.6.38.2/net/socket.c
57746 err = 59424 err =
57747 security_socket_connect(sock, (struct sockaddr *)&address, addrlen); 59425 security_socket_connect(sock, (struct sockaddr *)&address, addrlen);
57748 if (err) 59426 if (err)
57749diff -urNp linux-2.6.38.2/net/sunrpc/sched.c linux-2.6.38.2/net/sunrpc/sched.c 59427diff -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 59428--- 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 59429+++ 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 59430@@ -234,9 +234,9 @@ static int rpc_wait_bit_killable(void *w
57753 #ifdef RPC_DEBUG 59431 #ifdef RPC_DEBUG
57754 static void rpc_task_set_debuginfo(struct rpc_task *task) 59432 static void rpc_task_set_debuginfo(struct rpc_task *task)
@@ -57761,9 +59439,9 @@ diff -urNp linux-2.6.38.2/net/sunrpc/sched.c linux-2.6.38.2/net/sunrpc/sched.c
57761 } 59439 }
57762 #else 59440 #else
57763 static inline void rpc_task_set_debuginfo(struct rpc_task *task) 59441 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 59442diff -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 59443--- 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 59444+++ 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 59445@@ -109,7 +109,7 @@ static int read_reset_stat(ctl_table *ta
57768 len -= *ppos; 59446 len -= *ppos;
57769 if (len > *lenp) 59447 if (len > *lenp)
@@ -57773,9 +59451,9 @@ diff -urNp linux-2.6.38.2/net/sunrpc/xprtrdma/svc_rdma.c linux-2.6.38.2/net/sunr
57773 return -EFAULT; 59451 return -EFAULT;
57774 *lenp = len; 59452 *lenp = len;
57775 *ppos += len; 59453 *ppos += len;
57776diff -urNp linux-2.6.38.2/net/sysctl_net.c linux-2.6.38.2/net/sysctl_net.c 59454diff -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 59455--- 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 59456+++ 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 59457@@ -46,7 +46,7 @@ static int net_ctl_permissions(struct ct
57780 struct ctl_table *table) 59458 struct ctl_table *table)
57781 { 59459 {
@@ -57785,9 +59463,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; 59463 int mode = (table->mode >> 6) & 7;
57786 return (mode << 6) | (mode << 3) | mode; 59464 return (mode << 6) | (mode << 3) | mode;
57787 } 59465 }
57788diff -urNp linux-2.6.38.2/net/tipc/socket.c linux-2.6.38.2/net/tipc/socket.c 59466diff -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 59467--- 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 59468+++ 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, 59469@@ -1447,8 +1447,9 @@ static int connect(struct socket *sock,
57792 } else { 59470 } else {
57793 if (res == 0) 59471 if (res == 0)
@@ -57800,9 +59478,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; 59478 sock->state = SS_DISCONNECTING;
57801 } 59479 }
57802 59480
57803diff -urNp linux-2.6.38.2/net/unix/af_unix.c linux-2.6.38.2/net/unix/af_unix.c 59481diff -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 59482--- 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 59483+++ 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 59484@@ -765,6 +765,12 @@ static struct sock *unix_find_other(stru
57807 err = -ECONNREFUSED; 59485 err = -ECONNREFUSED;
57808 if (!S_ISSOCK(inode->i_mode)) 59486 if (!S_ISSOCK(inode->i_mode))
@@ -57873,9 +59551,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), 59551 atomic_read(&s->sk_refcnt),
57874 0, 59552 0,
57875 s->sk_state == TCP_LISTEN ? __SO_ACCEPTCON : 0, 59553 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 59554diff -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 59555--- 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 59556+++ linux-2.6.38.3/net/wireless/reg.c 2011-04-17 15:57:33.000000000 -0400
57879@@ -54,7 +54,7 @@ 59557@@ -54,7 +54,7 @@
57880 printk(KERN_DEBUG pr_fmt(format), ##args); \ 59558 printk(KERN_DEBUG pr_fmt(format), ##args); \
57881 } while (0) 59559 } while (0)
@@ -57885,9 +59563,9 @@ diff -urNp linux-2.6.38.2/net/wireless/reg.c linux-2.6.38.2/net/wireless/reg.c
57885 #endif 59563 #endif
57886 59564
57887 /* Receipt of information from last regulatory request */ 59565 /* 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 59566diff -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 59567--- 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 59568+++ 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 59569@@ -746,8 +746,7 @@ static int ioctl_standard_iw_point(struc
57892 */ 59570 */
57893 59571
@@ -57921,9 +59599,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); 59599 err = handler(dev, info, (union iwreq_data *) iwp, extra);
57922 59600
57923 iwp->length += essid_compat; 59601 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 59602diff -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 59603--- 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 59604+++ 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 59605@@ -167,7 +167,8 @@ int x25_parse_facilities(struct sk_buff
57928 break; 59606 break;
57929 default: 59607 default:
@@ -57934,9 +59612,9 @@ diff -urNp linux-2.6.38.2/net/x25/x25_facilities.c linux-2.6.38.2/net/x25/x25_fa
57934 break; 59612 break;
57935 } 59613 }
57936 len -= p[1] + 2; 59614 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 59615diff -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 59616--- 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 59617+++ 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: 59618@@ -1507,7 +1507,7 @@ free_dst:
57941 goto out; 59619 goto out;
57942 } 59620 }
@@ -57964,9 +59642,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) 59642 xfrm_dst_update_origin(struct dst_entry *dst, struct flowi *fl)
57965 { 59643 {
57966 #ifdef CONFIG_XFRM_SUB_POLICY 59644 #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 59645diff -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 59646--- 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 59647+++ 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 59648@@ -235,9 +235,9 @@ static void use_config(const char *m, in
57971 59649
57972 static void parse_config_file(const char *map, size_t len) 59650 static void parse_config_file(const char *map, size_t len)
@@ -57988,9 +59666,9 @@ diff -urNp linux-2.6.38.2/scripts/basic/fixdep.c linux-2.6.38.2/scripts/basic/fi
57988 59666
57989 if (*p != INT_CONF) { 59667 if (*p != INT_CONF) {
57990 fprintf(stderr, "fixdep: sizeof(int) != 4 or wrong endianess? %#x\n", 59668 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 59669diff -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 59670--- 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 59671+++ linux-2.6.38.3/scripts/kallsyms.c 2011-04-17 15:57:33.000000000 -0400
57994@@ -43,10 +43,10 @@ struct text_range { 59672@@ -43,10 +43,10 @@ struct text_range {
57995 59673
57996 static unsigned long long _text; 59674 static unsigned long long _text;
@@ -58006,9 +59684,9 @@ diff -urNp linux-2.6.38.2/scripts/kallsyms.c linux-2.6.38.2/scripts/kallsyms.c
58006 }; 59684 };
58007 #define text_range_text (&text_ranges[0]) 59685 #define text_range_text (&text_ranges[0])
58008 #define text_range_inittext (&text_ranges[1]) 59686 #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 59687diff -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 59688--- 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 59689+++ 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 * 59690@@ -72,7 +72,7 @@ static void device_id_check(const char *
58013 unsigned long size, unsigned long id_size, 59691 unsigned long size, unsigned long id_size,
58014 void *symval) 59692 void *symval)
@@ -58063,9 +59741,9 @@ diff -urNp linux-2.6.38.2/scripts/mod/file2alias.c linux-2.6.38.2/scripts/mod/fi
58063 59741
58064 sprintf(alias, "dmi*"); 59742 sprintf(alias, "dmi*");
58065 59743
58066diff -urNp linux-2.6.38.2/scripts/mod/modpost.c linux-2.6.38.2/scripts/mod/modpost.c 59744diff -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 59745--- 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 59746+++ linux-2.6.38.3/scripts/mod/modpost.c 2011-04-17 15:57:33.000000000 -0400
58069@@ -896,6 +896,7 @@ enum mismatch { 59747@@ -896,6 +896,7 @@ enum mismatch {
58070 ANY_INIT_TO_ANY_EXIT, 59748 ANY_INIT_TO_ANY_EXIT,
58071 ANY_EXIT_TO_ANY_INIT, 59749 ANY_EXIT_TO_ANY_INIT,
@@ -58133,9 +59811,9 @@ diff -urNp linux-2.6.38.2/scripts/mod/modpost.c linux-2.6.38.2/scripts/mod/modpo
58133 goto close_write; 59811 goto close_write;
58134 59812
58135 tmp = NOFAIL(malloc(b->pos)); 59813 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 59814diff -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 59815--- 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 59816+++ 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 59817@@ -92,15 +92,15 @@ void *do_nofail(void *ptr, const char *e
58140 59818
58141 struct buffer { 59819 struct buffer {
@@ -58155,9 +59833,9 @@ diff -urNp linux-2.6.38.2/scripts/mod/modpost.h linux-2.6.38.2/scripts/mod/modpo
58155 59833
58156 struct module { 59834 struct module {
58157 struct module *next; 59835 struct module *next;
58158diff -urNp linux-2.6.38.2/scripts/mod/sumversion.c linux-2.6.38.2/scripts/mod/sumversion.c 59836diff -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 59837--- 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 59838+++ 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 59839@@ -470,7 +470,7 @@ static void write_version(const char *fi
58162 goto out; 59840 goto out;
58163 } 59841 }
@@ -58167,9 +59845,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", 59845 warn("writing sum in %s failed: %s\n",
58168 filename, strerror(errno)); 59846 filename, strerror(errno));
58169 goto out; 59847 goto out;
58170diff -urNp linux-2.6.38.2/scripts/pnmtologo.c linux-2.6.38.2/scripts/pnmtologo.c 59848diff -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 59849--- 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 59850+++ 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) 59851@@ -237,14 +237,14 @@ static void write_header(void)
58174 fprintf(out, " * Linux logo %s\n", logoname); 59852 fprintf(out, " * Linux logo %s\n", logoname);
58175 fputs(" */\n\n", out); 59853 fputs(" */\n\n", out);
@@ -58196,9 +59874,9 @@ diff -urNp linux-2.6.38.2/scripts/pnmtologo.c linux-2.6.38.2/scripts/pnmtologo.c
58196 logoname); 59874 logoname);
58197 write_hex_cnt = 0; 59875 write_hex_cnt = 0;
58198 for (i = 0; i < logo_clutsize; i++) { 59876 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 59877diff -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 59878--- 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 59879+++ 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 59880@@ -619,7 +619,7 @@ static int apparmor_task_setrlimit(struc
58203 return error; 59881 return error;
58204 } 59882 }
@@ -58208,9 +59886,9 @@ diff -urNp linux-2.6.38.2/security/apparmor/lsm.c linux-2.6.38.2/security/apparm
58208 .name = "apparmor", 59886 .name = "apparmor",
58209 59887
58210 .ptrace_access_check = apparmor_ptrace_access_check, 59888 .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 59889diff -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 59890--- 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 59891+++ linux-2.6.38.3/security/commoncap.c 2011-04-17 15:57:33.000000000 -0400
58214@@ -27,6 +27,7 @@ 59892@@ -27,6 +27,7 @@
58215 #include <linux/sched.h> 59893 #include <linux/sched.h>
58216 #include <linux/prctl.h> 59894 #include <linux/prctl.h>
@@ -58242,9 +59920,9 @@ diff -urNp linux-2.6.38.2/security/commoncap.c linux-2.6.38.2/security/commoncap
58242 if (cred->uid != 0) { 59920 if (cred->uid != 0) {
58243 if (bprm->cap_effective) 59921 if (bprm->cap_effective)
58244 return 1; 59922 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 59923diff -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 59924--- 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 59925+++ 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 59926@@ -75,7 +75,7 @@ void ima_add_violation(struct inode *ino
58249 int result; 59927 int result;
58250 59928
@@ -58254,9 +59932,9 @@ diff -urNp linux-2.6.38.2/security/integrity/ima/ima_api.c linux-2.6.38.2/securi
58254 59932
58255 entry = kmalloc(sizeof(*entry), GFP_KERNEL); 59933 entry = kmalloc(sizeof(*entry), GFP_KERNEL);
58256 if (!entry) { 59934 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 59935diff -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 59936--- 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 59937+++ linux-2.6.38.3/security/integrity/ima/ima_fs.c 2011-04-17 15:57:33.000000000 -0400
58260@@ -28,12 +28,12 @@ 59938@@ -28,12 +28,12 @@
58261 static int valid_policy = 1; 59939 static int valid_policy = 1;
58262 #define TMPBUFLEN 12 59940 #define TMPBUFLEN 12
@@ -58272,9 +59950,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); 59950 return simple_read_from_buffer(buf, count, ppos, tmpbuf, len);
58273 } 59951 }
58274 59952
58275diff -urNp linux-2.6.38.2/security/integrity/ima/ima.h linux-2.6.38.2/security/integrity/ima/ima.h 59953diff -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 59954--- 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 59955+++ 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 59956@@ -85,8 +85,8 @@ void ima_add_violation(struct inode *ino
58279 extern spinlock_t ima_queue_lock; 59957 extern spinlock_t ima_queue_lock;
58280 59958
@@ -58286,9 +59964,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]; 59964 struct hlist_head queue[IMA_MEASURE_HTABLE_SIZE];
58287 }; 59965 };
58288 extern struct ima_h_table ima_htable; 59966 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 59967diff -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 59968--- 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 59969+++ 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 59970@@ -79,7 +79,7 @@ static int ima_add_digest_entry(struct i
58293 INIT_LIST_HEAD(&qe->later); 59971 INIT_LIST_HEAD(&qe->later);
58294 list_add_tail_rcu(&qe->later, &ima_measurements); 59972 list_add_tail_rcu(&qe->later, &ima_measurements);
@@ -58298,9 +59976,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); 59976 key = ima_hash_key(entry->digest);
58299 hlist_add_head_rcu(&qe->hnext, &ima_htable.queue[key]); 59977 hlist_add_head_rcu(&qe->hnext, &ima_htable.queue[key]);
58300 return 0; 59978 return 0;
58301diff -urNp linux-2.6.38.2/security/Kconfig linux-2.6.38.2/security/Kconfig 59979diff -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 59980--- 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 59981+++ linux-2.6.38.3/security/Kconfig 2011-04-17 15:57:33.000000000 -0400
58304@@ -4,6 +4,527 @@ 59982@@ -4,6 +4,527 @@
58305 59983
58306 menu "Security options" 59984 menu "Security options"
@@ -58360,10 +60038,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 60038+ know about the non-standard use of the ELF header) therefore it
58361+ has been deprecated in favour of PT_PAX_FLAGS support. 60039+ has been deprecated in favour of PT_PAX_FLAGS support.
58362+ 60040+
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, 60041+ 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. 60042+ the PT_PAX_FLAG marks will override the legacy EI_PAX marks.
58369+ 60043+
@@ -58378,9 +60052,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 60052+ integrated into the toolchain (the binutils patch is available
58379+ from http://pax.grsecurity.net). 60053+ from http://pax.grsecurity.net).
58380+ 60054+
58381+ If you have applications not marked by the PT_PAX_FLAGS ELF 60055+ If your toolchain does not support PT_PAX_FLAGS markings,
58382+ program header then you MUST enable the EI_PAX marking support 60056+ you can create one in most cases with 'paxctl -C'.
58383+ otherwise they will not get any protection.
58384+ 60057+
58385+ Note that if you enable the legacy EI_PAX marking support as well, 60058+ 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. 60059+ the EI_PAX marks will be overridden by the PT_PAX_FLAGS marks.
@@ -58689,7 +60362,7 @@ diff -urNp linux-2.6.38.2/security/Kconfig linux-2.6.38.2/security/Kconfig
58689+ 60362+
58690+config PAX_RANDKSTACK 60363+config PAX_RANDKSTACK
58691+ bool "Randomize kernel stack base" 60364+ bool "Randomize kernel stack base"
58692+ depends on PAX_ASLR && X86_TSC && X86_32 60365+ depends on PAX_ASLR && X86_TSC && X86
58693+ help 60366+ help
58694+ By saying Y here the kernel will randomize every task's kernel 60367+ 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 60368+ stack on every system call. This will not only force an attacker
@@ -58799,9 +60472,9 @@ diff -urNp linux-2.6.38.2/security/Kconfig linux-2.6.38.2/security/Kconfig
58799+ this feature. 60472+ this feature.
58800+ 60473+
58801+config PAX_USERCOPY 60474+config PAX_USERCOPY
58802+ bool "Bounds check heap object copies between kernel and userland" 60475+ bool "Harden heap object copies between kernel and userland"
58803+ depends on X86 || PPC || SPARC 60476+ depends on X86 || PPC || SPARC
58804+ depends on GRKERNSEC && (SLAB || SLUB || SLOB) 60477+ depends on GRKERNSEC && (SLAB || SLUB)
58805+ help 60478+ help
58806+ By saying Y here the kernel will enforce the size of heap objects 60479+ 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 60480+ when they are copied in either direction between the kernel and
@@ -58812,8 +60485,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 60485+ object is otherwise fully initialized) and prevents kernel heap
58813+ overflows during userland to kernel copies. 60486+ overflows during userland to kernel copies.
58814+ 60487+
58815+ Note that the current implementation provides the strictest checks 60488+ Note that the current implementation provides the strictest bounds
58816+ for the SLUB allocator. 60489+ checks for the SLUB allocator.
60490+
60491+ Enabling this option also enables per-slab cache protection against
60492+ data in a given cache being copied into/out of via userland
60493+ accessors. Though the whitelist of regions will be reduced over
60494+ time, it notably protects important data structures like task structs.
58817+ 60495+
58818+ If frame pointers are enabled on x86, this option will also restrict 60496+ 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 60497+ copies into and out of the kernel stack to local variables within a
@@ -58838,9 +60516,31 @@ diff -urNp linux-2.6.38.2/security/Kconfig linux-2.6.38.2/security/Kconfig
58838 help 60516 help
58839 This is the portion of low virtual memory which should be protected 60517 This is the portion of low virtual memory which should be protected
58840 from userspace allocation. Keeping a user from writing to low pages 60518 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 60519diff -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 60520--- 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 60521+++ linux-2.6.38.3/security/keys/keyring.c 2011-04-18 22:03:12.000000000 -0400
60522@@ -213,15 +213,15 @@ static long keyring_read(const struct ke
60523 ret = -EFAULT;
60524
60525 for (loop = 0; loop < klist->nkeys; loop++) {
60526+ key_serial_t serial;
60527 key = klist->keys[loop];
60528+ serial = key->serial;
60529
60530 tmp = sizeof(key_serial_t);
60531 if (tmp > buflen)
60532 tmp = buflen;
60533
60534- if (copy_to_user(buffer,
60535- &key->serial,
60536- tmp) != 0)
60537+ if (copy_to_user(buffer, &serial, tmp))
60538 goto error;
60539
60540 buflen -= tmp;
60541diff -urNp linux-2.6.38.3/security/min_addr.c linux-2.6.38.3/security/min_addr.c
60542--- linux-2.6.38.3/security/min_addr.c 2011-03-14 21:20:32.000000000 -0400
60543+++ 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 60544@@ -14,6 +14,7 @@ unsigned long dac_mmap_min_addr = CONFIG
58845 */ 60545 */
58846 static void update_mmap_min_addr(void) 60546 static void update_mmap_min_addr(void)
@@ -58857,9 +60557,9 @@ diff -urNp linux-2.6.38.2/security/min_addr.c linux-2.6.38.2/security/min_addr.c
58857 } 60557 }
58858 60558
58859 /* 60559 /*
58860diff -urNp linux-2.6.38.2/security/security.c linux-2.6.38.2/security/security.c 60560diff -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 60561--- 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 60562+++ 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 60563@@ -25,8 +25,8 @@ static __initdata char chosen_lsm[SECURI
58864 /* things that live in capability.c */ 60564 /* things that live in capability.c */
58865 extern void __init security_fixup_ops(struct security_operations *ops); 60565 extern void __init security_fixup_ops(struct security_operations *ops);
@@ -58881,9 +60581,9 @@ diff -urNp linux-2.6.38.2/security/security.c linux-2.6.38.2/security/security.c
58881 } 60581 }
58882 60582
58883 /* Save user chosen LSM */ 60583 /* Save user chosen LSM */
58884diff -urNp linux-2.6.38.2/security/selinux/hooks.c linux-2.6.38.2/security/selinux/hooks.c 60584diff -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 60585--- 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 60586+++ linux-2.6.38.3/security/selinux/hooks.c 2011-04-17 15:57:33.000000000 -0400
58887@@ -90,7 +90,6 @@ 60587@@ -90,7 +90,6 @@
58888 #define NUM_SEL_MNT_OPTS 5 60588 #define NUM_SEL_MNT_OPTS 5
58889 60589
@@ -58901,9 +60601,9 @@ diff -urNp linux-2.6.38.2/security/selinux/hooks.c linux-2.6.38.2/security/selin
58901 .name = "selinux", 60601 .name = "selinux",
58902 60602
58903 .ptrace_access_check = selinux_ptrace_access_check, 60603 .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 60604diff -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 60605--- 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 60606+++ 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 60607@@ -3179,7 +3179,7 @@ static int smack_inode_getsecctx(struct
58908 return 0; 60608 return 0;
58909 } 60609 }
@@ -58913,9 +60613,9 @@ diff -urNp linux-2.6.38.2/security/smack/smack_lsm.c linux-2.6.38.2/security/sma
58913 .name = "smack", 60613 .name = "smack",
58914 60614
58915 .ptrace_access_check = smack_ptrace_access_check, 60615 .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 60616diff -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 60617--- 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 60618+++ 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 60619@@ -240,7 +240,7 @@ static int tomoyo_sb_pivotroot(struct pa
58920 * tomoyo_security_ops is a "struct security_operations" which is used for 60620 * tomoyo_security_ops is a "struct security_operations" which is used for
58921 * registering TOMOYO. 60621 * registering TOMOYO.
@@ -58925,9 +60625,9 @@ diff -urNp linux-2.6.38.2/security/tomoyo/tomoyo.c linux-2.6.38.2/security/tomoy
58925 .name = "tomoyo", 60625 .name = "tomoyo",
58926 .cred_alloc_blank = tomoyo_cred_alloc_blank, 60626 .cred_alloc_blank = tomoyo_cred_alloc_blank,
58927 .cred_prepare = tomoyo_cred_prepare, 60627 .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 60628diff -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 60629--- 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 60630+++ 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 { 60631@@ -54,7 +54,7 @@ struct onyx {
58932 spdif_locked:1, 60632 spdif_locked:1,
58933 analog_locked:1, 60633 analog_locked:1,
@@ -58956,9 +60656,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; 60656 onyx->spdif_locked = onyx->analog_locked = 0;
58957 mutex_unlock(&onyx->mutex); 60657 mutex_unlock(&onyx->mutex);
58958 60658
58959diff -urNp linux-2.6.38.2/sound/aoa/codecs/onyx.h linux-2.6.38.2/sound/aoa/codecs/onyx.h 60659diff -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 60660--- 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 60661+++ linux-2.6.38.3/sound/aoa/codecs/onyx.h 2011-04-17 15:57:33.000000000 -0400
58962@@ -11,6 +11,7 @@ 60662@@ -11,6 +11,7 @@
58963 #include <linux/i2c.h> 60663 #include <linux/i2c.h>
58964 #include <asm/pmac_low_i2c.h> 60664 #include <asm/pmac_low_i2c.h>
@@ -58967,9 +60667,9 @@ diff -urNp linux-2.6.38.2/sound/aoa/codecs/onyx.h linux-2.6.38.2/sound/aoa/codec
58967 60667
58968 /* PCM3052 register definitions */ 60668 /* PCM3052 register definitions */
58969 60669
58970diff -urNp linux-2.6.38.2/sound/core/oss/pcm_oss.c linux-2.6.38.2/sound/core/oss/pcm_oss.c 60670diff -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 60671--- 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 60672+++ 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 60673@@ -2971,8 +2971,8 @@ static void snd_pcm_oss_proc_done(struct
58974 } 60674 }
58975 } 60675 }
@@ -58981,9 +60681,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 */ 60681 #endif /* CONFIG_SND_VERBOSE_PROCFS */
58982 60682
58983 /* 60683 /*
58984diff -urNp linux-2.6.38.2/sound/core/seq/seq_lock.h linux-2.6.38.2/sound/core/seq/seq_lock.h 60684diff -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 60685--- 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 60686+++ 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 60687@@ -23,10 +23,10 @@ void snd_use_lock_sync_helper(snd_use_lo
58988 #else /* SMP || CONFIG_SND_DEBUG */ 60688 #else /* SMP || CONFIG_SND_DEBUG */
58989 60689
@@ -58999,9 +60699,9 @@ diff -urNp linux-2.6.38.2/sound/core/seq/seq_lock.h linux-2.6.38.2/sound/core/se
58999 60699
59000 #endif /* SMP || CONFIG_SND_DEBUG */ 60700 #endif /* SMP || CONFIG_SND_DEBUG */
59001 60701
59002diff -urNp linux-2.6.38.2/sound/drivers/mts64.c linux-2.6.38.2/sound/drivers/mts64.c 60702diff -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 60703--- 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 60704+++ linux-2.6.38.3/sound/drivers/mts64.c 2011-04-17 15:57:33.000000000 -0400
59005@@ -28,6 +28,7 @@ 60705@@ -28,6 +28,7 @@
59006 #include <sound/initval.h> 60706 #include <sound/initval.h>
59007 #include <sound/rawmidi.h> 60707 #include <sound/rawmidi.h>
@@ -59058,9 +60758,9 @@ diff -urNp linux-2.6.38.2/sound/drivers/mts64.c linux-2.6.38.2/sound/drivers/mts
59058 60758
59059 return 0; 60759 return 0;
59060 } 60760 }
59061diff -urNp linux-2.6.38.2/sound/drivers/portman2x4.c linux-2.6.38.2/sound/drivers/portman2x4.c 60761diff -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 60762--- 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 60763+++ linux-2.6.38.3/sound/drivers/portman2x4.c 2011-04-17 15:57:33.000000000 -0400
59064@@ -47,6 +47,7 @@ 60764@@ -47,6 +47,7 @@
59065 #include <sound/initval.h> 60765 #include <sound/initval.h>
59066 #include <sound/rawmidi.h> 60766 #include <sound/rawmidi.h>
@@ -59078,9 +60778,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]; 60778 int mode[PORTMAN_NUM_INPUT_PORTS];
59079 struct snd_rawmidi_substream *midi_input[PORTMAN_NUM_INPUT_PORTS]; 60779 struct snd_rawmidi_substream *midi_input[PORTMAN_NUM_INPUT_PORTS];
59080 }; 60780 };
59081diff -urNp linux-2.6.38.2/sound/oss/sb_audio.c linux-2.6.38.2/sound/oss/sb_audio.c 60781diff -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 60782--- 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 60783+++ 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, 60784@@ -901,7 +901,7 @@ sb16_copy_from_user(int dev,
59085 buf16 = (signed short *)(localbuf + localoffs); 60785 buf16 = (signed short *)(localbuf + localoffs);
59086 while (c) 60786 while (c)
@@ -59090,9 +60790,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, 60790 if (copy_from_user(lbuf8,
59091 userbuf+useroffs + p, 60791 userbuf+useroffs + p,
59092 locallen)) 60792 locallen))
59093diff -urNp linux-2.6.38.2/sound/oss/swarm_cs4297a.c linux-2.6.38.2/sound/oss/swarm_cs4297a.c 60793diff -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 60794--- 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 60795+++ 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) 60796@@ -2606,7 +2606,6 @@ static int __init cs4297a_init(void)
59097 { 60797 {
59098 struct cs4297a_state *s; 60798 struct cs4297a_state *s;
@@ -59127,9 +60827,9 @@ diff -urNp linux-2.6.38.2/sound/oss/swarm_cs4297a.c linux-2.6.38.2/sound/oss/swa
59127 60827
59128 list_add(&s->list, &cs4297a_devs); 60828 list_add(&s->list, &cs4297a_devs);
59129 60829
59130diff -urNp linux-2.6.38.2/sound/pci/ac97/ac97_patch.c linux-2.6.38.2/sound/pci/ac97/ac97_patch.c 60830diff -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 60831--- 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 60832+++ 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 60833@@ -1486,7 +1486,7 @@ static const struct snd_ac97_res_table a
59134 { AC97_VIDEO, 0x9f1f }, 60834 { AC97_VIDEO, 0x9f1f },
59135 { AC97_AUX, 0x9f1f }, 60835 { AC97_AUX, 0x9f1f },
@@ -59148,10 +60848,10 @@ diff -urNp linux-2.6.38.2/sound/pci/ac97/ac97_patch.c linux-2.6.38.2/sound/pci/a
59148 }; 60848 };
59149 60849
59150 static int patch_lm4550(struct snd_ac97 *ac97) 60850 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 60851diff -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 60852--- 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 60853+++ 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 60854@@ -453,7 +453,7 @@ static DEFINE_PCI_DEVICE_TABLE(snd_audio
59155 { PCI_VDEVICE(ENSONIQ, 0x5880), 0, }, /* ES1373 - CT5880 */ 60855 { PCI_VDEVICE(ENSONIQ, 0x5880), 0, }, /* ES1373 - CT5880 */
59156 { PCI_VDEVICE(ECTIVA, 0x8938), 0, }, /* Ectiva EV1938 */ 60856 { PCI_VDEVICE(ECTIVA, 0x8938), 0, }, /* Ectiva EV1938 */
59157 #endif 60857 #endif
@@ -59160,9 +60860,9 @@ diff -urNp linux-2.6.38.2/sound/pci/ens1370.c linux-2.6.38.2/sound/pci/ens1370.c
59160 }; 60860 };
59161 60861
59162 MODULE_DEVICE_TABLE(pci, snd_audiopci_ids); 60862 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 60863diff -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 60864--- 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 60865+++ 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 60866@@ -733,10 +733,10 @@ static void hdmi_non_intrinsic_event(str
59167 cp_ready); 60867 cp_ready);
59168 60868
@@ -59178,9 +60878,9 @@ diff -urNp linux-2.6.38.2/sound/pci/hda/patch_hdmi.c linux-2.6.38.2/sound/pci/hd
59178 } 60878 }
59179 60879
59180 60880
59181diff -urNp linux-2.6.38.2/sound/pci/intel8x0.c linux-2.6.38.2/sound/pci/intel8x0.c 60881diff -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 60882--- 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 60883+++ 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 60884@@ -444,7 +444,7 @@ static DEFINE_PCI_DEVICE_TABLE(snd_intel
59185 { PCI_VDEVICE(AMD, 0x746d), DEVICE_INTEL }, /* AMD8111 */ 60885 { PCI_VDEVICE(AMD, 0x746d), DEVICE_INTEL }, /* AMD8111 */
59186 { PCI_VDEVICE(AMD, 0x7445), DEVICE_INTEL }, /* AMD768 */ 60886 { PCI_VDEVICE(AMD, 0x7445), DEVICE_INTEL }, /* AMD768 */
@@ -59199,9 +60899,9 @@ diff -urNp linux-2.6.38.2/sound/pci/intel8x0.c linux-2.6.38.2/sound/pci/intel8x0
59199 }; 60899 };
59200 60900
59201 static int __devinit snd_intel8x0_mixer(struct intel8x0 *chip, int ac97_clock, 60901 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 60902diff -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 60903--- 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 60904+++ 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 60905@@ -239,7 +239,7 @@ static DEFINE_PCI_DEVICE_TABLE(snd_intel
59206 { PCI_VDEVICE(AMD, 0x746d), DEVICE_INTEL }, /* AMD8111 */ 60906 { PCI_VDEVICE(AMD, 0x746d), DEVICE_INTEL }, /* AMD8111 */
59207 { PCI_VDEVICE(AL, 0x5455), DEVICE_ALI }, /* Ali5455 */ 60907 { PCI_VDEVICE(AL, 0x5455), DEVICE_ALI }, /* Ali5455 */
@@ -59220,9 +60920,9 @@ diff -urNp linux-2.6.38.2/sound/pci/intel8x0m.c linux-2.6.38.2/sound/pci/intel8x
59220 }; 60920 };
59221 60921
59222 static int __devinit snd_intel8x0m_probe(struct pci_dev *pci, 60922 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 60923diff -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 60924--- 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 60925+++ 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, 60926@@ -305,7 +305,7 @@ static int cpio_mkfile(const char *name,
59227 int retval; 60927 int retval;
59228 int rc = -1; 60928 int rc = -1;
@@ -59245,9 +60945,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 60945 } else
59246 break; 60946 break;
59247 } 60947 }
59248diff -urNp linux-2.6.38.2/virt/kvm/kvm_main.c linux-2.6.38.2/virt/kvm/kvm_main.c 60948diff -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 60949--- 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 60950+++ 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 60951@@ -1521,7 +1521,7 @@ static int kvm_vcpu_release(struct inode
59252 return 0; 60952 return 0;
59253 } 60953 }
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