aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorNatanael Copa <ncopa@alpinelinux.org>2011-04-22 07:58:49 +0000
committerNatanael Copa <ncopa@alpinelinux.org>2011-04-22 07:58:49 +0000
commit172b3839e827cc7aca79e93261c0e918bd8eb0b3 (patch)
treeb1c9ad6e99a5f71dc9897c1a29fe81b294c04684
parent5d810d282c10ebfd41ff8426460897976c7eaae3 (diff)
downloadalpine_aports-172b3839e827cc7aca79e93261c0e918bd8eb0b3.tar.bz2
alpine_aports-172b3839e827cc7aca79e93261c0e918bd8eb0b3.tar.xz
alpine_aports-172b3839e827cc7aca79e93261c0e918bd8eb0b3.zip
Revert "main/linux-grsec: try upgrade to grsecurity-2.2.2-2.6.38.3-201104211716"
This reverts commit 19eea5ca985e34a75db7ea69646e23009370fd5a.
-rw-r--r--main/linux-grsec/APKBUILD14
-rw-r--r--main/linux-grsec/grsecurity-2.2.2-2.6.38.2-201103281752.patch (renamed from main/linux-grsec/grsecurity-2.2.2-2.6.38.3-201104211716.patch)9962
-rw-r--r--main/linux-grsec/kernelconfig.x867
-rw-r--r--main/linux-grsec/kernelconfig.x86_648
4 files changed, 4146 insertions, 5845 deletions
diff --git a/main/linux-grsec/APKBUILD b/main/linux-grsec/APKBUILD
index cc1ed4e786..3e7a6bc50c 100644
--- a/main/linux-grsec/APKBUILD
+++ b/main/linux-grsec/APKBUILD
@@ -2,9 +2,9 @@
2 2
3_flavor=grsec 3_flavor=grsec
4pkgname=linux-${_flavor} 4pkgname=linux-${_flavor}
5pkgver=2.6.38.3 5pkgver=2.6.38.2
6_kernver=2.6.38 6_kernver=2.6.38
7pkgrel=2 7pkgrel=3
8pkgdesc="Linux kernel with grsecurity" 8pkgdesc="Linux kernel with grsecurity"
9url=http://grsecurity.net 9url=http://grsecurity.net
10depends="mkinitfs linux-firmware" 10depends="mkinitfs linux-firmware"
@@ -14,7 +14,7 @@ _config=${config:-kernelconfig.${CARCH}}
14install= 14install=
15source="ftp://ftp.kernel.org/pub/linux/kernel/v2.6/linux-$_kernver.tar.bz2 15source="ftp://ftp.kernel.org/pub/linux/kernel/v2.6/linux-$_kernver.tar.bz2
16 ftp://ftp.kernel.org/pub/linux/kernel/v2.6/patch-$pkgver.bz2 16 ftp://ftp.kernel.org/pub/linux/kernel/v2.6/patch-$pkgver.bz2
17 grsecurity-2.2.2-2.6.38.3-201104211716.patch 17 grsecurity-2.2.2-2.6.38.2-201103281752.patch
18 18
19 0004-arp-flush-arp-cache-on-device-change.patch 19 0004-arp-flush-arp-cache-on-device-change.patch
20 net-gre-provide-multicast-mappings-for-ipv4-and-ipv6.patch 20 net-gre-provide-multicast-mappings-for-ipv4-and-ipv6.patch
@@ -137,9 +137,9 @@ dev() {
137} 137}
138 138
139md5sums="7d471477bfa67546f902da62227fa976 linux-2.6.38.tar.bz2 139md5sums="7d471477bfa67546f902da62227fa976 linux-2.6.38.tar.bz2
140b3677121c4b5efcb8128c2000788d0aa patch-2.6.38.3.bz2 140599badab31c4920d4122133208c810d7 patch-2.6.38.2.bz2
1419ac513670fe7be7f66b50f0ddb900d2a grsecurity-2.2.2-2.6.38.3-201104211716.patch 141fac4f5fb386192c544fae27db6db18a7 grsecurity-2.2.2-2.6.38.2-201103281752.patch
142776adeeb5272093574f8836c5037dd7d 0004-arp-flush-arp-cache-on-device-change.patch 142776adeeb5272093574f8836c5037dd7d 0004-arp-flush-arp-cache-on-device-change.patch
143aa1b82da0cabfb41c5e6da5bddf60bab net-gre-provide-multicast-mappings-for-ipv4-and-ipv6.patch 143aa1b82da0cabfb41c5e6da5bddf60bab net-gre-provide-multicast-mappings-for-ipv4-and-ipv6.patch
144b88a5966a35d817b85586208100137b2 kernelconfig.x86 14447ff0feca681cd53a037b7f5c9b46c3d kernelconfig.x86
145f116ab9c5f14e7ce6d16c4c4985a36c9 kernelconfig.x86_64" 1452d70a4c38d97ca1a5280ca8d4e535628 kernelconfig.x86_64"
diff --git a/main/linux-grsec/grsecurity-2.2.2-2.6.38.3-201104211716.patch b/main/linux-grsec/grsecurity-2.2.2-2.6.38.2-201103281752.patch
index 8144799390..190cb94594 100644
--- a/main/linux-grsec/grsecurity-2.2.2-2.6.38.3-201104211716.patch
+++ b/main/linux-grsec/grsecurity-2.2.2-2.6.38.2-201103281752.patch
@@ -1,6 +1,6 @@
1diff -urNp linux-2.6.38.3/arch/alpha/include/asm/dma-mapping.h linux-2.6.38.3/arch/alpha/include/asm/dma-mapping.h 1diff -urNp linux-2.6.38.2/arch/alpha/include/asm/dma-mapping.h linux-2.6.38.2/arch/alpha/include/asm/dma-mapping.h
2--- linux-2.6.38.3/arch/alpha/include/asm/dma-mapping.h 2011-03-14 21:20:32.000000000 -0400 2--- linux-2.6.38.2/arch/alpha/include/asm/dma-mapping.h 2011-03-14 21:20:32.000000000 -0400
3+++ linux-2.6.38.3/arch/alpha/include/asm/dma-mapping.h 2011-04-17 15:57:32.000000000 -0400 3+++ linux-2.6.38.2/arch/alpha/include/asm/dma-mapping.h 2011-03-21 18:31:35.000000000 -0400
4@@ -3,9 +3,9 @@ 4@@ -3,9 +3,9 @@
5 5
6 #include <linux/dma-attrs.h> 6 #include <linux/dma-attrs.h>
@@ -13,9 +13,9 @@ diff -urNp linux-2.6.38.3/arch/alpha/include/asm/dma-mapping.h linux-2.6.38.3/ar
13 { 13 {
14 return dma_ops; 14 return dma_ops;
15 } 15 }
16diff -urNp linux-2.6.38.3/arch/alpha/include/asm/elf.h linux-2.6.38.3/arch/alpha/include/asm/elf.h 16diff -urNp linux-2.6.38.2/arch/alpha/include/asm/elf.h linux-2.6.38.2/arch/alpha/include/asm/elf.h
17--- linux-2.6.38.3/arch/alpha/include/asm/elf.h 2011-03-14 21:20:32.000000000 -0400 17--- linux-2.6.38.2/arch/alpha/include/asm/elf.h 2011-03-14 21:20:32.000000000 -0400
18+++ linux-2.6.38.3/arch/alpha/include/asm/elf.h 2011-04-17 15:57:32.000000000 -0400 18+++ linux-2.6.38.2/arch/alpha/include/asm/elf.h 2011-03-21 18:31:35.000000000 -0400
19@@ -90,6 +90,13 @@ typedef elf_fpreg_t elf_fpregset_t[ELF_N 19@@ -90,6 +90,13 @@ typedef elf_fpreg_t elf_fpregset_t[ELF_N
20 20
21 #define ELF_ET_DYN_BASE (TASK_UNMAPPED_BASE + 0x1000000) 21 #define ELF_ET_DYN_BASE (TASK_UNMAPPED_BASE + 0x1000000)
@@ -30,9 +30,9 @@ diff -urNp linux-2.6.38.3/arch/alpha/include/asm/elf.h linux-2.6.38.3/arch/alpha
30 /* $0 is set by ld.so to a pointer to a function which might be 30 /* $0 is set by ld.so to a pointer to a function which might be
31 registered using atexit. This provides a mean for the dynamic 31 registered using atexit. This provides a mean for the dynamic
32 linker to call DT_FINI functions for shared libraries that have 32 linker to call DT_FINI functions for shared libraries that have
33diff -urNp linux-2.6.38.3/arch/alpha/include/asm/pgtable.h linux-2.6.38.3/arch/alpha/include/asm/pgtable.h 33diff -urNp linux-2.6.38.2/arch/alpha/include/asm/pgtable.h linux-2.6.38.2/arch/alpha/include/asm/pgtable.h
34--- linux-2.6.38.3/arch/alpha/include/asm/pgtable.h 2011-03-14 21:20:32.000000000 -0400 34--- linux-2.6.38.2/arch/alpha/include/asm/pgtable.h 2011-03-14 21:20:32.000000000 -0400
35+++ linux-2.6.38.3/arch/alpha/include/asm/pgtable.h 2011-04-17 15:57:32.000000000 -0400 35+++ linux-2.6.38.2/arch/alpha/include/asm/pgtable.h 2011-03-21 18:31:35.000000000 -0400
36@@ -101,6 +101,17 @@ struct vm_area_struct; 36@@ -101,6 +101,17 @@ struct vm_area_struct;
37 #define PAGE_SHARED __pgprot(_PAGE_VALID | __ACCESS_BITS) 37 #define PAGE_SHARED __pgprot(_PAGE_VALID | __ACCESS_BITS)
38 #define PAGE_COPY __pgprot(_PAGE_VALID | __ACCESS_BITS | _PAGE_FOW) 38 #define PAGE_COPY __pgprot(_PAGE_VALID | __ACCESS_BITS | _PAGE_FOW)
@@ -51,9 +51,9 @@ diff -urNp linux-2.6.38.3/arch/alpha/include/asm/pgtable.h linux-2.6.38.3/arch/a
51 #define PAGE_KERNEL __pgprot(_PAGE_VALID | _PAGE_ASM | _PAGE_KRE | _PAGE_KWE) 51 #define PAGE_KERNEL __pgprot(_PAGE_VALID | _PAGE_ASM | _PAGE_KRE | _PAGE_KWE)
52 52
53 #define _PAGE_NORMAL(x) __pgprot(_PAGE_VALID | __ACCESS_BITS | (x)) 53 #define _PAGE_NORMAL(x) __pgprot(_PAGE_VALID | __ACCESS_BITS | (x))
54diff -urNp linux-2.6.38.3/arch/alpha/kernel/module.c linux-2.6.38.3/arch/alpha/kernel/module.c 54diff -urNp linux-2.6.38.2/arch/alpha/kernel/module.c linux-2.6.38.2/arch/alpha/kernel/module.c
55--- linux-2.6.38.3/arch/alpha/kernel/module.c 2011-03-14 21:20:32.000000000 -0400 55--- linux-2.6.38.2/arch/alpha/kernel/module.c 2011-03-14 21:20:32.000000000 -0400
56+++ linux-2.6.38.3/arch/alpha/kernel/module.c 2011-04-17 15:57:32.000000000 -0400 56+++ linux-2.6.38.2/arch/alpha/kernel/module.c 2011-03-21 18:31:35.000000000 -0400
57@@ -182,7 +182,7 @@ apply_relocate_add(Elf64_Shdr *sechdrs, 57@@ -182,7 +182,7 @@ apply_relocate_add(Elf64_Shdr *sechdrs,
58 58
59 /* The small sections were sorted to the end of the segment. 59 /* The small sections were sorted to the end of the segment.
@@ -63,9 +63,9 @@ diff -urNp linux-2.6.38.3/arch/alpha/kernel/module.c linux-2.6.38.3/arch/alpha/k
63 got = sechdrs[me->arch.gotsecindex].sh_addr; 63 got = sechdrs[me->arch.gotsecindex].sh_addr;
64 64
65 for (i = 0; i < n; i++) { 65 for (i = 0; i < n; i++) {
66diff -urNp linux-2.6.38.3/arch/alpha/kernel/osf_sys.c linux-2.6.38.3/arch/alpha/kernel/osf_sys.c 66diff -urNp linux-2.6.38.2/arch/alpha/kernel/osf_sys.c linux-2.6.38.2/arch/alpha/kernel/osf_sys.c
67--- linux-2.6.38.3/arch/alpha/kernel/osf_sys.c 2011-03-14 21:20:32.000000000 -0400 67--- linux-2.6.38.2/arch/alpha/kernel/osf_sys.c 2011-03-14 21:20:32.000000000 -0400
68+++ linux-2.6.38.3/arch/alpha/kernel/osf_sys.c 2011-04-17 15:57:32.000000000 -0400 68+++ linux-2.6.38.2/arch/alpha/kernel/osf_sys.c 2011-03-21 18:31:35.000000000 -0400
69@@ -1162,7 +1162,7 @@ arch_get_unmapped_area_1(unsigned long a 69@@ -1162,7 +1162,7 @@ arch_get_unmapped_area_1(unsigned long a
70 /* At this point: (!vma || addr < vma->vm_end). */ 70 /* At this point: (!vma || addr < vma->vm_end). */
71 if (limit - len < addr) 71 if (limit - len < addr)
@@ -97,9 +97,9 @@ diff -urNp linux-2.6.38.3/arch/alpha/kernel/osf_sys.c linux-2.6.38.3/arch/alpha/
97 if (addr != (unsigned long) -ENOMEM) 97 if (addr != (unsigned long) -ENOMEM)
98 return addr; 98 return addr;
99 99
100diff -urNp linux-2.6.38.3/arch/alpha/kernel/pci_iommu.c linux-2.6.38.3/arch/alpha/kernel/pci_iommu.c 100diff -urNp linux-2.6.38.2/arch/alpha/kernel/pci_iommu.c linux-2.6.38.2/arch/alpha/kernel/pci_iommu.c
101--- linux-2.6.38.3/arch/alpha/kernel/pci_iommu.c 2011-03-14 21:20:32.000000000 -0400 101--- linux-2.6.38.2/arch/alpha/kernel/pci_iommu.c 2011-03-14 21:20:32.000000000 -0400
102+++ linux-2.6.38.3/arch/alpha/kernel/pci_iommu.c 2011-04-17 15:57:32.000000000 -0400 102+++ linux-2.6.38.2/arch/alpha/kernel/pci_iommu.c 2011-03-21 18:31:35.000000000 -0400
103@@ -950,7 +950,7 @@ static int alpha_pci_set_mask(struct dev 103@@ -950,7 +950,7 @@ static int alpha_pci_set_mask(struct dev
104 return 0; 104 return 0;
105 } 105 }
@@ -116,9 +116,9 @@ diff -urNp linux-2.6.38.3/arch/alpha/kernel/pci_iommu.c linux-2.6.38.3/arch/alph
116-struct dma_map_ops *dma_ops = &alpha_pci_ops; 116-struct dma_map_ops *dma_ops = &alpha_pci_ops;
117+const struct dma_map_ops *dma_ops = &alpha_pci_ops; 117+const struct dma_map_ops *dma_ops = &alpha_pci_ops;
118 EXPORT_SYMBOL(dma_ops); 118 EXPORT_SYMBOL(dma_ops);
119diff -urNp linux-2.6.38.3/arch/alpha/kernel/pci-noop.c linux-2.6.38.3/arch/alpha/kernel/pci-noop.c 119diff -urNp linux-2.6.38.2/arch/alpha/kernel/pci-noop.c linux-2.6.38.2/arch/alpha/kernel/pci-noop.c
120--- linux-2.6.38.3/arch/alpha/kernel/pci-noop.c 2011-03-14 21:20:32.000000000 -0400 120--- linux-2.6.38.2/arch/alpha/kernel/pci-noop.c 2011-03-14 21:20:32.000000000 -0400
121+++ linux-2.6.38.3/arch/alpha/kernel/pci-noop.c 2011-04-17 15:57:32.000000000 -0400 121+++ linux-2.6.38.2/arch/alpha/kernel/pci-noop.c 2011-03-21 18:31:35.000000000 -0400
122@@ -173,7 +173,7 @@ static int alpha_noop_set_mask(struct de 122@@ -173,7 +173,7 @@ static int alpha_noop_set_mask(struct de
123 return 0; 123 return 0;
124 } 124 }
@@ -137,9 +137,9 @@ diff -urNp linux-2.6.38.3/arch/alpha/kernel/pci-noop.c linux-2.6.38.3/arch/alpha
137 EXPORT_SYMBOL(dma_ops); 137 EXPORT_SYMBOL(dma_ops);
138 138
139 void __iomem *pci_iomap(struct pci_dev *dev, int bar, unsigned long maxlen) 139 void __iomem *pci_iomap(struct pci_dev *dev, int bar, unsigned long maxlen)
140diff -urNp linux-2.6.38.3/arch/alpha/mm/fault.c linux-2.6.38.3/arch/alpha/mm/fault.c 140diff -urNp linux-2.6.38.2/arch/alpha/mm/fault.c linux-2.6.38.2/arch/alpha/mm/fault.c
141--- linux-2.6.38.3/arch/alpha/mm/fault.c 2011-03-14 21:20:32.000000000 -0400 141--- linux-2.6.38.2/arch/alpha/mm/fault.c 2011-03-14 21:20:32.000000000 -0400
142+++ linux-2.6.38.3/arch/alpha/mm/fault.c 2011-04-17 15:57:32.000000000 -0400 142+++ linux-2.6.38.2/arch/alpha/mm/fault.c 2011-03-21 18:31:35.000000000 -0400
143@@ -54,6 +54,124 @@ __load_new_mm_context(struct mm_struct * 143@@ -54,6 +54,124 @@ __load_new_mm_context(struct mm_struct *
144 __reload_thread(pcb); 144 __reload_thread(pcb);
145 } 145 }
@@ -296,9 +296,9 @@ diff -urNp linux-2.6.38.3/arch/alpha/mm/fault.c linux-2.6.38.3/arch/alpha/mm/fau
296 } else if (!cause) { 296 } else if (!cause) {
297 /* Allow reads even for write-only mappings */ 297 /* Allow reads even for write-only mappings */
298 if (!(vma->vm_flags & (VM_READ | VM_WRITE))) 298 if (!(vma->vm_flags & (VM_READ | VM_WRITE)))
299diff -urNp linux-2.6.38.3/arch/arm/include/asm/elf.h linux-2.6.38.3/arch/arm/include/asm/elf.h 299diff -urNp linux-2.6.38.2/arch/arm/include/asm/elf.h linux-2.6.38.2/arch/arm/include/asm/elf.h
300--- linux-2.6.38.3/arch/arm/include/asm/elf.h 2011-03-14 21:20:32.000000000 -0400 300--- linux-2.6.38.2/arch/arm/include/asm/elf.h 2011-03-14 21:20:32.000000000 -0400
301+++ linux-2.6.38.3/arch/arm/include/asm/elf.h 2011-04-17 15:57:32.000000000 -0400 301+++ linux-2.6.38.2/arch/arm/include/asm/elf.h 2011-03-21 18:31:35.000000000 -0400
302@@ -115,7 +115,14 @@ int dump_task_regs(struct task_struct *t 302@@ -115,7 +115,14 @@ int dump_task_regs(struct task_struct *t
303 the loader. We need to make sure that it is out of the way of the program 303 the loader. We need to make sure that it is out of the way of the program
304 that it will "exec", and that there is sufficient room for the brk. */ 304 that it will "exec", and that there is sufficient room for the brk. */
@@ -326,9 +326,9 @@ diff -urNp linux-2.6.38.3/arch/arm/include/asm/elf.h linux-2.6.38.3/arch/arm/inc
326 extern int vectors_user_mapping(void); 326 extern int vectors_user_mapping(void);
327 #define arch_setup_additional_pages(bprm, uses_interp) vectors_user_mapping() 327 #define arch_setup_additional_pages(bprm, uses_interp) vectors_user_mapping()
328 #define ARCH_HAS_SETUP_ADDITIONAL_PAGES 328 #define ARCH_HAS_SETUP_ADDITIONAL_PAGES
329diff -urNp linux-2.6.38.3/arch/arm/include/asm/kmap_types.h linux-2.6.38.3/arch/arm/include/asm/kmap_types.h 329diff -urNp linux-2.6.38.2/arch/arm/include/asm/kmap_types.h linux-2.6.38.2/arch/arm/include/asm/kmap_types.h
330--- linux-2.6.38.3/arch/arm/include/asm/kmap_types.h 2011-03-14 21:20:32.000000000 -0400 330--- linux-2.6.38.2/arch/arm/include/asm/kmap_types.h 2011-03-14 21:20:32.000000000 -0400
331+++ linux-2.6.38.3/arch/arm/include/asm/kmap_types.h 2011-04-17 15:57:32.000000000 -0400 331+++ linux-2.6.38.2/arch/arm/include/asm/kmap_types.h 2011-03-21 18:31:35.000000000 -0400
332@@ -21,6 +21,7 @@ enum km_type { 332@@ -21,6 +21,7 @@ enum km_type {
333 KM_L1_CACHE, 333 KM_L1_CACHE,
334 KM_L2_CACHE, 334 KM_L2_CACHE,
@@ -337,9 +337,9 @@ diff -urNp linux-2.6.38.3/arch/arm/include/asm/kmap_types.h linux-2.6.38.3/arch/
337 KM_TYPE_NR 337 KM_TYPE_NR
338 }; 338 };
339 339
340diff -urNp linux-2.6.38.3/arch/arm/include/asm/uaccess.h linux-2.6.38.3/arch/arm/include/asm/uaccess.h 340diff -urNp linux-2.6.38.2/arch/arm/include/asm/uaccess.h linux-2.6.38.2/arch/arm/include/asm/uaccess.h
341--- linux-2.6.38.3/arch/arm/include/asm/uaccess.h 2011-03-14 21:20:32.000000000 -0400 341--- linux-2.6.38.2/arch/arm/include/asm/uaccess.h 2011-03-14 21:20:32.000000000 -0400
342+++ linux-2.6.38.3/arch/arm/include/asm/uaccess.h 2011-04-17 15:57:32.000000000 -0400 342+++ linux-2.6.38.2/arch/arm/include/asm/uaccess.h 2011-03-21 18:31:35.000000000 -0400
343@@ -403,6 +403,9 @@ extern unsigned long __must_check __strn 343@@ -403,6 +403,9 @@ extern unsigned long __must_check __strn
344 344
345 static inline unsigned long __must_check copy_from_user(void *to, const void __user *from, unsigned long n) 345 static inline unsigned long __must_check copy_from_user(void *to, const void __user *from, unsigned long n)
@@ -360,9 +360,9 @@ diff -urNp linux-2.6.38.3/arch/arm/include/asm/uaccess.h linux-2.6.38.3/arch/arm
360 if (access_ok(VERIFY_WRITE, to, n)) 360 if (access_ok(VERIFY_WRITE, to, n))
361 n = __copy_to_user(to, from, n); 361 n = __copy_to_user(to, from, n);
362 return n; 362 return n;
363diff -urNp linux-2.6.38.3/arch/arm/kernel/kgdb.c linux-2.6.38.3/arch/arm/kernel/kgdb.c 363diff -urNp linux-2.6.38.2/arch/arm/kernel/kgdb.c linux-2.6.38.2/arch/arm/kernel/kgdb.c
364--- linux-2.6.38.3/arch/arm/kernel/kgdb.c 2011-03-14 21:20:32.000000000 -0400 364--- linux-2.6.38.2/arch/arm/kernel/kgdb.c 2011-03-14 21:20:32.000000000 -0400
365+++ linux-2.6.38.3/arch/arm/kernel/kgdb.c 2011-04-17 15:57:32.000000000 -0400 365+++ linux-2.6.38.2/arch/arm/kernel/kgdb.c 2011-03-21 18:31:35.000000000 -0400
366@@ -246,7 +246,7 @@ void kgdb_arch_exit(void) 366@@ -246,7 +246,7 @@ void kgdb_arch_exit(void)
367 * and we handle the normal undef case within the do_undefinstr 367 * and we handle the normal undef case within the do_undefinstr
368 * handler. 368 * handler.
@@ -372,9 +372,9 @@ diff -urNp linux-2.6.38.3/arch/arm/kernel/kgdb.c linux-2.6.38.3/arch/arm/kernel/
372 #ifndef __ARMEB__ 372 #ifndef __ARMEB__
373 .gdb_bpt_instr = {0xfe, 0xde, 0xff, 0xe7} 373 .gdb_bpt_instr = {0xfe, 0xde, 0xff, 0xe7}
374 #else /* ! __ARMEB__ */ 374 #else /* ! __ARMEB__ */
375diff -urNp linux-2.6.38.3/arch/arm/kernel/process.c linux-2.6.38.3/arch/arm/kernel/process.c 375diff -urNp linux-2.6.38.2/arch/arm/kernel/process.c linux-2.6.38.2/arch/arm/kernel/process.c
376--- linux-2.6.38.3/arch/arm/kernel/process.c 2011-03-14 21:20:32.000000000 -0400 376--- linux-2.6.38.2/arch/arm/kernel/process.c 2011-03-14 21:20:32.000000000 -0400
377+++ linux-2.6.38.3/arch/arm/kernel/process.c 2011-04-17 15:57:32.000000000 -0400 377+++ linux-2.6.38.2/arch/arm/kernel/process.c 2011-03-21 18:31:35.000000000 -0400
378@@ -28,7 +28,6 @@ 378@@ -28,7 +28,6 @@
379 #include <linux/tick.h> 379 #include <linux/tick.h>
380 #include <linux/utsname.h> 380 #include <linux/utsname.h>
@@ -396,9 +396,9 @@ diff -urNp linux-2.6.38.3/arch/arm/kernel/process.c linux-2.6.38.3/arch/arm/kern
396 #ifdef CONFIG_MMU 396 #ifdef CONFIG_MMU
397 /* 397 /*
398 * The vectors page is always readable from user space for the 398 * The vectors page is always readable from user space for the
399diff -urNp linux-2.6.38.3/arch/arm/mach-msm/last_radio_log.c linux-2.6.38.3/arch/arm/mach-msm/last_radio_log.c 399diff -urNp linux-2.6.38.2/arch/arm/mach-msm/last_radio_log.c linux-2.6.38.2/arch/arm/mach-msm/last_radio_log.c
400--- linux-2.6.38.3/arch/arm/mach-msm/last_radio_log.c 2011-03-14 21:20:32.000000000 -0400 400--- linux-2.6.38.2/arch/arm/mach-msm/last_radio_log.c 2011-03-14 21:20:32.000000000 -0400
401+++ linux-2.6.38.3/arch/arm/mach-msm/last_radio_log.c 2011-04-17 15:57:32.000000000 -0400 401+++ linux-2.6.38.2/arch/arm/mach-msm/last_radio_log.c 2011-03-21 18:31:35.000000000 -0400
402@@ -47,7 +47,7 @@ static ssize_t last_radio_log_read(struc 402@@ -47,7 +47,7 @@ static ssize_t last_radio_log_read(struc
403 return count; 403 return count;
404 } 404 }
@@ -408,9 +408,9 @@ diff -urNp linux-2.6.38.3/arch/arm/mach-msm/last_radio_log.c linux-2.6.38.3/arch
408 .read = last_radio_log_read, 408 .read = last_radio_log_read,
409 .llseek = default_llseek, 409 .llseek = default_llseek,
410 }; 410 };
411diff -urNp linux-2.6.38.3/arch/arm/mach-ux500/mbox-db5500.c linux-2.6.38.3/arch/arm/mach-ux500/mbox-db5500.c 411diff -urNp linux-2.6.38.2/arch/arm/mach-ux500/mbox-db5500.c linux-2.6.38.2/arch/arm/mach-ux500/mbox-db5500.c
412--- linux-2.6.38.3/arch/arm/mach-ux500/mbox-db5500.c 2011-03-14 21:20:32.000000000 -0400 412--- linux-2.6.38.2/arch/arm/mach-ux500/mbox-db5500.c 2011-03-14 21:20:32.000000000 -0400
413+++ linux-2.6.38.3/arch/arm/mach-ux500/mbox-db5500.c 2011-04-17 15:57:32.000000000 -0400 413+++ linux-2.6.38.2/arch/arm/mach-ux500/mbox-db5500.c 2011-03-21 18:31:35.000000000 -0400
414@@ -168,7 +168,7 @@ static ssize_t mbox_read_fifo(struct dev 414@@ -168,7 +168,7 @@ static ssize_t mbox_read_fifo(struct dev
415 return sprintf(buf, "0x%X\n", mbox_value); 415 return sprintf(buf, "0x%X\n", mbox_value);
416 } 416 }
@@ -420,9 +420,9 @@ diff -urNp linux-2.6.38.3/arch/arm/mach-ux500/mbox-db5500.c linux-2.6.38.3/arch/
420 420
421 static int mbox_show(struct seq_file *s, void *data) 421 static int mbox_show(struct seq_file *s, void *data)
422 { 422 {
423diff -urNp linux-2.6.38.3/arch/arm/mm/fault.c linux-2.6.38.3/arch/arm/mm/fault.c 423diff -urNp linux-2.6.38.2/arch/arm/mm/fault.c linux-2.6.38.2/arch/arm/mm/fault.c
424--- linux-2.6.38.3/arch/arm/mm/fault.c 2011-03-14 21:20:32.000000000 -0400 424--- linux-2.6.38.2/arch/arm/mm/fault.c 2011-03-14 21:20:32.000000000 -0400
425+++ linux-2.6.38.3/arch/arm/mm/fault.c 2011-04-17 15:57:32.000000000 -0400 425+++ linux-2.6.38.2/arch/arm/mm/fault.c 2011-03-21 18:31:35.000000000 -0400
426@@ -167,6 +167,13 @@ __do_user_fault(struct task_struct *tsk, 426@@ -167,6 +167,13 @@ __do_user_fault(struct task_struct *tsk,
427 } 427 }
428 #endif 428 #endif
@@ -471,9 +471,9 @@ diff -urNp linux-2.6.38.3/arch/arm/mm/fault.c linux-2.6.38.3/arch/arm/mm/fault.c
471 /* 471 /*
472 * First Level Translation Fault Handler 472 * First Level Translation Fault Handler
473 * 473 *
474diff -urNp linux-2.6.38.3/arch/arm/mm/mmap.c linux-2.6.38.3/arch/arm/mm/mmap.c 474diff -urNp linux-2.6.38.2/arch/arm/mm/mmap.c linux-2.6.38.2/arch/arm/mm/mmap.c
475--- linux-2.6.38.3/arch/arm/mm/mmap.c 2011-03-14 21:20:32.000000000 -0400 475--- linux-2.6.38.2/arch/arm/mm/mmap.c 2011-03-14 21:20:32.000000000 -0400
476+++ linux-2.6.38.3/arch/arm/mm/mmap.c 2011-04-17 15:57:32.000000000 -0400 476+++ linux-2.6.38.2/arch/arm/mm/mmap.c 2011-03-21 18:31:35.000000000 -0400
477@@ -64,6 +64,10 @@ arch_get_unmapped_area(struct file *filp 477@@ -64,6 +64,10 @@ arch_get_unmapped_area(struct file *filp
478 if (len > TASK_SIZE) 478 if (len > TASK_SIZE)
479 return -ENOMEM; 479 return -ENOMEM;
@@ -523,9 +523,9 @@ diff -urNp linux-2.6.38.3/arch/arm/mm/mmap.c linux-2.6.38.3/arch/arm/mm/mmap.c
523 /* 523 /*
524 * Remember the place where we stopped the search: 524 * Remember the place where we stopped the search:
525 */ 525 */
526diff -urNp linux-2.6.38.3/arch/avr32/include/asm/elf.h linux-2.6.38.3/arch/avr32/include/asm/elf.h 526diff -urNp linux-2.6.38.2/arch/avr32/include/asm/elf.h linux-2.6.38.2/arch/avr32/include/asm/elf.h
527--- linux-2.6.38.3/arch/avr32/include/asm/elf.h 2011-03-14 21:20:32.000000000 -0400 527--- linux-2.6.38.2/arch/avr32/include/asm/elf.h 2011-03-14 21:20:32.000000000 -0400
528+++ linux-2.6.38.3/arch/avr32/include/asm/elf.h 2011-04-17 15:57:32.000000000 -0400 528+++ linux-2.6.38.2/arch/avr32/include/asm/elf.h 2011-03-21 18:31:35.000000000 -0400
529@@ -84,8 +84,14 @@ typedef struct user_fpu_struct elf_fpreg 529@@ -84,8 +84,14 @@ typedef struct user_fpu_struct elf_fpreg
530 the loader. We need to make sure that it is out of the way of the program 530 the loader. We need to make sure that it is out of the way of the program
531 that it will "exec", and that there is sufficient room for the brk. */ 531 that it will "exec", and that there is sufficient room for the brk. */
@@ -542,9 +542,9 @@ diff -urNp linux-2.6.38.3/arch/avr32/include/asm/elf.h linux-2.6.38.3/arch/avr32
542 542
543 /* This yields a mask that user programs can use to figure out what 543 /* This yields a mask that user programs can use to figure out what
544 instruction set this CPU supports. This could be done in user space, 544 instruction set this CPU supports. This could be done in user space,
545diff -urNp linux-2.6.38.3/arch/avr32/include/asm/kmap_types.h linux-2.6.38.3/arch/avr32/include/asm/kmap_types.h 545diff -urNp linux-2.6.38.2/arch/avr32/include/asm/kmap_types.h linux-2.6.38.2/arch/avr32/include/asm/kmap_types.h
546--- linux-2.6.38.3/arch/avr32/include/asm/kmap_types.h 2011-03-14 21:20:32.000000000 -0400 546--- linux-2.6.38.2/arch/avr32/include/asm/kmap_types.h 2011-03-14 21:20:32.000000000 -0400
547+++ linux-2.6.38.3/arch/avr32/include/asm/kmap_types.h 2011-04-17 15:57:32.000000000 -0400 547+++ linux-2.6.38.2/arch/avr32/include/asm/kmap_types.h 2011-03-21 18:31:35.000000000 -0400
548@@ -22,7 +22,8 @@ D(10) KM_IRQ0, 548@@ -22,7 +22,8 @@ D(10) KM_IRQ0,
549 D(11) KM_IRQ1, 549 D(11) KM_IRQ1,
550 D(12) KM_SOFTIRQ0, 550 D(12) KM_SOFTIRQ0,
@@ -555,9 +555,9 @@ diff -urNp linux-2.6.38.3/arch/avr32/include/asm/kmap_types.h linux-2.6.38.3/arc
555 }; 555 };
556 556
557 #undef D 557 #undef D
558diff -urNp linux-2.6.38.3/arch/avr32/mm/fault.c linux-2.6.38.3/arch/avr32/mm/fault.c 558diff -urNp linux-2.6.38.2/arch/avr32/mm/fault.c linux-2.6.38.2/arch/avr32/mm/fault.c
559--- linux-2.6.38.3/arch/avr32/mm/fault.c 2011-03-14 21:20:32.000000000 -0400 559--- linux-2.6.38.2/arch/avr32/mm/fault.c 2011-03-14 21:20:32.000000000 -0400
560+++ linux-2.6.38.3/arch/avr32/mm/fault.c 2011-04-17 15:57:32.000000000 -0400 560+++ linux-2.6.38.2/arch/avr32/mm/fault.c 2011-03-21 18:31:35.000000000 -0400
561@@ -41,6 +41,23 @@ static inline int notify_page_fault(stru 561@@ -41,6 +41,23 @@ static inline int notify_page_fault(stru
562 562
563 int exception_trace = 1; 563 int exception_trace = 1;
@@ -599,9 +599,9 @@ diff -urNp linux-2.6.38.3/arch/avr32/mm/fault.c linux-2.6.38.3/arch/avr32/mm/fau
599 if (exception_trace && printk_ratelimit()) 599 if (exception_trace && printk_ratelimit())
600 printk("%s%s[%d]: segfault at %08lx pc %08lx " 600 printk("%s%s[%d]: segfault at %08lx pc %08lx "
601 "sp %08lx ecr %lu\n", 601 "sp %08lx ecr %lu\n",
602diff -urNp linux-2.6.38.3/arch/blackfin/kernel/kgdb.c linux-2.6.38.3/arch/blackfin/kernel/kgdb.c 602diff -urNp linux-2.6.38.2/arch/blackfin/kernel/kgdb.c linux-2.6.38.2/arch/blackfin/kernel/kgdb.c
603--- linux-2.6.38.3/arch/blackfin/kernel/kgdb.c 2011-03-14 21:20:32.000000000 -0400 603--- linux-2.6.38.2/arch/blackfin/kernel/kgdb.c 2011-03-14 21:20:32.000000000 -0400
604+++ linux-2.6.38.3/arch/blackfin/kernel/kgdb.c 2011-04-17 15:57:32.000000000 -0400 604+++ linux-2.6.38.2/arch/blackfin/kernel/kgdb.c 2011-03-21 18:31:35.000000000 -0400
605@@ -420,7 +420,7 @@ int kgdb_arch_handle_exception(int vecto 605@@ -420,7 +420,7 @@ int kgdb_arch_handle_exception(int vecto
606 return -1; /* this means that we do not want to exit from the handler */ 606 return -1; /* this means that we do not want to exit from the handler */
607 } 607 }
@@ -611,9 +611,9 @@ diff -urNp linux-2.6.38.3/arch/blackfin/kernel/kgdb.c linux-2.6.38.3/arch/blackf
611 .gdb_bpt_instr = {0xa1}, 611 .gdb_bpt_instr = {0xa1},
612 #ifdef CONFIG_SMP 612 #ifdef CONFIG_SMP
613 .flags = KGDB_HW_BREAKPOINT|KGDB_THR_PROC_SWAP, 613 .flags = KGDB_HW_BREAKPOINT|KGDB_THR_PROC_SWAP,
614diff -urNp linux-2.6.38.3/arch/blackfin/mm/maccess.c linux-2.6.38.3/arch/blackfin/mm/maccess.c 614diff -urNp linux-2.6.38.2/arch/blackfin/mm/maccess.c linux-2.6.38.2/arch/blackfin/mm/maccess.c
615--- linux-2.6.38.3/arch/blackfin/mm/maccess.c 2011-03-14 21:20:32.000000000 -0400 615--- linux-2.6.38.2/arch/blackfin/mm/maccess.c 2011-03-14 21:20:32.000000000 -0400
616+++ linux-2.6.38.3/arch/blackfin/mm/maccess.c 2011-04-17 15:57:32.000000000 -0400 616+++ linux-2.6.38.2/arch/blackfin/mm/maccess.c 2011-03-21 18:31:35.000000000 -0400
617@@ -16,7 +16,7 @@ static int validate_memory_access_addres 617@@ -16,7 +16,7 @@ static int validate_memory_access_addres
618 return bfin_mem_access_type(addr, size); 618 return bfin_mem_access_type(addr, size);
619 } 619 }
@@ -632,9 +632,9 @@ diff -urNp linux-2.6.38.3/arch/blackfin/mm/maccess.c linux-2.6.38.3/arch/blackfi
632 { 632 {
633 unsigned long ldst = (unsigned long)dst; 633 unsigned long ldst = (unsigned long)dst;
634 int mem_type; 634 int mem_type;
635diff -urNp linux-2.6.38.3/arch/frv/include/asm/kmap_types.h linux-2.6.38.3/arch/frv/include/asm/kmap_types.h 635diff -urNp linux-2.6.38.2/arch/frv/include/asm/kmap_types.h linux-2.6.38.2/arch/frv/include/asm/kmap_types.h
636--- linux-2.6.38.3/arch/frv/include/asm/kmap_types.h 2011-03-14 21:20:32.000000000 -0400 636--- linux-2.6.38.2/arch/frv/include/asm/kmap_types.h 2011-03-14 21:20:32.000000000 -0400
637+++ linux-2.6.38.3/arch/frv/include/asm/kmap_types.h 2011-04-17 15:57:32.000000000 -0400 637+++ linux-2.6.38.2/arch/frv/include/asm/kmap_types.h 2011-03-21 18:31:35.000000000 -0400
638@@ -23,6 +23,7 @@ enum km_type { 638@@ -23,6 +23,7 @@ enum km_type {
639 KM_IRQ1, 639 KM_IRQ1,
640 KM_SOFTIRQ0, 640 KM_SOFTIRQ0,
@@ -643,9 +643,9 @@ diff -urNp linux-2.6.38.3/arch/frv/include/asm/kmap_types.h linux-2.6.38.3/arch/
643 KM_TYPE_NR 643 KM_TYPE_NR
644 }; 644 };
645 645
646diff -urNp linux-2.6.38.3/arch/frv/mm/elf-fdpic.c linux-2.6.38.3/arch/frv/mm/elf-fdpic.c 646diff -urNp linux-2.6.38.2/arch/frv/mm/elf-fdpic.c linux-2.6.38.2/arch/frv/mm/elf-fdpic.c
647--- linux-2.6.38.3/arch/frv/mm/elf-fdpic.c 2011-03-14 21:20:32.000000000 -0400 647--- linux-2.6.38.2/arch/frv/mm/elf-fdpic.c 2011-03-14 21:20:32.000000000 -0400
648+++ linux-2.6.38.3/arch/frv/mm/elf-fdpic.c 2011-04-17 15:57:32.000000000 -0400 648+++ linux-2.6.38.2/arch/frv/mm/elf-fdpic.c 2011-03-21 18:31:35.000000000 -0400
649@@ -73,8 +73,7 @@ unsigned long arch_get_unmapped_area(str 649@@ -73,8 +73,7 @@ unsigned long arch_get_unmapped_area(str
650 if (addr) { 650 if (addr) {
651 addr = PAGE_ALIGN(addr); 651 addr = PAGE_ALIGN(addr);
@@ -674,9 +674,9 @@ diff -urNp linux-2.6.38.3/arch/frv/mm/elf-fdpic.c linux-2.6.38.3/arch/frv/mm/elf
674 goto success; 674 goto success;
675 addr = vma->vm_end; 675 addr = vma->vm_end;
676 } 676 }
677diff -urNp linux-2.6.38.3/arch/ia64/hp/common/hwsw_iommu.c linux-2.6.38.3/arch/ia64/hp/common/hwsw_iommu.c 677diff -urNp linux-2.6.38.2/arch/ia64/hp/common/hwsw_iommu.c linux-2.6.38.2/arch/ia64/hp/common/hwsw_iommu.c
678--- linux-2.6.38.3/arch/ia64/hp/common/hwsw_iommu.c 2011-03-14 21:20:32.000000000 -0400 678--- linux-2.6.38.2/arch/ia64/hp/common/hwsw_iommu.c 2011-03-14 21:20:32.000000000 -0400
679+++ linux-2.6.38.3/arch/ia64/hp/common/hwsw_iommu.c 2011-04-17 15:57:32.000000000 -0400 679+++ linux-2.6.38.2/arch/ia64/hp/common/hwsw_iommu.c 2011-03-21 18:31:35.000000000 -0400
680@@ -17,7 +17,7 @@ 680@@ -17,7 +17,7 @@
681 #include <linux/swiotlb.h> 681 #include <linux/swiotlb.h>
682 #include <asm/machvec.h> 682 #include <asm/machvec.h>
@@ -695,9 +695,9 @@ diff -urNp linux-2.6.38.3/arch/ia64/hp/common/hwsw_iommu.c linux-2.6.38.3/arch/i
695 { 695 {
696 if (use_swiotlb(dev)) 696 if (use_swiotlb(dev))
697 return &swiotlb_dma_ops; 697 return &swiotlb_dma_ops;
698diff -urNp linux-2.6.38.3/arch/ia64/hp/common/sba_iommu.c linux-2.6.38.3/arch/ia64/hp/common/sba_iommu.c 698diff -urNp linux-2.6.38.2/arch/ia64/hp/common/sba_iommu.c linux-2.6.38.2/arch/ia64/hp/common/sba_iommu.c
699--- linux-2.6.38.3/arch/ia64/hp/common/sba_iommu.c 2011-03-14 21:20:32.000000000 -0400 699--- linux-2.6.38.2/arch/ia64/hp/common/sba_iommu.c 2011-03-14 21:20:32.000000000 -0400
700+++ linux-2.6.38.3/arch/ia64/hp/common/sba_iommu.c 2011-04-17 15:57:32.000000000 -0400 700+++ linux-2.6.38.2/arch/ia64/hp/common/sba_iommu.c 2011-03-21 18:31:35.000000000 -0400
701@@ -2097,7 +2097,7 @@ static struct acpi_driver acpi_sba_ioc_d 701@@ -2097,7 +2097,7 @@ static struct acpi_driver acpi_sba_ioc_d
702 }, 702 },
703 }; 703 };
@@ -716,9 +716,9 @@ diff -urNp linux-2.6.38.3/arch/ia64/hp/common/sba_iommu.c linux-2.6.38.3/arch/ia
716 .alloc_coherent = sba_alloc_coherent, 716 .alloc_coherent = sba_alloc_coherent,
717 .free_coherent = sba_free_coherent, 717 .free_coherent = sba_free_coherent,
718 .map_page = sba_map_page, 718 .map_page = sba_map_page,
719diff -urNp linux-2.6.38.3/arch/ia64/include/asm/dma-mapping.h linux-2.6.38.3/arch/ia64/include/asm/dma-mapping.h 719diff -urNp linux-2.6.38.2/arch/ia64/include/asm/dma-mapping.h linux-2.6.38.2/arch/ia64/include/asm/dma-mapping.h
720--- linux-2.6.38.3/arch/ia64/include/asm/dma-mapping.h 2011-03-14 21:20:32.000000000 -0400 720--- linux-2.6.38.2/arch/ia64/include/asm/dma-mapping.h 2011-03-14 21:20:32.000000000 -0400
721+++ linux-2.6.38.3/arch/ia64/include/asm/dma-mapping.h 2011-04-17 15:57:32.000000000 -0400 721+++ linux-2.6.38.2/arch/ia64/include/asm/dma-mapping.h 2011-03-21 18:31:35.000000000 -0400
722@@ -12,7 +12,7 @@ 722@@ -12,7 +12,7 @@
723 723
724 #define ARCH_HAS_DMA_GET_REQUIRED_MASK 724 #define ARCH_HAS_DMA_GET_REQUIRED_MASK
@@ -762,9 +762,9 @@ diff -urNp linux-2.6.38.3/arch/ia64/include/asm/dma-mapping.h linux-2.6.38.3/arc
762 return ops->dma_supported(dev, mask); 762 return ops->dma_supported(dev, mask);
763 } 763 }
764 764
765diff -urNp linux-2.6.38.3/arch/ia64/include/asm/elf.h linux-2.6.38.3/arch/ia64/include/asm/elf.h 765diff -urNp linux-2.6.38.2/arch/ia64/include/asm/elf.h linux-2.6.38.2/arch/ia64/include/asm/elf.h
766--- linux-2.6.38.3/arch/ia64/include/asm/elf.h 2011-03-14 21:20:32.000000000 -0400 766--- linux-2.6.38.2/arch/ia64/include/asm/elf.h 2011-03-14 21:20:32.000000000 -0400
767+++ linux-2.6.38.3/arch/ia64/include/asm/elf.h 2011-04-17 15:57:32.000000000 -0400 767+++ linux-2.6.38.2/arch/ia64/include/asm/elf.h 2011-03-21 18:31:35.000000000 -0400
768@@ -42,6 +42,13 @@ 768@@ -42,6 +42,13 @@
769 */ 769 */
770 #define ELF_ET_DYN_BASE (TASK_UNMAPPED_BASE + 0x800000000UL) 770 #define ELF_ET_DYN_BASE (TASK_UNMAPPED_BASE + 0x800000000UL)
@@ -779,9 +779,9 @@ diff -urNp linux-2.6.38.3/arch/ia64/include/asm/elf.h linux-2.6.38.3/arch/ia64/i
779 #define PT_IA_64_UNWIND 0x70000001 779 #define PT_IA_64_UNWIND 0x70000001
780 780
781 /* IA-64 relocations: */ 781 /* IA-64 relocations: */
782diff -urNp linux-2.6.38.3/arch/ia64/include/asm/machvec.h linux-2.6.38.3/arch/ia64/include/asm/machvec.h 782diff -urNp linux-2.6.38.2/arch/ia64/include/asm/machvec.h linux-2.6.38.2/arch/ia64/include/asm/machvec.h
783--- linux-2.6.38.3/arch/ia64/include/asm/machvec.h 2011-03-14 21:20:32.000000000 -0400 783--- linux-2.6.38.2/arch/ia64/include/asm/machvec.h 2011-03-14 21:20:32.000000000 -0400
784+++ linux-2.6.38.3/arch/ia64/include/asm/machvec.h 2011-04-17 15:57:32.000000000 -0400 784+++ linux-2.6.38.2/arch/ia64/include/asm/machvec.h 2011-03-21 18:31:35.000000000 -0400
785@@ -45,7 +45,7 @@ typedef void ia64_mv_kernel_launch_event 785@@ -45,7 +45,7 @@ typedef void ia64_mv_kernel_launch_event
786 /* DMA-mapping interface: */ 786 /* DMA-mapping interface: */
787 typedef void ia64_mv_dma_init (void); 787 typedef void ia64_mv_dma_init (void);
@@ -800,9 +800,9 @@ diff -urNp linux-2.6.38.3/arch/ia64/include/asm/machvec.h linux-2.6.38.3/arch/ia
800 800
801 /* 801 /*
802 * Define default versions so we can extend machvec for new platforms without having 802 * Define default versions so we can extend machvec for new platforms without having
803diff -urNp linux-2.6.38.3/arch/ia64/include/asm/pgtable.h linux-2.6.38.3/arch/ia64/include/asm/pgtable.h 803diff -urNp linux-2.6.38.2/arch/ia64/include/asm/pgtable.h linux-2.6.38.2/arch/ia64/include/asm/pgtable.h
804--- linux-2.6.38.3/arch/ia64/include/asm/pgtable.h 2011-03-14 21:20:32.000000000 -0400 804--- linux-2.6.38.2/arch/ia64/include/asm/pgtable.h 2011-03-14 21:20:32.000000000 -0400
805+++ linux-2.6.38.3/arch/ia64/include/asm/pgtable.h 2011-04-17 15:57:32.000000000 -0400 805+++ linux-2.6.38.2/arch/ia64/include/asm/pgtable.h 2011-03-21 18:31:35.000000000 -0400
806@@ -12,7 +12,7 @@ 806@@ -12,7 +12,7 @@
807 * David Mosberger-Tang <davidm@hpl.hp.com> 807 * David Mosberger-Tang <davidm@hpl.hp.com>
808 */ 808 */
@@ -830,9 +830,9 @@ diff -urNp linux-2.6.38.3/arch/ia64/include/asm/pgtable.h linux-2.6.38.3/arch/ia
830 #define PAGE_GATE __pgprot(__ACCESS_BITS | _PAGE_PL_0 | _PAGE_AR_X_RX) 830 #define PAGE_GATE __pgprot(__ACCESS_BITS | _PAGE_PL_0 | _PAGE_AR_X_RX)
831 #define PAGE_KERNEL __pgprot(__DIRTY_BITS | _PAGE_PL_0 | _PAGE_AR_RWX) 831 #define PAGE_KERNEL __pgprot(__DIRTY_BITS | _PAGE_PL_0 | _PAGE_AR_RWX)
832 #define PAGE_KERNELRX __pgprot(__ACCESS_BITS | _PAGE_PL_0 | _PAGE_AR_RX) 832 #define PAGE_KERNELRX __pgprot(__ACCESS_BITS | _PAGE_PL_0 | _PAGE_AR_RX)
833diff -urNp linux-2.6.38.3/arch/ia64/include/asm/spinlock.h linux-2.6.38.3/arch/ia64/include/asm/spinlock.h 833diff -urNp linux-2.6.38.2/arch/ia64/include/asm/spinlock.h linux-2.6.38.2/arch/ia64/include/asm/spinlock.h
834--- linux-2.6.38.3/arch/ia64/include/asm/spinlock.h 2011-03-14 21:20:32.000000000 -0400 834--- linux-2.6.38.2/arch/ia64/include/asm/spinlock.h 2011-03-14 21:20:32.000000000 -0400
835+++ linux-2.6.38.3/arch/ia64/include/asm/spinlock.h 2011-04-17 15:57:32.000000000 -0400 835+++ linux-2.6.38.2/arch/ia64/include/asm/spinlock.h 2011-03-21 18:31:35.000000000 -0400
836@@ -72,7 +72,7 @@ static __always_inline void __ticket_spi 836@@ -72,7 +72,7 @@ static __always_inline void __ticket_spi
837 unsigned short *p = (unsigned short *)&lock->lock + 1, tmp; 837 unsigned short *p = (unsigned short *)&lock->lock + 1, tmp;
838 838
@@ -842,9 +842,9 @@ diff -urNp linux-2.6.38.3/arch/ia64/include/asm/spinlock.h linux-2.6.38.3/arch/i
842 } 842 }
843 843
844 static __always_inline void __ticket_spin_unlock_wait(arch_spinlock_t *lock) 844 static __always_inline void __ticket_spin_unlock_wait(arch_spinlock_t *lock)
845diff -urNp linux-2.6.38.3/arch/ia64/include/asm/uaccess.h linux-2.6.38.3/arch/ia64/include/asm/uaccess.h 845diff -urNp linux-2.6.38.2/arch/ia64/include/asm/uaccess.h linux-2.6.38.2/arch/ia64/include/asm/uaccess.h
846--- linux-2.6.38.3/arch/ia64/include/asm/uaccess.h 2011-03-14 21:20:32.000000000 -0400 846--- linux-2.6.38.2/arch/ia64/include/asm/uaccess.h 2011-03-14 21:20:32.000000000 -0400
847+++ linux-2.6.38.3/arch/ia64/include/asm/uaccess.h 2011-04-17 15:57:32.000000000 -0400 847+++ linux-2.6.38.2/arch/ia64/include/asm/uaccess.h 2011-03-21 18:31:35.000000000 -0400
848@@ -257,7 +257,7 @@ __copy_from_user (void *to, const void _ 848@@ -257,7 +257,7 @@ __copy_from_user (void *to, const void _
849 const void *__cu_from = (from); \ 849 const void *__cu_from = (from); \
850 long __cu_len = (n); \ 850 long __cu_len = (n); \
@@ -863,9 +863,9 @@ diff -urNp linux-2.6.38.3/arch/ia64/include/asm/uaccess.h linux-2.6.38.3/arch/ia
863 __cu_len = __copy_user((__force void __user *) __cu_to, __cu_from, __cu_len); \ 863 __cu_len = __copy_user((__force void __user *) __cu_to, __cu_from, __cu_len); \
864 __cu_len; \ 864 __cu_len; \
865 }) 865 })
866diff -urNp linux-2.6.38.3/arch/ia64/kernel/dma-mapping.c linux-2.6.38.3/arch/ia64/kernel/dma-mapping.c 866diff -urNp linux-2.6.38.2/arch/ia64/kernel/dma-mapping.c linux-2.6.38.2/arch/ia64/kernel/dma-mapping.c
867--- linux-2.6.38.3/arch/ia64/kernel/dma-mapping.c 2011-03-14 21:20:32.000000000 -0400 867--- linux-2.6.38.2/arch/ia64/kernel/dma-mapping.c 2011-03-14 21:20:32.000000000 -0400
868+++ linux-2.6.38.3/arch/ia64/kernel/dma-mapping.c 2011-04-17 15:57:32.000000000 -0400 868+++ linux-2.6.38.2/arch/ia64/kernel/dma-mapping.c 2011-03-21 18:31:35.000000000 -0400
869@@ -3,7 +3,7 @@ 869@@ -3,7 +3,7 @@
870 /* Set this to 1 if there is a HW IOMMU in the system */ 870 /* Set this to 1 if there is a HW IOMMU in the system */
871 int iommu_detected __read_mostly; 871 int iommu_detected __read_mostly;
@@ -884,9 +884,9 @@ diff -urNp linux-2.6.38.3/arch/ia64/kernel/dma-mapping.c linux-2.6.38.3/arch/ia6
884 { 884 {
885 return dma_ops; 885 return dma_ops;
886 } 886 }
887diff -urNp linux-2.6.38.3/arch/ia64/kernel/module.c linux-2.6.38.3/arch/ia64/kernel/module.c 887diff -urNp linux-2.6.38.2/arch/ia64/kernel/module.c linux-2.6.38.2/arch/ia64/kernel/module.c
888--- linux-2.6.38.3/arch/ia64/kernel/module.c 2011-03-14 21:20:32.000000000 -0400 888--- linux-2.6.38.2/arch/ia64/kernel/module.c 2011-03-14 21:20:32.000000000 -0400
889+++ linux-2.6.38.3/arch/ia64/kernel/module.c 2011-04-17 15:57:32.000000000 -0400 889+++ linux-2.6.38.2/arch/ia64/kernel/module.c 2011-03-21 18:31:35.000000000 -0400
890@@ -315,8 +315,7 @@ module_alloc (unsigned long size) 890@@ -315,8 +315,7 @@ module_alloc (unsigned long size)
891 void 891 void
892 module_free (struct module *mod, void *module_region) 892 module_free (struct module *mod, void *module_region)
@@ -975,9 +975,9 @@ diff -urNp linux-2.6.38.3/arch/ia64/kernel/module.c linux-2.6.38.3/arch/ia64/ker
975 mod->arch.gp = gp; 975 mod->arch.gp = gp;
976 DEBUGP("%s: placing gp at 0x%lx\n", __func__, gp); 976 DEBUGP("%s: placing gp at 0x%lx\n", __func__, gp);
977 } 977 }
978diff -urNp linux-2.6.38.3/arch/ia64/kernel/pci-dma.c linux-2.6.38.3/arch/ia64/kernel/pci-dma.c 978diff -urNp linux-2.6.38.2/arch/ia64/kernel/pci-dma.c linux-2.6.38.2/arch/ia64/kernel/pci-dma.c
979--- linux-2.6.38.3/arch/ia64/kernel/pci-dma.c 2011-03-14 21:20:32.000000000 -0400 979--- linux-2.6.38.2/arch/ia64/kernel/pci-dma.c 2011-03-14 21:20:32.000000000 -0400
980+++ linux-2.6.38.3/arch/ia64/kernel/pci-dma.c 2011-04-17 15:57:32.000000000 -0400 980+++ linux-2.6.38.2/arch/ia64/kernel/pci-dma.c 2011-03-21 18:31:35.000000000 -0400
981@@ -43,7 +43,7 @@ struct device fallback_dev = { 981@@ -43,7 +43,7 @@ struct device fallback_dev = {
982 .dma_mask = &fallback_dev.coherent_dma_mask, 982 .dma_mask = &fallback_dev.coherent_dma_mask,
983 }; 983 };
@@ -987,9 +987,9 @@ diff -urNp linux-2.6.38.3/arch/ia64/kernel/pci-dma.c linux-2.6.38.3/arch/ia64/ke
987 987
988 static int __init pci_iommu_init(void) 988 static int __init pci_iommu_init(void)
989 { 989 {
990diff -urNp linux-2.6.38.3/arch/ia64/kernel/pci-swiotlb.c linux-2.6.38.3/arch/ia64/kernel/pci-swiotlb.c 990diff -urNp linux-2.6.38.2/arch/ia64/kernel/pci-swiotlb.c linux-2.6.38.2/arch/ia64/kernel/pci-swiotlb.c
991--- linux-2.6.38.3/arch/ia64/kernel/pci-swiotlb.c 2011-03-14 21:20:32.000000000 -0400 991--- linux-2.6.38.2/arch/ia64/kernel/pci-swiotlb.c 2011-03-14 21:20:32.000000000 -0400
992+++ linux-2.6.38.3/arch/ia64/kernel/pci-swiotlb.c 2011-04-17 15:57:32.000000000 -0400 992+++ linux-2.6.38.2/arch/ia64/kernel/pci-swiotlb.c 2011-03-21 18:31:35.000000000 -0400
993@@ -22,7 +22,7 @@ static void *ia64_swiotlb_alloc_coherent 993@@ -22,7 +22,7 @@ static void *ia64_swiotlb_alloc_coherent
994 return swiotlb_alloc_coherent(dev, size, dma_handle, gfp); 994 return swiotlb_alloc_coherent(dev, size, dma_handle, gfp);
995 } 995 }
@@ -999,9 +999,9 @@ diff -urNp linux-2.6.38.3/arch/ia64/kernel/pci-swiotlb.c linux-2.6.38.3/arch/ia6
999 .alloc_coherent = ia64_swiotlb_alloc_coherent, 999 .alloc_coherent = ia64_swiotlb_alloc_coherent,
1000 .free_coherent = swiotlb_free_coherent, 1000 .free_coherent = swiotlb_free_coherent,
1001 .map_page = swiotlb_map_page, 1001 .map_page = swiotlb_map_page,
1002diff -urNp linux-2.6.38.3/arch/ia64/kernel/sys_ia64.c linux-2.6.38.3/arch/ia64/kernel/sys_ia64.c 1002diff -urNp linux-2.6.38.2/arch/ia64/kernel/sys_ia64.c linux-2.6.38.2/arch/ia64/kernel/sys_ia64.c
1003--- linux-2.6.38.3/arch/ia64/kernel/sys_ia64.c 2011-03-14 21:20:32.000000000 -0400 1003--- linux-2.6.38.2/arch/ia64/kernel/sys_ia64.c 2011-03-14 21:20:32.000000000 -0400
1004+++ linux-2.6.38.3/arch/ia64/kernel/sys_ia64.c 2011-04-17 15:57:32.000000000 -0400 1004+++ linux-2.6.38.2/arch/ia64/kernel/sys_ia64.c 2011-03-21 18:31:35.000000000 -0400
1005@@ -43,6 +43,13 @@ arch_get_unmapped_area (struct file *fil 1005@@ -43,6 +43,13 @@ arch_get_unmapped_area (struct file *fil
1006 if (REGION_NUMBER(addr) == RGN_HPAGE) 1006 if (REGION_NUMBER(addr) == RGN_HPAGE)
1007 addr = 0; 1007 addr = 0;
@@ -1034,9 +1034,9 @@ diff -urNp linux-2.6.38.3/arch/ia64/kernel/sys_ia64.c linux-2.6.38.3/arch/ia64/k
1034 /* Remember the address where we stopped this search: */ 1034 /* Remember the address where we stopped this search: */
1035 mm->free_area_cache = addr + len; 1035 mm->free_area_cache = addr + len;
1036 return addr; 1036 return addr;
1037diff -urNp linux-2.6.38.3/arch/ia64/kernel/vmlinux.lds.S linux-2.6.38.3/arch/ia64/kernel/vmlinux.lds.S 1037diff -urNp linux-2.6.38.2/arch/ia64/kernel/vmlinux.lds.S linux-2.6.38.2/arch/ia64/kernel/vmlinux.lds.S
1038--- linux-2.6.38.3/arch/ia64/kernel/vmlinux.lds.S 2011-03-14 21:20:32.000000000 -0400 1038--- linux-2.6.38.2/arch/ia64/kernel/vmlinux.lds.S 2011-03-14 21:20:32.000000000 -0400
1039+++ linux-2.6.38.3/arch/ia64/kernel/vmlinux.lds.S 2011-04-17 15:57:32.000000000 -0400 1039+++ linux-2.6.38.2/arch/ia64/kernel/vmlinux.lds.S 2011-03-21 18:31:35.000000000 -0400
1040@@ -199,7 +199,7 @@ SECTIONS { 1040@@ -199,7 +199,7 @@ SECTIONS {
1041 /* Per-cpu data: */ 1041 /* Per-cpu data: */
1042 . = ALIGN(PERCPU_PAGE_SIZE); 1042 . = ALIGN(PERCPU_PAGE_SIZE);
@@ -1046,9 +1046,9 @@ diff -urNp linux-2.6.38.3/arch/ia64/kernel/vmlinux.lds.S linux-2.6.38.3/arch/ia6
1046 /* 1046 /*
1047 * ensure percpu data fits 1047 * ensure percpu data fits
1048 * into percpu page size 1048 * into percpu page size
1049diff -urNp linux-2.6.38.3/arch/ia64/mm/fault.c linux-2.6.38.3/arch/ia64/mm/fault.c 1049diff -urNp linux-2.6.38.2/arch/ia64/mm/fault.c linux-2.6.38.2/arch/ia64/mm/fault.c
1050--- linux-2.6.38.3/arch/ia64/mm/fault.c 2011-03-14 21:20:32.000000000 -0400 1050--- linux-2.6.38.2/arch/ia64/mm/fault.c 2011-03-14 21:20:32.000000000 -0400
1051+++ linux-2.6.38.3/arch/ia64/mm/fault.c 2011-04-17 15:57:32.000000000 -0400 1051+++ linux-2.6.38.2/arch/ia64/mm/fault.c 2011-03-21 18:31:35.000000000 -0400
1052@@ -72,6 +72,23 @@ mapped_kernel_page_is_present (unsigned 1052@@ -72,6 +72,23 @@ mapped_kernel_page_is_present (unsigned
1053 return pte_present(pte); 1053 return pte_present(pte);
1054 } 1054 }
@@ -1098,9 +1098,9 @@ diff -urNp linux-2.6.38.3/arch/ia64/mm/fault.c linux-2.6.38.3/arch/ia64/mm/fault
1098 /* 1098 /*
1099 * If for any reason at all we couldn't handle the fault, make 1099 * If for any reason at all we couldn't handle the fault, make
1100 * sure we exit gracefully rather than endlessly redo the 1100 * sure we exit gracefully rather than endlessly redo the
1101diff -urNp linux-2.6.38.3/arch/ia64/mm/hugetlbpage.c linux-2.6.38.3/arch/ia64/mm/hugetlbpage.c 1101diff -urNp linux-2.6.38.2/arch/ia64/mm/hugetlbpage.c linux-2.6.38.2/arch/ia64/mm/hugetlbpage.c
1102--- linux-2.6.38.3/arch/ia64/mm/hugetlbpage.c 2011-03-14 21:20:32.000000000 -0400 1102--- linux-2.6.38.2/arch/ia64/mm/hugetlbpage.c 2011-03-14 21:20:32.000000000 -0400
1103+++ linux-2.6.38.3/arch/ia64/mm/hugetlbpage.c 2011-04-17 15:57:32.000000000 -0400 1103+++ linux-2.6.38.2/arch/ia64/mm/hugetlbpage.c 2011-03-21 18:31:35.000000000 -0400
1104@@ -171,7 +171,7 @@ unsigned long hugetlb_get_unmapped_area( 1104@@ -171,7 +171,7 @@ unsigned long hugetlb_get_unmapped_area(
1105 /* At this point: (!vmm || addr < vmm->vm_end). */ 1105 /* At this point: (!vmm || addr < vmm->vm_end). */
1106 if (REGION_OFFSET(addr) + len > RGN_MAP_LIMIT) 1106 if (REGION_OFFSET(addr) + len > RGN_MAP_LIMIT)
@@ -1110,9 +1110,9 @@ diff -urNp linux-2.6.38.3/arch/ia64/mm/hugetlbpage.c linux-2.6.38.3/arch/ia64/mm
1110 return addr; 1110 return addr;
1111 addr = ALIGN(vmm->vm_end, HPAGE_SIZE); 1111 addr = ALIGN(vmm->vm_end, HPAGE_SIZE);
1112 } 1112 }
1113diff -urNp linux-2.6.38.3/arch/ia64/mm/init.c linux-2.6.38.3/arch/ia64/mm/init.c 1113diff -urNp linux-2.6.38.2/arch/ia64/mm/init.c linux-2.6.38.2/arch/ia64/mm/init.c
1114--- linux-2.6.38.3/arch/ia64/mm/init.c 2011-03-14 21:20:32.000000000 -0400 1114--- linux-2.6.38.2/arch/ia64/mm/init.c 2011-03-14 21:20:32.000000000 -0400
1115+++ linux-2.6.38.3/arch/ia64/mm/init.c 2011-04-17 15:57:32.000000000 -0400 1115+++ linux-2.6.38.2/arch/ia64/mm/init.c 2011-03-21 18:31:35.000000000 -0400
1116@@ -122,6 +122,19 @@ ia64_init_addr_space (void) 1116@@ -122,6 +122,19 @@ ia64_init_addr_space (void)
1117 vma->vm_start = current->thread.rbs_bot & PAGE_MASK; 1117 vma->vm_start = current->thread.rbs_bot & PAGE_MASK;
1118 vma->vm_end = vma->vm_start + PAGE_SIZE; 1118 vma->vm_end = vma->vm_start + PAGE_SIZE;
@@ -1133,9 +1133,9 @@ diff -urNp linux-2.6.38.3/arch/ia64/mm/init.c linux-2.6.38.3/arch/ia64/mm/init.c
1133 vma->vm_page_prot = vm_get_page_prot(vma->vm_flags); 1133 vma->vm_page_prot = vm_get_page_prot(vma->vm_flags);
1134 down_write(&current->mm->mmap_sem); 1134 down_write(&current->mm->mmap_sem);
1135 if (insert_vm_struct(current->mm, vma)) { 1135 if (insert_vm_struct(current->mm, vma)) {
1136diff -urNp linux-2.6.38.3/arch/ia64/sn/pci/pci_dma.c linux-2.6.38.3/arch/ia64/sn/pci/pci_dma.c 1136diff -urNp linux-2.6.38.2/arch/ia64/sn/pci/pci_dma.c linux-2.6.38.2/arch/ia64/sn/pci/pci_dma.c
1137--- linux-2.6.38.3/arch/ia64/sn/pci/pci_dma.c 2011-03-14 21:20:32.000000000 -0400 1137--- linux-2.6.38.2/arch/ia64/sn/pci/pci_dma.c 2011-03-14 21:20:32.000000000 -0400
1138+++ linux-2.6.38.3/arch/ia64/sn/pci/pci_dma.c 2011-04-17 15:57:32.000000000 -0400 1138+++ linux-2.6.38.2/arch/ia64/sn/pci/pci_dma.c 2011-03-21 18:31:35.000000000 -0400
1139@@ -465,7 +465,7 @@ int sn_pci_legacy_write(struct pci_bus * 1139@@ -465,7 +465,7 @@ int sn_pci_legacy_write(struct pci_bus *
1140 return ret; 1140 return ret;
1141 } 1141 }
@@ -1145,9 +1145,9 @@ diff -urNp linux-2.6.38.3/arch/ia64/sn/pci/pci_dma.c linux-2.6.38.3/arch/ia64/sn
1145 .alloc_coherent = sn_dma_alloc_coherent, 1145 .alloc_coherent = sn_dma_alloc_coherent,
1146 .free_coherent = sn_dma_free_coherent, 1146 .free_coherent = sn_dma_free_coherent,
1147 .map_page = sn_dma_map_page, 1147 .map_page = sn_dma_map_page,
1148diff -urNp linux-2.6.38.3/arch/m32r/lib/usercopy.c linux-2.6.38.3/arch/m32r/lib/usercopy.c 1148diff -urNp linux-2.6.38.2/arch/m32r/lib/usercopy.c linux-2.6.38.2/arch/m32r/lib/usercopy.c
1149--- linux-2.6.38.3/arch/m32r/lib/usercopy.c 2011-03-14 21:20:32.000000000 -0400 1149--- linux-2.6.38.2/arch/m32r/lib/usercopy.c 2011-03-14 21:20:32.000000000 -0400
1150+++ linux-2.6.38.3/arch/m32r/lib/usercopy.c 2011-04-17 15:57:32.000000000 -0400 1150+++ linux-2.6.38.2/arch/m32r/lib/usercopy.c 2011-03-21 18:31:35.000000000 -0400
1151@@ -14,6 +14,9 @@ 1151@@ -14,6 +14,9 @@
1152 unsigned long 1152 unsigned long
1153 __generic_copy_to_user(void __user *to, const void *from, unsigned long n) 1153 __generic_copy_to_user(void __user *to, const void *from, unsigned long n)
@@ -1168,9 +1168,9 @@ diff -urNp linux-2.6.38.3/arch/m32r/lib/usercopy.c linux-2.6.38.3/arch/m32r/lib/
1168 prefetchw(to); 1168 prefetchw(to);
1169 if (access_ok(VERIFY_READ, from, n)) 1169 if (access_ok(VERIFY_READ, from, n))
1170 __copy_user_zeroing(to,from,n); 1170 __copy_user_zeroing(to,from,n);
1171diff -urNp linux-2.6.38.3/arch/microblaze/include/asm/device.h linux-2.6.38.3/arch/microblaze/include/asm/device.h 1171diff -urNp linux-2.6.38.2/arch/microblaze/include/asm/device.h linux-2.6.38.2/arch/microblaze/include/asm/device.h
1172--- linux-2.6.38.3/arch/microblaze/include/asm/device.h 2011-03-14 21:20:32.000000000 -0400 1172--- linux-2.6.38.2/arch/microblaze/include/asm/device.h 2011-03-14 21:20:32.000000000 -0400
1173+++ linux-2.6.38.3/arch/microblaze/include/asm/device.h 2011-04-17 15:57:32.000000000 -0400 1173+++ linux-2.6.38.2/arch/microblaze/include/asm/device.h 2011-03-21 18:31:35.000000000 -0400
1174@@ -13,7 +13,7 @@ struct device_node; 1174@@ -13,7 +13,7 @@ struct device_node;
1175 1175
1176 struct dev_archdata { 1176 struct dev_archdata {
@@ -1180,9 +1180,9 @@ diff -urNp linux-2.6.38.3/arch/microblaze/include/asm/device.h linux-2.6.38.3/ar
1180 void *dma_data; 1180 void *dma_data;
1181 }; 1181 };
1182 1182
1183diff -urNp linux-2.6.38.3/arch/microblaze/include/asm/dma-mapping.h linux-2.6.38.3/arch/microblaze/include/asm/dma-mapping.h 1183diff -urNp linux-2.6.38.2/arch/microblaze/include/asm/dma-mapping.h linux-2.6.38.2/arch/microblaze/include/asm/dma-mapping.h
1184--- linux-2.6.38.3/arch/microblaze/include/asm/dma-mapping.h 2011-03-14 21:20:32.000000000 -0400 1184--- linux-2.6.38.2/arch/microblaze/include/asm/dma-mapping.h 2011-03-14 21:20:32.000000000 -0400
1185+++ linux-2.6.38.3/arch/microblaze/include/asm/dma-mapping.h 2011-04-17 15:57:32.000000000 -0400 1185+++ linux-2.6.38.2/arch/microblaze/include/asm/dma-mapping.h 2011-03-21 18:31:35.000000000 -0400
1186@@ -43,14 +43,14 @@ static inline unsigned long device_to_ma 1186@@ -43,14 +43,14 @@ static inline unsigned long device_to_ma
1187 return 0xfffffffful; 1187 return 0xfffffffful;
1188 } 1188 }
@@ -1254,9 +1254,9 @@ diff -urNp linux-2.6.38.3/arch/microblaze/include/asm/dma-mapping.h linux-2.6.38
1254 1254
1255 BUG_ON(!ops); 1255 BUG_ON(!ops);
1256 debug_dma_free_coherent(dev, size, cpu_addr, dma_handle); 1256 debug_dma_free_coherent(dev, size, cpu_addr, dma_handle);
1257diff -urNp linux-2.6.38.3/arch/microblaze/include/asm/pci.h linux-2.6.38.3/arch/microblaze/include/asm/pci.h 1257diff -urNp linux-2.6.38.2/arch/microblaze/include/asm/pci.h linux-2.6.38.2/arch/microblaze/include/asm/pci.h
1258--- linux-2.6.38.3/arch/microblaze/include/asm/pci.h 2011-03-14 21:20:32.000000000 -0400 1258--- linux-2.6.38.2/arch/microblaze/include/asm/pci.h 2011-03-14 21:20:32.000000000 -0400
1259+++ linux-2.6.38.3/arch/microblaze/include/asm/pci.h 2011-04-17 15:57:32.000000000 -0400 1259+++ linux-2.6.38.2/arch/microblaze/include/asm/pci.h 2011-03-21 18:31:35.000000000 -0400
1260@@ -54,8 +54,8 @@ static inline void pcibios_penalize_isa_ 1260@@ -54,8 +54,8 @@ static inline void pcibios_penalize_isa_
1261 } 1261 }
1262 1262
@@ -1268,9 +1268,9 @@ diff -urNp linux-2.6.38.3/arch/microblaze/include/asm/pci.h linux-2.6.38.3/arch/
1268 #else /* CONFIG_PCI */ 1268 #else /* CONFIG_PCI */
1269 #define set_pci_dma_ops(d) 1269 #define set_pci_dma_ops(d)
1270 #define get_pci_dma_ops() NULL 1270 #define get_pci_dma_ops() NULL
1271diff -urNp linux-2.6.38.3/arch/microblaze/kernel/dma.c linux-2.6.38.3/arch/microblaze/kernel/dma.c 1271diff -urNp linux-2.6.38.2/arch/microblaze/kernel/dma.c linux-2.6.38.2/arch/microblaze/kernel/dma.c
1272--- linux-2.6.38.3/arch/microblaze/kernel/dma.c 2011-03-14 21:20:32.000000000 -0400 1272--- linux-2.6.38.2/arch/microblaze/kernel/dma.c 2011-03-14 21:20:32.000000000 -0400
1273+++ linux-2.6.38.3/arch/microblaze/kernel/dma.c 2011-04-17 15:57:32.000000000 -0400 1273+++ linux-2.6.38.2/arch/microblaze/kernel/dma.c 2011-03-21 18:31:35.000000000 -0400
1274@@ -133,7 +133,7 @@ static inline void dma_direct_unmap_page 1274@@ -133,7 +133,7 @@ static inline void dma_direct_unmap_page
1275 __dma_sync_page(dma_address, 0 , size, direction); 1275 __dma_sync_page(dma_address, 0 , size, direction);
1276 } 1276 }
@@ -1280,9 +1280,9 @@ diff -urNp linux-2.6.38.3/arch/microblaze/kernel/dma.c linux-2.6.38.3/arch/micro
1280 .alloc_coherent = dma_direct_alloc_coherent, 1280 .alloc_coherent = dma_direct_alloc_coherent,
1281 .free_coherent = dma_direct_free_coherent, 1281 .free_coherent = dma_direct_free_coherent,
1282 .map_sg = dma_direct_map_sg, 1282 .map_sg = dma_direct_map_sg,
1283diff -urNp linux-2.6.38.3/arch/microblaze/kernel/kgdb.c linux-2.6.38.3/arch/microblaze/kernel/kgdb.c 1283diff -urNp linux-2.6.38.2/arch/microblaze/kernel/kgdb.c linux-2.6.38.2/arch/microblaze/kernel/kgdb.c
1284--- linux-2.6.38.3/arch/microblaze/kernel/kgdb.c 2011-03-14 21:20:32.000000000 -0400 1284--- linux-2.6.38.2/arch/microblaze/kernel/kgdb.c 2011-03-14 21:20:32.000000000 -0400
1285+++ linux-2.6.38.3/arch/microblaze/kernel/kgdb.c 2011-04-17 15:57:32.000000000 -0400 1285+++ linux-2.6.38.2/arch/microblaze/kernel/kgdb.c 2011-03-21 18:31:35.000000000 -0400
1286@@ -141,10 +141,11 @@ void kgdb_arch_exit(void) 1286@@ -141,10 +141,11 @@ void kgdb_arch_exit(void)
1287 /* 1287 /*
1288 * Global data 1288 * Global data
@@ -1296,9 +1296,9 @@ diff -urNp linux-2.6.38.3/arch/microblaze/kernel/kgdb.c linux-2.6.38.3/arch/micr
1296 .gdb_bpt_instr = {0xba, 0x0c, 0x00, 0x18}, /* brki r16, 0x18 */ 1296 .gdb_bpt_instr = {0xba, 0x0c, 0x00, 0x18}, /* brki r16, 0x18 */
1297 #endif 1297 #endif
1298 }; 1298 };
1299diff -urNp linux-2.6.38.3/arch/microblaze/pci/pci-common.c linux-2.6.38.3/arch/microblaze/pci/pci-common.c 1299diff -urNp linux-2.6.38.2/arch/microblaze/pci/pci-common.c linux-2.6.38.2/arch/microblaze/pci/pci-common.c
1300--- linux-2.6.38.3/arch/microblaze/pci/pci-common.c 2011-03-14 21:20:32.000000000 -0400 1300--- linux-2.6.38.2/arch/microblaze/pci/pci-common.c 2011-03-14 21:20:32.000000000 -0400
1301+++ linux-2.6.38.3/arch/microblaze/pci/pci-common.c 2011-04-17 15:57:32.000000000 -0400 1301+++ linux-2.6.38.2/arch/microblaze/pci/pci-common.c 2011-03-21 18:31:35.000000000 -0400
1302@@ -47,14 +47,14 @@ resource_size_t isa_mem_base; 1302@@ -47,14 +47,14 @@ resource_size_t isa_mem_base;
1303 /* Default PCI flags is 0 on ppc32, modified at boot on ppc64 */ 1303 /* Default PCI flags is 0 on ppc32, modified at boot on ppc64 */
1304 unsigned int pci_flags; 1304 unsigned int pci_flags;
@@ -1317,9 +1317,9 @@ diff -urNp linux-2.6.38.3/arch/microblaze/pci/pci-common.c linux-2.6.38.3/arch/m
1317 { 1317 {
1318 return pci_dma_ops; 1318 return pci_dma_ops;
1319 } 1319 }
1320diff -urNp linux-2.6.38.3/arch/mips/cavium-octeon/dma-octeon.c linux-2.6.38.3/arch/mips/cavium-octeon/dma-octeon.c 1320diff -urNp linux-2.6.38.2/arch/mips/cavium-octeon/dma-octeon.c linux-2.6.38.2/arch/mips/cavium-octeon/dma-octeon.c
1321--- linux-2.6.38.3/arch/mips/cavium-octeon/dma-octeon.c 2011-03-14 21:20:32.000000000 -0400 1321--- linux-2.6.38.2/arch/mips/cavium-octeon/dma-octeon.c 2011-03-14 21:20:32.000000000 -0400
1322+++ linux-2.6.38.3/arch/mips/cavium-octeon/dma-octeon.c 2011-04-17 15:57:32.000000000 -0400 1322+++ linux-2.6.38.2/arch/mips/cavium-octeon/dma-octeon.c 2011-03-21 18:31:35.000000000 -0400
1323@@ -202,7 +202,7 @@ static phys_addr_t octeon_unity_dma_to_p 1323@@ -202,7 +202,7 @@ static phys_addr_t octeon_unity_dma_to_p
1324 } 1324 }
1325 1325
@@ -1338,9 +1338,9 @@ diff -urNp linux-2.6.38.3/arch/mips/cavium-octeon/dma-octeon.c linux-2.6.38.3/ar
1338 1338
1339 void __init octeon_pci_dma_init(void) 1339 void __init octeon_pci_dma_init(void)
1340 { 1340 {
1341diff -urNp linux-2.6.38.3/arch/mips/include/asm/device.h linux-2.6.38.3/arch/mips/include/asm/device.h 1341diff -urNp linux-2.6.38.2/arch/mips/include/asm/device.h linux-2.6.38.2/arch/mips/include/asm/device.h
1342--- linux-2.6.38.3/arch/mips/include/asm/device.h 2011-03-14 21:20:32.000000000 -0400 1342--- linux-2.6.38.2/arch/mips/include/asm/device.h 2011-03-14 21:20:32.000000000 -0400
1343+++ linux-2.6.38.3/arch/mips/include/asm/device.h 2011-04-17 15:57:32.000000000 -0400 1343+++ linux-2.6.38.2/arch/mips/include/asm/device.h 2011-03-21 18:31:35.000000000 -0400
1344@@ -10,7 +10,7 @@ struct dma_map_ops; 1344@@ -10,7 +10,7 @@ struct dma_map_ops;
1345 1345
1346 struct dev_archdata { 1346 struct dev_archdata {
@@ -1350,9 +1350,9 @@ diff -urNp linux-2.6.38.3/arch/mips/include/asm/device.h linux-2.6.38.3/arch/mip
1350 }; 1350 };
1351 1351
1352 struct pdev_archdata { 1352 struct pdev_archdata {
1353diff -urNp linux-2.6.38.3/arch/mips/include/asm/dma-mapping.h linux-2.6.38.3/arch/mips/include/asm/dma-mapping.h 1353diff -urNp linux-2.6.38.2/arch/mips/include/asm/dma-mapping.h linux-2.6.38.2/arch/mips/include/asm/dma-mapping.h
1354--- linux-2.6.38.3/arch/mips/include/asm/dma-mapping.h 2011-03-14 21:20:32.000000000 -0400 1354--- linux-2.6.38.2/arch/mips/include/asm/dma-mapping.h 2011-03-14 21:20:32.000000000 -0400
1355+++ linux-2.6.38.3/arch/mips/include/asm/dma-mapping.h 2011-04-17 15:57:32.000000000 -0400 1355+++ linux-2.6.38.2/arch/mips/include/asm/dma-mapping.h 2011-03-21 18:31:35.000000000 -0400
1356@@ -7,9 +7,9 @@ 1356@@ -7,9 +7,9 @@
1357 1357
1358 #include <dma-coherence.h> 1358 #include <dma-coherence.h>
@@ -1399,9 +1399,9 @@ diff -urNp linux-2.6.38.3/arch/mips/include/asm/dma-mapping.h linux-2.6.38.3/arc
1399 1399
1400 ops->free_coherent(dev, size, vaddr, dma_handle); 1400 ops->free_coherent(dev, size, vaddr, dma_handle);
1401 1401
1402diff -urNp linux-2.6.38.3/arch/mips/include/asm/elf.h linux-2.6.38.3/arch/mips/include/asm/elf.h 1402diff -urNp linux-2.6.38.2/arch/mips/include/asm/elf.h linux-2.6.38.2/arch/mips/include/asm/elf.h
1403--- linux-2.6.38.3/arch/mips/include/asm/elf.h 2011-03-14 21:20:32.000000000 -0400 1403--- linux-2.6.38.2/arch/mips/include/asm/elf.h 2011-03-14 21:20:32.000000000 -0400
1404+++ linux-2.6.38.3/arch/mips/include/asm/elf.h 2011-04-17 15:57:32.000000000 -0400 1404+++ linux-2.6.38.2/arch/mips/include/asm/elf.h 2011-03-21 18:31:35.000000000 -0400
1405@@ -372,13 +372,16 @@ extern const char *__elf_platform; 1405@@ -372,13 +372,16 @@ extern const char *__elf_platform;
1406 #define ELF_ET_DYN_BASE (TASK_SIZE / 3 * 2) 1406 #define ELF_ET_DYN_BASE (TASK_SIZE / 3 * 2)
1407 #endif 1407 #endif
@@ -1423,9 +1423,9 @@ diff -urNp linux-2.6.38.3/arch/mips/include/asm/elf.h linux-2.6.38.3/arch/mips/i
1423-#define arch_randomize_brk arch_randomize_brk 1423-#define arch_randomize_brk arch_randomize_brk
1424- 1424-
1425 #endif /* _ASM_ELF_H */ 1425 #endif /* _ASM_ELF_H */
1426diff -urNp linux-2.6.38.3/arch/mips/include/asm/mach-cavium-octeon/dma-coherence.h linux-2.6.38.3/arch/mips/include/asm/mach-cavium-octeon/dma-coherence.h 1426diff -urNp linux-2.6.38.2/arch/mips/include/asm/mach-cavium-octeon/dma-coherence.h linux-2.6.38.2/arch/mips/include/asm/mach-cavium-octeon/dma-coherence.h
1427--- linux-2.6.38.3/arch/mips/include/asm/mach-cavium-octeon/dma-coherence.h 2011-03-14 21:20:32.000000000 -0400 1427--- linux-2.6.38.2/arch/mips/include/asm/mach-cavium-octeon/dma-coherence.h 2011-03-14 21:20:32.000000000 -0400
1428+++ linux-2.6.38.3/arch/mips/include/asm/mach-cavium-octeon/dma-coherence.h 2011-04-17 15:57:32.000000000 -0400 1428+++ linux-2.6.38.2/arch/mips/include/asm/mach-cavium-octeon/dma-coherence.h 2011-03-21 18:31:35.000000000 -0400
1429@@ -66,7 +66,7 @@ dma_addr_t phys_to_dma(struct device *de 1429@@ -66,7 +66,7 @@ dma_addr_t phys_to_dma(struct device *de
1430 phys_addr_t dma_to_phys(struct device *dev, dma_addr_t daddr); 1430 phys_addr_t dma_to_phys(struct device *dev, dma_addr_t daddr);
1431 1431
@@ -1435,9 +1435,9 @@ diff -urNp linux-2.6.38.3/arch/mips/include/asm/mach-cavium-octeon/dma-coherence
1435 extern char *octeon_swiotlb; 1435 extern char *octeon_swiotlb;
1436 1436
1437 #endif /* __ASM_MACH_CAVIUM_OCTEON_DMA_COHERENCE_H */ 1437 #endif /* __ASM_MACH_CAVIUM_OCTEON_DMA_COHERENCE_H */
1438diff -urNp linux-2.6.38.3/arch/mips/include/asm/page.h linux-2.6.38.3/arch/mips/include/asm/page.h 1438diff -urNp linux-2.6.38.2/arch/mips/include/asm/page.h linux-2.6.38.2/arch/mips/include/asm/page.h
1439--- linux-2.6.38.3/arch/mips/include/asm/page.h 2011-03-14 21:20:32.000000000 -0400 1439--- linux-2.6.38.2/arch/mips/include/asm/page.h 2011-03-14 21:20:32.000000000 -0400
1440+++ linux-2.6.38.3/arch/mips/include/asm/page.h 2011-04-17 15:57:32.000000000 -0400 1440+++ linux-2.6.38.2/arch/mips/include/asm/page.h 2011-03-21 18:31:35.000000000 -0400
1441@@ -93,7 +93,7 @@ extern void copy_user_highpage(struct pa 1441@@ -93,7 +93,7 @@ extern void copy_user_highpage(struct pa
1442 #ifdef CONFIG_CPU_MIPS32 1442 #ifdef CONFIG_CPU_MIPS32
1443 typedef struct { unsigned long pte_low, pte_high; } pte_t; 1443 typedef struct { unsigned long pte_low, pte_high; } pte_t;
@@ -1447,20 +1447,28 @@ diff -urNp linux-2.6.38.3/arch/mips/include/asm/page.h linux-2.6.38.3/arch/mips/
1447 #else 1447 #else
1448 typedef struct { unsigned long long pte; } pte_t; 1448 typedef struct { unsigned long long pte; } pte_t;
1449 #define pte_val(x) ((x).pte) 1449 #define pte_val(x) ((x).pte)
1450diff -urNp linux-2.6.38.3/arch/mips/include/asm/system.h linux-2.6.38.3/arch/mips/include/asm/system.h 1450diff -urNp linux-2.6.38.2/arch/mips/include/asm/system.h linux-2.6.38.2/arch/mips/include/asm/system.h
1451--- linux-2.6.38.3/arch/mips/include/asm/system.h 2011-03-14 21:20:32.000000000 -0400 1451--- linux-2.6.38.2/arch/mips/include/asm/system.h 2011-03-14 21:20:32.000000000 -0400
1452+++ linux-2.6.38.3/arch/mips/include/asm/system.h 2011-04-17 15:57:32.000000000 -0400 1452+++ linux-2.6.38.2/arch/mips/include/asm/system.h 2011-03-21 18:31:35.000000000 -0400
1453@@ -230,6 +230,6 @@ extern void per_cpu_trap_init(void); 1453@@ -23,6 +23,7 @@
1454 #include <asm/dsp.h>
1455 #include <asm/watch.h>
1456 #include <asm/war.h>
1457+#include <asm/asm.h>
1458
1459
1460 /*
1461@@ -230,6 +231,6 @@ extern void per_cpu_trap_init(void);
1454 */ 1462 */
1455 #define __ARCH_WANT_UNLOCKED_CTXSW 1463 #define __ARCH_WANT_UNLOCKED_CTXSW
1456 1464
1457-extern unsigned long arch_align_stack(unsigned long sp); 1465-extern unsigned long arch_align_stack(unsigned long sp);
1458+#define arch_align_stack(x) ((x) & ~0xfUL) 1466+#define arch_align_stack(x) ((x) & ALMASK)
1459 1467
1460 #endif /* _ASM_SYSTEM_H */ 1468 #endif /* _ASM_SYSTEM_H */
1461diff -urNp linux-2.6.38.3/arch/mips/kernel/binfmt_elfn32.c linux-2.6.38.3/arch/mips/kernel/binfmt_elfn32.c 1469diff -urNp linux-2.6.38.2/arch/mips/kernel/binfmt_elfn32.c linux-2.6.38.2/arch/mips/kernel/binfmt_elfn32.c
1462--- linux-2.6.38.3/arch/mips/kernel/binfmt_elfn32.c 2011-03-14 21:20:32.000000000 -0400 1470--- linux-2.6.38.2/arch/mips/kernel/binfmt_elfn32.c 2011-03-14 21:20:32.000000000 -0400
1463+++ linux-2.6.38.3/arch/mips/kernel/binfmt_elfn32.c 2011-04-17 15:57:32.000000000 -0400 1471+++ linux-2.6.38.2/arch/mips/kernel/binfmt_elfn32.c 2011-03-21 18:31:35.000000000 -0400
1464@@ -50,6 +50,13 @@ typedef elf_fpreg_t elf_fpregset_t[ELF_N 1472@@ -50,6 +50,13 @@ typedef elf_fpreg_t elf_fpregset_t[ELF_N
1465 #undef ELF_ET_DYN_BASE 1473 #undef ELF_ET_DYN_BASE
1466 #define ELF_ET_DYN_BASE (TASK32_SIZE / 3 * 2) 1474 #define ELF_ET_DYN_BASE (TASK32_SIZE / 3 * 2)
@@ -1475,9 +1483,9 @@ diff -urNp linux-2.6.38.3/arch/mips/kernel/binfmt_elfn32.c linux-2.6.38.3/arch/m
1475 #include <asm/processor.h> 1483 #include <asm/processor.h>
1476 #include <linux/module.h> 1484 #include <linux/module.h>
1477 #include <linux/elfcore.h> 1485 #include <linux/elfcore.h>
1478diff -urNp linux-2.6.38.3/arch/mips/kernel/binfmt_elfo32.c linux-2.6.38.3/arch/mips/kernel/binfmt_elfo32.c 1486diff -urNp linux-2.6.38.2/arch/mips/kernel/binfmt_elfo32.c linux-2.6.38.2/arch/mips/kernel/binfmt_elfo32.c
1479--- linux-2.6.38.3/arch/mips/kernel/binfmt_elfo32.c 2011-03-14 21:20:32.000000000 -0400 1487--- linux-2.6.38.2/arch/mips/kernel/binfmt_elfo32.c 2011-03-14 21:20:32.000000000 -0400
1480+++ linux-2.6.38.3/arch/mips/kernel/binfmt_elfo32.c 2011-04-17 15:57:32.000000000 -0400 1488+++ linux-2.6.38.2/arch/mips/kernel/binfmt_elfo32.c 2011-03-21 18:31:35.000000000 -0400
1481@@ -52,6 +52,13 @@ typedef elf_fpreg_t elf_fpregset_t[ELF_N 1489@@ -52,6 +52,13 @@ typedef elf_fpreg_t elf_fpregset_t[ELF_N
1482 #undef ELF_ET_DYN_BASE 1490 #undef ELF_ET_DYN_BASE
1483 #define ELF_ET_DYN_BASE (TASK32_SIZE / 3 * 2) 1491 #define ELF_ET_DYN_BASE (TASK32_SIZE / 3 * 2)
@@ -1492,9 +1500,9 @@ diff -urNp linux-2.6.38.3/arch/mips/kernel/binfmt_elfo32.c linux-2.6.38.3/arch/m
1492 #include <asm/processor.h> 1500 #include <asm/processor.h>
1493 1501
1494 /* 1502 /*
1495diff -urNp linux-2.6.38.3/arch/mips/kernel/kgdb.c linux-2.6.38.3/arch/mips/kernel/kgdb.c 1503diff -urNp linux-2.6.38.2/arch/mips/kernel/kgdb.c linux-2.6.38.2/arch/mips/kernel/kgdb.c
1496--- linux-2.6.38.3/arch/mips/kernel/kgdb.c 2011-03-14 21:20:32.000000000 -0400 1504--- linux-2.6.38.2/arch/mips/kernel/kgdb.c 2011-03-14 21:20:32.000000000 -0400
1497+++ linux-2.6.38.3/arch/mips/kernel/kgdb.c 2011-04-17 15:57:32.000000000 -0400 1505+++ linux-2.6.38.2/arch/mips/kernel/kgdb.c 2011-03-21 18:31:35.000000000 -0400
1498@@ -351,7 +351,7 @@ int kgdb_arch_handle_exception(int vecto 1506@@ -351,7 +351,7 @@ int kgdb_arch_handle_exception(int vecto
1499 return -1; 1507 return -1;
1500 } 1508 }
@@ -1504,9 +1512,9 @@ diff -urNp linux-2.6.38.3/arch/mips/kernel/kgdb.c linux-2.6.38.3/arch/mips/kerne
1504 1512
1505 /* 1513 /*
1506 * We use kgdb_early_setup so that functions we need to call now don't 1514 * We use kgdb_early_setup so that functions we need to call now don't
1507diff -urNp linux-2.6.38.3/arch/mips/kernel/process.c linux-2.6.38.3/arch/mips/kernel/process.c 1515diff -urNp linux-2.6.38.2/arch/mips/kernel/process.c linux-2.6.38.2/arch/mips/kernel/process.c
1508--- linux-2.6.38.3/arch/mips/kernel/process.c 2011-03-14 21:20:32.000000000 -0400 1516--- linux-2.6.38.2/arch/mips/kernel/process.c 2011-03-14 21:20:32.000000000 -0400
1509+++ linux-2.6.38.3/arch/mips/kernel/process.c 2011-04-17 15:57:32.000000000 -0400 1517+++ linux-2.6.38.2/arch/mips/kernel/process.c 2011-03-21 18:31:35.000000000 -0400
1510@@ -473,15 +473,3 @@ unsigned long get_wchan(struct task_stru 1518@@ -473,15 +473,3 @@ unsigned long get_wchan(struct task_stru
1511 out: 1519 out:
1512 return pc; 1520 return pc;
@@ -1523,9 +1531,9 @@ diff -urNp linux-2.6.38.3/arch/mips/kernel/process.c linux-2.6.38.3/arch/mips/ke
1523- 1531-
1524- return sp & ALMASK; 1532- return sp & ALMASK;
1525-} 1533-}
1526diff -urNp linux-2.6.38.3/arch/mips/kernel/syscall.c linux-2.6.38.3/arch/mips/kernel/syscall.c 1534diff -urNp linux-2.6.38.2/arch/mips/kernel/syscall.c linux-2.6.38.2/arch/mips/kernel/syscall.c
1527--- linux-2.6.38.3/arch/mips/kernel/syscall.c 2011-03-14 21:20:32.000000000 -0400 1535--- linux-2.6.38.2/arch/mips/kernel/syscall.c 2011-03-14 21:20:32.000000000 -0400
1528+++ linux-2.6.38.3/arch/mips/kernel/syscall.c 2011-04-17 15:57:32.000000000 -0400 1536+++ linux-2.6.38.2/arch/mips/kernel/syscall.c 2011-03-21 18:31:35.000000000 -0400
1529@@ -108,14 +108,18 @@ unsigned long arch_get_unmapped_area(str 1537@@ -108,14 +108,18 @@ unsigned long arch_get_unmapped_area(str
1530 do_color_align = 0; 1538 do_color_align = 0;
1531 if (filp || (flags & MAP_SHARED)) 1539 if (filp || (flags & MAP_SHARED))
@@ -1576,9 +1584,9 @@ diff -urNp linux-2.6.38.3/arch/mips/kernel/syscall.c linux-2.6.38.3/arch/mips/ke
1576 SYSCALL_DEFINE6(mips_mmap, unsigned long, addr, unsigned long, len, 1584 SYSCALL_DEFINE6(mips_mmap, unsigned long, addr, unsigned long, len,
1577 unsigned long, prot, unsigned long, flags, unsigned long, 1585 unsigned long, prot, unsigned long, flags, unsigned long,
1578 fd, off_t, offset) 1586 fd, off_t, offset)
1579diff -urNp linux-2.6.38.3/arch/mips/mm/dma-default.c linux-2.6.38.3/arch/mips/mm/dma-default.c 1587diff -urNp linux-2.6.38.2/arch/mips/mm/dma-default.c linux-2.6.38.2/arch/mips/mm/dma-default.c
1580--- linux-2.6.38.3/arch/mips/mm/dma-default.c 2011-03-14 21:20:32.000000000 -0400 1588--- linux-2.6.38.2/arch/mips/mm/dma-default.c 2011-03-14 21:20:32.000000000 -0400
1581+++ linux-2.6.38.3/arch/mips/mm/dma-default.c 2011-04-17 15:57:32.000000000 -0400 1589+++ linux-2.6.38.2/arch/mips/mm/dma-default.c 2011-03-21 18:31:35.000000000 -0400
1582@@ -300,7 +300,7 @@ void dma_cache_sync(struct device *dev, 1590@@ -300,7 +300,7 @@ void dma_cache_sync(struct device *dev,
1583 1591
1584 EXPORT_SYMBOL(dma_cache_sync); 1592 EXPORT_SYMBOL(dma_cache_sync);
@@ -1597,9 +1605,9 @@ diff -urNp linux-2.6.38.3/arch/mips/mm/dma-default.c linux-2.6.38.3/arch/mips/mm
1597 EXPORT_SYMBOL(mips_dma_map_ops); 1605 EXPORT_SYMBOL(mips_dma_map_ops);
1598 1606
1599 #define PREALLOC_DMA_DEBUG_ENTRIES (1 << 16) 1607 #define PREALLOC_DMA_DEBUG_ENTRIES (1 << 16)
1600diff -urNp linux-2.6.38.3/arch/mips/mm/fault.c linux-2.6.38.3/arch/mips/mm/fault.c 1608diff -urNp linux-2.6.38.2/arch/mips/mm/fault.c linux-2.6.38.2/arch/mips/mm/fault.c
1601--- linux-2.6.38.3/arch/mips/mm/fault.c 2011-03-14 21:20:32.000000000 -0400 1609--- linux-2.6.38.2/arch/mips/mm/fault.c 2011-03-14 21:20:32.000000000 -0400
1602+++ linux-2.6.38.3/arch/mips/mm/fault.c 2011-04-17 15:57:32.000000000 -0400 1610+++ linux-2.6.38.2/arch/mips/mm/fault.c 2011-03-21 18:31:35.000000000 -0400
1603@@ -28,6 +28,23 @@ 1611@@ -28,6 +28,23 @@
1604 #include <asm/highmem.h> /* For VMALLOC_END */ 1612 #include <asm/highmem.h> /* For VMALLOC_END */
1605 #include <linux/kdebug.h> 1613 #include <linux/kdebug.h>
@@ -1624,9 +1632,9 @@ diff -urNp linux-2.6.38.3/arch/mips/mm/fault.c linux-2.6.38.3/arch/mips/mm/fault
1624 /* 1632 /*
1625 * This routine handles page faults. It determines the address, 1633 * This routine handles page faults. It determines the address,
1626 * and the problem, and then passes it off to one of the appropriate 1634 * and the problem, and then passes it off to one of the appropriate
1627diff -urNp linux-2.6.38.3/arch/parisc/include/asm/elf.h linux-2.6.38.3/arch/parisc/include/asm/elf.h 1635diff -urNp linux-2.6.38.2/arch/parisc/include/asm/elf.h linux-2.6.38.2/arch/parisc/include/asm/elf.h
1628--- linux-2.6.38.3/arch/parisc/include/asm/elf.h 2011-03-14 21:20:32.000000000 -0400 1636--- linux-2.6.38.2/arch/parisc/include/asm/elf.h 2011-03-14 21:20:32.000000000 -0400
1629+++ linux-2.6.38.3/arch/parisc/include/asm/elf.h 2011-04-17 15:57:32.000000000 -0400 1637+++ linux-2.6.38.2/arch/parisc/include/asm/elf.h 2011-03-21 18:31:35.000000000 -0400
1630@@ -342,6 +342,13 @@ struct pt_regs; /* forward declaration.. 1638@@ -342,6 +342,13 @@ struct pt_regs; /* forward declaration..
1631 1639
1632 #define ELF_ET_DYN_BASE (TASK_UNMAPPED_BASE + 0x01000000) 1640 #define ELF_ET_DYN_BASE (TASK_UNMAPPED_BASE + 0x01000000)
@@ -1641,9 +1649,9 @@ diff -urNp linux-2.6.38.3/arch/parisc/include/asm/elf.h linux-2.6.38.3/arch/pari
1641 /* This yields a mask that user programs can use to figure out what 1649 /* This yields a mask that user programs can use to figure out what
1642 instruction set this CPU supports. This could be done in user space, 1650 instruction set this CPU supports. This could be done in user space,
1643 but it's not easy, and we've already done it here. */ 1651 but it's not easy, and we've already done it here. */
1644diff -urNp linux-2.6.38.3/arch/parisc/include/asm/pgtable.h linux-2.6.38.3/arch/parisc/include/asm/pgtable.h 1652diff -urNp linux-2.6.38.2/arch/parisc/include/asm/pgtable.h linux-2.6.38.2/arch/parisc/include/asm/pgtable.h
1645--- linux-2.6.38.3/arch/parisc/include/asm/pgtable.h 2011-03-14 21:20:32.000000000 -0400 1653--- linux-2.6.38.2/arch/parisc/include/asm/pgtable.h 2011-03-14 21:20:32.000000000 -0400
1646+++ linux-2.6.38.3/arch/parisc/include/asm/pgtable.h 2011-04-17 15:57:32.000000000 -0400 1654+++ linux-2.6.38.2/arch/parisc/include/asm/pgtable.h 2011-03-21 18:31:35.000000000 -0400
1647@@ -209,6 +209,17 @@ struct vm_area_struct; 1655@@ -209,6 +209,17 @@ struct vm_area_struct;
1648 #define PAGE_EXECREAD __pgprot(_PAGE_PRESENT | _PAGE_USER | _PAGE_READ | _PAGE_EXEC |_PAGE_ACCESSED) 1656 #define PAGE_EXECREAD __pgprot(_PAGE_PRESENT | _PAGE_USER | _PAGE_READ | _PAGE_EXEC |_PAGE_ACCESSED)
1649 #define PAGE_COPY PAGE_EXECREAD 1657 #define PAGE_COPY PAGE_EXECREAD
@@ -1662,9 +1670,9 @@ diff -urNp linux-2.6.38.3/arch/parisc/include/asm/pgtable.h linux-2.6.38.3/arch/
1662 #define PAGE_KERNEL __pgprot(_PAGE_KERNEL) 1670 #define PAGE_KERNEL __pgprot(_PAGE_KERNEL)
1663 #define PAGE_KERNEL_RO __pgprot(_PAGE_KERNEL & ~_PAGE_WRITE) 1671 #define PAGE_KERNEL_RO __pgprot(_PAGE_KERNEL & ~_PAGE_WRITE)
1664 #define PAGE_KERNEL_UNC __pgprot(_PAGE_KERNEL | _PAGE_NO_CACHE) 1672 #define PAGE_KERNEL_UNC __pgprot(_PAGE_KERNEL | _PAGE_NO_CACHE)
1665diff -urNp linux-2.6.38.3/arch/parisc/kernel/module.c linux-2.6.38.3/arch/parisc/kernel/module.c 1673diff -urNp linux-2.6.38.2/arch/parisc/kernel/module.c linux-2.6.38.2/arch/parisc/kernel/module.c
1666--- linux-2.6.38.3/arch/parisc/kernel/module.c 2011-03-14 21:20:32.000000000 -0400 1674--- linux-2.6.38.2/arch/parisc/kernel/module.c 2011-03-14 21:20:32.000000000 -0400
1667+++ linux-2.6.38.3/arch/parisc/kernel/module.c 2011-04-17 15:57:32.000000000 -0400 1675+++ linux-2.6.38.2/arch/parisc/kernel/module.c 2011-03-21 18:31:35.000000000 -0400
1668@@ -96,16 +96,38 @@ 1676@@ -96,16 +96,38 @@
1669 1677
1670 /* three functions to determine where in the module core 1678 /* three functions to determine where in the module core
@@ -1765,9 +1773,9 @@ diff -urNp linux-2.6.38.3/arch/parisc/kernel/module.c linux-2.6.38.3/arch/parisc
1765 1773
1766 DEBUGP("register_unwind_table(), sect = %d at 0x%p - 0x%p (gp=0x%lx)\n", 1774 DEBUGP("register_unwind_table(), sect = %d at 0x%p - 0x%p (gp=0x%lx)\n",
1767 me->arch.unwind_section, table, end, gp); 1775 me->arch.unwind_section, table, end, gp);
1768diff -urNp linux-2.6.38.3/arch/parisc/kernel/sys_parisc.c linux-2.6.38.3/arch/parisc/kernel/sys_parisc.c 1776diff -urNp linux-2.6.38.2/arch/parisc/kernel/sys_parisc.c linux-2.6.38.2/arch/parisc/kernel/sys_parisc.c
1769--- linux-2.6.38.3/arch/parisc/kernel/sys_parisc.c 2011-03-14 21:20:32.000000000 -0400 1777--- linux-2.6.38.2/arch/parisc/kernel/sys_parisc.c 2011-03-14 21:20:32.000000000 -0400
1770+++ linux-2.6.38.3/arch/parisc/kernel/sys_parisc.c 2011-04-17 15:57:32.000000000 -0400 1778+++ linux-2.6.38.2/arch/parisc/kernel/sys_parisc.c 2011-03-21 18:31:35.000000000 -0400
1771@@ -43,7 +43,7 @@ static unsigned long get_unshared_area(u 1779@@ -43,7 +43,7 @@ static unsigned long get_unshared_area(u
1772 /* At this point: (!vma || addr < vma->vm_end). */ 1780 /* At this point: (!vma || addr < vma->vm_end). */
1773 if (TASK_SIZE - len < addr) 1781 if (TASK_SIZE - len < addr)
@@ -1795,9 +1803,9 @@ diff -urNp linux-2.6.38.3/arch/parisc/kernel/sys_parisc.c linux-2.6.38.3/arch/pa
1795 1803
1796 if (filp) { 1804 if (filp) {
1797 addr = get_shared_area(filp->f_mapping, addr, len, pgoff); 1805 addr = get_shared_area(filp->f_mapping, addr, len, pgoff);
1798diff -urNp linux-2.6.38.3/arch/parisc/kernel/traps.c linux-2.6.38.3/arch/parisc/kernel/traps.c 1806diff -urNp linux-2.6.38.2/arch/parisc/kernel/traps.c linux-2.6.38.2/arch/parisc/kernel/traps.c
1799--- linux-2.6.38.3/arch/parisc/kernel/traps.c 2011-03-14 21:20:32.000000000 -0400 1807--- linux-2.6.38.2/arch/parisc/kernel/traps.c 2011-03-14 21:20:32.000000000 -0400
1800+++ linux-2.6.38.3/arch/parisc/kernel/traps.c 2011-04-17 15:57:32.000000000 -0400 1808+++ linux-2.6.38.2/arch/parisc/kernel/traps.c 2011-03-21 18:31:35.000000000 -0400
1801@@ -733,9 +733,7 @@ void notrace handle_interruption(int cod 1809@@ -733,9 +733,7 @@ void notrace handle_interruption(int cod
1802 1810
1803 down_read(&current->mm->mmap_sem); 1811 down_read(&current->mm->mmap_sem);
@@ -1809,9 +1817,9 @@ diff -urNp linux-2.6.38.3/arch/parisc/kernel/traps.c linux-2.6.38.3/arch/parisc/
1809 fault_address = regs->iaoq[0]; 1817 fault_address = regs->iaoq[0];
1810 fault_space = regs->iasq[0]; 1818 fault_space = regs->iasq[0];
1811 1819
1812diff -urNp linux-2.6.38.3/arch/parisc/mm/fault.c linux-2.6.38.3/arch/parisc/mm/fault.c 1820diff -urNp linux-2.6.38.2/arch/parisc/mm/fault.c linux-2.6.38.2/arch/parisc/mm/fault.c
1813--- linux-2.6.38.3/arch/parisc/mm/fault.c 2011-03-14 21:20:32.000000000 -0400 1821--- linux-2.6.38.2/arch/parisc/mm/fault.c 2011-03-14 21:20:32.000000000 -0400
1814+++ linux-2.6.38.3/arch/parisc/mm/fault.c 2011-04-17 15:57:32.000000000 -0400 1822+++ linux-2.6.38.2/arch/parisc/mm/fault.c 2011-03-21 18:31:35.000000000 -0400
1815@@ -15,6 +15,7 @@ 1823@@ -15,6 +15,7 @@
1816 #include <linux/sched.h> 1824 #include <linux/sched.h>
1817 #include <linux/interrupt.h> 1825 #include <linux/interrupt.h>
@@ -1981,9 +1989,9 @@ diff -urNp linux-2.6.38.3/arch/parisc/mm/fault.c linux-2.6.38.3/arch/parisc/mm/f
1981 1989
1982 /* 1990 /*
1983 * If for any reason at all we couldn't handle the fault, make 1991 * If for any reason at all we couldn't handle the fault, make
1984diff -urNp linux-2.6.38.3/arch/powerpc/include/asm/device.h linux-2.6.38.3/arch/powerpc/include/asm/device.h 1992diff -urNp linux-2.6.38.2/arch/powerpc/include/asm/device.h linux-2.6.38.2/arch/powerpc/include/asm/device.h
1985--- linux-2.6.38.3/arch/powerpc/include/asm/device.h 2011-03-14 21:20:32.000000000 -0400 1993--- linux-2.6.38.2/arch/powerpc/include/asm/device.h 2011-03-14 21:20:32.000000000 -0400
1986+++ linux-2.6.38.3/arch/powerpc/include/asm/device.h 2011-04-17 15:57:32.000000000 -0400 1994+++ linux-2.6.38.2/arch/powerpc/include/asm/device.h 2011-03-21 18:31:35.000000000 -0400
1987@@ -17,7 +17,7 @@ struct device_node; 1995@@ -17,7 +17,7 @@ struct device_node;
1988 */ 1996 */
1989 struct dev_archdata { 1997 struct dev_archdata {
@@ -1993,9 +2001,9 @@ diff -urNp linux-2.6.38.3/arch/powerpc/include/asm/device.h linux-2.6.38.3/arch/
1993 2001
1994 /* 2002 /*
1995 * When an iommu is in use, dma_data is used as a ptr to the base of the 2003 * When an iommu is in use, dma_data is used as a ptr to the base of the
1996diff -urNp linux-2.6.38.3/arch/powerpc/include/asm/dma-mapping.h linux-2.6.38.3/arch/powerpc/include/asm/dma-mapping.h 2004diff -urNp linux-2.6.38.2/arch/powerpc/include/asm/dma-mapping.h linux-2.6.38.2/arch/powerpc/include/asm/dma-mapping.h
1997--- linux-2.6.38.3/arch/powerpc/include/asm/dma-mapping.h 2011-03-14 21:20:32.000000000 -0400 2005--- linux-2.6.38.2/arch/powerpc/include/asm/dma-mapping.h 2011-03-14 21:20:32.000000000 -0400
1998+++ linux-2.6.38.3/arch/powerpc/include/asm/dma-mapping.h 2011-04-17 15:57:32.000000000 -0400 2006+++ linux-2.6.38.2/arch/powerpc/include/asm/dma-mapping.h 2011-03-21 18:31:35.000000000 -0400
1999@@ -66,12 +66,13 @@ static inline unsigned long device_to_ma 2007@@ -66,12 +66,13 @@ static inline unsigned long device_to_ma
2000 /* 2008 /*
2001 * Available generic sets of operations 2009 * Available generic sets of operations
@@ -2058,9 +2066,9 @@ diff -urNp linux-2.6.38.3/arch/powerpc/include/asm/dma-mapping.h linux-2.6.38.3/
2058 2066
2059 if (dma_ops->mapping_error) 2067 if (dma_ops->mapping_error)
2060 return dma_ops->mapping_error(dev, dma_addr); 2068 return dma_ops->mapping_error(dev, dma_addr);
2061diff -urNp linux-2.6.38.3/arch/powerpc/include/asm/elf.h linux-2.6.38.3/arch/powerpc/include/asm/elf.h 2069diff -urNp linux-2.6.38.2/arch/powerpc/include/asm/elf.h linux-2.6.38.2/arch/powerpc/include/asm/elf.h
2062--- linux-2.6.38.3/arch/powerpc/include/asm/elf.h 2011-03-14 21:20:32.000000000 -0400 2070--- linux-2.6.38.2/arch/powerpc/include/asm/elf.h 2011-03-14 21:20:32.000000000 -0400
2063+++ linux-2.6.38.3/arch/powerpc/include/asm/elf.h 2011-04-17 15:57:32.000000000 -0400 2071+++ linux-2.6.38.2/arch/powerpc/include/asm/elf.h 2011-03-21 18:31:35.000000000 -0400
2064@@ -178,8 +178,19 @@ typedef elf_fpreg_t elf_vsrreghalf_t32[E 2072@@ -178,8 +178,19 @@ typedef elf_fpreg_t elf_vsrreghalf_t32[E
2065 the loader. We need to make sure that it is out of the way of the program 2073 the loader. We need to make sure that it is out of the way of the program
2066 that it will "exec", and that there is sufficient room for the brk. */ 2074 that it will "exec", and that there is sufficient room for the brk. */
@@ -2093,9 +2101,9 @@ diff -urNp linux-2.6.38.3/arch/powerpc/include/asm/elf.h linux-2.6.38.3/arch/pow
2093 #endif /* __KERNEL__ */ 2101 #endif /* __KERNEL__ */
2094 2102
2095 /* 2103 /*
2096diff -urNp linux-2.6.38.3/arch/powerpc/include/asm/iommu.h linux-2.6.38.3/arch/powerpc/include/asm/iommu.h 2104diff -urNp linux-2.6.38.2/arch/powerpc/include/asm/iommu.h linux-2.6.38.2/arch/powerpc/include/asm/iommu.h
2097--- linux-2.6.38.3/arch/powerpc/include/asm/iommu.h 2011-03-14 21:20:32.000000000 -0400 2105--- linux-2.6.38.2/arch/powerpc/include/asm/iommu.h 2011-03-14 21:20:32.000000000 -0400
2098+++ linux-2.6.38.3/arch/powerpc/include/asm/iommu.h 2011-04-17 15:57:32.000000000 -0400 2106+++ linux-2.6.38.2/arch/powerpc/include/asm/iommu.h 2011-03-21 18:31:35.000000000 -0400
2099@@ -116,6 +116,9 @@ extern void iommu_init_early_iSeries(voi 2107@@ -116,6 +116,9 @@ extern void iommu_init_early_iSeries(voi
2100 extern void iommu_init_early_dart(void); 2108 extern void iommu_init_early_dart(void);
2101 extern void iommu_init_early_pasemi(void); 2109 extern void iommu_init_early_pasemi(void);
@@ -2106,9 +2114,9 @@ diff -urNp linux-2.6.38.3/arch/powerpc/include/asm/iommu.h linux-2.6.38.3/arch/p
2106 #ifdef CONFIG_PCI 2114 #ifdef CONFIG_PCI
2107 extern void pci_iommu_init(void); 2115 extern void pci_iommu_init(void);
2108 extern void pci_direct_iommu_init(void); 2116 extern void pci_direct_iommu_init(void);
2109diff -urNp linux-2.6.38.3/arch/powerpc/include/asm/kmap_types.h linux-2.6.38.3/arch/powerpc/include/asm/kmap_types.h 2117diff -urNp linux-2.6.38.2/arch/powerpc/include/asm/kmap_types.h linux-2.6.38.2/arch/powerpc/include/asm/kmap_types.h
2110--- linux-2.6.38.3/arch/powerpc/include/asm/kmap_types.h 2011-03-14 21:20:32.000000000 -0400 2118--- linux-2.6.38.2/arch/powerpc/include/asm/kmap_types.h 2011-03-14 21:20:32.000000000 -0400
2111+++ linux-2.6.38.3/arch/powerpc/include/asm/kmap_types.h 2011-04-17 15:57:32.000000000 -0400 2119+++ linux-2.6.38.2/arch/powerpc/include/asm/kmap_types.h 2011-03-21 18:31:35.000000000 -0400
2112@@ -27,6 +27,7 @@ enum km_type { 2120@@ -27,6 +27,7 @@ enum km_type {
2113 KM_PPC_SYNC_PAGE, 2121 KM_PPC_SYNC_PAGE,
2114 KM_PPC_SYNC_ICACHE, 2122 KM_PPC_SYNC_ICACHE,
@@ -2117,9 +2125,9 @@ diff -urNp linux-2.6.38.3/arch/powerpc/include/asm/kmap_types.h linux-2.6.38.3/a
2117 KM_TYPE_NR 2125 KM_TYPE_NR
2118 }; 2126 };
2119 2127
2120diff -urNp linux-2.6.38.3/arch/powerpc/include/asm/page_64.h linux-2.6.38.3/arch/powerpc/include/asm/page_64.h 2128diff -urNp linux-2.6.38.2/arch/powerpc/include/asm/page_64.h linux-2.6.38.2/arch/powerpc/include/asm/page_64.h
2121--- linux-2.6.38.3/arch/powerpc/include/asm/page_64.h 2011-03-14 21:20:32.000000000 -0400 2129--- linux-2.6.38.2/arch/powerpc/include/asm/page_64.h 2011-03-14 21:20:32.000000000 -0400
2122+++ linux-2.6.38.3/arch/powerpc/include/asm/page_64.h 2011-04-17 15:57:32.000000000 -0400 2130+++ linux-2.6.38.2/arch/powerpc/include/asm/page_64.h 2011-03-21 18:31:35.000000000 -0400
2123@@ -172,15 +172,18 @@ do { \ 2131@@ -172,15 +172,18 @@ do { \
2124 * stack by default, so in the absense of a PT_GNU_STACK program header 2132 * stack by default, so in the absense of a PT_GNU_STACK program header
2125 * we turn execute permission off. 2133 * we turn execute permission off.
@@ -2141,9 +2149,9 @@ diff -urNp linux-2.6.38.3/arch/powerpc/include/asm/page_64.h linux-2.6.38.3/arch
2141 2149
2142 #include <asm-generic/getorder.h> 2150 #include <asm-generic/getorder.h>
2143 2151
2144diff -urNp linux-2.6.38.3/arch/powerpc/include/asm/page.h linux-2.6.38.3/arch/powerpc/include/asm/page.h 2152diff -urNp linux-2.6.38.2/arch/powerpc/include/asm/page.h linux-2.6.38.2/arch/powerpc/include/asm/page.h
2145--- linux-2.6.38.3/arch/powerpc/include/asm/page.h 2011-03-14 21:20:32.000000000 -0400 2153--- linux-2.6.38.2/arch/powerpc/include/asm/page.h 2011-03-14 21:20:32.000000000 -0400
2146+++ linux-2.6.38.3/arch/powerpc/include/asm/page.h 2011-04-17 15:57:32.000000000 -0400 2154+++ linux-2.6.38.2/arch/powerpc/include/asm/page.h 2011-03-21 18:31:35.000000000 -0400
2147@@ -129,8 +129,9 @@ extern phys_addr_t kernstart_addr; 2155@@ -129,8 +129,9 @@ extern phys_addr_t kernstart_addr;
2148 * and needs to be executable. This means the whole heap ends 2156 * and needs to be executable. This means the whole heap ends
2149 * up being executable. 2157 * up being executable.
@@ -2166,9 +2174,9 @@ diff -urNp linux-2.6.38.3/arch/powerpc/include/asm/page.h linux-2.6.38.3/arch/po
2166 #ifndef __ASSEMBLY__ 2174 #ifndef __ASSEMBLY__
2167 2175
2168 #undef STRICT_MM_TYPECHECKS 2176 #undef STRICT_MM_TYPECHECKS
2169diff -urNp linux-2.6.38.3/arch/powerpc/include/asm/pci.h linux-2.6.38.3/arch/powerpc/include/asm/pci.h 2177diff -urNp linux-2.6.38.2/arch/powerpc/include/asm/pci.h linux-2.6.38.2/arch/powerpc/include/asm/pci.h
2170--- linux-2.6.38.3/arch/powerpc/include/asm/pci.h 2011-03-14 21:20:32.000000000 -0400 2178--- linux-2.6.38.2/arch/powerpc/include/asm/pci.h 2011-03-14 21:20:32.000000000 -0400
2171+++ linux-2.6.38.3/arch/powerpc/include/asm/pci.h 2011-04-17 15:57:32.000000000 -0400 2179+++ linux-2.6.38.2/arch/powerpc/include/asm/pci.h 2011-03-21 18:31:35.000000000 -0400
2172@@ -65,8 +65,8 @@ static inline int pci_get_legacy_ide_irq 2180@@ -65,8 +65,8 @@ static inline int pci_get_legacy_ide_irq
2173 } 2181 }
2174 2182
@@ -2180,9 +2188,9 @@ diff -urNp linux-2.6.38.3/arch/powerpc/include/asm/pci.h linux-2.6.38.3/arch/pow
2180 #else /* CONFIG_PCI */ 2188 #else /* CONFIG_PCI */
2181 #define set_pci_dma_ops(d) 2189 #define set_pci_dma_ops(d)
2182 #define get_pci_dma_ops() NULL 2190 #define get_pci_dma_ops() NULL
2183diff -urNp linux-2.6.38.3/arch/powerpc/include/asm/pgtable.h linux-2.6.38.3/arch/powerpc/include/asm/pgtable.h 2191diff -urNp linux-2.6.38.2/arch/powerpc/include/asm/pgtable.h linux-2.6.38.2/arch/powerpc/include/asm/pgtable.h
2184--- linux-2.6.38.3/arch/powerpc/include/asm/pgtable.h 2011-03-14 21:20:32.000000000 -0400 2192--- linux-2.6.38.2/arch/powerpc/include/asm/pgtable.h 2011-03-14 21:20:32.000000000 -0400
2185+++ linux-2.6.38.3/arch/powerpc/include/asm/pgtable.h 2011-04-17 15:57:32.000000000 -0400 2193+++ linux-2.6.38.2/arch/powerpc/include/asm/pgtable.h 2011-03-21 18:31:35.000000000 -0400
2186@@ -2,6 +2,7 @@ 2194@@ -2,6 +2,7 @@
2187 #define _ASM_POWERPC_PGTABLE_H 2195 #define _ASM_POWERPC_PGTABLE_H
2188 #ifdef __KERNEL__ 2196 #ifdef __KERNEL__
@@ -2191,9 +2199,9 @@ diff -urNp linux-2.6.38.3/arch/powerpc/include/asm/pgtable.h linux-2.6.38.3/arch
2191 #ifndef __ASSEMBLY__ 2199 #ifndef __ASSEMBLY__
2192 #include <asm/processor.h> /* For TASK_SIZE */ 2200 #include <asm/processor.h> /* For TASK_SIZE */
2193 #include <asm/mmu.h> 2201 #include <asm/mmu.h>
2194diff -urNp linux-2.6.38.3/arch/powerpc/include/asm/pte-hash32.h linux-2.6.38.3/arch/powerpc/include/asm/pte-hash32.h 2202diff -urNp linux-2.6.38.2/arch/powerpc/include/asm/pte-hash32.h linux-2.6.38.2/arch/powerpc/include/asm/pte-hash32.h
2195--- linux-2.6.38.3/arch/powerpc/include/asm/pte-hash32.h 2011-03-14 21:20:32.000000000 -0400 2203--- linux-2.6.38.2/arch/powerpc/include/asm/pte-hash32.h 2011-03-14 21:20:32.000000000 -0400
2196+++ linux-2.6.38.3/arch/powerpc/include/asm/pte-hash32.h 2011-04-17 15:57:32.000000000 -0400 2204+++ linux-2.6.38.2/arch/powerpc/include/asm/pte-hash32.h 2011-03-21 18:31:35.000000000 -0400
2197@@ -21,6 +21,7 @@ 2205@@ -21,6 +21,7 @@
2198 #define _PAGE_FILE 0x004 /* when !present: nonlinear file mapping */ 2206 #define _PAGE_FILE 0x004 /* when !present: nonlinear file mapping */
2199 #define _PAGE_USER 0x004 /* usermode access allowed */ 2207 #define _PAGE_USER 0x004 /* usermode access allowed */
@@ -2202,9 +2210,9 @@ diff -urNp linux-2.6.38.3/arch/powerpc/include/asm/pte-hash32.h linux-2.6.38.3/a
2202 #define _PAGE_COHERENT 0x010 /* M: enforce memory coherence (SMP systems) */ 2210 #define _PAGE_COHERENT 0x010 /* M: enforce memory coherence (SMP systems) */
2203 #define _PAGE_NO_CACHE 0x020 /* I: cache inhibit */ 2211 #define _PAGE_NO_CACHE 0x020 /* I: cache inhibit */
2204 #define _PAGE_WRITETHRU 0x040 /* W: cache write-through */ 2212 #define _PAGE_WRITETHRU 0x040 /* W: cache write-through */
2205diff -urNp linux-2.6.38.3/arch/powerpc/include/asm/reg.h linux-2.6.38.3/arch/powerpc/include/asm/reg.h 2213diff -urNp linux-2.6.38.2/arch/powerpc/include/asm/reg.h linux-2.6.38.2/arch/powerpc/include/asm/reg.h
2206--- linux-2.6.38.3/arch/powerpc/include/asm/reg.h 2011-04-18 17:27:13.000000000 -0400 2214--- linux-2.6.38.2/arch/powerpc/include/asm/reg.h 2011-03-23 17:20:06.000000000 -0400
2207+++ linux-2.6.38.3/arch/powerpc/include/asm/reg.h 2011-04-17 15:57:32.000000000 -0400 2215+++ linux-2.6.38.2/arch/powerpc/include/asm/reg.h 2011-03-23 17:21:43.000000000 -0400
2208@@ -191,6 +191,7 @@ 2216@@ -191,6 +191,7 @@
2209 #define SPRN_DBCR 0x136 /* e300 Data Breakpoint Control Reg */ 2217 #define SPRN_DBCR 0x136 /* e300 Data Breakpoint Control Reg */
2210 #define SPRN_DSISR 0x012 /* Data Storage Interrupt Status Register */ 2218 #define SPRN_DSISR 0x012 /* Data Storage Interrupt Status Register */
@@ -2213,9 +2221,9 @@ diff -urNp linux-2.6.38.3/arch/powerpc/include/asm/reg.h linux-2.6.38.3/arch/pow
2213 #define DSISR_PROTFAULT 0x08000000 /* protection fault */ 2221 #define DSISR_PROTFAULT 0x08000000 /* protection fault */
2214 #define DSISR_ISSTORE 0x02000000 /* access was a store */ 2222 #define DSISR_ISSTORE 0x02000000 /* access was a store */
2215 #define DSISR_DABRMATCH 0x00400000 /* hit data breakpoint */ 2223 #define DSISR_DABRMATCH 0x00400000 /* hit data breakpoint */
2216diff -urNp linux-2.6.38.3/arch/powerpc/include/asm/swiotlb.h linux-2.6.38.3/arch/powerpc/include/asm/swiotlb.h 2224diff -urNp linux-2.6.38.2/arch/powerpc/include/asm/swiotlb.h linux-2.6.38.2/arch/powerpc/include/asm/swiotlb.h
2217--- linux-2.6.38.3/arch/powerpc/include/asm/swiotlb.h 2011-03-14 21:20:32.000000000 -0400 2225--- linux-2.6.38.2/arch/powerpc/include/asm/swiotlb.h 2011-03-14 21:20:32.000000000 -0400
2218+++ linux-2.6.38.3/arch/powerpc/include/asm/swiotlb.h 2011-04-17 15:57:32.000000000 -0400 2226+++ linux-2.6.38.2/arch/powerpc/include/asm/swiotlb.h 2011-03-21 18:31:35.000000000 -0400
2219@@ -13,7 +13,7 @@ 2227@@ -13,7 +13,7 @@
2220 2228
2221 #include <linux/swiotlb.h> 2229 #include <linux/swiotlb.h>
@@ -2225,9 +2233,9 @@ diff -urNp linux-2.6.38.3/arch/powerpc/include/asm/swiotlb.h linux-2.6.38.3/arch
2225 2233
2226 static inline void dma_mark_clean(void *addr, size_t size) {} 2234 static inline void dma_mark_clean(void *addr, size_t size) {}
2227 2235
2228diff -urNp linux-2.6.38.3/arch/powerpc/include/asm/system.h linux-2.6.38.3/arch/powerpc/include/asm/system.h 2236diff -urNp linux-2.6.38.2/arch/powerpc/include/asm/system.h linux-2.6.38.2/arch/powerpc/include/asm/system.h
2229--- linux-2.6.38.3/arch/powerpc/include/asm/system.h 2011-03-14 21:20:32.000000000 -0400 2237--- linux-2.6.38.2/arch/powerpc/include/asm/system.h 2011-03-14 21:20:32.000000000 -0400
2230+++ linux-2.6.38.3/arch/powerpc/include/asm/system.h 2011-04-17 15:57:32.000000000 -0400 2238+++ linux-2.6.38.2/arch/powerpc/include/asm/system.h 2011-03-21 18:31:35.000000000 -0400
2231@@ -533,7 +533,7 @@ __cmpxchg_local(volatile void *ptr, unsi 2239@@ -533,7 +533,7 @@ __cmpxchg_local(volatile void *ptr, unsi
2232 #define cmpxchg64_local(ptr, o, n) __cmpxchg64_local_generic((ptr), (o), (n)) 2240 #define cmpxchg64_local(ptr, o, n) __cmpxchg64_local_generic((ptr), (o), (n))
2233 #endif 2241 #endif
@@ -2237,9 +2245,9 @@ diff -urNp linux-2.6.38.3/arch/powerpc/include/asm/system.h linux-2.6.38.3/arch/
2237 2245
2238 /* Used in very early kernel initialization. */ 2246 /* Used in very early kernel initialization. */
2239 extern unsigned long reloc_offset(void); 2247 extern unsigned long reloc_offset(void);
2240diff -urNp linux-2.6.38.3/arch/powerpc/include/asm/uaccess.h linux-2.6.38.3/arch/powerpc/include/asm/uaccess.h 2248diff -urNp linux-2.6.38.2/arch/powerpc/include/asm/uaccess.h linux-2.6.38.2/arch/powerpc/include/asm/uaccess.h
2241--- linux-2.6.38.3/arch/powerpc/include/asm/uaccess.h 2011-03-14 21:20:32.000000000 -0400 2249--- linux-2.6.38.2/arch/powerpc/include/asm/uaccess.h 2011-03-14 21:20:32.000000000 -0400
2242+++ linux-2.6.38.3/arch/powerpc/include/asm/uaccess.h 2011-04-17 15:57:32.000000000 -0400 2250+++ linux-2.6.38.2/arch/powerpc/include/asm/uaccess.h 2011-03-21 18:31:35.000000000 -0400
2243@@ -13,6 +13,8 @@ 2251@@ -13,6 +13,8 @@
2244 #define VERIFY_READ 0 2252 #define VERIFY_READ 0
2245 #define VERIFY_WRITE 1 2253 #define VERIFY_WRITE 1
@@ -2417,9 +2425,9 @@ diff -urNp linux-2.6.38.3/arch/powerpc/include/asm/uaccess.h linux-2.6.38.3/arch
2417 extern unsigned long __clear_user(void __user *addr, unsigned long size); 2425 extern unsigned long __clear_user(void __user *addr, unsigned long size);
2418 2426
2419 static inline unsigned long clear_user(void __user *addr, unsigned long size) 2427 static inline unsigned long clear_user(void __user *addr, unsigned long size)
2420diff -urNp linux-2.6.38.3/arch/powerpc/kernel/dma.c linux-2.6.38.3/arch/powerpc/kernel/dma.c 2428diff -urNp linux-2.6.38.2/arch/powerpc/kernel/dma.c linux-2.6.38.2/arch/powerpc/kernel/dma.c
2421--- linux-2.6.38.3/arch/powerpc/kernel/dma.c 2011-03-14 21:20:32.000000000 -0400 2429--- linux-2.6.38.2/arch/powerpc/kernel/dma.c 2011-03-14 21:20:32.000000000 -0400
2422+++ linux-2.6.38.3/arch/powerpc/kernel/dma.c 2011-04-17 15:57:32.000000000 -0400 2430+++ linux-2.6.38.2/arch/powerpc/kernel/dma.c 2011-03-21 18:31:35.000000000 -0400
2423@@ -136,7 +136,7 @@ static inline void dma_direct_sync_singl 2431@@ -136,7 +136,7 @@ static inline void dma_direct_sync_singl
2424 } 2432 }
2425 #endif 2433 #endif
@@ -2438,9 +2446,9 @@ diff -urNp linux-2.6.38.3/arch/powerpc/kernel/dma.c linux-2.6.38.3/arch/powerpc/
2438 2446
2439 if (ppc_md.dma_set_mask) 2447 if (ppc_md.dma_set_mask)
2440 return ppc_md.dma_set_mask(dev, dma_mask); 2448 return ppc_md.dma_set_mask(dev, dma_mask);
2441diff -urNp linux-2.6.38.3/arch/powerpc/kernel/dma-iommu.c linux-2.6.38.3/arch/powerpc/kernel/dma-iommu.c 2449diff -urNp linux-2.6.38.2/arch/powerpc/kernel/dma-iommu.c linux-2.6.38.2/arch/powerpc/kernel/dma-iommu.c
2442--- linux-2.6.38.3/arch/powerpc/kernel/dma-iommu.c 2011-03-14 21:20:32.000000000 -0400 2450--- linux-2.6.38.2/arch/powerpc/kernel/dma-iommu.c 2011-03-14 21:20:32.000000000 -0400
2443+++ linux-2.6.38.3/arch/powerpc/kernel/dma-iommu.c 2011-04-17 15:57:32.000000000 -0400 2451+++ linux-2.6.38.2/arch/powerpc/kernel/dma-iommu.c 2011-03-21 18:31:35.000000000 -0400
2444@@ -70,7 +70,7 @@ static void dma_iommu_unmap_sg(struct de 2452@@ -70,7 +70,7 @@ static void dma_iommu_unmap_sg(struct de
2445 } 2453 }
2446 2454
@@ -2459,9 +2467,9 @@ diff -urNp linux-2.6.38.3/arch/powerpc/kernel/dma-iommu.c linux-2.6.38.3/arch/po
2459 .alloc_coherent = dma_iommu_alloc_coherent, 2467 .alloc_coherent = dma_iommu_alloc_coherent,
2460 .free_coherent = dma_iommu_free_coherent, 2468 .free_coherent = dma_iommu_free_coherent,
2461 .map_sg = dma_iommu_map_sg, 2469 .map_sg = dma_iommu_map_sg,
2462diff -urNp linux-2.6.38.3/arch/powerpc/kernel/dma-swiotlb.c linux-2.6.38.3/arch/powerpc/kernel/dma-swiotlb.c 2470diff -urNp linux-2.6.38.2/arch/powerpc/kernel/dma-swiotlb.c linux-2.6.38.2/arch/powerpc/kernel/dma-swiotlb.c
2463--- linux-2.6.38.3/arch/powerpc/kernel/dma-swiotlb.c 2011-03-14 21:20:32.000000000 -0400 2471--- linux-2.6.38.2/arch/powerpc/kernel/dma-swiotlb.c 2011-03-14 21:20:32.000000000 -0400
2464+++ linux-2.6.38.3/arch/powerpc/kernel/dma-swiotlb.c 2011-04-17 15:57:32.000000000 -0400 2472+++ linux-2.6.38.2/arch/powerpc/kernel/dma-swiotlb.c 2011-03-21 18:31:35.000000000 -0400
2465@@ -31,7 +31,7 @@ unsigned int ppc_swiotlb_enable; 2473@@ -31,7 +31,7 @@ unsigned int ppc_swiotlb_enable;
2466 * map_page, and unmap_page on highmem, use normal dma_ops 2474 * map_page, and unmap_page on highmem, use normal dma_ops
2467 * for everything else. 2475 * for everything else.
@@ -2471,9 +2479,9 @@ diff -urNp linux-2.6.38.3/arch/powerpc/kernel/dma-swiotlb.c linux-2.6.38.3/arch/
2471 .alloc_coherent = dma_direct_alloc_coherent, 2479 .alloc_coherent = dma_direct_alloc_coherent,
2472 .free_coherent = dma_direct_free_coherent, 2480 .free_coherent = dma_direct_free_coherent,
2473 .map_sg = swiotlb_map_sg_attrs, 2481 .map_sg = swiotlb_map_sg_attrs,
2474diff -urNp linux-2.6.38.3/arch/powerpc/kernel/exceptions-64e.S linux-2.6.38.3/arch/powerpc/kernel/exceptions-64e.S 2482diff -urNp linux-2.6.38.2/arch/powerpc/kernel/exceptions-64e.S linux-2.6.38.2/arch/powerpc/kernel/exceptions-64e.S
2475--- linux-2.6.38.3/arch/powerpc/kernel/exceptions-64e.S 2011-03-14 21:20:32.000000000 -0400 2483--- linux-2.6.38.2/arch/powerpc/kernel/exceptions-64e.S 2011-03-14 21:20:32.000000000 -0400
2476+++ linux-2.6.38.3/arch/powerpc/kernel/exceptions-64e.S 2011-04-17 15:57:32.000000000 -0400 2484+++ linux-2.6.38.2/arch/powerpc/kernel/exceptions-64e.S 2011-03-21 18:31:35.000000000 -0400
2477@@ -495,6 +495,7 @@ storage_fault_common: 2485@@ -495,6 +495,7 @@ storage_fault_common:
2478 std r14,_DAR(r1) 2486 std r14,_DAR(r1)
2479 std r15,_DSISR(r1) 2487 std r15,_DSISR(r1)
@@ -2492,9 +2500,9 @@ diff -urNp linux-2.6.38.3/arch/powerpc/kernel/exceptions-64e.S linux-2.6.38.3/ar
2492 addi r3,r1,STACK_FRAME_OVERHEAD 2500 addi r3,r1,STACK_FRAME_OVERHEAD
2493 ld r4,_DAR(r1) 2501 ld r4,_DAR(r1)
2494 bl .bad_page_fault 2502 bl .bad_page_fault
2495diff -urNp linux-2.6.38.3/arch/powerpc/kernel/exceptions-64s.S linux-2.6.38.3/arch/powerpc/kernel/exceptions-64s.S 2503diff -urNp linux-2.6.38.2/arch/powerpc/kernel/exceptions-64s.S linux-2.6.38.2/arch/powerpc/kernel/exceptions-64s.S
2496--- linux-2.6.38.3/arch/powerpc/kernel/exceptions-64s.S 2011-03-14 21:20:32.000000000 -0400 2504--- linux-2.6.38.2/arch/powerpc/kernel/exceptions-64s.S 2011-03-14 21:20:32.000000000 -0400
2497+++ linux-2.6.38.3/arch/powerpc/kernel/exceptions-64s.S 2011-04-17 15:57:32.000000000 -0400 2505+++ linux-2.6.38.2/arch/powerpc/kernel/exceptions-64s.S 2011-03-21 18:31:35.000000000 -0400
2498@@ -848,10 +848,10 @@ handle_page_fault: 2506@@ -848,10 +848,10 @@ handle_page_fault:
2499 11: ld r4,_DAR(r1) 2507 11: ld r4,_DAR(r1)
2500 ld r5,_DSISR(r1) 2508 ld r5,_DSISR(r1)
@@ -2507,9 +2515,9 @@ diff -urNp linux-2.6.38.3/arch/powerpc/kernel/exceptions-64s.S linux-2.6.38.3/ar
2507 mr r5,r3 2515 mr r5,r3
2508 addi r3,r1,STACK_FRAME_OVERHEAD 2516 addi r3,r1,STACK_FRAME_OVERHEAD
2509 lwz r4,_DAR(r1) 2517 lwz r4,_DAR(r1)
2510diff -urNp linux-2.6.38.3/arch/powerpc/kernel/ibmebus.c linux-2.6.38.3/arch/powerpc/kernel/ibmebus.c 2518diff -urNp linux-2.6.38.2/arch/powerpc/kernel/ibmebus.c linux-2.6.38.2/arch/powerpc/kernel/ibmebus.c
2511--- linux-2.6.38.3/arch/powerpc/kernel/ibmebus.c 2011-03-14 21:20:32.000000000 -0400 2519--- linux-2.6.38.2/arch/powerpc/kernel/ibmebus.c 2011-03-14 21:20:32.000000000 -0400
2512+++ linux-2.6.38.3/arch/powerpc/kernel/ibmebus.c 2011-04-17 15:57:32.000000000 -0400 2520+++ linux-2.6.38.2/arch/powerpc/kernel/ibmebus.c 2011-03-21 18:31:35.000000000 -0400
2513@@ -128,7 +128,7 @@ static int ibmebus_dma_supported(struct 2521@@ -128,7 +128,7 @@ static int ibmebus_dma_supported(struct
2514 return 1; 2522 return 1;
2515 } 2523 }
@@ -2519,9 +2527,9 @@ diff -urNp linux-2.6.38.3/arch/powerpc/kernel/ibmebus.c linux-2.6.38.3/arch/powe
2519 .alloc_coherent = ibmebus_alloc_coherent, 2527 .alloc_coherent = ibmebus_alloc_coherent,
2520 .free_coherent = ibmebus_free_coherent, 2528 .free_coherent = ibmebus_free_coherent,
2521 .map_sg = ibmebus_map_sg, 2529 .map_sg = ibmebus_map_sg,
2522diff -urNp linux-2.6.38.3/arch/powerpc/kernel/kgdb.c linux-2.6.38.3/arch/powerpc/kernel/kgdb.c 2530diff -urNp linux-2.6.38.2/arch/powerpc/kernel/kgdb.c linux-2.6.38.2/arch/powerpc/kernel/kgdb.c
2523--- linux-2.6.38.3/arch/powerpc/kernel/kgdb.c 2011-03-14 21:20:32.000000000 -0400 2531--- linux-2.6.38.2/arch/powerpc/kernel/kgdb.c 2011-03-14 21:20:32.000000000 -0400
2524+++ linux-2.6.38.3/arch/powerpc/kernel/kgdb.c 2011-04-17 15:57:32.000000000 -0400 2532+++ linux-2.6.38.2/arch/powerpc/kernel/kgdb.c 2011-03-21 18:31:35.000000000 -0400
2525@@ -422,7 +422,7 @@ int kgdb_arch_handle_exception(int vecto 2533@@ -422,7 +422,7 @@ int kgdb_arch_handle_exception(int vecto
2526 /* 2534 /*
2527 * Global data 2535 * Global data
@@ -2531,9 +2539,9 @@ diff -urNp linux-2.6.38.3/arch/powerpc/kernel/kgdb.c linux-2.6.38.3/arch/powerpc
2531 .gdb_bpt_instr = {0x7d, 0x82, 0x10, 0x08}, 2539 .gdb_bpt_instr = {0x7d, 0x82, 0x10, 0x08},
2532 }; 2540 };
2533 2541
2534diff -urNp linux-2.6.38.3/arch/powerpc/kernel/module_32.c linux-2.6.38.3/arch/powerpc/kernel/module_32.c 2542diff -urNp linux-2.6.38.2/arch/powerpc/kernel/module_32.c linux-2.6.38.2/arch/powerpc/kernel/module_32.c
2535--- linux-2.6.38.3/arch/powerpc/kernel/module_32.c 2011-03-14 21:20:32.000000000 -0400 2543--- linux-2.6.38.2/arch/powerpc/kernel/module_32.c 2011-03-14 21:20:32.000000000 -0400
2536+++ linux-2.6.38.3/arch/powerpc/kernel/module_32.c 2011-04-17 15:57:32.000000000 -0400 2544+++ linux-2.6.38.2/arch/powerpc/kernel/module_32.c 2011-03-21 18:31:35.000000000 -0400
2537@@ -162,7 +162,7 @@ int module_frob_arch_sections(Elf32_Ehdr 2545@@ -162,7 +162,7 @@ int module_frob_arch_sections(Elf32_Ehdr
2538 me->arch.core_plt_section = i; 2546 me->arch.core_plt_section = i;
2539 } 2547 }
@@ -2563,9 +2571,9 @@ diff -urNp linux-2.6.38.3/arch/powerpc/kernel/module_32.c linux-2.6.38.3/arch/po
2563 2571
2564 /* Find this entry, or if that fails, the next avail. entry */ 2572 /* Find this entry, or if that fails, the next avail. entry */
2565 while (entry->jump[0]) { 2573 while (entry->jump[0]) {
2566diff -urNp linux-2.6.38.3/arch/powerpc/kernel/module.c linux-2.6.38.3/arch/powerpc/kernel/module.c 2574diff -urNp linux-2.6.38.2/arch/powerpc/kernel/module.c linux-2.6.38.2/arch/powerpc/kernel/module.c
2567--- linux-2.6.38.3/arch/powerpc/kernel/module.c 2011-03-14 21:20:32.000000000 -0400 2575--- linux-2.6.38.2/arch/powerpc/kernel/module.c 2011-03-14 21:20:32.000000000 -0400
2568+++ linux-2.6.38.3/arch/powerpc/kernel/module.c 2011-04-17 15:57:32.000000000 -0400 2576+++ linux-2.6.38.2/arch/powerpc/kernel/module.c 2011-03-21 18:31:35.000000000 -0400
2569@@ -31,11 +31,24 @@ 2577@@ -31,11 +31,24 @@
2570 2578
2571 LIST_HEAD(module_bug_list); 2579 LIST_HEAD(module_bug_list);
@@ -2605,9 +2613,9 @@ diff -urNp linux-2.6.38.3/arch/powerpc/kernel/module.c linux-2.6.38.3/arch/power
2605 static const Elf_Shdr *find_section(const Elf_Ehdr *hdr, 2613 static const Elf_Shdr *find_section(const Elf_Ehdr *hdr,
2606 const Elf_Shdr *sechdrs, 2614 const Elf_Shdr *sechdrs,
2607 const char *name) 2615 const char *name)
2608diff -urNp linux-2.6.38.3/arch/powerpc/kernel/pci-common.c linux-2.6.38.3/arch/powerpc/kernel/pci-common.c 2616diff -urNp linux-2.6.38.2/arch/powerpc/kernel/pci-common.c linux-2.6.38.2/arch/powerpc/kernel/pci-common.c
2609--- linux-2.6.38.3/arch/powerpc/kernel/pci-common.c 2011-03-14 21:20:32.000000000 -0400 2617--- linux-2.6.38.2/arch/powerpc/kernel/pci-common.c 2011-03-14 21:20:32.000000000 -0400
2610+++ linux-2.6.38.3/arch/powerpc/kernel/pci-common.c 2011-04-17 15:57:32.000000000 -0400 2618+++ linux-2.6.38.2/arch/powerpc/kernel/pci-common.c 2011-03-21 18:31:35.000000000 -0400
2611@@ -52,14 +52,14 @@ resource_size_t isa_mem_base; 2619@@ -52,14 +52,14 @@ resource_size_t isa_mem_base;
2612 unsigned int ppc_pci_flags = 0; 2620 unsigned int ppc_pci_flags = 0;
2613 2621
@@ -2626,9 +2634,9 @@ diff -urNp linux-2.6.38.3/arch/powerpc/kernel/pci-common.c linux-2.6.38.3/arch/p
2626 { 2634 {
2627 return pci_dma_ops; 2635 return pci_dma_ops;
2628 } 2636 }
2629diff -urNp linux-2.6.38.3/arch/powerpc/kernel/process.c linux-2.6.38.3/arch/powerpc/kernel/process.c 2637diff -urNp linux-2.6.38.2/arch/powerpc/kernel/process.c linux-2.6.38.2/arch/powerpc/kernel/process.c
2630--- linux-2.6.38.3/arch/powerpc/kernel/process.c 2011-03-14 21:20:32.000000000 -0400 2638--- linux-2.6.38.2/arch/powerpc/kernel/process.c 2011-03-14 21:20:32.000000000 -0400
2631+++ linux-2.6.38.3/arch/powerpc/kernel/process.c 2011-04-17 15:57:32.000000000 -0400 2639+++ linux-2.6.38.2/arch/powerpc/kernel/process.c 2011-03-21 18:31:35.000000000 -0400
2632@@ -655,8 +655,8 @@ void show_regs(struct pt_regs * regs) 2640@@ -655,8 +655,8 @@ void show_regs(struct pt_regs * regs)
2633 * Lookup NIP late so we have the best change of getting the 2641 * Lookup NIP late so we have the best change of getting the
2634 * above info out without failing 2642 * above info out without failing
@@ -2721,9 +2729,9 @@ diff -urNp linux-2.6.38.3/arch/powerpc/kernel/process.c linux-2.6.38.3/arch/powe
2721- 2729-
2722- return ret; 2730- return ret;
2723-} 2731-}
2724diff -urNp linux-2.6.38.3/arch/powerpc/kernel/signal_32.c linux-2.6.38.3/arch/powerpc/kernel/signal_32.c 2732diff -urNp linux-2.6.38.2/arch/powerpc/kernel/signal_32.c linux-2.6.38.2/arch/powerpc/kernel/signal_32.c
2725--- linux-2.6.38.3/arch/powerpc/kernel/signal_32.c 2011-03-14 21:20:32.000000000 -0400 2733--- linux-2.6.38.2/arch/powerpc/kernel/signal_32.c 2011-03-14 21:20:32.000000000 -0400
2726+++ linux-2.6.38.3/arch/powerpc/kernel/signal_32.c 2011-04-17 15:57:32.000000000 -0400 2734+++ linux-2.6.38.2/arch/powerpc/kernel/signal_32.c 2011-03-21 18:31:35.000000000 -0400
2727@@ -858,7 +858,7 @@ int handle_rt_signal32(unsigned long sig 2735@@ -858,7 +858,7 @@ int handle_rt_signal32(unsigned long sig
2728 /* Save user registers on the stack */ 2736 /* Save user registers on the stack */
2729 frame = &rt_sf->uc.uc_mcontext; 2737 frame = &rt_sf->uc.uc_mcontext;
@@ -2733,9 +2741,9 @@ diff -urNp linux-2.6.38.3/arch/powerpc/kernel/signal_32.c linux-2.6.38.3/arch/po
2733 if (save_user_regs(regs, frame, 0, 1)) 2741 if (save_user_regs(regs, frame, 0, 1))
2734 goto badframe; 2742 goto badframe;
2735 regs->link = current->mm->context.vdso_base + vdso32_rt_sigtramp; 2743 regs->link = current->mm->context.vdso_base + vdso32_rt_sigtramp;
2736diff -urNp linux-2.6.38.3/arch/powerpc/kernel/signal_64.c linux-2.6.38.3/arch/powerpc/kernel/signal_64.c 2744diff -urNp linux-2.6.38.2/arch/powerpc/kernel/signal_64.c linux-2.6.38.2/arch/powerpc/kernel/signal_64.c
2737--- linux-2.6.38.3/arch/powerpc/kernel/signal_64.c 2011-03-14 21:20:32.000000000 -0400 2745--- linux-2.6.38.2/arch/powerpc/kernel/signal_64.c 2011-03-14 21:20:32.000000000 -0400
2738+++ linux-2.6.38.3/arch/powerpc/kernel/signal_64.c 2011-04-17 15:57:32.000000000 -0400 2746+++ linux-2.6.38.2/arch/powerpc/kernel/signal_64.c 2011-03-21 18:31:35.000000000 -0400
2739@@ -429,7 +429,7 @@ int handle_rt_signal64(int signr, struct 2747@@ -429,7 +429,7 @@ int handle_rt_signal64(int signr, struct
2740 current->thread.fpscr.val = 0; 2748 current->thread.fpscr.val = 0;
2741 2749
@@ -2745,9 +2753,9 @@ diff -urNp linux-2.6.38.3/arch/powerpc/kernel/signal_64.c linux-2.6.38.3/arch/po
2745 regs->link = current->mm->context.vdso_base + vdso64_rt_sigtramp; 2753 regs->link = current->mm->context.vdso_base + vdso64_rt_sigtramp;
2746 } else { 2754 } else {
2747 err |= setup_trampoline(__NR_rt_sigreturn, &frame->tramp[0]); 2755 err |= setup_trampoline(__NR_rt_sigreturn, &frame->tramp[0]);
2748diff -urNp linux-2.6.38.3/arch/powerpc/kernel/vdso.c linux-2.6.38.3/arch/powerpc/kernel/vdso.c 2756diff -urNp linux-2.6.38.2/arch/powerpc/kernel/vdso.c linux-2.6.38.2/arch/powerpc/kernel/vdso.c
2749--- linux-2.6.38.3/arch/powerpc/kernel/vdso.c 2011-03-14 21:20:32.000000000 -0400 2757--- linux-2.6.38.2/arch/powerpc/kernel/vdso.c 2011-03-14 21:20:32.000000000 -0400
2750+++ linux-2.6.38.3/arch/powerpc/kernel/vdso.c 2011-04-17 15:57:32.000000000 -0400 2758+++ linux-2.6.38.2/arch/powerpc/kernel/vdso.c 2011-03-21 18:31:35.000000000 -0400
2751@@ -36,6 +36,7 @@ 2759@@ -36,6 +36,7 @@
2752 #include <asm/firmware.h> 2760 #include <asm/firmware.h>
2753 #include <asm/vdso.h> 2761 #include <asm/vdso.h>
@@ -2774,9 +2782,9 @@ diff -urNp linux-2.6.38.3/arch/powerpc/kernel/vdso.c linux-2.6.38.3/arch/powerpc
2774 if (IS_ERR_VALUE(vdso_base)) { 2782 if (IS_ERR_VALUE(vdso_base)) {
2775 rc = vdso_base; 2783 rc = vdso_base;
2776 goto fail_mmapsem; 2784 goto fail_mmapsem;
2777diff -urNp linux-2.6.38.3/arch/powerpc/kernel/vio.c linux-2.6.38.3/arch/powerpc/kernel/vio.c 2785diff -urNp linux-2.6.38.2/arch/powerpc/kernel/vio.c linux-2.6.38.2/arch/powerpc/kernel/vio.c
2778--- linux-2.6.38.3/arch/powerpc/kernel/vio.c 2011-03-14 21:20:32.000000000 -0400 2786--- linux-2.6.38.2/arch/powerpc/kernel/vio.c 2011-03-14 21:20:32.000000000 -0400
2779+++ linux-2.6.38.3/arch/powerpc/kernel/vio.c 2011-04-17 15:57:32.000000000 -0400 2787+++ linux-2.6.38.2/arch/powerpc/kernel/vio.c 2011-03-21 18:31:35.000000000 -0400
2780@@ -605,11 +605,12 @@ static int vio_dma_iommu_dma_supported(s 2788@@ -605,11 +605,12 @@ static int vio_dma_iommu_dma_supported(s
2781 return dma_iommu_ops.dma_supported(dev, mask); 2789 return dma_iommu_ops.dma_supported(dev, mask);
2782 } 2790 }
@@ -2791,9 +2799,9 @@ diff -urNp linux-2.6.38.3/arch/powerpc/kernel/vio.c linux-2.6.38.3/arch/powerpc/
2791 .map_page = vio_dma_iommu_map_page, 2799 .map_page = vio_dma_iommu_map_page,
2792 .unmap_page = vio_dma_iommu_unmap_page, 2800 .unmap_page = vio_dma_iommu_unmap_page,
2793 .dma_supported = vio_dma_iommu_dma_supported, 2801 .dma_supported = vio_dma_iommu_dma_supported,
2794diff -urNp linux-2.6.38.3/arch/powerpc/lib/usercopy_64.c linux-2.6.38.3/arch/powerpc/lib/usercopy_64.c 2802diff -urNp linux-2.6.38.2/arch/powerpc/lib/usercopy_64.c linux-2.6.38.2/arch/powerpc/lib/usercopy_64.c
2795--- linux-2.6.38.3/arch/powerpc/lib/usercopy_64.c 2011-03-14 21:20:32.000000000 -0400 2803--- linux-2.6.38.2/arch/powerpc/lib/usercopy_64.c 2011-03-14 21:20:32.000000000 -0400
2796+++ linux-2.6.38.3/arch/powerpc/lib/usercopy_64.c 2011-04-17 15:57:32.000000000 -0400 2804+++ linux-2.6.38.2/arch/powerpc/lib/usercopy_64.c 2011-03-21 18:31:35.000000000 -0400
2797@@ -9,22 +9,6 @@ 2805@@ -9,22 +9,6 @@
2798 #include <linux/module.h> 2806 #include <linux/module.h>
2799 #include <asm/uaccess.h> 2807 #include <asm/uaccess.h>
@@ -2825,9 +2833,9 @@ diff -urNp linux-2.6.38.3/arch/powerpc/lib/usercopy_64.c linux-2.6.38.3/arch/pow
2825-EXPORT_SYMBOL(copy_to_user); 2833-EXPORT_SYMBOL(copy_to_user);
2826 EXPORT_SYMBOL(copy_in_user); 2834 EXPORT_SYMBOL(copy_in_user);
2827 2835
2828diff -urNp linux-2.6.38.3/arch/powerpc/mm/fault.c linux-2.6.38.3/arch/powerpc/mm/fault.c 2836diff -urNp linux-2.6.38.2/arch/powerpc/mm/fault.c linux-2.6.38.2/arch/powerpc/mm/fault.c
2829--- linux-2.6.38.3/arch/powerpc/mm/fault.c 2011-03-14 21:20:32.000000000 -0400 2837--- linux-2.6.38.2/arch/powerpc/mm/fault.c 2011-03-14 21:20:32.000000000 -0400
2830+++ linux-2.6.38.3/arch/powerpc/mm/fault.c 2011-04-17 15:57:32.000000000 -0400 2838+++ linux-2.6.38.2/arch/powerpc/mm/fault.c 2011-03-21 18:31:35.000000000 -0400
2831@@ -31,6 +31,10 @@ 2839@@ -31,6 +31,10 @@
2832 #include <linux/kdebug.h> 2840 #include <linux/kdebug.h>
2833 #include <linux/perf_event.h> 2841 #include <linux/perf_event.h>
@@ -2932,9 +2940,9 @@ diff -urNp linux-2.6.38.3/arch/powerpc/mm/fault.c linux-2.6.38.3/arch/powerpc/mm
2932 _exception(SIGSEGV, regs, code, address); 2940 _exception(SIGSEGV, regs, code, address);
2933 return 0; 2941 return 0;
2934 } 2942 }
2935diff -urNp linux-2.6.38.3/arch/powerpc/mm/mmap_64.c linux-2.6.38.3/arch/powerpc/mm/mmap_64.c 2943diff -urNp linux-2.6.38.2/arch/powerpc/mm/mmap_64.c linux-2.6.38.2/arch/powerpc/mm/mmap_64.c
2936--- linux-2.6.38.3/arch/powerpc/mm/mmap_64.c 2011-03-14 21:20:32.000000000 -0400 2944--- linux-2.6.38.2/arch/powerpc/mm/mmap_64.c 2011-03-14 21:20:32.000000000 -0400
2937+++ linux-2.6.38.3/arch/powerpc/mm/mmap_64.c 2011-04-17 15:57:32.000000000 -0400 2945+++ linux-2.6.38.2/arch/powerpc/mm/mmap_64.c 2011-03-21 18:31:35.000000000 -0400
2938@@ -99,10 +99,22 @@ void arch_pick_mmap_layout(struct mm_str 2946@@ -99,10 +99,22 @@ void arch_pick_mmap_layout(struct mm_str
2939 */ 2947 */
2940 if (mmap_is_legacy()) { 2948 if (mmap_is_legacy()) {
@@ -2958,9 +2966,9 @@ diff -urNp linux-2.6.38.3/arch/powerpc/mm/mmap_64.c linux-2.6.38.3/arch/powerpc/
2958 mm->get_unmapped_area = arch_get_unmapped_area_topdown; 2966 mm->get_unmapped_area = arch_get_unmapped_area_topdown;
2959 mm->unmap_area = arch_unmap_area_topdown; 2967 mm->unmap_area = arch_unmap_area_topdown;
2960 } 2968 }
2961diff -urNp linux-2.6.38.3/arch/powerpc/mm/slice.c linux-2.6.38.3/arch/powerpc/mm/slice.c 2969diff -urNp linux-2.6.38.2/arch/powerpc/mm/slice.c linux-2.6.38.2/arch/powerpc/mm/slice.c
2962--- linux-2.6.38.3/arch/powerpc/mm/slice.c 2011-03-14 21:20:32.000000000 -0400 2970--- linux-2.6.38.2/arch/powerpc/mm/slice.c 2011-03-14 21:20:32.000000000 -0400
2963+++ linux-2.6.38.3/arch/powerpc/mm/slice.c 2011-04-17 15:57:32.000000000 -0400 2971+++ linux-2.6.38.2/arch/powerpc/mm/slice.c 2011-03-21 23:47:41.000000000 -0400
2964@@ -98,7 +98,7 @@ static int slice_area_is_free(struct mm_ 2972@@ -98,7 +98,7 @@ static int slice_area_is_free(struct mm_
2965 if ((mm->task_size - len) < addr) 2973 if ((mm->task_size - len) < addr)
2966 return 0; 2974 return 0;
@@ -3027,9 +3035,9 @@ diff -urNp linux-2.6.38.3/arch/powerpc/mm/slice.c linux-2.6.38.3/arch/powerpc/mm
3027 /* If hint, make sure it matches our alignment restrictions */ 3035 /* If hint, make sure it matches our alignment restrictions */
3028 if (!fixed && addr) { 3036 if (!fixed && addr) {
3029 addr = _ALIGN_UP(addr, 1ul << pshift); 3037 addr = _ALIGN_UP(addr, 1ul << pshift);
3030diff -urNp linux-2.6.38.3/arch/powerpc/platforms/cell/iommu.c linux-2.6.38.3/arch/powerpc/platforms/cell/iommu.c 3038diff -urNp linux-2.6.38.2/arch/powerpc/platforms/cell/iommu.c linux-2.6.38.2/arch/powerpc/platforms/cell/iommu.c
3031--- linux-2.6.38.3/arch/powerpc/platforms/cell/iommu.c 2011-03-14 21:20:32.000000000 -0400 3039--- linux-2.6.38.2/arch/powerpc/platforms/cell/iommu.c 2011-03-14 21:20:32.000000000 -0400
3032+++ linux-2.6.38.3/arch/powerpc/platforms/cell/iommu.c 2011-04-17 15:57:32.000000000 -0400 3040+++ linux-2.6.38.2/arch/powerpc/platforms/cell/iommu.c 2011-03-21 18:31:35.000000000 -0400
3033@@ -642,7 +642,7 @@ static int dma_fixed_dma_supported(struc 3041@@ -642,7 +642,7 @@ static int dma_fixed_dma_supported(struc
3034 3042
3035 static int dma_set_mask_and_switch(struct device *dev, u64 dma_mask); 3043 static int dma_set_mask_and_switch(struct device *dev, u64 dma_mask);
@@ -3039,9 +3047,9 @@ diff -urNp linux-2.6.38.3/arch/powerpc/platforms/cell/iommu.c linux-2.6.38.3/arc
3039 .alloc_coherent = dma_fixed_alloc_coherent, 3047 .alloc_coherent = dma_fixed_alloc_coherent,
3040 .free_coherent = dma_fixed_free_coherent, 3048 .free_coherent = dma_fixed_free_coherent,
3041 .map_sg = dma_fixed_map_sg, 3049 .map_sg = dma_fixed_map_sg,
3042diff -urNp linux-2.6.38.3/arch/powerpc/platforms/ps3/system-bus.c linux-2.6.38.3/arch/powerpc/platforms/ps3/system-bus.c 3050diff -urNp linux-2.6.38.2/arch/powerpc/platforms/ps3/system-bus.c linux-2.6.38.2/arch/powerpc/platforms/ps3/system-bus.c
3043--- linux-2.6.38.3/arch/powerpc/platforms/ps3/system-bus.c 2011-03-14 21:20:32.000000000 -0400 3051--- linux-2.6.38.2/arch/powerpc/platforms/ps3/system-bus.c 2011-03-14 21:20:32.000000000 -0400
3044+++ linux-2.6.38.3/arch/powerpc/platforms/ps3/system-bus.c 2011-04-17 15:57:32.000000000 -0400 3052+++ linux-2.6.38.2/arch/powerpc/platforms/ps3/system-bus.c 2011-03-21 18:31:35.000000000 -0400
3045@@ -695,7 +695,7 @@ static int ps3_dma_supported(struct devi 3053@@ -695,7 +695,7 @@ static int ps3_dma_supported(struct devi
3046 return mask >= DMA_BIT_MASK(32); 3054 return mask >= DMA_BIT_MASK(32);
3047 } 3055 }
@@ -3060,9 +3068,9 @@ diff -urNp linux-2.6.38.3/arch/powerpc/platforms/ps3/system-bus.c linux-2.6.38.3
3060 .alloc_coherent = ps3_alloc_coherent, 3068 .alloc_coherent = ps3_alloc_coherent,
3061 .free_coherent = ps3_free_coherent, 3069 .free_coherent = ps3_free_coherent,
3062 .map_sg = ps3_ioc0_map_sg, 3070 .map_sg = ps3_ioc0_map_sg,
3063diff -urNp linux-2.6.38.3/arch/powerpc/sysdev/ppc4xx_cpm.c linux-2.6.38.3/arch/powerpc/sysdev/ppc4xx_cpm.c 3071diff -urNp linux-2.6.38.2/arch/powerpc/sysdev/ppc4xx_cpm.c linux-2.6.38.2/arch/powerpc/sysdev/ppc4xx_cpm.c
3064--- linux-2.6.38.3/arch/powerpc/sysdev/ppc4xx_cpm.c 2011-03-14 21:20:32.000000000 -0400 3072--- linux-2.6.38.2/arch/powerpc/sysdev/ppc4xx_cpm.c 2011-03-14 21:20:32.000000000 -0400
3065+++ linux-2.6.38.3/arch/powerpc/sysdev/ppc4xx_cpm.c 2011-04-17 15:57:32.000000000 -0400 3073+++ linux-2.6.38.2/arch/powerpc/sysdev/ppc4xx_cpm.c 2011-03-21 18:31:35.000000000 -0400
3066@@ -240,7 +240,7 @@ static int cpm_suspend_enter(suspend_sta 3074@@ -240,7 +240,7 @@ static int cpm_suspend_enter(suspend_sta
3067 return 0; 3075 return 0;
3068 } 3076 }
@@ -3072,9 +3080,9 @@ diff -urNp linux-2.6.38.3/arch/powerpc/sysdev/ppc4xx_cpm.c linux-2.6.38.3/arch/p
3072 .valid = cpm_suspend_valid, 3080 .valid = cpm_suspend_valid,
3073 .enter = cpm_suspend_enter, 3081 .enter = cpm_suspend_enter,
3074 }; 3082 };
3075diff -urNp linux-2.6.38.3/arch/s390/include/asm/elf.h linux-2.6.38.3/arch/s390/include/asm/elf.h 3083diff -urNp linux-2.6.38.2/arch/s390/include/asm/elf.h linux-2.6.38.2/arch/s390/include/asm/elf.h
3076--- linux-2.6.38.3/arch/s390/include/asm/elf.h 2011-03-14 21:20:32.000000000 -0400 3084--- linux-2.6.38.2/arch/s390/include/asm/elf.h 2011-03-14 21:20:32.000000000 -0400
3077+++ linux-2.6.38.3/arch/s390/include/asm/elf.h 2011-04-17 15:57:32.000000000 -0400 3085+++ linux-2.6.38.2/arch/s390/include/asm/elf.h 2011-03-21 18:31:35.000000000 -0400
3078@@ -162,8 +162,14 @@ extern unsigned int vdso_enabled; 3086@@ -162,8 +162,14 @@ extern unsigned int vdso_enabled;
3079 the loader. We need to make sure that it is out of the way of the program 3087 the loader. We need to make sure that it is out of the way of the program
3080 that it will "exec", and that there is sufficient room for the brk. */ 3088 that it will "exec", and that there is sufficient room for the brk. */
@@ -3100,9 +3108,9 @@ diff -urNp linux-2.6.38.3/arch/s390/include/asm/elf.h linux-2.6.38.3/arch/s390/i
3100-#define arch_randomize_brk arch_randomize_brk 3108-#define arch_randomize_brk arch_randomize_brk
3101- 3109-
3102 #endif 3110 #endif
3103diff -urNp linux-2.6.38.3/arch/s390/include/asm/system.h linux-2.6.38.3/arch/s390/include/asm/system.h 3111diff -urNp linux-2.6.38.2/arch/s390/include/asm/system.h linux-2.6.38.2/arch/s390/include/asm/system.h
3104--- linux-2.6.38.3/arch/s390/include/asm/system.h 2011-03-14 21:20:32.000000000 -0400 3112--- linux-2.6.38.2/arch/s390/include/asm/system.h 2011-03-14 21:20:32.000000000 -0400
3105+++ linux-2.6.38.3/arch/s390/include/asm/system.h 2011-04-17 15:57:32.000000000 -0400 3113+++ linux-2.6.38.2/arch/s390/include/asm/system.h 2011-03-21 18:31:35.000000000 -0400
3106@@ -449,7 +449,7 @@ extern void (*_machine_restart)(char *co 3114@@ -449,7 +449,7 @@ extern void (*_machine_restart)(char *co
3107 extern void (*_machine_halt)(void); 3115 extern void (*_machine_halt)(void);
3108 extern void (*_machine_power_off)(void); 3116 extern void (*_machine_power_off)(void);
@@ -3112,9 +3120,9 @@ diff -urNp linux-2.6.38.3/arch/s390/include/asm/system.h linux-2.6.38.3/arch/s39
3112 3120
3113 static inline int tprot(unsigned long addr) 3121 static inline int tprot(unsigned long addr)
3114 { 3122 {
3115diff -urNp linux-2.6.38.3/arch/s390/include/asm/uaccess.h linux-2.6.38.3/arch/s390/include/asm/uaccess.h 3123diff -urNp linux-2.6.38.2/arch/s390/include/asm/uaccess.h linux-2.6.38.2/arch/s390/include/asm/uaccess.h
3116--- linux-2.6.38.3/arch/s390/include/asm/uaccess.h 2011-03-14 21:20:32.000000000 -0400 3124--- linux-2.6.38.2/arch/s390/include/asm/uaccess.h 2011-03-14 21:20:32.000000000 -0400
3117+++ linux-2.6.38.3/arch/s390/include/asm/uaccess.h 2011-04-17 15:57:32.000000000 -0400 3125+++ linux-2.6.38.2/arch/s390/include/asm/uaccess.h 2011-03-21 18:31:35.000000000 -0400
3118@@ -234,6 +234,10 @@ static inline unsigned long __must_check 3126@@ -234,6 +234,10 @@ static inline unsigned long __must_check
3119 copy_to_user(void __user *to, const void *from, unsigned long n) 3127 copy_to_user(void __user *to, const void *from, unsigned long n)
3120 { 3128 {
@@ -3147,9 +3155,9 @@ diff -urNp linux-2.6.38.3/arch/s390/include/asm/uaccess.h linux-2.6.38.3/arch/s3
3147 if (unlikely(sz != -1 && sz < n)) { 3155 if (unlikely(sz != -1 && sz < n)) {
3148 copy_from_user_overflow(); 3156 copy_from_user_overflow();
3149 return n; 3157 return n;
3150diff -urNp linux-2.6.38.3/arch/s390/Kconfig linux-2.6.38.3/arch/s390/Kconfig 3158diff -urNp linux-2.6.38.2/arch/s390/Kconfig linux-2.6.38.2/arch/s390/Kconfig
3151--- linux-2.6.38.3/arch/s390/Kconfig 2011-03-14 21:20:32.000000000 -0400 3159--- linux-2.6.38.2/arch/s390/Kconfig 2011-03-14 21:20:32.000000000 -0400
3152+++ linux-2.6.38.3/arch/s390/Kconfig 2011-04-17 15:57:32.000000000 -0400 3160+++ linux-2.6.38.2/arch/s390/Kconfig 2011-03-21 18:31:35.000000000 -0400
3153@@ -233,11 +233,9 @@ config S390_EXEC_PROTECT 3161@@ -233,11 +233,9 @@ config S390_EXEC_PROTECT
3154 prompt "Data execute protection" 3162 prompt "Data execute protection"
3155 help 3163 help
@@ -3165,9 +3173,9 @@ diff -urNp linux-2.6.38.3/arch/s390/Kconfig linux-2.6.38.3/arch/s390/Kconfig
3165 3173
3166 comment "Code generation options" 3174 comment "Code generation options"
3167 3175
3168diff -urNp linux-2.6.38.3/arch/s390/kernel/module.c linux-2.6.38.3/arch/s390/kernel/module.c 3176diff -urNp linux-2.6.38.2/arch/s390/kernel/module.c linux-2.6.38.2/arch/s390/kernel/module.c
3169--- linux-2.6.38.3/arch/s390/kernel/module.c 2011-03-14 21:20:32.000000000 -0400 3177--- linux-2.6.38.2/arch/s390/kernel/module.c 2011-03-14 21:20:32.000000000 -0400
3170+++ linux-2.6.38.3/arch/s390/kernel/module.c 2011-04-17 15:57:32.000000000 -0400 3178+++ linux-2.6.38.2/arch/s390/kernel/module.c 2011-03-21 18:31:35.000000000 -0400
3171@@ -168,11 +168,11 @@ module_frob_arch_sections(Elf_Ehdr *hdr, 3179@@ -168,11 +168,11 @@ module_frob_arch_sections(Elf_Ehdr *hdr,
3172 3180
3173 /* Increase core size by size of got & plt and set start 3181 /* Increase core size by size of got & plt and set start
@@ -3239,9 +3247,9 @@ diff -urNp linux-2.6.38.3/arch/s390/kernel/module.c linux-2.6.38.3/arch/s390/ker
3239 rela->r_addend - loc; 3247 rela->r_addend - loc;
3240 if (r_type == R_390_GOTPC) 3248 if (r_type == R_390_GOTPC)
3241 *(unsigned int *) loc = val; 3249 *(unsigned int *) loc = val;
3242diff -urNp linux-2.6.38.3/arch/s390/kernel/process.c linux-2.6.38.3/arch/s390/kernel/process.c 3250diff -urNp linux-2.6.38.2/arch/s390/kernel/process.c linux-2.6.38.2/arch/s390/kernel/process.c
3243--- linux-2.6.38.3/arch/s390/kernel/process.c 2011-03-14 21:20:32.000000000 -0400 3251--- linux-2.6.38.2/arch/s390/kernel/process.c 2011-03-14 21:20:32.000000000 -0400
3244+++ linux-2.6.38.3/arch/s390/kernel/process.c 2011-04-17 15:57:32.000000000 -0400 3252+++ linux-2.6.38.2/arch/s390/kernel/process.c 2011-03-21 18:31:35.000000000 -0400
3245@@ -334,39 +334,3 @@ unsigned long get_wchan(struct task_stru 3253@@ -334,39 +334,3 @@ unsigned long get_wchan(struct task_stru
3246 } 3254 }
3247 return 0; 3255 return 0;
@@ -3282,9 +3290,9 @@ diff -urNp linux-2.6.38.3/arch/s390/kernel/process.c linux-2.6.38.3/arch/s390/ke
3282- return base; 3290- return base;
3283- return ret; 3291- return ret;
3284-} 3292-}
3285diff -urNp linux-2.6.38.3/arch/s390/kernel/setup.c linux-2.6.38.3/arch/s390/kernel/setup.c 3293diff -urNp linux-2.6.38.2/arch/s390/kernel/setup.c linux-2.6.38.2/arch/s390/kernel/setup.c
3286--- linux-2.6.38.3/arch/s390/kernel/setup.c 2011-03-14 21:20:32.000000000 -0400 3294--- linux-2.6.38.2/arch/s390/kernel/setup.c 2011-03-14 21:20:32.000000000 -0400
3287+++ linux-2.6.38.3/arch/s390/kernel/setup.c 2011-04-17 15:57:32.000000000 -0400 3295+++ linux-2.6.38.2/arch/s390/kernel/setup.c 2011-03-21 18:31:35.000000000 -0400
3288@@ -281,7 +281,7 @@ static int __init early_parse_mem(char * 3296@@ -281,7 +281,7 @@ static int __init early_parse_mem(char *
3289 } 3297 }
3290 early_param("mem", early_parse_mem); 3298 early_param("mem", early_parse_mem);
@@ -3333,9 +3341,9 @@ diff -urNp linux-2.6.38.3/arch/s390/kernel/setup.c linux-2.6.38.3/arch/s390/kern
3333 static void setup_addressing_mode(void) 3341 static void setup_addressing_mode(void)
3334 { 3342 {
3335 if (user_mode == SECONDARY_SPACE_MODE) { 3343 if (user_mode == SECONDARY_SPACE_MODE) {
3336diff -urNp linux-2.6.38.3/arch/s390/mm/maccess.c linux-2.6.38.3/arch/s390/mm/maccess.c 3344diff -urNp linux-2.6.38.2/arch/s390/mm/maccess.c linux-2.6.38.2/arch/s390/mm/maccess.c
3337--- linux-2.6.38.3/arch/s390/mm/maccess.c 2011-03-14 21:20:32.000000000 -0400 3345--- linux-2.6.38.2/arch/s390/mm/maccess.c 2011-03-14 21:20:32.000000000 -0400
3338+++ linux-2.6.38.3/arch/s390/mm/maccess.c 2011-04-17 15:57:32.000000000 -0400 3346+++ linux-2.6.38.2/arch/s390/mm/maccess.c 2011-03-21 18:31:35.000000000 -0400
3339@@ -45,7 +45,7 @@ static long probe_kernel_write_odd(void 3347@@ -45,7 +45,7 @@ static long probe_kernel_write_odd(void
3340 return rc ? rc : count; 3348 return rc ? rc : count;
3341 } 3349 }
@@ -3345,9 +3353,9 @@ diff -urNp linux-2.6.38.3/arch/s390/mm/maccess.c linux-2.6.38.3/arch/s390/mm/mac
3345 { 3353 {
3346 long copied = 0; 3354 long copied = 0;
3347 3355
3348diff -urNp linux-2.6.38.3/arch/s390/mm/mmap.c linux-2.6.38.3/arch/s390/mm/mmap.c 3356diff -urNp linux-2.6.38.2/arch/s390/mm/mmap.c linux-2.6.38.2/arch/s390/mm/mmap.c
3349--- linux-2.6.38.3/arch/s390/mm/mmap.c 2011-03-14 21:20:32.000000000 -0400 3357--- linux-2.6.38.2/arch/s390/mm/mmap.c 2011-03-14 21:20:32.000000000 -0400
3350+++ linux-2.6.38.3/arch/s390/mm/mmap.c 2011-04-17 15:57:32.000000000 -0400 3358+++ linux-2.6.38.2/arch/s390/mm/mmap.c 2011-03-21 18:31:35.000000000 -0400
3351@@ -91,10 +91,22 @@ void arch_pick_mmap_layout(struct mm_str 3359@@ -91,10 +91,22 @@ void arch_pick_mmap_layout(struct mm_str
3352 */ 3360 */
3353 if (mmap_is_legacy()) { 3361 if (mmap_is_legacy()) {
@@ -3394,9 +3402,9 @@ diff -urNp linux-2.6.38.3/arch/s390/mm/mmap.c linux-2.6.38.3/arch/s390/mm/mmap.c
3394 mm->get_unmapped_area = s390_get_unmapped_area_topdown; 3402 mm->get_unmapped_area = s390_get_unmapped_area_topdown;
3395 mm->unmap_area = arch_unmap_area_topdown; 3403 mm->unmap_area = arch_unmap_area_topdown;
3396 } 3404 }
3397diff -urNp linux-2.6.38.3/arch/score/include/asm/system.h linux-2.6.38.3/arch/score/include/asm/system.h 3405diff -urNp linux-2.6.38.2/arch/score/include/asm/system.h linux-2.6.38.2/arch/score/include/asm/system.h
3398--- linux-2.6.38.3/arch/score/include/asm/system.h 2011-03-14 21:20:32.000000000 -0400 3406--- linux-2.6.38.2/arch/score/include/asm/system.h 2011-03-14 21:20:32.000000000 -0400
3399+++ linux-2.6.38.3/arch/score/include/asm/system.h 2011-04-17 15:57:32.000000000 -0400 3407+++ linux-2.6.38.2/arch/score/include/asm/system.h 2011-03-21 18:31:35.000000000 -0400
3400@@ -17,7 +17,7 @@ do { \ 3408@@ -17,7 +17,7 @@ do { \
3401 #define finish_arch_switch(prev) do {} while (0) 3409 #define finish_arch_switch(prev) do {} while (0)
3402 3410
@@ -3406,9 +3414,9 @@ diff -urNp linux-2.6.38.3/arch/score/include/asm/system.h linux-2.6.38.3/arch/sc
3406 3414
3407 #define mb() barrier() 3415 #define mb() barrier()
3408 #define rmb() barrier() 3416 #define rmb() barrier()
3409diff -urNp linux-2.6.38.3/arch/score/kernel/process.c linux-2.6.38.3/arch/score/kernel/process.c 3417diff -urNp linux-2.6.38.2/arch/score/kernel/process.c linux-2.6.38.2/arch/score/kernel/process.c
3410--- linux-2.6.38.3/arch/score/kernel/process.c 2011-03-14 21:20:32.000000000 -0400 3418--- linux-2.6.38.2/arch/score/kernel/process.c 2011-03-14 21:20:32.000000000 -0400
3411+++ linux-2.6.38.3/arch/score/kernel/process.c 2011-04-17 15:57:32.000000000 -0400 3419+++ linux-2.6.38.2/arch/score/kernel/process.c 2011-03-21 18:31:35.000000000 -0400
3412@@ -161,8 +161,3 @@ unsigned long get_wchan(struct task_stru 3420@@ -161,8 +161,3 @@ unsigned long get_wchan(struct task_stru
3413 3421
3414 return task_pt_regs(task)->cp0_epc; 3422 return task_pt_regs(task)->cp0_epc;
@@ -3418,9 +3426,9 @@ diff -urNp linux-2.6.38.3/arch/score/kernel/process.c linux-2.6.38.3/arch/score/
3418-{ 3426-{
3419- return sp; 3427- return sp;
3420-} 3428-}
3421diff -urNp linux-2.6.38.3/arch/sh/include/asm/dma-mapping.h linux-2.6.38.3/arch/sh/include/asm/dma-mapping.h 3429diff -urNp linux-2.6.38.2/arch/sh/include/asm/dma-mapping.h linux-2.6.38.2/arch/sh/include/asm/dma-mapping.h
3422--- linux-2.6.38.3/arch/sh/include/asm/dma-mapping.h 2011-03-14 21:20:32.000000000 -0400 3430--- linux-2.6.38.2/arch/sh/include/asm/dma-mapping.h 2011-03-14 21:20:32.000000000 -0400
3423+++ linux-2.6.38.3/arch/sh/include/asm/dma-mapping.h 2011-04-17 15:57:32.000000000 -0400 3431+++ linux-2.6.38.2/arch/sh/include/asm/dma-mapping.h 2011-03-21 18:31:35.000000000 -0400
3424@@ -1,10 +1,10 @@ 3432@@ -1,10 +1,10 @@
3425 #ifndef __ASM_SH_DMA_MAPPING_H 3433 #ifndef __ASM_SH_DMA_MAPPING_H
3426 #define __ASM_SH_DMA_MAPPING_H 3434 #define __ASM_SH_DMA_MAPPING_H
@@ -3479,9 +3487,9 @@ diff -urNp linux-2.6.38.3/arch/sh/include/asm/dma-mapping.h linux-2.6.38.3/arch/
3479 3487
3480 if (dma_release_from_coherent(dev, get_order(size), vaddr)) 3488 if (dma_release_from_coherent(dev, get_order(size), vaddr))
3481 return; 3489 return;
3482diff -urNp linux-2.6.38.3/arch/sh/kernel/dma-nommu.c linux-2.6.38.3/arch/sh/kernel/dma-nommu.c 3490diff -urNp linux-2.6.38.2/arch/sh/kernel/dma-nommu.c linux-2.6.38.2/arch/sh/kernel/dma-nommu.c
3483--- linux-2.6.38.3/arch/sh/kernel/dma-nommu.c 2011-03-14 21:20:32.000000000 -0400 3491--- linux-2.6.38.2/arch/sh/kernel/dma-nommu.c 2011-03-14 21:20:32.000000000 -0400
3484+++ linux-2.6.38.3/arch/sh/kernel/dma-nommu.c 2011-04-17 15:57:32.000000000 -0400 3492+++ linux-2.6.38.2/arch/sh/kernel/dma-nommu.c 2011-03-21 18:31:35.000000000 -0400
3485@@ -62,7 +62,7 @@ static void nommu_sync_sg(struct device 3493@@ -62,7 +62,7 @@ static void nommu_sync_sg(struct device
3486 } 3494 }
3487 #endif 3495 #endif
@@ -3491,9 +3499,9 @@ diff -urNp linux-2.6.38.3/arch/sh/kernel/dma-nommu.c linux-2.6.38.3/arch/sh/kern
3491 .alloc_coherent = dma_generic_alloc_coherent, 3499 .alloc_coherent = dma_generic_alloc_coherent,
3492 .free_coherent = dma_generic_free_coherent, 3500 .free_coherent = dma_generic_free_coherent,
3493 .map_page = nommu_map_page, 3501 .map_page = nommu_map_page,
3494diff -urNp linux-2.6.38.3/arch/sh/kernel/kgdb.c linux-2.6.38.3/arch/sh/kernel/kgdb.c 3502diff -urNp linux-2.6.38.2/arch/sh/kernel/kgdb.c linux-2.6.38.2/arch/sh/kernel/kgdb.c
3495--- linux-2.6.38.3/arch/sh/kernel/kgdb.c 2011-03-14 21:20:32.000000000 -0400 3503--- linux-2.6.38.2/arch/sh/kernel/kgdb.c 2011-03-14 21:20:32.000000000 -0400
3496+++ linux-2.6.38.3/arch/sh/kernel/kgdb.c 2011-04-17 15:57:32.000000000 -0400 3504+++ linux-2.6.38.2/arch/sh/kernel/kgdb.c 2011-03-21 18:31:35.000000000 -0400
3497@@ -319,7 +319,7 @@ void kgdb_arch_exit(void) 3505@@ -319,7 +319,7 @@ void kgdb_arch_exit(void)
3498 unregister_die_notifier(&kgdb_notifier); 3506 unregister_die_notifier(&kgdb_notifier);
3499 } 3507 }
@@ -3503,9 +3511,9 @@ diff -urNp linux-2.6.38.3/arch/sh/kernel/kgdb.c linux-2.6.38.3/arch/sh/kernel/kg
3503 /* Breakpoint instruction: trapa #0x3c */ 3511 /* Breakpoint instruction: trapa #0x3c */
3504 #ifdef CONFIG_CPU_LITTLE_ENDIAN 3512 #ifdef CONFIG_CPU_LITTLE_ENDIAN
3505 .gdb_bpt_instr = { 0x3c, 0xc3 }, 3513 .gdb_bpt_instr = { 0x3c, 0xc3 },
3506diff -urNp linux-2.6.38.3/arch/sh/mm/consistent.c linux-2.6.38.3/arch/sh/mm/consistent.c 3514diff -urNp linux-2.6.38.2/arch/sh/mm/consistent.c linux-2.6.38.2/arch/sh/mm/consistent.c
3507--- linux-2.6.38.3/arch/sh/mm/consistent.c 2011-03-14 21:20:32.000000000 -0400 3515--- linux-2.6.38.2/arch/sh/mm/consistent.c 2011-03-14 21:20:32.000000000 -0400
3508+++ linux-2.6.38.3/arch/sh/mm/consistent.c 2011-04-17 15:57:32.000000000 -0400 3516+++ linux-2.6.38.2/arch/sh/mm/consistent.c 2011-03-21 18:31:35.000000000 -0400
3509@@ -22,7 +22,7 @@ 3517@@ -22,7 +22,7 @@
3510 3518
3511 #define PREALLOC_DMA_DEBUG_ENTRIES 4096 3519 #define PREALLOC_DMA_DEBUG_ENTRIES 4096
@@ -3515,9 +3523,9 @@ diff -urNp linux-2.6.38.3/arch/sh/mm/consistent.c linux-2.6.38.3/arch/sh/mm/cons
3515 EXPORT_SYMBOL(dma_ops); 3523 EXPORT_SYMBOL(dma_ops);
3516 3524
3517 static int __init dma_init(void) 3525 static int __init dma_init(void)
3518diff -urNp linux-2.6.38.3/arch/sh/mm/mmap.c linux-2.6.38.3/arch/sh/mm/mmap.c 3526diff -urNp linux-2.6.38.2/arch/sh/mm/mmap.c linux-2.6.38.2/arch/sh/mm/mmap.c
3519--- linux-2.6.38.3/arch/sh/mm/mmap.c 2011-03-14 21:20:32.000000000 -0400 3527--- linux-2.6.38.2/arch/sh/mm/mmap.c 2011-03-14 21:20:32.000000000 -0400
3520+++ linux-2.6.38.3/arch/sh/mm/mmap.c 2011-04-17 15:57:32.000000000 -0400 3528+++ linux-2.6.38.2/arch/sh/mm/mmap.c 2011-03-21 23:47:41.000000000 -0400
3521@@ -74,8 +74,7 @@ unsigned long arch_get_unmapped_area(str 3529@@ -74,8 +74,7 @@ unsigned long arch_get_unmapped_area(str
3522 addr = PAGE_ALIGN(addr); 3530 addr = PAGE_ALIGN(addr);
3523 3531
@@ -3592,9 +3600,9 @@ diff -urNp linux-2.6.38.3/arch/sh/mm/mmap.c linux-2.6.38.3/arch/sh/mm/mmap.c
3592 3600
3593 bottomup: 3601 bottomup:
3594 /* 3602 /*
3595diff -urNp linux-2.6.38.3/arch/sparc/include/asm/atomic_64.h linux-2.6.38.3/arch/sparc/include/asm/atomic_64.h 3603diff -urNp linux-2.6.38.2/arch/sparc/include/asm/atomic_64.h linux-2.6.38.2/arch/sparc/include/asm/atomic_64.h
3596--- linux-2.6.38.3/arch/sparc/include/asm/atomic_64.h 2011-03-14 21:20:32.000000000 -0400 3604--- linux-2.6.38.2/arch/sparc/include/asm/atomic_64.h 2011-03-14 21:20:32.000000000 -0400
3597+++ linux-2.6.38.3/arch/sparc/include/asm/atomic_64.h 2011-04-17 15:57:32.000000000 -0400 3605+++ linux-2.6.38.2/arch/sparc/include/asm/atomic_64.h 2011-03-21 18:31:35.000000000 -0400
3598@@ -14,18 +14,40 @@ 3606@@ -14,18 +14,40 @@
3599 #define ATOMIC64_INIT(i) { (i) } 3607 #define ATOMIC64_INIT(i) { (i) }
3600 3608
@@ -3754,9 +3762,9 @@ diff -urNp linux-2.6.38.3/arch/sparc/include/asm/atomic_64.h linux-2.6.38.3/arch
3754 } 3762 }
3755 3763
3756 #define atomic64_inc_not_zero(v) atomic64_add_unless((v), 1, 0) 3764 #define atomic64_inc_not_zero(v) atomic64_add_unless((v), 1, 0)
3757diff -urNp linux-2.6.38.3/arch/sparc/include/asm/dma-mapping.h linux-2.6.38.3/arch/sparc/include/asm/dma-mapping.h 3765diff -urNp linux-2.6.38.2/arch/sparc/include/asm/dma-mapping.h linux-2.6.38.2/arch/sparc/include/asm/dma-mapping.h
3758--- linux-2.6.38.3/arch/sparc/include/asm/dma-mapping.h 2011-03-14 21:20:32.000000000 -0400 3766--- linux-2.6.38.2/arch/sparc/include/asm/dma-mapping.h 2011-03-14 21:20:32.000000000 -0400
3759+++ linux-2.6.38.3/arch/sparc/include/asm/dma-mapping.h 2011-04-17 15:57:32.000000000 -0400 3767+++ linux-2.6.38.2/arch/sparc/include/asm/dma-mapping.h 2011-03-21 18:31:35.000000000 -0400
3760@@ -12,10 +12,10 @@ extern int dma_supported(struct device * 3768@@ -12,10 +12,10 @@ extern int dma_supported(struct device *
3761 #define dma_alloc_noncoherent(d, s, h, f) dma_alloc_coherent(d, s, h, f) 3769 #define dma_alloc_noncoherent(d, s, h, f) dma_alloc_coherent(d, s, h, f)
3762 #define dma_free_noncoherent(d, s, v, h) dma_free_coherent(d, s, v, h) 3770 #define dma_free_noncoherent(d, s, v, h) dma_free_coherent(d, s, v, h)
@@ -3788,9 +3796,9 @@ diff -urNp linux-2.6.38.3/arch/sparc/include/asm/dma-mapping.h linux-2.6.38.3/ar
3788 3796
3789 debug_dma_free_coherent(dev, size, cpu_addr, dma_handle); 3797 debug_dma_free_coherent(dev, size, cpu_addr, dma_handle);
3790 ops->free_coherent(dev, size, cpu_addr, dma_handle); 3798 ops->free_coherent(dev, size, cpu_addr, dma_handle);
3791diff -urNp linux-2.6.38.3/arch/sparc/include/asm/elf_32.h linux-2.6.38.3/arch/sparc/include/asm/elf_32.h 3799diff -urNp linux-2.6.38.2/arch/sparc/include/asm/elf_32.h linux-2.6.38.2/arch/sparc/include/asm/elf_32.h
3792--- linux-2.6.38.3/arch/sparc/include/asm/elf_32.h 2011-03-14 21:20:32.000000000 -0400 3800--- linux-2.6.38.2/arch/sparc/include/asm/elf_32.h 2011-03-14 21:20:32.000000000 -0400
3793+++ linux-2.6.38.3/arch/sparc/include/asm/elf_32.h 2011-04-17 15:57:32.000000000 -0400 3801+++ linux-2.6.38.2/arch/sparc/include/asm/elf_32.h 2011-03-21 18:31:35.000000000 -0400
3794@@ -114,6 +114,13 @@ typedef struct { 3802@@ -114,6 +114,13 @@ typedef struct {
3795 3803
3796 #define ELF_ET_DYN_BASE (TASK_UNMAPPED_BASE) 3804 #define ELF_ET_DYN_BASE (TASK_UNMAPPED_BASE)
@@ -3805,9 +3813,9 @@ diff -urNp linux-2.6.38.3/arch/sparc/include/asm/elf_32.h linux-2.6.38.3/arch/sp
3805 /* This yields a mask that user programs can use to figure out what 3813 /* This yields a mask that user programs can use to figure out what
3806 instruction set this cpu supports. This can NOT be done in userspace 3814 instruction set this cpu supports. This can NOT be done in userspace
3807 on Sparc. */ 3815 on Sparc. */
3808diff -urNp linux-2.6.38.3/arch/sparc/include/asm/elf_64.h linux-2.6.38.3/arch/sparc/include/asm/elf_64.h 3816diff -urNp linux-2.6.38.2/arch/sparc/include/asm/elf_64.h linux-2.6.38.2/arch/sparc/include/asm/elf_64.h
3809--- linux-2.6.38.3/arch/sparc/include/asm/elf_64.h 2011-03-14 21:20:32.000000000 -0400 3817--- linux-2.6.38.2/arch/sparc/include/asm/elf_64.h 2011-03-14 21:20:32.000000000 -0400
3810+++ linux-2.6.38.3/arch/sparc/include/asm/elf_64.h 2011-04-17 15:57:32.000000000 -0400 3818+++ linux-2.6.38.2/arch/sparc/include/asm/elf_64.h 2011-03-21 18:31:35.000000000 -0400
3811@@ -162,6 +162,12 @@ typedef struct { 3819@@ -162,6 +162,12 @@ typedef struct {
3812 #define ELF_ET_DYN_BASE 0x0000010000000000UL 3820 #define ELF_ET_DYN_BASE 0x0000010000000000UL
3813 #define COMPAT_ELF_ET_DYN_BASE 0x0000000070000000UL 3821 #define COMPAT_ELF_ET_DYN_BASE 0x0000000070000000UL
@@ -3821,9 +3829,9 @@ diff -urNp linux-2.6.38.3/arch/sparc/include/asm/elf_64.h linux-2.6.38.3/arch/sp
3821 3829
3822 /* This yields a mask that user programs can use to figure out what 3830 /* This yields a mask that user programs can use to figure out what
3823 instruction set this cpu supports. */ 3831 instruction set this cpu supports. */
3824diff -urNp linux-2.6.38.3/arch/sparc/include/asm/pgtable_32.h linux-2.6.38.3/arch/sparc/include/asm/pgtable_32.h 3832diff -urNp linux-2.6.38.2/arch/sparc/include/asm/pgtable_32.h linux-2.6.38.2/arch/sparc/include/asm/pgtable_32.h
3825--- linux-2.6.38.3/arch/sparc/include/asm/pgtable_32.h 2011-03-14 21:20:32.000000000 -0400 3833--- linux-2.6.38.2/arch/sparc/include/asm/pgtable_32.h 2011-03-14 21:20:32.000000000 -0400
3826+++ linux-2.6.38.3/arch/sparc/include/asm/pgtable_32.h 2011-04-17 15:57:32.000000000 -0400 3834+++ linux-2.6.38.2/arch/sparc/include/asm/pgtable_32.h 2011-03-21 18:31:35.000000000 -0400
3827@@ -43,6 +43,13 @@ BTFIXUPDEF_SIMM13(user_ptrs_per_pgd) 3835@@ -43,6 +43,13 @@ BTFIXUPDEF_SIMM13(user_ptrs_per_pgd)
3828 BTFIXUPDEF_INT(page_none) 3836 BTFIXUPDEF_INT(page_none)
3829 BTFIXUPDEF_INT(page_copy) 3837 BTFIXUPDEF_INT(page_copy)
@@ -3855,9 +3863,9 @@ diff -urNp linux-2.6.38.3/arch/sparc/include/asm/pgtable_32.h linux-2.6.38.3/arc
3855 extern unsigned long page_kernel; 3863 extern unsigned long page_kernel;
3856 3864
3857 #ifdef MODULE 3865 #ifdef MODULE
3858diff -urNp linux-2.6.38.3/arch/sparc/include/asm/pgtsrmmu.h linux-2.6.38.3/arch/sparc/include/asm/pgtsrmmu.h 3866diff -urNp linux-2.6.38.2/arch/sparc/include/asm/pgtsrmmu.h linux-2.6.38.2/arch/sparc/include/asm/pgtsrmmu.h
3859--- linux-2.6.38.3/arch/sparc/include/asm/pgtsrmmu.h 2011-03-14 21:20:32.000000000 -0400 3867--- linux-2.6.38.2/arch/sparc/include/asm/pgtsrmmu.h 2011-03-14 21:20:32.000000000 -0400
3860+++ linux-2.6.38.3/arch/sparc/include/asm/pgtsrmmu.h 2011-04-17 15:57:32.000000000 -0400 3868+++ linux-2.6.38.2/arch/sparc/include/asm/pgtsrmmu.h 2011-03-21 18:31:35.000000000 -0400
3861@@ -115,6 +115,13 @@ 3869@@ -115,6 +115,13 @@
3862 SRMMU_EXEC | SRMMU_REF) 3870 SRMMU_EXEC | SRMMU_REF)
3863 #define SRMMU_PAGE_RDONLY __pgprot(SRMMU_VALID | SRMMU_CACHE | \ 3871 #define SRMMU_PAGE_RDONLY __pgprot(SRMMU_VALID | SRMMU_CACHE | \
@@ -3872,9 +3880,9 @@ diff -urNp linux-2.6.38.3/arch/sparc/include/asm/pgtsrmmu.h linux-2.6.38.3/arch/
3872 #define SRMMU_PAGE_KERNEL __pgprot(SRMMU_VALID | SRMMU_CACHE | SRMMU_PRIV | \ 3880 #define SRMMU_PAGE_KERNEL __pgprot(SRMMU_VALID | SRMMU_CACHE | SRMMU_PRIV | \
3873 SRMMU_DIRTY | SRMMU_REF) 3881 SRMMU_DIRTY | SRMMU_REF)
3874 3882
3875diff -urNp linux-2.6.38.3/arch/sparc/include/asm/spinlock_64.h linux-2.6.38.3/arch/sparc/include/asm/spinlock_64.h 3883diff -urNp linux-2.6.38.2/arch/sparc/include/asm/spinlock_64.h linux-2.6.38.2/arch/sparc/include/asm/spinlock_64.h
3876--- linux-2.6.38.3/arch/sparc/include/asm/spinlock_64.h 2011-03-14 21:20:32.000000000 -0400 3884--- linux-2.6.38.2/arch/sparc/include/asm/spinlock_64.h 2011-03-14 21:20:32.000000000 -0400
3877+++ linux-2.6.38.3/arch/sparc/include/asm/spinlock_64.h 2011-04-17 15:57:32.000000000 -0400 3885+++ linux-2.6.38.2/arch/sparc/include/asm/spinlock_64.h 2011-03-21 18:31:35.000000000 -0400
3878@@ -99,7 +99,12 @@ static void inline arch_read_lock(arch_r 3886@@ -99,7 +99,12 @@ static void inline arch_read_lock(arch_r
3879 __asm__ __volatile__ ( 3887 __asm__ __volatile__ (
3880 "1: ldsw [%2], %0\n" 3888 "1: ldsw [%2], %0\n"
@@ -3926,9 +3934,9 @@ diff -urNp linux-2.6.38.3/arch/sparc/include/asm/spinlock_64.h linux-2.6.38.3/ar
3926 " cas [%2], %0, %1\n" 3934 " cas [%2], %0, %1\n"
3927 " cmp %0, %1\n" 3935 " cmp %0, %1\n"
3928 " bne,pn %%xcc, 1b\n" 3936 " bne,pn %%xcc, 1b\n"
3929diff -urNp linux-2.6.38.3/arch/sparc/include/asm/uaccess_32.h linux-2.6.38.3/arch/sparc/include/asm/uaccess_32.h 3937diff -urNp linux-2.6.38.2/arch/sparc/include/asm/uaccess_32.h linux-2.6.38.2/arch/sparc/include/asm/uaccess_32.h
3930--- linux-2.6.38.3/arch/sparc/include/asm/uaccess_32.h 2011-03-14 21:20:32.000000000 -0400 3938--- linux-2.6.38.2/arch/sparc/include/asm/uaccess_32.h 2011-03-14 21:20:32.000000000 -0400
3931+++ linux-2.6.38.3/arch/sparc/include/asm/uaccess_32.h 2011-04-17 15:57:32.000000000 -0400 3939+++ linux-2.6.38.2/arch/sparc/include/asm/uaccess_32.h 2011-03-21 18:31:35.000000000 -0400
3932@@ -249,27 +249,46 @@ extern unsigned long __copy_user(void __ 3940@@ -249,27 +249,46 @@ extern unsigned long __copy_user(void __
3933 3941
3934 static inline unsigned long copy_to_user(void __user *to, const void *from, unsigned long n) 3942 static inline unsigned long copy_to_user(void __user *to, const void *from, unsigned long n)
@@ -3980,9 +3988,9 @@ diff -urNp linux-2.6.38.3/arch/sparc/include/asm/uaccess_32.h linux-2.6.38.3/arc
3980 return __copy_user((__force void __user *) to, from, n); 3988 return __copy_user((__force void __user *) to, from, n);
3981 } 3989 }
3982 3990
3983diff -urNp linux-2.6.38.3/arch/sparc/include/asm/uaccess_64.h linux-2.6.38.3/arch/sparc/include/asm/uaccess_64.h 3991diff -urNp linux-2.6.38.2/arch/sparc/include/asm/uaccess_64.h linux-2.6.38.2/arch/sparc/include/asm/uaccess_64.h
3984--- linux-2.6.38.3/arch/sparc/include/asm/uaccess_64.h 2011-03-14 21:20:32.000000000 -0400 3992--- linux-2.6.38.2/arch/sparc/include/asm/uaccess_64.h 2011-03-14 21:20:32.000000000 -0400
3985+++ linux-2.6.38.3/arch/sparc/include/asm/uaccess_64.h 2011-04-17 15:57:32.000000000 -0400 3993+++ linux-2.6.38.2/arch/sparc/include/asm/uaccess_64.h 2011-03-21 18:31:35.000000000 -0400
3986@@ -10,6 +10,7 @@ 3994@@ -10,6 +10,7 @@
3987 #include <linux/compiler.h> 3995 #include <linux/compiler.h>
3988 #include <linux/string.h> 3996 #include <linux/string.h>
@@ -4025,9 +4033,9 @@ diff -urNp linux-2.6.38.3/arch/sparc/include/asm/uaccess_64.h linux-2.6.38.3/arc
4025 if (unlikely(ret)) 4033 if (unlikely(ret))
4026 ret = copy_to_user_fixup(to, from, size); 4034 ret = copy_to_user_fixup(to, from, size);
4027 return ret; 4035 return ret;
4028diff -urNp linux-2.6.38.3/arch/sparc/include/asm/uaccess.h linux-2.6.38.3/arch/sparc/include/asm/uaccess.h 4036diff -urNp linux-2.6.38.2/arch/sparc/include/asm/uaccess.h linux-2.6.38.2/arch/sparc/include/asm/uaccess.h
4029--- linux-2.6.38.3/arch/sparc/include/asm/uaccess.h 2011-03-14 21:20:32.000000000 -0400 4037--- linux-2.6.38.2/arch/sparc/include/asm/uaccess.h 2011-03-14 21:20:32.000000000 -0400
4030+++ linux-2.6.38.3/arch/sparc/include/asm/uaccess.h 2011-04-17 15:57:32.000000000 -0400 4038+++ linux-2.6.38.2/arch/sparc/include/asm/uaccess.h 2011-03-21 18:31:35.000000000 -0400
4031@@ -1,5 +1,13 @@ 4039@@ -1,5 +1,13 @@
4032 #ifndef ___ASM_SPARC_UACCESS_H 4040 #ifndef ___ASM_SPARC_UACCESS_H
4033 #define ___ASM_SPARC_UACCESS_H 4041 #define ___ASM_SPARC_UACCESS_H
@@ -4042,9 +4050,9 @@ diff -urNp linux-2.6.38.3/arch/sparc/include/asm/uaccess.h linux-2.6.38.3/arch/s
4042 #if defined(__sparc__) && defined(__arch64__) 4050 #if defined(__sparc__) && defined(__arch64__)
4043 #include <asm/uaccess_64.h> 4051 #include <asm/uaccess_64.h>
4044 #else 4052 #else
4045diff -urNp linux-2.6.38.3/arch/sparc/kernel/iommu.c linux-2.6.38.3/arch/sparc/kernel/iommu.c 4053diff -urNp linux-2.6.38.2/arch/sparc/kernel/iommu.c linux-2.6.38.2/arch/sparc/kernel/iommu.c
4046--- linux-2.6.38.3/arch/sparc/kernel/iommu.c 2011-03-14 21:20:32.000000000 -0400 4054--- linux-2.6.38.2/arch/sparc/kernel/iommu.c 2011-03-14 21:20:32.000000000 -0400
4047+++ linux-2.6.38.3/arch/sparc/kernel/iommu.c 2011-04-17 15:57:32.000000000 -0400 4055+++ linux-2.6.38.2/arch/sparc/kernel/iommu.c 2011-03-21 18:31:35.000000000 -0400
4048@@ -827,7 +827,7 @@ static void dma_4u_sync_sg_for_cpu(struc 4056@@ -827,7 +827,7 @@ static void dma_4u_sync_sg_for_cpu(struc
4049 spin_unlock_irqrestore(&iommu->lock, flags); 4057 spin_unlock_irqrestore(&iommu->lock, flags);
4050 } 4058 }
@@ -4063,9 +4071,9 @@ diff -urNp linux-2.6.38.3/arch/sparc/kernel/iommu.c linux-2.6.38.3/arch/sparc/ke
4063 EXPORT_SYMBOL(dma_ops); 4071 EXPORT_SYMBOL(dma_ops);
4064 4072
4065 extern int pci64_dma_supported(struct pci_dev *pdev, u64 device_mask); 4073 extern int pci64_dma_supported(struct pci_dev *pdev, u64 device_mask);
4066diff -urNp linux-2.6.38.3/arch/sparc/kernel/ioport.c linux-2.6.38.3/arch/sparc/kernel/ioport.c 4074diff -urNp linux-2.6.38.2/arch/sparc/kernel/ioport.c linux-2.6.38.2/arch/sparc/kernel/ioport.c
4067--- linux-2.6.38.3/arch/sparc/kernel/ioport.c 2011-03-14 21:20:32.000000000 -0400 4075--- linux-2.6.38.2/arch/sparc/kernel/ioport.c 2011-03-14 21:20:32.000000000 -0400
4068+++ linux-2.6.38.3/arch/sparc/kernel/ioport.c 2011-04-17 15:57:32.000000000 -0400 4076+++ linux-2.6.38.2/arch/sparc/kernel/ioport.c 2011-03-21 18:31:35.000000000 -0400
4069@@ -397,7 +397,7 @@ static void sbus_sync_sg_for_device(stru 4077@@ -397,7 +397,7 @@ static void sbus_sync_sg_for_device(stru
4070 BUG(); 4078 BUG();
4071 } 4079 }
@@ -4093,9 +4101,9 @@ diff -urNp linux-2.6.38.3/arch/sparc/kernel/ioport.c linux-2.6.38.3/arch/sparc/k
4093 .alloc_coherent = pci32_alloc_coherent, 4101 .alloc_coherent = pci32_alloc_coherent,
4094 .free_coherent = pci32_free_coherent, 4102 .free_coherent = pci32_free_coherent,
4095 .map_page = pci32_map_page, 4103 .map_page = pci32_map_page,
4096diff -urNp linux-2.6.38.3/arch/sparc/kernel/kgdb_32.c linux-2.6.38.3/arch/sparc/kernel/kgdb_32.c 4104diff -urNp linux-2.6.38.2/arch/sparc/kernel/kgdb_32.c linux-2.6.38.2/arch/sparc/kernel/kgdb_32.c
4097--- linux-2.6.38.3/arch/sparc/kernel/kgdb_32.c 2011-03-14 21:20:32.000000000 -0400 4105--- linux-2.6.38.2/arch/sparc/kernel/kgdb_32.c 2011-03-14 21:20:32.000000000 -0400
4098+++ linux-2.6.38.3/arch/sparc/kernel/kgdb_32.c 2011-04-17 15:57:32.000000000 -0400 4106+++ linux-2.6.38.2/arch/sparc/kernel/kgdb_32.c 2011-03-21 18:31:35.000000000 -0400
4099@@ -164,7 +164,7 @@ void kgdb_arch_set_pc(struct pt_regs *re 4107@@ -164,7 +164,7 @@ void kgdb_arch_set_pc(struct pt_regs *re
4100 regs->npc = regs->pc + 4; 4108 regs->npc = regs->pc + 4;
4101 } 4109 }
@@ -4105,9 +4113,9 @@ diff -urNp linux-2.6.38.3/arch/sparc/kernel/kgdb_32.c linux-2.6.38.3/arch/sparc/
4105 /* Breakpoint instruction: ta 0x7d */ 4113 /* Breakpoint instruction: ta 0x7d */
4106 .gdb_bpt_instr = { 0x91, 0xd0, 0x20, 0x7d }, 4114 .gdb_bpt_instr = { 0x91, 0xd0, 0x20, 0x7d },
4107 }; 4115 };
4108diff -urNp linux-2.6.38.3/arch/sparc/kernel/kgdb_64.c linux-2.6.38.3/arch/sparc/kernel/kgdb_64.c 4116diff -urNp linux-2.6.38.2/arch/sparc/kernel/kgdb_64.c linux-2.6.38.2/arch/sparc/kernel/kgdb_64.c
4109--- linux-2.6.38.3/arch/sparc/kernel/kgdb_64.c 2011-03-14 21:20:32.000000000 -0400 4117--- linux-2.6.38.2/arch/sparc/kernel/kgdb_64.c 2011-03-14 21:20:32.000000000 -0400
4110+++ linux-2.6.38.3/arch/sparc/kernel/kgdb_64.c 2011-04-17 15:57:32.000000000 -0400 4118+++ linux-2.6.38.2/arch/sparc/kernel/kgdb_64.c 2011-03-21 18:31:35.000000000 -0400
4111@@ -187,7 +187,7 @@ void kgdb_arch_set_pc(struct pt_regs *re 4119@@ -187,7 +187,7 @@ void kgdb_arch_set_pc(struct pt_regs *re
4112 regs->tnpc = regs->tpc + 4; 4120 regs->tnpc = regs->tpc + 4;
4113 } 4121 }
@@ -4117,9 +4125,9 @@ diff -urNp linux-2.6.38.3/arch/sparc/kernel/kgdb_64.c linux-2.6.38.3/arch/sparc/
4117 /* Breakpoint instruction: ta 0x72 */ 4125 /* Breakpoint instruction: ta 0x72 */
4118 .gdb_bpt_instr = { 0x91, 0xd0, 0x20, 0x72 }, 4126 .gdb_bpt_instr = { 0x91, 0xd0, 0x20, 0x72 },
4119 }; 4127 };
4120diff -urNp linux-2.6.38.3/arch/sparc/kernel/Makefile linux-2.6.38.3/arch/sparc/kernel/Makefile 4128diff -urNp linux-2.6.38.2/arch/sparc/kernel/Makefile linux-2.6.38.2/arch/sparc/kernel/Makefile
4121--- linux-2.6.38.3/arch/sparc/kernel/Makefile 2011-03-14 21:20:32.000000000 -0400 4129--- linux-2.6.38.2/arch/sparc/kernel/Makefile 2011-03-14 21:20:32.000000000 -0400
4122+++ linux-2.6.38.3/arch/sparc/kernel/Makefile 2011-04-17 15:57:32.000000000 -0400 4130+++ linux-2.6.38.2/arch/sparc/kernel/Makefile 2011-03-21 18:31:35.000000000 -0400
4123@@ -3,7 +3,7 @@ 4131@@ -3,7 +3,7 @@
4124 # 4132 #
4125 4133
@@ -4129,9 +4137,9 @@ diff -urNp linux-2.6.38.3/arch/sparc/kernel/Makefile linux-2.6.38.3/arch/sparc/k
4129 4137
4130 extra-y := head_$(BITS).o 4138 extra-y := head_$(BITS).o
4131 extra-y += init_task.o 4139 extra-y += init_task.o
4132diff -urNp linux-2.6.38.3/arch/sparc/kernel/pci_sun4v.c linux-2.6.38.3/arch/sparc/kernel/pci_sun4v.c 4140diff -urNp linux-2.6.38.2/arch/sparc/kernel/pci_sun4v.c linux-2.6.38.2/arch/sparc/kernel/pci_sun4v.c
4133--- linux-2.6.38.3/arch/sparc/kernel/pci_sun4v.c 2011-03-14 21:20:32.000000000 -0400 4141--- linux-2.6.38.2/arch/sparc/kernel/pci_sun4v.c 2011-03-14 21:20:32.000000000 -0400
4134+++ linux-2.6.38.3/arch/sparc/kernel/pci_sun4v.c 2011-04-17 15:57:32.000000000 -0400 4142+++ linux-2.6.38.2/arch/sparc/kernel/pci_sun4v.c 2011-03-21 18:31:35.000000000 -0400
4135@@ -525,7 +525,7 @@ static void dma_4v_unmap_sg(struct devic 4143@@ -525,7 +525,7 @@ static void dma_4v_unmap_sg(struct devic
4136 spin_unlock_irqrestore(&iommu->lock, flags); 4144 spin_unlock_irqrestore(&iommu->lock, flags);
4137 } 4145 }
@@ -4141,9 +4149,9 @@ diff -urNp linux-2.6.38.3/arch/sparc/kernel/pci_sun4v.c linux-2.6.38.3/arch/spar
4141 .alloc_coherent = dma_4v_alloc_coherent, 4149 .alloc_coherent = dma_4v_alloc_coherent,
4142 .free_coherent = dma_4v_free_coherent, 4150 .free_coherent = dma_4v_free_coherent,
4143 .map_page = dma_4v_map_page, 4151 .map_page = dma_4v_map_page,
4144diff -urNp linux-2.6.38.3/arch/sparc/kernel/process_32.c linux-2.6.38.3/arch/sparc/kernel/process_32.c 4152diff -urNp linux-2.6.38.2/arch/sparc/kernel/process_32.c linux-2.6.38.2/arch/sparc/kernel/process_32.c
4145--- linux-2.6.38.3/arch/sparc/kernel/process_32.c 2011-03-14 21:20:32.000000000 -0400 4153--- linux-2.6.38.2/arch/sparc/kernel/process_32.c 2011-03-14 21:20:32.000000000 -0400
4146+++ linux-2.6.38.3/arch/sparc/kernel/process_32.c 2011-04-17 15:57:32.000000000 -0400 4154+++ linux-2.6.38.2/arch/sparc/kernel/process_32.c 2011-03-21 18:31:35.000000000 -0400
4147@@ -196,7 +196,7 @@ void __show_backtrace(unsigned long fp) 4155@@ -196,7 +196,7 @@ void __show_backtrace(unsigned long fp)
4148 rw->ins[4], rw->ins[5], 4156 rw->ins[4], rw->ins[5],
4149 rw->ins[6], 4157 rw->ins[6],
@@ -4179,9 +4187,9 @@ diff -urNp linux-2.6.38.3/arch/sparc/kernel/process_32.c linux-2.6.38.3/arch/spa
4179 fp = rw->ins[6]; 4187 fp = rw->ins[6];
4180 } while (++count < 16); 4188 } while (++count < 16);
4181 printk("\n"); 4189 printk("\n");
4182diff -urNp linux-2.6.38.3/arch/sparc/kernel/process_64.c linux-2.6.38.3/arch/sparc/kernel/process_64.c 4190diff -urNp linux-2.6.38.2/arch/sparc/kernel/process_64.c linux-2.6.38.2/arch/sparc/kernel/process_64.c
4183--- linux-2.6.38.3/arch/sparc/kernel/process_64.c 2011-03-14 21:20:32.000000000 -0400 4191--- linux-2.6.38.2/arch/sparc/kernel/process_64.c 2011-03-14 21:20:32.000000000 -0400
4184+++ linux-2.6.38.3/arch/sparc/kernel/process_64.c 2011-04-17 15:57:32.000000000 -0400 4192+++ linux-2.6.38.2/arch/sparc/kernel/process_64.c 2011-03-21 18:31:35.000000000 -0400
4185@@ -180,14 +180,14 @@ static void show_regwindow(struct pt_reg 4193@@ -180,14 +180,14 @@ static void show_regwindow(struct pt_reg
4186 printk("i4: %016lx i5: %016lx i6: %016lx i7: %016lx\n", 4194 printk("i4: %016lx i5: %016lx i6: %016lx i7: %016lx\n",
4187 rwk->ins[4], rwk->ins[5], rwk->ins[6], rwk->ins[7]); 4195 rwk->ins[4], rwk->ins[5], rwk->ins[6], rwk->ins[7]);
@@ -4217,9 +4225,9 @@ diff -urNp linux-2.6.38.3/arch/sparc/kernel/process_64.c linux-2.6.38.3/arch/spa
4217 (void *) gp->tpc, 4225 (void *) gp->tpc,
4218 (void *) gp->o7, 4226 (void *) gp->o7,
4219 (void *) gp->i7, 4227 (void *) gp->i7,
4220diff -urNp linux-2.6.38.3/arch/sparc/kernel/sys_sparc_32.c linux-2.6.38.3/arch/sparc/kernel/sys_sparc_32.c 4228diff -urNp linux-2.6.38.2/arch/sparc/kernel/sys_sparc_32.c linux-2.6.38.2/arch/sparc/kernel/sys_sparc_32.c
4221--- linux-2.6.38.3/arch/sparc/kernel/sys_sparc_32.c 2011-03-14 21:20:32.000000000 -0400 4229--- linux-2.6.38.2/arch/sparc/kernel/sys_sparc_32.c 2011-03-14 21:20:32.000000000 -0400
4222+++ linux-2.6.38.3/arch/sparc/kernel/sys_sparc_32.c 2011-04-17 15:57:32.000000000 -0400 4230+++ linux-2.6.38.2/arch/sparc/kernel/sys_sparc_32.c 2011-03-21 18:31:35.000000000 -0400
4223@@ -56,7 +56,7 @@ unsigned long arch_get_unmapped_area(str 4231@@ -56,7 +56,7 @@ unsigned long arch_get_unmapped_area(str
4224 if (ARCH_SUN4C && len > 0x20000000) 4232 if (ARCH_SUN4C && len > 0x20000000)
4225 return -ENOMEM; 4233 return -ENOMEM;
@@ -4238,9 +4246,9 @@ diff -urNp linux-2.6.38.3/arch/sparc/kernel/sys_sparc_32.c linux-2.6.38.3/arch/s
4238 return addr; 4246 return addr;
4239 addr = vmm->vm_end; 4247 addr = vmm->vm_end;
4240 if (flags & MAP_SHARED) 4248 if (flags & MAP_SHARED)
4241diff -urNp linux-2.6.38.3/arch/sparc/kernel/sys_sparc_64.c linux-2.6.38.3/arch/sparc/kernel/sys_sparc_64.c 4249diff -urNp linux-2.6.38.2/arch/sparc/kernel/sys_sparc_64.c linux-2.6.38.2/arch/sparc/kernel/sys_sparc_64.c
4242--- linux-2.6.38.3/arch/sparc/kernel/sys_sparc_64.c 2011-03-14 21:20:32.000000000 -0400 4250--- linux-2.6.38.2/arch/sparc/kernel/sys_sparc_64.c 2011-03-14 21:20:32.000000000 -0400
4243+++ linux-2.6.38.3/arch/sparc/kernel/sys_sparc_64.c 2011-04-17 15:57:32.000000000 -0400 4251+++ linux-2.6.38.2/arch/sparc/kernel/sys_sparc_64.c 2011-03-21 23:47:41.000000000 -0400
4244@@ -124,7 +124,7 @@ unsigned long arch_get_unmapped_area(str 4252@@ -124,7 +124,7 @@ unsigned long arch_get_unmapped_area(str
4245 /* We do not accept a shared mapping if it would violate 4253 /* We do not accept a shared mapping if it would violate
4246 * cache aliasing constraints. 4254 * cache aliasing constraints.
@@ -4388,9 +4396,9 @@ diff -urNp linux-2.6.38.3/arch/sparc/kernel/sys_sparc_64.c linux-2.6.38.3/arch/s
4388 mm->get_unmapped_area = arch_get_unmapped_area_topdown; 4396 mm->get_unmapped_area = arch_get_unmapped_area_topdown;
4389 mm->unmap_area = arch_unmap_area_topdown; 4397 mm->unmap_area = arch_unmap_area_topdown;
4390 } 4398 }
4391diff -urNp linux-2.6.38.3/arch/sparc/kernel/traps_32.c linux-2.6.38.3/arch/sparc/kernel/traps_32.c 4399diff -urNp linux-2.6.38.2/arch/sparc/kernel/traps_32.c linux-2.6.38.2/arch/sparc/kernel/traps_32.c
4392--- linux-2.6.38.3/arch/sparc/kernel/traps_32.c 2011-03-14 21:20:32.000000000 -0400 4400--- linux-2.6.38.2/arch/sparc/kernel/traps_32.c 2011-03-14 21:20:32.000000000 -0400
4393+++ linux-2.6.38.3/arch/sparc/kernel/traps_32.c 2011-04-17 15:57:32.000000000 -0400 4401+++ linux-2.6.38.2/arch/sparc/kernel/traps_32.c 2011-03-21 18:31:35.000000000 -0400
4394@@ -76,7 +76,7 @@ void die_if_kernel(char *str, struct pt_ 4402@@ -76,7 +76,7 @@ void die_if_kernel(char *str, struct pt_
4395 count++ < 30 && 4403 count++ < 30 &&
4396 (((unsigned long) rw) >= PAGE_OFFSET) && 4404 (((unsigned long) rw) >= PAGE_OFFSET) &&
@@ -4400,9 +4408,9 @@ diff -urNp linux-2.6.38.3/arch/sparc/kernel/traps_32.c linux-2.6.38.3/arch/sparc
4400 (void *) rw->ins[7]); 4408 (void *) rw->ins[7]);
4401 rw = (struct reg_window32 *)rw->ins[6]; 4409 rw = (struct reg_window32 *)rw->ins[6];
4402 } 4410 }
4403diff -urNp linux-2.6.38.3/arch/sparc/kernel/traps_64.c linux-2.6.38.3/arch/sparc/kernel/traps_64.c 4411diff -urNp linux-2.6.38.2/arch/sparc/kernel/traps_64.c linux-2.6.38.2/arch/sparc/kernel/traps_64.c
4404--- linux-2.6.38.3/arch/sparc/kernel/traps_64.c 2011-03-14 21:20:32.000000000 -0400 4412--- linux-2.6.38.2/arch/sparc/kernel/traps_64.c 2011-03-14 21:20:32.000000000 -0400
4405+++ linux-2.6.38.3/arch/sparc/kernel/traps_64.c 2011-04-17 15:57:32.000000000 -0400 4413+++ linux-2.6.38.2/arch/sparc/kernel/traps_64.c 2011-03-21 18:31:35.000000000 -0400
4406@@ -75,7 +75,7 @@ static void dump_tl1_traplog(struct tl1_ 4414@@ -75,7 +75,7 @@ static void dump_tl1_traplog(struct tl1_
4407 i + 1, 4415 i + 1,
4408 p->trapstack[i].tstate, p->trapstack[i].tpc, 4416 p->trapstack[i].tstate, p->trapstack[i].tpc,
@@ -4519,9 +4527,9 @@ diff -urNp linux-2.6.38.3/arch/sparc/kernel/traps_64.c linux-2.6.38.3/arch/sparc
4519 (void *) rw->ins[7]); 4527 (void *) rw->ins[7]);
4520 4528
4521 rw = kernel_stack_up(rw); 4529 rw = kernel_stack_up(rw);
4522diff -urNp linux-2.6.38.3/arch/sparc/kernel/unaligned_64.c linux-2.6.38.3/arch/sparc/kernel/unaligned_64.c 4530diff -urNp linux-2.6.38.2/arch/sparc/kernel/unaligned_64.c linux-2.6.38.2/arch/sparc/kernel/unaligned_64.c
4523--- linux-2.6.38.3/arch/sparc/kernel/unaligned_64.c 2011-03-14 21:20:32.000000000 -0400 4531--- linux-2.6.38.2/arch/sparc/kernel/unaligned_64.c 2011-03-14 21:20:32.000000000 -0400
4524+++ linux-2.6.38.3/arch/sparc/kernel/unaligned_64.c 2011-04-17 15:57:32.000000000 -0400 4532+++ linux-2.6.38.2/arch/sparc/kernel/unaligned_64.c 2011-03-21 18:31:35.000000000 -0400
4525@@ -278,7 +278,7 @@ static void log_unaligned(struct pt_regs 4533@@ -278,7 +278,7 @@ static void log_unaligned(struct pt_regs
4526 static DEFINE_RATELIMIT_STATE(ratelimit, 5 * HZ, 5); 4534 static DEFINE_RATELIMIT_STATE(ratelimit, 5 * HZ, 5);
4527 4535
@@ -4531,9 +4539,9 @@ diff -urNp linux-2.6.38.3/arch/sparc/kernel/unaligned_64.c linux-2.6.38.3/arch/s
4531 regs->tpc, (void *) regs->tpc); 4539 regs->tpc, (void *) regs->tpc);
4532 } 4540 }
4533 } 4541 }
4534diff -urNp linux-2.6.38.3/arch/sparc/lib/atomic_64.S linux-2.6.38.3/arch/sparc/lib/atomic_64.S 4542diff -urNp linux-2.6.38.2/arch/sparc/lib/atomic_64.S linux-2.6.38.2/arch/sparc/lib/atomic_64.S
4535--- linux-2.6.38.3/arch/sparc/lib/atomic_64.S 2011-03-14 21:20:32.000000000 -0400 4543--- linux-2.6.38.2/arch/sparc/lib/atomic_64.S 2011-03-14 21:20:32.000000000 -0400
4536+++ linux-2.6.38.3/arch/sparc/lib/atomic_64.S 2011-04-17 15:57:32.000000000 -0400 4544+++ linux-2.6.38.2/arch/sparc/lib/atomic_64.S 2011-03-21 18:31:35.000000000 -0400
4537@@ -18,7 +18,12 @@ 4545@@ -18,7 +18,12 @@
4538 atomic_add: /* %o0 = increment, %o1 = atomic_ptr */ 4546 atomic_add: /* %o0 = increment, %o1 = atomic_ptr */
4539 BACKOFF_SETUP(%o2) 4547 BACKOFF_SETUP(%o2)
@@ -4768,9 +4776,9 @@ diff -urNp linux-2.6.38.3/arch/sparc/lib/atomic_64.S linux-2.6.38.3/arch/sparc/l
4768 casx [%o1], %g1, %g7 4776 casx [%o1], %g1, %g7
4769 cmp %g1, %g7 4777 cmp %g1, %g7
4770 bne,pn %xcc, BACKOFF_LABEL(2f, 1b) 4778 bne,pn %xcc, BACKOFF_LABEL(2f, 1b)
4771diff -urNp linux-2.6.38.3/arch/sparc/lib/ksyms.c linux-2.6.38.3/arch/sparc/lib/ksyms.c 4779diff -urNp linux-2.6.38.2/arch/sparc/lib/ksyms.c linux-2.6.38.2/arch/sparc/lib/ksyms.c
4772--- linux-2.6.38.3/arch/sparc/lib/ksyms.c 2011-03-14 21:20:32.000000000 -0400 4780--- linux-2.6.38.2/arch/sparc/lib/ksyms.c 2011-03-14 21:20:32.000000000 -0400
4773+++ linux-2.6.38.3/arch/sparc/lib/ksyms.c 2011-04-17 15:57:32.000000000 -0400 4781+++ linux-2.6.38.2/arch/sparc/lib/ksyms.c 2011-03-21 18:31:35.000000000 -0400
4774@@ -142,12 +142,17 @@ EXPORT_SYMBOL(__downgrade_write); 4782@@ -142,12 +142,17 @@ EXPORT_SYMBOL(__downgrade_write);
4775 4783
4776 /* Atomic counter implementation. */ 4784 /* Atomic counter implementation. */
@@ -4789,9 +4797,9 @@ diff -urNp linux-2.6.38.3/arch/sparc/lib/ksyms.c linux-2.6.38.3/arch/sparc/lib/k
4789 EXPORT_SYMBOL(atomic64_sub_ret); 4797 EXPORT_SYMBOL(atomic64_sub_ret);
4790 4798
4791 /* Atomic bit operations. */ 4799 /* Atomic bit operations. */
4792diff -urNp linux-2.6.38.3/arch/sparc/Makefile linux-2.6.38.3/arch/sparc/Makefile 4800diff -urNp linux-2.6.38.2/arch/sparc/Makefile linux-2.6.38.2/arch/sparc/Makefile
4793--- linux-2.6.38.3/arch/sparc/Makefile 2011-03-14 21:20:32.000000000 -0400 4801--- linux-2.6.38.2/arch/sparc/Makefile 2011-03-14 21:20:32.000000000 -0400
4794+++ linux-2.6.38.3/arch/sparc/Makefile 2011-04-17 15:57:32.000000000 -0400 4802+++ linux-2.6.38.2/arch/sparc/Makefile 2011-03-21 18:31:35.000000000 -0400
4795@@ -75,7 +75,7 @@ drivers-$(CONFIG_OPROFILE) += arch/sparc 4803@@ -75,7 +75,7 @@ drivers-$(CONFIG_OPROFILE) += arch/sparc
4796 # Export what is needed by arch/sparc/boot/Makefile 4804 # Export what is needed by arch/sparc/boot/Makefile
4797 export VMLINUX_INIT VMLINUX_MAIN 4805 export VMLINUX_INIT VMLINUX_MAIN
@@ -4801,9 +4809,9 @@ diff -urNp linux-2.6.38.3/arch/sparc/Makefile linux-2.6.38.3/arch/sparc/Makefile
4801 VMLINUX_MAIN += $(patsubst %/, %/lib.a, $(libs-y)) $(libs-y) 4809 VMLINUX_MAIN += $(patsubst %/, %/lib.a, $(libs-y)) $(libs-y)
4802 VMLINUX_MAIN += $(drivers-y) $(net-y) 4810 VMLINUX_MAIN += $(drivers-y) $(net-y)
4803 4811
4804diff -urNp linux-2.6.38.3/arch/sparc/mm/fault_32.c linux-2.6.38.3/arch/sparc/mm/fault_32.c 4812diff -urNp linux-2.6.38.2/arch/sparc/mm/fault_32.c linux-2.6.38.2/arch/sparc/mm/fault_32.c
4805--- linux-2.6.38.3/arch/sparc/mm/fault_32.c 2011-03-14 21:20:32.000000000 -0400 4813--- linux-2.6.38.2/arch/sparc/mm/fault_32.c 2011-03-14 21:20:32.000000000 -0400
4806+++ linux-2.6.38.3/arch/sparc/mm/fault_32.c 2011-04-17 15:57:32.000000000 -0400 4814+++ linux-2.6.38.2/arch/sparc/mm/fault_32.c 2011-03-21 18:31:35.000000000 -0400
4807@@ -22,6 +22,9 @@ 4815@@ -22,6 +22,9 @@
4808 #include <linux/interrupt.h> 4816 #include <linux/interrupt.h>
4809 #include <linux/module.h> 4817 #include <linux/module.h>
@@ -5108,9 +5116,9 @@ diff -urNp linux-2.6.38.3/arch/sparc/mm/fault_32.c linux-2.6.38.3/arch/sparc/mm/
5108 /* Allow reads even for write-only mappings */ 5116 /* Allow reads even for write-only mappings */
5109 if(!(vma->vm_flags & (VM_READ | VM_EXEC))) 5117 if(!(vma->vm_flags & (VM_READ | VM_EXEC)))
5110 goto bad_area; 5118 goto bad_area;
5111diff -urNp linux-2.6.38.3/arch/sparc/mm/fault_64.c linux-2.6.38.3/arch/sparc/mm/fault_64.c 5119diff -urNp linux-2.6.38.2/arch/sparc/mm/fault_64.c linux-2.6.38.2/arch/sparc/mm/fault_64.c
5112--- linux-2.6.38.3/arch/sparc/mm/fault_64.c 2011-03-14 21:20:32.000000000 -0400 5120--- linux-2.6.38.2/arch/sparc/mm/fault_64.c 2011-03-14 21:20:32.000000000 -0400
5113+++ linux-2.6.38.3/arch/sparc/mm/fault_64.c 2011-04-17 15:57:32.000000000 -0400 5121+++ linux-2.6.38.2/arch/sparc/mm/fault_64.c 2011-03-21 18:31:35.000000000 -0400
5114@@ -21,6 +21,9 @@ 5122@@ -21,6 +21,9 @@
5115 #include <linux/kprobes.h> 5123 #include <linux/kprobes.h>
5116 #include <linux/kdebug.h> 5124 #include <linux/kdebug.h>
@@ -5618,9 +5626,9 @@ diff -urNp linux-2.6.38.3/arch/sparc/mm/fault_64.c linux-2.6.38.3/arch/sparc/mm/
5618 /* Pure DTLB misses do not tell us whether the fault causing 5626 /* Pure DTLB misses do not tell us whether the fault causing
5619 * load/store/atomic was a write or not, it only says that there 5627 * load/store/atomic was a write or not, it only says that there
5620 * was no match. So in such a case we (carefully) read the 5628 * was no match. So in such a case we (carefully) read the
5621diff -urNp linux-2.6.38.3/arch/sparc/mm/hugetlbpage.c linux-2.6.38.3/arch/sparc/mm/hugetlbpage.c 5629diff -urNp linux-2.6.38.2/arch/sparc/mm/hugetlbpage.c linux-2.6.38.2/arch/sparc/mm/hugetlbpage.c
5622--- linux-2.6.38.3/arch/sparc/mm/hugetlbpage.c 2011-03-14 21:20:32.000000000 -0400 5630--- linux-2.6.38.2/arch/sparc/mm/hugetlbpage.c 2011-03-14 21:20:32.000000000 -0400
5623+++ linux-2.6.38.3/arch/sparc/mm/hugetlbpage.c 2011-04-17 15:57:32.000000000 -0400 5631+++ linux-2.6.38.2/arch/sparc/mm/hugetlbpage.c 2011-03-21 23:47:41.000000000 -0400
5624@@ -68,7 +68,7 @@ full_search: 5632@@ -68,7 +68,7 @@ full_search:
5625 } 5633 }
5626 return -ENOMEM; 5634 return -ENOMEM;
@@ -5680,9 +5688,9 @@ diff -urNp linux-2.6.38.3/arch/sparc/mm/hugetlbpage.c linux-2.6.38.3/arch/sparc/
5680 return addr; 5688 return addr;
5681 } 5689 }
5682 if (mm->get_unmapped_area == arch_get_unmapped_area) 5690 if (mm->get_unmapped_area == arch_get_unmapped_area)
5683diff -urNp linux-2.6.38.3/arch/sparc/mm/init_32.c linux-2.6.38.3/arch/sparc/mm/init_32.c 5691diff -urNp linux-2.6.38.2/arch/sparc/mm/init_32.c linux-2.6.38.2/arch/sparc/mm/init_32.c
5684--- linux-2.6.38.3/arch/sparc/mm/init_32.c 2011-03-14 21:20:32.000000000 -0400 5692--- linux-2.6.38.2/arch/sparc/mm/init_32.c 2011-03-14 21:20:32.000000000 -0400
5685+++ linux-2.6.38.3/arch/sparc/mm/init_32.c 2011-04-17 15:57:32.000000000 -0400 5693+++ linux-2.6.38.2/arch/sparc/mm/init_32.c 2011-03-21 18:31:35.000000000 -0400
5686@@ -318,6 +318,9 @@ extern void device_scan(void); 5694@@ -318,6 +318,9 @@ extern void device_scan(void);
5687 pgprot_t PAGE_SHARED __read_mostly; 5695 pgprot_t PAGE_SHARED __read_mostly;
5688 EXPORT_SYMBOL(PAGE_SHARED); 5696 EXPORT_SYMBOL(PAGE_SHARED);
@@ -5717,9 +5725,9 @@ diff -urNp linux-2.6.38.3/arch/sparc/mm/init_32.c linux-2.6.38.3/arch/sparc/mm/i
5717 protection_map[12] = PAGE_READONLY; 5725 protection_map[12] = PAGE_READONLY;
5718 protection_map[13] = PAGE_READONLY; 5726 protection_map[13] = PAGE_READONLY;
5719 protection_map[14] = PAGE_SHARED; 5727 protection_map[14] = PAGE_SHARED;
5720diff -urNp linux-2.6.38.3/arch/sparc/mm/Makefile linux-2.6.38.3/arch/sparc/mm/Makefile 5728diff -urNp linux-2.6.38.2/arch/sparc/mm/Makefile linux-2.6.38.2/arch/sparc/mm/Makefile
5721--- linux-2.6.38.3/arch/sparc/mm/Makefile 2011-03-14 21:20:32.000000000 -0400 5729--- linux-2.6.38.2/arch/sparc/mm/Makefile 2011-03-14 21:20:32.000000000 -0400
5722+++ linux-2.6.38.3/arch/sparc/mm/Makefile 2011-04-17 15:57:32.000000000 -0400 5730+++ linux-2.6.38.2/arch/sparc/mm/Makefile 2011-03-21 18:31:35.000000000 -0400
5723@@ -2,7 +2,7 @@ 5731@@ -2,7 +2,7 @@
5724 # 5732 #
5725 5733
@@ -5729,9 +5737,9 @@ diff -urNp linux-2.6.38.3/arch/sparc/mm/Makefile linux-2.6.38.3/arch/sparc/mm/Ma
5729 5737
5730 obj-$(CONFIG_SPARC64) += ultra.o tlb.o tsb.o 5738 obj-$(CONFIG_SPARC64) += ultra.o tlb.o tsb.o
5731 obj-y += fault_$(BITS).o 5739 obj-y += fault_$(BITS).o
5732diff -urNp linux-2.6.38.3/arch/sparc/mm/srmmu.c linux-2.6.38.3/arch/sparc/mm/srmmu.c 5740diff -urNp linux-2.6.38.2/arch/sparc/mm/srmmu.c linux-2.6.38.2/arch/sparc/mm/srmmu.c
5733--- linux-2.6.38.3/arch/sparc/mm/srmmu.c 2011-03-14 21:20:32.000000000 -0400 5741--- linux-2.6.38.2/arch/sparc/mm/srmmu.c 2011-03-14 21:20:32.000000000 -0400
5734+++ linux-2.6.38.3/arch/sparc/mm/srmmu.c 2011-04-17 15:57:32.000000000 -0400 5742+++ linux-2.6.38.2/arch/sparc/mm/srmmu.c 2011-03-21 18:31:35.000000000 -0400
5735@@ -2200,6 +2200,13 @@ void __init ld_mmu_srmmu(void) 5743@@ -2200,6 +2200,13 @@ void __init ld_mmu_srmmu(void)
5736 PAGE_SHARED = pgprot_val(SRMMU_PAGE_SHARED); 5744 PAGE_SHARED = pgprot_val(SRMMU_PAGE_SHARED);
5737 BTFIXUPSET_INT(page_copy, pgprot_val(SRMMU_PAGE_COPY)); 5745 BTFIXUPSET_INT(page_copy, pgprot_val(SRMMU_PAGE_COPY));
@@ -5746,9 +5754,9 @@ diff -urNp linux-2.6.38.3/arch/sparc/mm/srmmu.c linux-2.6.38.3/arch/sparc/mm/srm
5746 BTFIXUPSET_INT(page_kernel, pgprot_val(SRMMU_PAGE_KERNEL)); 5754 BTFIXUPSET_INT(page_kernel, pgprot_val(SRMMU_PAGE_KERNEL));
5747 page_kernel = pgprot_val(SRMMU_PAGE_KERNEL); 5755 page_kernel = pgprot_val(SRMMU_PAGE_KERNEL);
5748 5756
5749diff -urNp linux-2.6.38.3/arch/um/include/asm/kmap_types.h linux-2.6.38.3/arch/um/include/asm/kmap_types.h 5757diff -urNp linux-2.6.38.2/arch/um/include/asm/kmap_types.h linux-2.6.38.2/arch/um/include/asm/kmap_types.h
5750--- linux-2.6.38.3/arch/um/include/asm/kmap_types.h 2011-03-14 21:20:32.000000000 -0400 5758--- linux-2.6.38.2/arch/um/include/asm/kmap_types.h 2011-03-14 21:20:32.000000000 -0400
5751+++ linux-2.6.38.3/arch/um/include/asm/kmap_types.h 2011-04-17 15:57:32.000000000 -0400 5759+++ linux-2.6.38.2/arch/um/include/asm/kmap_types.h 2011-03-21 18:31:35.000000000 -0400
5752@@ -23,6 +23,7 @@ enum km_type { 5760@@ -23,6 +23,7 @@ enum km_type {
5753 KM_IRQ1, 5761 KM_IRQ1,
5754 KM_SOFTIRQ0, 5762 KM_SOFTIRQ0,
@@ -5757,9 +5765,9 @@ diff -urNp linux-2.6.38.3/arch/um/include/asm/kmap_types.h linux-2.6.38.3/arch/u
5757 KM_TYPE_NR 5765 KM_TYPE_NR
5758 }; 5766 };
5759 5767
5760diff -urNp linux-2.6.38.3/arch/um/include/asm/page.h linux-2.6.38.3/arch/um/include/asm/page.h 5768diff -urNp linux-2.6.38.2/arch/um/include/asm/page.h linux-2.6.38.2/arch/um/include/asm/page.h
5761--- linux-2.6.38.3/arch/um/include/asm/page.h 2011-03-14 21:20:32.000000000 -0400 5769--- linux-2.6.38.2/arch/um/include/asm/page.h 2011-03-14 21:20:32.000000000 -0400
5762+++ linux-2.6.38.3/arch/um/include/asm/page.h 2011-04-17 15:57:32.000000000 -0400 5770+++ linux-2.6.38.2/arch/um/include/asm/page.h 2011-03-21 18:31:35.000000000 -0400
5763@@ -14,6 +14,9 @@ 5771@@ -14,6 +14,9 @@
5764 #define PAGE_SIZE (_AC(1, UL) << PAGE_SHIFT) 5772 #define PAGE_SIZE (_AC(1, UL) << PAGE_SHIFT)
5765 #define PAGE_MASK (~(PAGE_SIZE-1)) 5773 #define PAGE_MASK (~(PAGE_SIZE-1))
@@ -5770,9 +5778,9 @@ diff -urNp linux-2.6.38.3/arch/um/include/asm/page.h linux-2.6.38.3/arch/um/incl
5770 #ifndef __ASSEMBLY__ 5778 #ifndef __ASSEMBLY__
5771 5779
5772 struct page; 5780 struct page;
5773diff -urNp linux-2.6.38.3/arch/um/kernel/process.c linux-2.6.38.3/arch/um/kernel/process.c 5781diff -urNp linux-2.6.38.2/arch/um/kernel/process.c linux-2.6.38.2/arch/um/kernel/process.c
5774--- linux-2.6.38.3/arch/um/kernel/process.c 2011-03-14 21:20:32.000000000 -0400 5782--- linux-2.6.38.2/arch/um/kernel/process.c 2011-03-14 21:20:32.000000000 -0400
5775+++ linux-2.6.38.3/arch/um/kernel/process.c 2011-04-17 15:57:32.000000000 -0400 5783+++ linux-2.6.38.2/arch/um/kernel/process.c 2011-03-21 18:31:35.000000000 -0400
5776@@ -404,22 +404,6 @@ int singlestepping(void * t) 5784@@ -404,22 +404,6 @@ int singlestepping(void * t)
5777 return 2; 5785 return 2;
5778 } 5786 }
@@ -5796,9 +5804,9 @@ diff -urNp linux-2.6.38.3/arch/um/kernel/process.c linux-2.6.38.3/arch/um/kernel
5796 unsigned long get_wchan(struct task_struct *p) 5804 unsigned long get_wchan(struct task_struct *p)
5797 { 5805 {
5798 unsigned long stack_page, sp, ip; 5806 unsigned long stack_page, sp, ip;
5799diff -urNp linux-2.6.38.3/arch/um/sys-i386/syscalls.c linux-2.6.38.3/arch/um/sys-i386/syscalls.c 5807diff -urNp linux-2.6.38.2/arch/um/sys-i386/syscalls.c linux-2.6.38.2/arch/um/sys-i386/syscalls.c
5800--- linux-2.6.38.3/arch/um/sys-i386/syscalls.c 2011-03-14 21:20:32.000000000 -0400 5808--- linux-2.6.38.2/arch/um/sys-i386/syscalls.c 2011-03-14 21:20:32.000000000 -0400
5801+++ linux-2.6.38.3/arch/um/sys-i386/syscalls.c 2011-04-17 15:57:32.000000000 -0400 5809+++ linux-2.6.38.2/arch/um/sys-i386/syscalls.c 2011-03-21 18:31:35.000000000 -0400
5802@@ -11,6 +11,21 @@ 5810@@ -11,6 +11,21 @@
5803 #include "asm/uaccess.h" 5811 #include "asm/uaccess.h"
5804 #include "asm/unistd.h" 5812 #include "asm/unistd.h"
@@ -5821,9 +5829,9 @@ diff -urNp linux-2.6.38.3/arch/um/sys-i386/syscalls.c linux-2.6.38.3/arch/um/sys
5821 /* 5829 /*
5822 * The prototype on i386 is: 5830 * The prototype on i386 is:
5823 * 5831 *
5824diff -urNp linux-2.6.38.3/arch/x86/boot/bitops.h linux-2.6.38.3/arch/x86/boot/bitops.h 5832diff -urNp linux-2.6.38.2/arch/x86/boot/bitops.h linux-2.6.38.2/arch/x86/boot/bitops.h
5825--- linux-2.6.38.3/arch/x86/boot/bitops.h 2011-03-14 21:20:32.000000000 -0400 5833--- linux-2.6.38.2/arch/x86/boot/bitops.h 2011-03-14 21:20:32.000000000 -0400
5826+++ linux-2.6.38.3/arch/x86/boot/bitops.h 2011-04-17 15:57:32.000000000 -0400 5834+++ linux-2.6.38.2/arch/x86/boot/bitops.h 2011-03-21 18:31:35.000000000 -0400
5827@@ -26,7 +26,7 @@ static inline int variable_test_bit(int 5835@@ -26,7 +26,7 @@ static inline int variable_test_bit(int
5828 u8 v; 5836 u8 v;
5829 const u32 *p = (const u32 *)addr; 5837 const u32 *p = (const u32 *)addr;
@@ -5842,9 +5850,9 @@ diff -urNp linux-2.6.38.3/arch/x86/boot/bitops.h linux-2.6.38.3/arch/x86/boot/bi
5842 } 5850 }
5843 5851
5844 #endif /* BOOT_BITOPS_H */ 5852 #endif /* BOOT_BITOPS_H */
5845diff -urNp linux-2.6.38.3/arch/x86/boot/boot.h linux-2.6.38.3/arch/x86/boot/boot.h 5853diff -urNp linux-2.6.38.2/arch/x86/boot/boot.h linux-2.6.38.2/arch/x86/boot/boot.h
5846--- linux-2.6.38.3/arch/x86/boot/boot.h 2011-03-14 21:20:32.000000000 -0400 5854--- linux-2.6.38.2/arch/x86/boot/boot.h 2011-03-14 21:20:32.000000000 -0400
5847+++ linux-2.6.38.3/arch/x86/boot/boot.h 2011-04-17 15:57:32.000000000 -0400 5855+++ linux-2.6.38.2/arch/x86/boot/boot.h 2011-03-21 18:31:35.000000000 -0400
5848@@ -85,7 +85,7 @@ static inline void io_delay(void) 5856@@ -85,7 +85,7 @@ static inline void io_delay(void)
5849 static inline u16 ds(void) 5857 static inline u16 ds(void)
5850 { 5858 {
@@ -5863,9 +5871,9 @@ diff -urNp linux-2.6.38.3/arch/x86/boot/boot.h linux-2.6.38.3/arch/x86/boot/boot
5863 : "=qm" (diff), "+D" (s1), "+S" (s2), "+c" (len)); 5871 : "=qm" (diff), "+D" (s1), "+S" (s2), "+c" (len));
5864 return diff; 5872 return diff;
5865 } 5873 }
5866diff -urNp linux-2.6.38.3/arch/x86/boot/compressed/head_32.S linux-2.6.38.3/arch/x86/boot/compressed/head_32.S 5874diff -urNp linux-2.6.38.2/arch/x86/boot/compressed/head_32.S linux-2.6.38.2/arch/x86/boot/compressed/head_32.S
5867--- linux-2.6.38.3/arch/x86/boot/compressed/head_32.S 2011-03-14 21:20:32.000000000 -0400 5875--- linux-2.6.38.2/arch/x86/boot/compressed/head_32.S 2011-03-14 21:20:32.000000000 -0400
5868+++ linux-2.6.38.3/arch/x86/boot/compressed/head_32.S 2011-04-17 15:57:32.000000000 -0400 5876+++ linux-2.6.38.2/arch/x86/boot/compressed/head_32.S 2011-03-21 18:31:35.000000000 -0400
5869@@ -76,7 +76,7 @@ ENTRY(startup_32) 5877@@ -76,7 +76,7 @@ ENTRY(startup_32)
5870 notl %eax 5878 notl %eax
5871 andl %eax, %ebx 5879 andl %eax, %ebx
@@ -5894,9 +5902,9 @@ diff -urNp linux-2.6.38.3/arch/x86/boot/compressed/head_32.S linux-2.6.38.3/arch
5894 addl %ebx, -__PAGE_OFFSET(%ebx, %ecx) 5902 addl %ebx, -__PAGE_OFFSET(%ebx, %ecx)
5895 jmp 1b 5903 jmp 1b
5896 2: 5904 2:
5897diff -urNp linux-2.6.38.3/arch/x86/boot/compressed/head_64.S linux-2.6.38.3/arch/x86/boot/compressed/head_64.S 5905diff -urNp linux-2.6.38.2/arch/x86/boot/compressed/head_64.S linux-2.6.38.2/arch/x86/boot/compressed/head_64.S
5898--- linux-2.6.38.3/arch/x86/boot/compressed/head_64.S 2011-03-14 21:20:32.000000000 -0400 5906--- linux-2.6.38.2/arch/x86/boot/compressed/head_64.S 2011-03-14 21:20:32.000000000 -0400
5899+++ linux-2.6.38.3/arch/x86/boot/compressed/head_64.S 2011-04-17 15:57:32.000000000 -0400 5907+++ linux-2.6.38.2/arch/x86/boot/compressed/head_64.S 2011-03-21 18:31:35.000000000 -0400
5900@@ -91,7 +91,7 @@ ENTRY(startup_32) 5908@@ -91,7 +91,7 @@ ENTRY(startup_32)
5901 notl %eax 5909 notl %eax
5902 andl %eax, %ebx 5910 andl %eax, %ebx
@@ -5915,9 +5923,9 @@ diff -urNp linux-2.6.38.3/arch/x86/boot/compressed/head_64.S linux-2.6.38.3/arch
5915 #endif 5923 #endif
5916 5924
5917 /* Target address to relocate to for decompression */ 5925 /* Target address to relocate to for decompression */
5918diff -urNp linux-2.6.38.3/arch/x86/boot/compressed/misc.c linux-2.6.38.3/arch/x86/boot/compressed/misc.c 5926diff -urNp linux-2.6.38.2/arch/x86/boot/compressed/misc.c linux-2.6.38.2/arch/x86/boot/compressed/misc.c
5919--- linux-2.6.38.3/arch/x86/boot/compressed/misc.c 2011-03-14 21:20:32.000000000 -0400 5927--- linux-2.6.38.2/arch/x86/boot/compressed/misc.c 2011-03-14 21:20:32.000000000 -0400
5920+++ linux-2.6.38.3/arch/x86/boot/compressed/misc.c 2011-04-17 15:57:32.000000000 -0400 5928+++ linux-2.6.38.2/arch/x86/boot/compressed/misc.c 2011-03-21 18:31:35.000000000 -0400
5921@@ -310,7 +310,7 @@ static void parse_elf(void *output) 5929@@ -310,7 +310,7 @@ static void parse_elf(void *output)
5922 case PT_LOAD: 5930 case PT_LOAD:
5923 #ifdef CONFIG_RELOCATABLE 5931 #ifdef CONFIG_RELOCATABLE
@@ -5936,9 +5944,9 @@ diff -urNp linux-2.6.38.3/arch/x86/boot/compressed/misc.c linux-2.6.38.3/arch/x8
5936 error("Wrong destination address"); 5944 error("Wrong destination address");
5937 #endif 5945 #endif
5938 5946
5939diff -urNp linux-2.6.38.3/arch/x86/boot/compressed/relocs.c linux-2.6.38.3/arch/x86/boot/compressed/relocs.c 5947diff -urNp linux-2.6.38.2/arch/x86/boot/compressed/relocs.c linux-2.6.38.2/arch/x86/boot/compressed/relocs.c
5940--- linux-2.6.38.3/arch/x86/boot/compressed/relocs.c 2011-03-14 21:20:32.000000000 -0400 5948--- linux-2.6.38.2/arch/x86/boot/compressed/relocs.c 2011-03-14 21:20:32.000000000 -0400
5941+++ linux-2.6.38.3/arch/x86/boot/compressed/relocs.c 2011-04-17 15:57:32.000000000 -0400 5949+++ linux-2.6.38.2/arch/x86/boot/compressed/relocs.c 2011-03-21 18:31:35.000000000 -0400
5942@@ -13,8 +13,11 @@ 5950@@ -13,8 +13,11 @@
5943 5951
5944 static void die(char *fmt, ...); 5952 static void die(char *fmt, ...);
@@ -6131,9 +6139,9 @@ diff -urNp linux-2.6.38.3/arch/x86/boot/compressed/relocs.c linux-2.6.38.3/arch/
6131 read_shdrs(fp); 6139 read_shdrs(fp);
6132 read_strtabs(fp); 6140 read_strtabs(fp);
6133 read_symtabs(fp); 6141 read_symtabs(fp);
6134diff -urNp linux-2.6.38.3/arch/x86/boot/cpucheck.c linux-2.6.38.3/arch/x86/boot/cpucheck.c 6142diff -urNp linux-2.6.38.2/arch/x86/boot/cpucheck.c linux-2.6.38.2/arch/x86/boot/cpucheck.c
6135--- linux-2.6.38.3/arch/x86/boot/cpucheck.c 2011-03-14 21:20:32.000000000 -0400 6143--- linux-2.6.38.2/arch/x86/boot/cpucheck.c 2011-03-14 21:20:32.000000000 -0400
6136+++ linux-2.6.38.3/arch/x86/boot/cpucheck.c 2011-04-17 15:57:32.000000000 -0400 6144+++ linux-2.6.38.2/arch/x86/boot/cpucheck.c 2011-03-21 18:31:35.000000000 -0400
6137@@ -74,7 +74,7 @@ static int has_fpu(void) 6145@@ -74,7 +74,7 @@ static int has_fpu(void)
6138 u16 fcw = -1, fsw = -1; 6146 u16 fcw = -1, fsw = -1;
6139 u32 cr0; 6147 u32 cr0;
@@ -6229,9 +6237,9 @@ diff -urNp linux-2.6.38.3/arch/x86/boot/cpucheck.c linux-2.6.38.3/arch/x86/boot/
6229 6237
6230 err = check_flags(); 6238 err = check_flags();
6231 } 6239 }
6232diff -urNp linux-2.6.38.3/arch/x86/boot/header.S linux-2.6.38.3/arch/x86/boot/header.S 6240diff -urNp linux-2.6.38.2/arch/x86/boot/header.S linux-2.6.38.2/arch/x86/boot/header.S
6233--- linux-2.6.38.3/arch/x86/boot/header.S 2011-03-14 21:20:32.000000000 -0400 6241--- linux-2.6.38.2/arch/x86/boot/header.S 2011-03-14 21:20:32.000000000 -0400
6234+++ linux-2.6.38.3/arch/x86/boot/header.S 2011-04-17 15:57:32.000000000 -0400 6242+++ linux-2.6.38.2/arch/x86/boot/header.S 2011-03-21 18:31:35.000000000 -0400
6235@@ -224,7 +224,7 @@ setup_data: .quad 0 # 64-bit physical 6243@@ -224,7 +224,7 @@ setup_data: .quad 0 # 64-bit physical
6236 # single linked list of 6244 # single linked list of
6237 # struct setup_data 6245 # struct setup_data
@@ -6241,9 +6249,9 @@ diff -urNp linux-2.6.38.3/arch/x86/boot/header.S linux-2.6.38.3/arch/x86/boot/he
6241 6249
6242 #define ZO_INIT_SIZE (ZO__end - ZO_startup_32 + ZO_z_extract_offset) 6250 #define ZO_INIT_SIZE (ZO__end - ZO_startup_32 + ZO_z_extract_offset)
6243 #define VO_INIT_SIZE (VO__end - VO__text) 6251 #define VO_INIT_SIZE (VO__end - VO__text)
6244diff -urNp linux-2.6.38.3/arch/x86/boot/memory.c linux-2.6.38.3/arch/x86/boot/memory.c 6252diff -urNp linux-2.6.38.2/arch/x86/boot/memory.c linux-2.6.38.2/arch/x86/boot/memory.c
6245--- linux-2.6.38.3/arch/x86/boot/memory.c 2011-03-14 21:20:32.000000000 -0400 6253--- linux-2.6.38.2/arch/x86/boot/memory.c 2011-03-14 21:20:32.000000000 -0400
6246+++ linux-2.6.38.3/arch/x86/boot/memory.c 2011-04-17 15:57:32.000000000 -0400 6254+++ linux-2.6.38.2/arch/x86/boot/memory.c 2011-03-21 18:31:35.000000000 -0400
6247@@ -19,7 +19,7 @@ 6255@@ -19,7 +19,7 @@
6248 6256
6249 static int detect_memory_e820(void) 6257 static int detect_memory_e820(void)
@@ -6253,9 +6261,9 @@ diff -urNp linux-2.6.38.3/arch/x86/boot/memory.c linux-2.6.38.3/arch/x86/boot/me
6253 struct biosregs ireg, oreg; 6261 struct biosregs ireg, oreg;
6254 struct e820entry *desc = boot_params.e820_map; 6262 struct e820entry *desc = boot_params.e820_map;
6255 static struct e820entry buf; /* static so it is zeroed */ 6263 static struct e820entry buf; /* static so it is zeroed */
6256diff -urNp linux-2.6.38.3/arch/x86/boot/video.c linux-2.6.38.3/arch/x86/boot/video.c 6264diff -urNp linux-2.6.38.2/arch/x86/boot/video.c linux-2.6.38.2/arch/x86/boot/video.c
6257--- linux-2.6.38.3/arch/x86/boot/video.c 2011-03-14 21:20:32.000000000 -0400 6265--- linux-2.6.38.2/arch/x86/boot/video.c 2011-03-14 21:20:32.000000000 -0400
6258+++ linux-2.6.38.3/arch/x86/boot/video.c 2011-04-17 15:57:32.000000000 -0400 6266+++ linux-2.6.38.2/arch/x86/boot/video.c 2011-03-21 18:31:35.000000000 -0400
6259@@ -96,7 +96,7 @@ static void store_mode_params(void) 6267@@ -96,7 +96,7 @@ static void store_mode_params(void)
6260 static unsigned int get_entry(void) 6268 static unsigned int get_entry(void)
6261 { 6269 {
@@ -6265,9 +6273,9 @@ diff -urNp linux-2.6.38.3/arch/x86/boot/video.c linux-2.6.38.3/arch/x86/boot/vid
6265 int key; 6273 int key;
6266 unsigned int v; 6274 unsigned int v;
6267 6275
6268diff -urNp linux-2.6.38.3/arch/x86/boot/video-vesa.c linux-2.6.38.3/arch/x86/boot/video-vesa.c 6276diff -urNp linux-2.6.38.2/arch/x86/boot/video-vesa.c linux-2.6.38.2/arch/x86/boot/video-vesa.c
6269--- linux-2.6.38.3/arch/x86/boot/video-vesa.c 2011-03-14 21:20:32.000000000 -0400 6277--- linux-2.6.38.2/arch/x86/boot/video-vesa.c 2011-03-14 21:20:32.000000000 -0400
6270+++ linux-2.6.38.3/arch/x86/boot/video-vesa.c 2011-04-17 15:57:32.000000000 -0400 6278+++ linux-2.6.38.2/arch/x86/boot/video-vesa.c 2011-03-21 18:31:35.000000000 -0400
6271@@ -200,6 +200,7 @@ static void vesa_store_pm_info(void) 6279@@ -200,6 +200,7 @@ static void vesa_store_pm_info(void)
6272 6280
6273 boot_params.screen_info.vesapm_seg = oreg.es; 6281 boot_params.screen_info.vesapm_seg = oreg.es;
@@ -6276,9 +6284,9 @@ diff -urNp linux-2.6.38.3/arch/x86/boot/video-vesa.c linux-2.6.38.3/arch/x86/boo
6276 } 6284 }
6277 6285
6278 /* 6286 /*
6279diff -urNp linux-2.6.38.3/arch/x86/ia32/ia32_aout.c linux-2.6.38.3/arch/x86/ia32/ia32_aout.c 6287diff -urNp linux-2.6.38.2/arch/x86/ia32/ia32_aout.c linux-2.6.38.2/arch/x86/ia32/ia32_aout.c
6280--- linux-2.6.38.3/arch/x86/ia32/ia32_aout.c 2011-03-14 21:20:32.000000000 -0400 6288--- linux-2.6.38.2/arch/x86/ia32/ia32_aout.c 2011-03-14 21:20:32.000000000 -0400
6281+++ linux-2.6.38.3/arch/x86/ia32/ia32_aout.c 2011-04-17 15:57:32.000000000 -0400 6289+++ linux-2.6.38.2/arch/x86/ia32/ia32_aout.c 2011-03-21 18:31:35.000000000 -0400
6282@@ -162,6 +162,8 @@ static int aout_core_dump(long signr, st 6290@@ -162,6 +162,8 @@ static int aout_core_dump(long signr, st
6283 unsigned long dump_start, dump_size; 6291 unsigned long dump_start, dump_size;
6284 struct user32 dump; 6292 struct user32 dump;
@@ -6288,9 +6296,9 @@ diff -urNp linux-2.6.38.3/arch/x86/ia32/ia32_aout.c linux-2.6.38.3/arch/x86/ia32
6288 fs = get_fs(); 6296 fs = get_fs();
6289 set_fs(KERNEL_DS); 6297 set_fs(KERNEL_DS);
6290 has_dumped = 1; 6298 has_dumped = 1;
6291diff -urNp linux-2.6.38.3/arch/x86/ia32/ia32entry.S linux-2.6.38.3/arch/x86/ia32/ia32entry.S 6299diff -urNp linux-2.6.38.2/arch/x86/ia32/ia32entry.S linux-2.6.38.2/arch/x86/ia32/ia32entry.S
6292--- linux-2.6.38.3/arch/x86/ia32/ia32entry.S 2011-03-14 21:20:32.000000000 -0400 6300--- linux-2.6.38.2/arch/x86/ia32/ia32entry.S 2011-03-14 21:20:32.000000000 -0400
6293+++ linux-2.6.38.3/arch/x86/ia32/ia32entry.S 2011-04-17 15:57:32.000000000 -0400 6301+++ linux-2.6.38.2/arch/x86/ia32/ia32entry.S 2011-03-21 18:31:35.000000000 -0400
6294@@ -13,6 +13,7 @@ 6302@@ -13,6 +13,7 @@
6295 #include <asm/thread_info.h> 6303 #include <asm/thread_info.h>
6296 #include <asm/segment.h> 6304 #include <asm/segment.h>
@@ -6299,7 +6307,7 @@ diff -urNp linux-2.6.38.3/arch/x86/ia32/ia32entry.S linux-2.6.38.3/arch/x86/ia32
6299 #include <linux/linkage.h> 6307 #include <linux/linkage.h>
6300 6308
6301 /* Avoid __ASSEMBLER__'ifying <linux/audit.h> just for this. */ 6309 /* Avoid __ASSEMBLER__'ifying <linux/audit.h> just for this. */
6302@@ -93,6 +94,23 @@ ENTRY(native_irq_enable_sysexit) 6310@@ -93,6 +94,18 @@ ENTRY(native_irq_enable_sysexit)
6303 ENDPROC(native_irq_enable_sysexit) 6311 ENDPROC(native_irq_enable_sysexit)
6304 #endif 6312 #endif
6305 6313
@@ -6313,36 +6321,20 @@ diff -urNp linux-2.6.38.3/arch/x86/ia32/ia32entry.S linux-2.6.38.3/arch/x86/ia32
6313+#ifdef CONFIG_PAX_MEMORY_UDEREF 6321+#ifdef CONFIG_PAX_MEMORY_UDEREF
6314+ call pax_exit_kernel_user 6322+ call pax_exit_kernel_user
6315+#endif 6323+#endif
6316+#ifdef CONFIG_PAX_RANDKSTACK
6317+ push %rax
6318+ call pax_randomize_kstack
6319+ pop %rax
6320+#endif
6321+ .endm 6324+ .endm
6322+ 6325+
6323 /* 6326 /*
6324 * 32bit SYSENTER instruction entry. 6327 * 32bit SYSENTER instruction entry.
6325 * 6328 *
6326@@ -119,7 +137,7 @@ ENTRY(ia32_sysenter_target) 6329@@ -120,6 +133,7 @@ ENTRY(ia32_sysenter_target)
6327 CFI_REGISTER rsp,rbp
6328 SWAPGS_UNSAFE_STACK 6330 SWAPGS_UNSAFE_STACK
6329 movq PER_CPU_VAR(kernel_stack), %rsp 6331 movq PER_CPU_VAR(kernel_stack), %rsp
6330- addq $(KERNEL_STACK_OFFSET),%rsp 6332 addq $(KERNEL_STACK_OFFSET),%rsp
6331+ pax_enter_kernel_user 6333+ pax_enter_kernel_user
6332 /* 6334 /*
6333 * No need to follow this irqs on/off section: the syscall 6335 * No need to follow this irqs on/off section: the syscall
6334 * disabled irqs, here we enable it straight after entry: 6336 * disabled irqs, here we enable it straight after entry:
6335@@ -135,7 +153,8 @@ ENTRY(ia32_sysenter_target) 6337@@ -150,6 +164,12 @@ ENTRY(ia32_sysenter_target)
6336 pushfq
6337 CFI_ADJUST_CFA_OFFSET 8
6338 /*CFI_REL_OFFSET rflags,0*/
6339- movl 8*3-THREAD_SIZE+TI_sysenter_return(%rsp), %r10d
6340+ GET_THREAD_INFO(%r10)
6341+ movl TI_sysenter_return(%r10), %r10d
6342 CFI_REGISTER rip,r10
6343 pushq $__USER32_CS
6344 CFI_ADJUST_CFA_OFFSET 8
6345@@ -150,6 +169,12 @@ ENTRY(ia32_sysenter_target)
6346 SAVE_ARGS 0,0,1 6338 SAVE_ARGS 0,0,1
6347 /* no need to do an access_ok check here because rbp has been 6339 /* no need to do an access_ok check here because rbp has been
6348 32bit zero extended */ 6340 32bit zero extended */
@@ -6355,7 +6347,7 @@ diff -urNp linux-2.6.38.3/arch/x86/ia32/ia32entry.S linux-2.6.38.3/arch/x86/ia32
6355 1: movl (%rbp),%ebp 6347 1: movl (%rbp),%ebp
6356 .section __ex_table,"a" 6348 .section __ex_table,"a"
6357 .quad 1b,ia32_badarg 6349 .quad 1b,ia32_badarg
6358@@ -172,6 +197,7 @@ sysenter_dispatch: 6350@@ -172,6 +192,7 @@ sysenter_dispatch:
6359 testl $_TIF_ALLWORK_MASK,TI_flags(%r10) 6351 testl $_TIF_ALLWORK_MASK,TI_flags(%r10)
6360 jnz sysexit_audit 6352 jnz sysexit_audit
6361 sysexit_from_sys_call: 6353 sysexit_from_sys_call:
@@ -6363,15 +6355,7 @@ diff -urNp linux-2.6.38.3/arch/x86/ia32/ia32entry.S linux-2.6.38.3/arch/x86/ia32
6363 andl $~TS_COMPAT,TI_status(%r10) 6355 andl $~TS_COMPAT,TI_status(%r10)
6364 /* clear IF, that popfq doesn't enable interrupts early */ 6356 /* clear IF, that popfq doesn't enable interrupts early */
6365 andl $~0x200,EFLAGS-R11(%rsp) 6357 andl $~0x200,EFLAGS-R11(%rsp)
6366@@ -283,19 +309,24 @@ ENDPROC(ia32_sysenter_target) 6358@@ -290,6 +311,11 @@ ENTRY(ia32_cstar_target)
6367 ENTRY(ia32_cstar_target)
6368 CFI_STARTPROC32 simple
6369 CFI_SIGNAL_FRAME
6370- CFI_DEF_CFA rsp,KERNEL_STACK_OFFSET
6371+ CFI_DEF_CFA rsp,0
6372 CFI_REGISTER rip,rcx
6373 /*CFI_REGISTER rflags,r11*/
6374 SWAPGS_UNSAFE_STACK
6375 movl %esp,%r8d 6359 movl %esp,%r8d
6376 CFI_REGISTER rsp,r8 6360 CFI_REGISTER rsp,r8
6377 movq PER_CPU_VAR(kernel_stack),%rsp 6361 movq PER_CPU_VAR(kernel_stack),%rsp
@@ -6383,14 +6367,7 @@ diff -urNp linux-2.6.38.3/arch/x86/ia32/ia32entry.S linux-2.6.38.3/arch/x86/ia32
6383 /* 6367 /*
6384 * No need to follow this irqs on/off section: the syscall 6368 * No need to follow this irqs on/off section: the syscall
6385 * disabled irqs and here we enable it straight after entry: 6369 * disabled irqs and here we enable it straight after entry:
6386 */ 6370@@ -311,6 +337,12 @@ ENTRY(ia32_cstar_target)
6387 ENABLE_INTERRUPTS(CLBR_NONE)
6388- SAVE_ARGS 8,1,1
6389+ SAVE_ARGS 8*6,1,1
6390 movl %eax,%eax /* zero extension */
6391 movq %rax,ORIG_RAX-ARGOFFSET(%rsp)
6392 movq %rcx,RIP-ARGOFFSET(%rsp)
6393@@ -311,6 +342,12 @@ ENTRY(ia32_cstar_target)
6394 /* no need to do an access_ok check here because r8 has been 6371 /* no need to do an access_ok check here because r8 has been
6395 32bit zero extended */ 6372 32bit zero extended */
6396 /* hardware stack frame is complete now */ 6373 /* hardware stack frame is complete now */
@@ -6403,16 +6380,7 @@ diff -urNp linux-2.6.38.3/arch/x86/ia32/ia32entry.S linux-2.6.38.3/arch/x86/ia32
6403 1: movl (%r8),%r9d 6380 1: movl (%r8),%r9d
6404 .section __ex_table,"a" 6381 .section __ex_table,"a"
6405 .quad 1b,ia32_badarg 6382 .quad 1b,ia32_badarg
6406@@ -323,7 +360,7 @@ ENTRY(ia32_cstar_target) 6383@@ -333,6 +365,7 @@ cstar_dispatch:
6407 cmpq $IA32_NR_syscalls-1,%rax
6408 ja ia32_badsys
6409 cstar_do_call:
6410- IA32_ARG_FIXUP 1
6411+ IA32_ARG_FIXUP 0
6412 cstar_dispatch:
6413 call *ia32_sys_call_table(,%rax,8)
6414 movq %rax,RAX-ARGOFFSET(%rsp)
6415@@ -333,6 +370,7 @@ cstar_dispatch:
6416 testl $_TIF_ALLWORK_MASK,TI_flags(%r10) 6384 testl $_TIF_ALLWORK_MASK,TI_flags(%r10)
6417 jnz sysretl_audit 6385 jnz sysretl_audit
6418 sysretl_from_sys_call: 6386 sysretl_from_sys_call:
@@ -6420,7 +6388,7 @@ diff -urNp linux-2.6.38.3/arch/x86/ia32/ia32entry.S linux-2.6.38.3/arch/x86/ia32
6420 andl $~TS_COMPAT,TI_status(%r10) 6388 andl $~TS_COMPAT,TI_status(%r10)
6421 RESTORE_ARGS 1,-ARG_SKIP,1,1,1 6389 RESTORE_ARGS 1,-ARG_SKIP,1,1,1
6422 movl RIP-ARGOFFSET(%rsp),%ecx 6390 movl RIP-ARGOFFSET(%rsp),%ecx
6423@@ -415,6 +453,7 @@ ENTRY(ia32_syscall) 6391@@ -415,6 +448,7 @@ ENTRY(ia32_syscall)
6424 CFI_REL_OFFSET rip,RIP-RIP 6392 CFI_REL_OFFSET rip,RIP-RIP
6425 PARAVIRT_ADJUST_EXCEPTION_FRAME 6393 PARAVIRT_ADJUST_EXCEPTION_FRAME
6426 SWAPGS 6394 SWAPGS
@@ -6428,9 +6396,9 @@ diff -urNp linux-2.6.38.3/arch/x86/ia32/ia32entry.S linux-2.6.38.3/arch/x86/ia32
6428 /* 6396 /*
6429 * No need to follow this irqs on/off section: the syscall 6397 * No need to follow this irqs on/off section: the syscall
6430 * disabled irqs and here we enable it straight after entry: 6398 * disabled irqs and here we enable it straight after entry:
6431diff -urNp linux-2.6.38.3/arch/x86/ia32/ia32_signal.c linux-2.6.38.3/arch/x86/ia32/ia32_signal.c 6399diff -urNp linux-2.6.38.2/arch/x86/ia32/ia32_signal.c linux-2.6.38.2/arch/x86/ia32/ia32_signal.c
6432--- linux-2.6.38.3/arch/x86/ia32/ia32_signal.c 2011-03-14 21:20:32.000000000 -0400 6400--- linux-2.6.38.2/arch/x86/ia32/ia32_signal.c 2011-03-14 21:20:32.000000000 -0400
6433+++ linux-2.6.38.3/arch/x86/ia32/ia32_signal.c 2011-04-17 15:57:32.000000000 -0400 6401+++ linux-2.6.38.2/arch/x86/ia32/ia32_signal.c 2011-03-21 18:31:35.000000000 -0400
6434@@ -403,7 +403,7 @@ static void __user *get_sigframe(struct 6402@@ -403,7 +403,7 @@ static void __user *get_sigframe(struct
6435 sp -= frame_size; 6403 sp -= frame_size;
6436 /* Align the stack pointer according to the i386 ABI, 6404 /* Align the stack pointer according to the i386 ABI,
@@ -6480,9 +6448,9 @@ diff -urNp linux-2.6.38.3/arch/x86/ia32/ia32_signal.c linux-2.6.38.3/arch/x86/ia
6480 } put_user_catch(err); 6448 } put_user_catch(err);
6481 6449
6482 if (err) 6450 if (err)
6483diff -urNp linux-2.6.38.3/arch/x86/include/asm/alternative.h linux-2.6.38.3/arch/x86/include/asm/alternative.h 6451diff -urNp linux-2.6.38.2/arch/x86/include/asm/alternative.h linux-2.6.38.2/arch/x86/include/asm/alternative.h
6484--- linux-2.6.38.3/arch/x86/include/asm/alternative.h 2011-03-14 21:20:32.000000000 -0400 6452--- linux-2.6.38.2/arch/x86/include/asm/alternative.h 2011-03-14 21:20:32.000000000 -0400
6485+++ linux-2.6.38.3/arch/x86/include/asm/alternative.h 2011-04-17 15:57:32.000000000 -0400 6453+++ linux-2.6.38.2/arch/x86/include/asm/alternative.h 2011-03-21 18:31:35.000000000 -0400
6486@@ -94,7 +94,7 @@ static inline int alternatives_text_rese 6454@@ -94,7 +94,7 @@ static inline int alternatives_text_rese
6487 ".section .discard,\"aw\",@progbits\n" \ 6455 ".section .discard,\"aw\",@progbits\n" \
6488 " .byte 0xff + (664f-663f) - (662b-661b)\n" /* rlen <= slen */ \ 6456 " .byte 0xff + (664f-663f) - (662b-661b)\n" /* rlen <= slen */ \
@@ -6492,9 +6460,9 @@ diff -urNp linux-2.6.38.3/arch/x86/include/asm/alternative.h linux-2.6.38.3/arch
6492 "663:\n\t" newinstr "\n664:\n" /* replacement */ \ 6460 "663:\n\t" newinstr "\n664:\n" /* replacement */ \
6493 ".previous" 6461 ".previous"
6494 6462
6495diff -urNp linux-2.6.38.3/arch/x86/include/asm/apm.h linux-2.6.38.3/arch/x86/include/asm/apm.h 6463diff -urNp linux-2.6.38.2/arch/x86/include/asm/apm.h linux-2.6.38.2/arch/x86/include/asm/apm.h
6496--- linux-2.6.38.3/arch/x86/include/asm/apm.h 2011-03-14 21:20:32.000000000 -0400 6464--- linux-2.6.38.2/arch/x86/include/asm/apm.h 2011-03-14 21:20:32.000000000 -0400
6497+++ linux-2.6.38.3/arch/x86/include/asm/apm.h 2011-04-17 15:57:32.000000000 -0400 6465+++ linux-2.6.38.2/arch/x86/include/asm/apm.h 2011-03-21 18:31:35.000000000 -0400
6498@@ -34,7 +34,7 @@ static inline void apm_bios_call_asm(u32 6466@@ -34,7 +34,7 @@ static inline void apm_bios_call_asm(u32
6499 __asm__ __volatile__(APM_DO_ZERO_SEGS 6467 __asm__ __volatile__(APM_DO_ZERO_SEGS
6500 "pushl %%edi\n\t" 6468 "pushl %%edi\n\t"
@@ -6513,9 +6481,9 @@ diff -urNp linux-2.6.38.3/arch/x86/include/asm/apm.h linux-2.6.38.3/arch/x86/inc
6513 "setc %%bl\n\t" 6481 "setc %%bl\n\t"
6514 "popl %%ebp\n\t" 6482 "popl %%ebp\n\t"
6515 "popl %%edi\n\t" 6483 "popl %%edi\n\t"
6516diff -urNp linux-2.6.38.3/arch/x86/include/asm/atomic64_32.h linux-2.6.38.3/arch/x86/include/asm/atomic64_32.h 6484diff -urNp linux-2.6.38.2/arch/x86/include/asm/atomic64_32.h linux-2.6.38.2/arch/x86/include/asm/atomic64_32.h
6517--- linux-2.6.38.3/arch/x86/include/asm/atomic64_32.h 2011-03-14 21:20:32.000000000 -0400 6485--- linux-2.6.38.2/arch/x86/include/asm/atomic64_32.h 2011-03-14 21:20:32.000000000 -0400
6518+++ linux-2.6.38.3/arch/x86/include/asm/atomic64_32.h 2011-04-17 15:57:32.000000000 -0400 6486+++ linux-2.6.38.2/arch/x86/include/asm/atomic64_32.h 2011-03-21 18:31:35.000000000 -0400
6519@@ -12,6 +12,14 @@ typedef struct { 6487@@ -12,6 +12,14 @@ typedef struct {
6520 u64 __aligned(8) counter; 6488 u64 __aligned(8) counter;
6521 } atomic64_t; 6489 } atomic64_t;
@@ -6531,9 +6499,9 @@ diff -urNp linux-2.6.38.3/arch/x86/include/asm/atomic64_32.h linux-2.6.38.3/arch
6531 #define ATOMIC64_INIT(val) { (val) } 6499 #define ATOMIC64_INIT(val) { (val) }
6532 6500
6533 #ifdef CONFIG_X86_CMPXCHG64 6501 #ifdef CONFIG_X86_CMPXCHG64
6534diff -urNp linux-2.6.38.3/arch/x86/include/asm/atomic64_64.h linux-2.6.38.3/arch/x86/include/asm/atomic64_64.h 6502diff -urNp linux-2.6.38.2/arch/x86/include/asm/atomic64_64.h linux-2.6.38.2/arch/x86/include/asm/atomic64_64.h
6535--- linux-2.6.38.3/arch/x86/include/asm/atomic64_64.h 2011-03-14 21:20:32.000000000 -0400 6503--- linux-2.6.38.2/arch/x86/include/asm/atomic64_64.h 2011-03-14 21:20:32.000000000 -0400
6536+++ linux-2.6.38.3/arch/x86/include/asm/atomic64_64.h 2011-04-17 15:57:32.000000000 -0400 6504+++ linux-2.6.38.2/arch/x86/include/asm/atomic64_64.h 2011-03-21 18:31:35.000000000 -0400
6537@@ -18,7 +18,19 @@ 6505@@ -18,7 +18,19 @@
6538 */ 6506 */
6539 static inline long atomic64_read(const atomic64_t *v) 6507 static inline long atomic64_read(const atomic64_t *v)
@@ -6843,9 +6811,9 @@ diff -urNp linux-2.6.38.3/arch/x86/include/asm/atomic64_64.h linux-2.6.38.3/arch
6843 } 6811 }
6844 6812
6845 #define atomic64_inc_not_zero(v) atomic64_add_unless((v), 1, 0) 6813 #define atomic64_inc_not_zero(v) atomic64_add_unless((v), 1, 0)
6846diff -urNp linux-2.6.38.3/arch/x86/include/asm/atomic.h linux-2.6.38.3/arch/x86/include/asm/atomic.h 6814diff -urNp linux-2.6.38.2/arch/x86/include/asm/atomic.h linux-2.6.38.2/arch/x86/include/asm/atomic.h
6847--- linux-2.6.38.3/arch/x86/include/asm/atomic.h 2011-03-14 21:20:32.000000000 -0400 6815--- linux-2.6.38.2/arch/x86/include/asm/atomic.h 2011-03-14 21:20:32.000000000 -0400
6848+++ linux-2.6.38.3/arch/x86/include/asm/atomic.h 2011-04-17 15:57:32.000000000 -0400 6816+++ linux-2.6.38.2/arch/x86/include/asm/atomic.h 2011-03-21 18:31:35.000000000 -0400
6849@@ -22,7 +22,18 @@ 6817@@ -22,7 +22,18 @@
6850 */ 6818 */
6851 static inline int atomic_read(const atomic_t *v) 6819 static inline int atomic_read(const atomic_t *v)
@@ -7217,9 +7185,9 @@ diff -urNp linux-2.6.38.3/arch/x86/include/asm/atomic.h linux-2.6.38.3/arch/x86/
7217 /* 7185 /*
7218 * atomic_dec_if_positive - decrement by 1 if old value positive 7186 * atomic_dec_if_positive - decrement by 1 if old value positive
7219 * @v: pointer of type atomic_t 7187 * @v: pointer of type atomic_t
7220diff -urNp linux-2.6.38.3/arch/x86/include/asm/bitops.h linux-2.6.38.3/arch/x86/include/asm/bitops.h 7188diff -urNp linux-2.6.38.2/arch/x86/include/asm/bitops.h linux-2.6.38.2/arch/x86/include/asm/bitops.h
7221--- linux-2.6.38.3/arch/x86/include/asm/bitops.h 2011-03-14 21:20:32.000000000 -0400 7189--- linux-2.6.38.2/arch/x86/include/asm/bitops.h 2011-03-14 21:20:32.000000000 -0400
7222+++ linux-2.6.38.3/arch/x86/include/asm/bitops.h 2011-04-17 15:57:32.000000000 -0400 7190+++ linux-2.6.38.2/arch/x86/include/asm/bitops.h 2011-03-21 18:31:35.000000000 -0400
7223@@ -38,7 +38,7 @@ 7191@@ -38,7 +38,7 @@
7224 * a mask operation on a byte. 7192 * a mask operation on a byte.
7225 */ 7193 */
@@ -7229,9 +7197,9 @@ diff -urNp linux-2.6.38.3/arch/x86/include/asm/bitops.h linux-2.6.38.3/arch/x86/
7229 #define CONST_MASK(nr) (1 << ((nr) & 7)) 7197 #define CONST_MASK(nr) (1 << ((nr) & 7))
7230 7198
7231 /** 7199 /**
7232diff -urNp linux-2.6.38.3/arch/x86/include/asm/boot.h linux-2.6.38.3/arch/x86/include/asm/boot.h 7200diff -urNp linux-2.6.38.2/arch/x86/include/asm/boot.h linux-2.6.38.2/arch/x86/include/asm/boot.h
7233--- linux-2.6.38.3/arch/x86/include/asm/boot.h 2011-03-14 21:20:32.000000000 -0400 7201--- linux-2.6.38.2/arch/x86/include/asm/boot.h 2011-03-14 21:20:32.000000000 -0400
7234+++ linux-2.6.38.3/arch/x86/include/asm/boot.h 2011-04-17 15:57:32.000000000 -0400 7202+++ linux-2.6.38.2/arch/x86/include/asm/boot.h 2011-03-21 18:31:35.000000000 -0400
7235@@ -11,10 +11,15 @@ 7203@@ -11,10 +11,15 @@
7236 #include <asm/pgtable_types.h> 7204 #include <asm/pgtable_types.h>
7237 7205
@@ -7249,9 +7217,9 @@ diff -urNp linux-2.6.38.3/arch/x86/include/asm/boot.h linux-2.6.38.3/arch/x86/in
7249 /* Minimum kernel alignment, as a power of two */ 7217 /* Minimum kernel alignment, as a power of two */
7250 #ifdef CONFIG_X86_64 7218 #ifdef CONFIG_X86_64
7251 #define MIN_KERNEL_ALIGN_LG2 PMD_SHIFT 7219 #define MIN_KERNEL_ALIGN_LG2 PMD_SHIFT
7252diff -urNp linux-2.6.38.3/arch/x86/include/asm/cacheflush.h linux-2.6.38.3/arch/x86/include/asm/cacheflush.h 7220diff -urNp linux-2.6.38.2/arch/x86/include/asm/cacheflush.h linux-2.6.38.2/arch/x86/include/asm/cacheflush.h
7253--- linux-2.6.38.3/arch/x86/include/asm/cacheflush.h 2011-03-14 21:20:32.000000000 -0400 7221--- linux-2.6.38.2/arch/x86/include/asm/cacheflush.h 2011-03-14 21:20:32.000000000 -0400
7254+++ linux-2.6.38.3/arch/x86/include/asm/cacheflush.h 2011-04-17 15:57:32.000000000 -0400 7222+++ linux-2.6.38.2/arch/x86/include/asm/cacheflush.h 2011-03-21 18:31:35.000000000 -0400
7255@@ -26,7 +26,7 @@ static inline unsigned long get_page_mem 7223@@ -26,7 +26,7 @@ static inline unsigned long get_page_mem
7256 unsigned long pg_flags = pg->flags & _PGMT_MASK; 7224 unsigned long pg_flags = pg->flags & _PGMT_MASK;
7257 7225
@@ -7261,9 +7229,9 @@ diff -urNp linux-2.6.38.3/arch/x86/include/asm/cacheflush.h linux-2.6.38.3/arch/
7261 else if (pg_flags == _PGMT_WC) 7229 else if (pg_flags == _PGMT_WC)
7262 return _PAGE_CACHE_WC; 7230 return _PAGE_CACHE_WC;
7263 else if (pg_flags == _PGMT_UC_MINUS) 7231 else if (pg_flags == _PGMT_UC_MINUS)
7264diff -urNp linux-2.6.38.3/arch/x86/include/asm/cache.h linux-2.6.38.3/arch/x86/include/asm/cache.h 7232diff -urNp linux-2.6.38.2/arch/x86/include/asm/cache.h linux-2.6.38.2/arch/x86/include/asm/cache.h
7265--- linux-2.6.38.3/arch/x86/include/asm/cache.h 2011-03-14 21:20:32.000000000 -0400 7233--- linux-2.6.38.2/arch/x86/include/asm/cache.h 2011-03-14 21:20:32.000000000 -0400
7266+++ linux-2.6.38.3/arch/x86/include/asm/cache.h 2011-04-17 15:57:32.000000000 -0400 7234+++ linux-2.6.38.2/arch/x86/include/asm/cache.h 2011-03-21 18:31:35.000000000 -0400
7267@@ -8,6 +8,7 @@ 7235@@ -8,6 +8,7 @@
7268 #define L1_CACHE_BYTES (1 << L1_CACHE_SHIFT) 7236 #define L1_CACHE_BYTES (1 << L1_CACHE_SHIFT)
7269 7237
@@ -7272,9 +7240,9 @@ diff -urNp linux-2.6.38.3/arch/x86/include/asm/cache.h linux-2.6.38.3/arch/x86/i
7272 7240
7273 #define INTERNODE_CACHE_SHIFT CONFIG_X86_INTERNODE_CACHE_SHIFT 7241 #define INTERNODE_CACHE_SHIFT CONFIG_X86_INTERNODE_CACHE_SHIFT
7274 #define INTERNODE_CACHE_BYTES (1 << INTERNODE_CACHE_SHIFT) 7242 #define INTERNODE_CACHE_BYTES (1 << INTERNODE_CACHE_SHIFT)
7275diff -urNp linux-2.6.38.3/arch/x86/include/asm/checksum_32.h linux-2.6.38.3/arch/x86/include/asm/checksum_32.h 7243diff -urNp linux-2.6.38.2/arch/x86/include/asm/checksum_32.h linux-2.6.38.2/arch/x86/include/asm/checksum_32.h
7276--- linux-2.6.38.3/arch/x86/include/asm/checksum_32.h 2011-03-14 21:20:32.000000000 -0400 7244--- linux-2.6.38.2/arch/x86/include/asm/checksum_32.h 2011-03-14 21:20:32.000000000 -0400
7277+++ linux-2.6.38.3/arch/x86/include/asm/checksum_32.h 2011-04-17 15:57:32.000000000 -0400 7245+++ linux-2.6.38.2/arch/x86/include/asm/checksum_32.h 2011-03-21 18:31:35.000000000 -0400
7278@@ -31,6 +31,14 @@ asmlinkage __wsum csum_partial_copy_gene 7246@@ -31,6 +31,14 @@ asmlinkage __wsum csum_partial_copy_gene
7279 int len, __wsum sum, 7247 int len, __wsum sum,
7280 int *src_err_ptr, int *dst_err_ptr); 7248 int *src_err_ptr, int *dst_err_ptr);
@@ -7308,9 +7276,9 @@ diff -urNp linux-2.6.38.3/arch/x86/include/asm/checksum_32.h linux-2.6.38.3/arch
7308 len, sum, NULL, err_ptr); 7276 len, sum, NULL, err_ptr);
7309 7277
7310 if (len) 7278 if (len)
7311diff -urNp linux-2.6.38.3/arch/x86/include/asm/cpufeature.h linux-2.6.38.3/arch/x86/include/asm/cpufeature.h 7279diff -urNp linux-2.6.38.2/arch/x86/include/asm/cpufeature.h linux-2.6.38.2/arch/x86/include/asm/cpufeature.h
7312--- linux-2.6.38.3/arch/x86/include/asm/cpufeature.h 2011-03-14 21:20:32.000000000 -0400 7280--- linux-2.6.38.2/arch/x86/include/asm/cpufeature.h 2011-03-14 21:20:32.000000000 -0400
7313+++ linux-2.6.38.3/arch/x86/include/asm/cpufeature.h 2011-04-17 15:57:32.000000000 -0400 7281+++ linux-2.6.38.2/arch/x86/include/asm/cpufeature.h 2011-03-21 18:31:35.000000000 -0400
7314@@ -349,7 +349,7 @@ static __always_inline __pure bool __sta 7282@@ -349,7 +349,7 @@ static __always_inline __pure bool __sta
7315 ".section .discard,\"aw\",@progbits\n" 7283 ".section .discard,\"aw\",@progbits\n"
7316 " .byte 0xff + (4f-3f) - (2b-1b)\n" /* size check */ 7284 " .byte 0xff + (4f-3f) - (2b-1b)\n" /* size check */
@@ -7320,9 +7288,9 @@ diff -urNp linux-2.6.38.3/arch/x86/include/asm/cpufeature.h linux-2.6.38.3/arch/
7320 "3: movb $1,%0\n" 7288 "3: movb $1,%0\n"
7321 "4:\n" 7289 "4:\n"
7322 ".previous\n" 7290 ".previous\n"
7323diff -urNp linux-2.6.38.3/arch/x86/include/asm/desc_defs.h linux-2.6.38.3/arch/x86/include/asm/desc_defs.h 7291diff -urNp linux-2.6.38.2/arch/x86/include/asm/desc_defs.h linux-2.6.38.2/arch/x86/include/asm/desc_defs.h
7324--- linux-2.6.38.3/arch/x86/include/asm/desc_defs.h 2011-03-14 21:20:32.000000000 -0400 7292--- linux-2.6.38.2/arch/x86/include/asm/desc_defs.h 2011-03-14 21:20:32.000000000 -0400
7325+++ linux-2.6.38.3/arch/x86/include/asm/desc_defs.h 2011-04-17 15:57:32.000000000 -0400 7293+++ linux-2.6.38.2/arch/x86/include/asm/desc_defs.h 2011-03-21 18:31:35.000000000 -0400
7326@@ -31,6 +31,12 @@ struct desc_struct { 7294@@ -31,6 +31,12 @@ struct desc_struct {
7327 unsigned base1: 8, type: 4, s: 1, dpl: 2, p: 1; 7295 unsigned base1: 8, type: 4, s: 1, dpl: 2, p: 1;
7328 unsigned limit: 4, avl: 1, l: 1, d: 1, g: 1, base2: 8; 7296 unsigned limit: 4, avl: 1, l: 1, d: 1, g: 1, base2: 8;
@@ -7336,9 +7304,9 @@ diff -urNp linux-2.6.38.3/arch/x86/include/asm/desc_defs.h linux-2.6.38.3/arch/x
7336 }; 7304 };
7337 } __attribute__((packed)); 7305 } __attribute__((packed));
7338 7306
7339diff -urNp linux-2.6.38.3/arch/x86/include/asm/desc.h linux-2.6.38.3/arch/x86/include/asm/desc.h 7307diff -urNp linux-2.6.38.2/arch/x86/include/asm/desc.h linux-2.6.38.2/arch/x86/include/asm/desc.h
7340--- linux-2.6.38.3/arch/x86/include/asm/desc.h 2011-03-14 21:20:32.000000000 -0400 7308--- linux-2.6.38.2/arch/x86/include/asm/desc.h 2011-03-14 21:20:32.000000000 -0400
7341+++ linux-2.6.38.3/arch/x86/include/asm/desc.h 2011-04-17 15:57:32.000000000 -0400 7309+++ linux-2.6.38.2/arch/x86/include/asm/desc.h 2011-03-21 18:31:35.000000000 -0400
7342@@ -4,6 +4,7 @@ 7310@@ -4,6 +4,7 @@
7343 #include <asm/desc_defs.h> 7311 #include <asm/desc_defs.h>
7344 #include <asm/ldt.h> 7312 #include <asm/ldt.h>
@@ -7526,9 +7494,9 @@ diff -urNp linux-2.6.38.3/arch/x86/include/asm/desc.h linux-2.6.38.3/arch/x86/in
7526+#endif 7494+#endif
7527+ 7495+
7528 #endif /* _ASM_X86_DESC_H */ 7496 #endif /* _ASM_X86_DESC_H */
7529diff -urNp linux-2.6.38.3/arch/x86/include/asm/device.h linux-2.6.38.3/arch/x86/include/asm/device.h 7497diff -urNp linux-2.6.38.2/arch/x86/include/asm/device.h linux-2.6.38.2/arch/x86/include/asm/device.h
7530--- linux-2.6.38.3/arch/x86/include/asm/device.h 2011-03-14 21:20:32.000000000 -0400 7498--- linux-2.6.38.2/arch/x86/include/asm/device.h 2011-03-14 21:20:32.000000000 -0400
7531+++ linux-2.6.38.3/arch/x86/include/asm/device.h 2011-04-17 15:57:32.000000000 -0400 7499+++ linux-2.6.38.2/arch/x86/include/asm/device.h 2011-03-21 18:31:35.000000000 -0400
7532@@ -6,7 +6,7 @@ struct dev_archdata { 7500@@ -6,7 +6,7 @@ struct dev_archdata {
7533 void *acpi_handle; 7501 void *acpi_handle;
7534 #endif 7502 #endif
@@ -7538,9 +7506,9 @@ diff -urNp linux-2.6.38.3/arch/x86/include/asm/device.h linux-2.6.38.3/arch/x86/
7538 #endif 7506 #endif
7539 #if defined(CONFIG_DMAR) || defined(CONFIG_AMD_IOMMU) 7507 #if defined(CONFIG_DMAR) || defined(CONFIG_AMD_IOMMU)
7540 void *iommu; /* hook for IOMMU specific extension */ 7508 void *iommu; /* hook for IOMMU specific extension */
7541diff -urNp linux-2.6.38.3/arch/x86/include/asm/dma-mapping.h linux-2.6.38.3/arch/x86/include/asm/dma-mapping.h 7509diff -urNp linux-2.6.38.2/arch/x86/include/asm/dma-mapping.h linux-2.6.38.2/arch/x86/include/asm/dma-mapping.h
7542--- linux-2.6.38.3/arch/x86/include/asm/dma-mapping.h 2011-03-14 21:20:32.000000000 -0400 7510--- linux-2.6.38.2/arch/x86/include/asm/dma-mapping.h 2011-03-14 21:20:32.000000000 -0400
7543+++ linux-2.6.38.3/arch/x86/include/asm/dma-mapping.h 2011-04-17 15:57:32.000000000 -0400 7511+++ linux-2.6.38.2/arch/x86/include/asm/dma-mapping.h 2011-03-21 18:31:35.000000000 -0400
7544@@ -26,9 +26,9 @@ extern int iommu_merge; 7512@@ -26,9 +26,9 @@ extern int iommu_merge;
7545 extern struct device x86_dma_fallback_dev; 7513 extern struct device x86_dma_fallback_dev;
7546 extern int panic_on_overflow; 7514 extern int panic_on_overflow;
@@ -7580,9 +7548,9 @@ diff -urNp linux-2.6.38.3/arch/x86/include/asm/dma-mapping.h linux-2.6.38.3/arch
7580 7548
7581 WARN_ON(irqs_disabled()); /* for portability */ 7549 WARN_ON(irqs_disabled()); /* for portability */
7582 7550
7583diff -urNp linux-2.6.38.3/arch/x86/include/asm/e820.h linux-2.6.38.3/arch/x86/include/asm/e820.h 7551diff -urNp linux-2.6.38.2/arch/x86/include/asm/e820.h linux-2.6.38.2/arch/x86/include/asm/e820.h
7584--- linux-2.6.38.3/arch/x86/include/asm/e820.h 2011-03-14 21:20:32.000000000 -0400 7552--- linux-2.6.38.2/arch/x86/include/asm/e820.h 2011-03-14 21:20:32.000000000 -0400
7585+++ linux-2.6.38.3/arch/x86/include/asm/e820.h 2011-04-17 15:57:32.000000000 -0400 7553+++ linux-2.6.38.2/arch/x86/include/asm/e820.h 2011-03-21 18:31:35.000000000 -0400
7586@@ -69,7 +69,7 @@ struct e820map { 7554@@ -69,7 +69,7 @@ struct e820map {
7587 #define ISA_START_ADDRESS 0xa0000 7555 #define ISA_START_ADDRESS 0xa0000
7588 #define ISA_END_ADDRESS 0x100000 7556 #define ISA_END_ADDRESS 0x100000
@@ -7592,9 +7560,9 @@ diff -urNp linux-2.6.38.3/arch/x86/include/asm/e820.h linux-2.6.38.3/arch/x86/in
7592 #define BIOS_END 0x00100000 7560 #define BIOS_END 0x00100000
7593 7561
7594 #define BIOS_ROM_BASE 0xffe00000 7562 #define BIOS_ROM_BASE 0xffe00000
7595diff -urNp linux-2.6.38.3/arch/x86/include/asm/elf.h linux-2.6.38.3/arch/x86/include/asm/elf.h 7563diff -urNp linux-2.6.38.2/arch/x86/include/asm/elf.h linux-2.6.38.2/arch/x86/include/asm/elf.h
7596--- linux-2.6.38.3/arch/x86/include/asm/elf.h 2011-03-14 21:20:32.000000000 -0400 7564--- linux-2.6.38.2/arch/x86/include/asm/elf.h 2011-03-14 21:20:32.000000000 -0400
7597+++ linux-2.6.38.3/arch/x86/include/asm/elf.h 2011-04-17 15:57:32.000000000 -0400 7565+++ linux-2.6.38.2/arch/x86/include/asm/elf.h 2011-03-21 18:31:35.000000000 -0400
7598@@ -237,7 +237,25 @@ extern int force_personality32; 7566@@ -237,7 +237,25 @@ extern int force_personality32;
7599 the loader. We need to make sure that it is out of the way of the program 7567 the loader. We need to make sure that it is out of the way of the program
7600 that it will "exec", and that there is sufficient room for the brk. */ 7568 that it will "exec", and that there is sufficient room for the brk. */
@@ -7648,9 +7616,9 @@ diff -urNp linux-2.6.38.3/arch/x86/include/asm/elf.h linux-2.6.38.3/arch/x86/inc
7648-#define arch_randomize_brk arch_randomize_brk 7616-#define arch_randomize_brk arch_randomize_brk
7649- 7617-
7650 #endif /* _ASM_X86_ELF_H */ 7618 #endif /* _ASM_X86_ELF_H */
7651diff -urNp linux-2.6.38.3/arch/x86/include/asm/futex.h linux-2.6.38.3/arch/x86/include/asm/futex.h 7619diff -urNp linux-2.6.38.2/arch/x86/include/asm/futex.h linux-2.6.38.2/arch/x86/include/asm/futex.h
7652--- linux-2.6.38.3/arch/x86/include/asm/futex.h 2011-03-14 21:20:32.000000000 -0400 7620--- linux-2.6.38.2/arch/x86/include/asm/futex.h 2011-03-14 21:20:32.000000000 -0400
7653+++ linux-2.6.38.3/arch/x86/include/asm/futex.h 2011-04-17 15:57:32.000000000 -0400 7621+++ linux-2.6.38.2/arch/x86/include/asm/futex.h 2011-03-21 18:31:35.000000000 -0400
7654@@ -12,16 +12,18 @@ 7622@@ -12,16 +12,18 @@
7655 #include <asm/system.h> 7623 #include <asm/system.h>
7656 7624
@@ -7726,9 +7694,9 @@ diff -urNp linux-2.6.38.3/arch/x86/include/asm/futex.h linux-2.6.38.3/arch/x86/i
7726 : "i" (-EFAULT), "r" (newval), "0" (oldval) 7694 : "i" (-EFAULT), "r" (newval), "0" (oldval)
7727 : "memory" 7695 : "memory"
7728 ); 7696 );
7729diff -urNp linux-2.6.38.3/arch/x86/include/asm/i387.h linux-2.6.38.3/arch/x86/include/asm/i387.h 7697diff -urNp linux-2.6.38.2/arch/x86/include/asm/i387.h linux-2.6.38.2/arch/x86/include/asm/i387.h
7730--- linux-2.6.38.3/arch/x86/include/asm/i387.h 2011-03-14 21:20:32.000000000 -0400 7698--- linux-2.6.38.2/arch/x86/include/asm/i387.h 2011-03-14 21:20:32.000000000 -0400
7731+++ linux-2.6.38.3/arch/x86/include/asm/i387.h 2011-04-17 15:57:32.000000000 -0400 7699+++ linux-2.6.38.2/arch/x86/include/asm/i387.h 2011-03-21 18:31:35.000000000 -0400
7732@@ -92,6 +92,11 @@ static inline int fxrstor_checking(struc 7700@@ -92,6 +92,11 @@ static inline int fxrstor_checking(struc
7733 { 7701 {
7734 int err; 7702 int err;
@@ -7769,27 +7737,9 @@ diff -urNp linux-2.6.38.3/arch/x86/include/asm/i387.h linux-2.6.38.3/arch/x86/in
7769 7737
7770 /* 7738 /*
7771 * These must be called with preempt disabled 7739 * These must be called with preempt disabled
7772@@ -237,7 +242,7 @@ static inline void fpu_save_init(struct 7740diff -urNp linux-2.6.38.2/arch/x86/include/asm/io.h linux-2.6.38.2/arch/x86/include/asm/io.h
7773 } else if (use_fxsr()) { 7741--- linux-2.6.38.2/arch/x86/include/asm/io.h 2011-03-14 21:20:32.000000000 -0400
7774 fpu_fxsave(fpu); 7742+++ linux-2.6.38.2/arch/x86/include/asm/io.h 2011-03-21 18:31:35.000000000 -0400
7775 } else {
7776- asm volatile("fsave %[fx]; fwait"
7777+ asm volatile("fnsave %[fx]; fwait"
7778 : [fx] "=m" (fpu->state->fsave));
7779 return;
7780 }
7781@@ -312,7 +317,7 @@ static inline void kernel_fpu_begin(void
7782 struct thread_info *me = current_thread_info();
7783 preempt_disable();
7784 if (me->status & TS_USEDFPU)
7785- __save_init_fpu(me->task);
7786+ __save_init_fpu(current);
7787 else
7788 clts();
7789 }
7790diff -urNp linux-2.6.38.3/arch/x86/include/asm/io.h linux-2.6.38.3/arch/x86/include/asm/io.h
7791--- linux-2.6.38.3/arch/x86/include/asm/io.h 2011-03-14 21:20:32.000000000 -0400
7792+++ linux-2.6.38.3/arch/x86/include/asm/io.h 2011-04-17 15:57:32.000000000 -0400
7793@@ -216,6 +216,17 @@ extern void set_iounmap_nonlazy(void); 7743@@ -216,6 +216,17 @@ extern void set_iounmap_nonlazy(void);
7794 7744
7795 #include <linux/vmalloc.h> 7745 #include <linux/vmalloc.h>
@@ -7808,9 +7758,9 @@ diff -urNp linux-2.6.38.3/arch/x86/include/asm/io.h linux-2.6.38.3/arch/x86/incl
7808 /* 7758 /*
7809 * Convert a virtual cached pointer to an uncached pointer 7759 * Convert a virtual cached pointer to an uncached pointer
7810 */ 7760 */
7811diff -urNp linux-2.6.38.3/arch/x86/include/asm/iommu.h linux-2.6.38.3/arch/x86/include/asm/iommu.h 7761diff -urNp linux-2.6.38.2/arch/x86/include/asm/iommu.h linux-2.6.38.2/arch/x86/include/asm/iommu.h
7812--- linux-2.6.38.3/arch/x86/include/asm/iommu.h 2011-03-14 21:20:32.000000000 -0400 7762--- linux-2.6.38.2/arch/x86/include/asm/iommu.h 2011-03-14 21:20:32.000000000 -0400
7813+++ linux-2.6.38.3/arch/x86/include/asm/iommu.h 2011-04-17 15:57:32.000000000 -0400 7763+++ linux-2.6.38.2/arch/x86/include/asm/iommu.h 2011-03-21 18:31:35.000000000 -0400
7814@@ -1,7 +1,7 @@ 7764@@ -1,7 +1,7 @@
7815 #ifndef _ASM_X86_IOMMU_H 7765 #ifndef _ASM_X86_IOMMU_H
7816 #define _ASM_X86_IOMMU_H 7766 #define _ASM_X86_IOMMU_H
@@ -7820,9 +7770,9 @@ diff -urNp linux-2.6.38.3/arch/x86/include/asm/iommu.h linux-2.6.38.3/arch/x86/i
7820 extern int force_iommu, no_iommu; 7770 extern int force_iommu, no_iommu;
7821 extern int iommu_detected; 7771 extern int iommu_detected;
7822 extern int iommu_pass_through; 7772 extern int iommu_pass_through;
7823diff -urNp linux-2.6.38.3/arch/x86/include/asm/irqflags.h linux-2.6.38.3/arch/x86/include/asm/irqflags.h 7773diff -urNp linux-2.6.38.2/arch/x86/include/asm/irqflags.h linux-2.6.38.2/arch/x86/include/asm/irqflags.h
7824--- linux-2.6.38.3/arch/x86/include/asm/irqflags.h 2011-03-14 21:20:32.000000000 -0400 7774--- linux-2.6.38.2/arch/x86/include/asm/irqflags.h 2011-03-14 21:20:32.000000000 -0400
7825+++ linux-2.6.38.3/arch/x86/include/asm/irqflags.h 2011-04-17 15:57:32.000000000 -0400 7775+++ linux-2.6.38.2/arch/x86/include/asm/irqflags.h 2011-03-21 18:31:35.000000000 -0400
7826@@ -140,6 +140,11 @@ static inline unsigned long arch_local_i 7776@@ -140,6 +140,11 @@ static inline unsigned long arch_local_i
7827 sti; \ 7777 sti; \
7828 sysexit 7778 sysexit
@@ -7835,9 +7785,9 @@ diff -urNp linux-2.6.38.3/arch/x86/include/asm/irqflags.h linux-2.6.38.3/arch/x8
7835 #else 7785 #else
7836 #define INTERRUPT_RETURN iret 7786 #define INTERRUPT_RETURN iret
7837 #define ENABLE_INTERRUPTS_SYSEXIT sti; sysexit 7787 #define ENABLE_INTERRUPTS_SYSEXIT sti; sysexit
7838diff -urNp linux-2.6.38.3/arch/x86/include/asm/kvm_host.h linux-2.6.38.3/arch/x86/include/asm/kvm_host.h 7788diff -urNp linux-2.6.38.2/arch/x86/include/asm/kvm_host.h linux-2.6.38.2/arch/x86/include/asm/kvm_host.h
7839--- linux-2.6.38.3/arch/x86/include/asm/kvm_host.h 2011-03-14 21:20:32.000000000 -0400 7789--- linux-2.6.38.2/arch/x86/include/asm/kvm_host.h 2011-03-14 21:20:32.000000000 -0400
7840+++ linux-2.6.38.3/arch/x86/include/asm/kvm_host.h 2011-04-17 15:57:32.000000000 -0400 7790+++ linux-2.6.38.2/arch/x86/include/asm/kvm_host.h 2011-03-21 18:31:35.000000000 -0400
7841@@ -603,7 +603,7 @@ struct kvm_arch_async_pf { 7791@@ -603,7 +603,7 @@ struct kvm_arch_async_pf {
7842 bool direct_map; 7792 bool direct_map;
7843 }; 7793 };
@@ -7847,9 +7797,9 @@ diff -urNp linux-2.6.38.3/arch/x86/include/asm/kvm_host.h linux-2.6.38.3/arch/x8
7847 7797
7848 int kvm_mmu_module_init(void); 7798 int kvm_mmu_module_init(void);
7849 void kvm_mmu_module_exit(void); 7799 void kvm_mmu_module_exit(void);
7850diff -urNp linux-2.6.38.3/arch/x86/include/asm/local.h linux-2.6.38.3/arch/x86/include/asm/local.h 7800diff -urNp linux-2.6.38.2/arch/x86/include/asm/local.h linux-2.6.38.2/arch/x86/include/asm/local.h
7851--- linux-2.6.38.3/arch/x86/include/asm/local.h 2011-03-14 21:20:32.000000000 -0400 7801--- linux-2.6.38.2/arch/x86/include/asm/local.h 2011-03-14 21:20:32.000000000 -0400
7852+++ linux-2.6.38.3/arch/x86/include/asm/local.h 2011-04-17 15:57:32.000000000 -0400 7802+++ linux-2.6.38.2/arch/x86/include/asm/local.h 2011-03-21 18:31:35.000000000 -0400
7853@@ -18,26 +18,58 @@ typedef struct { 7803@@ -18,26 +18,58 @@ typedef struct {
7854 7804
7855 static inline void local_inc(local_t *l) 7805 static inline void local_inc(local_t *l)
@@ -8002,9 +7952,9 @@ diff -urNp linux-2.6.38.3/arch/x86/include/asm/local.h linux-2.6.38.3/arch/x86/i
8002 : "+r" (i), "+m" (l->a.counter) 7952 : "+r" (i), "+m" (l->a.counter)
8003 : : "memory"); 7953 : : "memory");
8004 return i + __i; 7954 return i + __i;
8005diff -urNp linux-2.6.38.3/arch/x86/include/asm/mc146818rtc.h linux-2.6.38.3/arch/x86/include/asm/mc146818rtc.h 7955diff -urNp linux-2.6.38.2/arch/x86/include/asm/mc146818rtc.h linux-2.6.38.2/arch/x86/include/asm/mc146818rtc.h
8006--- linux-2.6.38.3/arch/x86/include/asm/mc146818rtc.h 2011-03-14 21:20:32.000000000 -0400 7956--- linux-2.6.38.2/arch/x86/include/asm/mc146818rtc.h 2011-03-14 21:20:32.000000000 -0400
8007+++ linux-2.6.38.3/arch/x86/include/asm/mc146818rtc.h 2011-04-17 15:57:32.000000000 -0400 7957+++ linux-2.6.38.2/arch/x86/include/asm/mc146818rtc.h 2011-03-21 18:31:35.000000000 -0400
8008@@ -81,8 +81,8 @@ static inline unsigned char current_lock 7958@@ -81,8 +81,8 @@ static inline unsigned char current_lock
8009 #else 7959 #else
8010 #define lock_cmos_prefix(reg) do {} while (0) 7960 #define lock_cmos_prefix(reg) do {} while (0)
@@ -8016,9 +7966,9 @@ diff -urNp linux-2.6.38.3/arch/x86/include/asm/mc146818rtc.h linux-2.6.38.3/arch
8016 #define do_i_have_lock_cmos() 0 7966 #define do_i_have_lock_cmos() 0
8017 #define current_lock_cmos_reg() 0 7967 #define current_lock_cmos_reg() 0
8018 #endif 7968 #endif
8019diff -urNp linux-2.6.38.3/arch/x86/include/asm/mce.h linux-2.6.38.3/arch/x86/include/asm/mce.h 7969diff -urNp linux-2.6.38.2/arch/x86/include/asm/mce.h linux-2.6.38.2/arch/x86/include/asm/mce.h
8020--- linux-2.6.38.3/arch/x86/include/asm/mce.h 2011-03-14 21:20:32.000000000 -0400 7970--- linux-2.6.38.2/arch/x86/include/asm/mce.h 2011-03-14 21:20:32.000000000 -0400
8021+++ linux-2.6.38.3/arch/x86/include/asm/mce.h 2011-04-17 15:57:32.000000000 -0400 7971+++ linux-2.6.38.2/arch/x86/include/asm/mce.h 2011-03-21 18:31:35.000000000 -0400
8022@@ -198,7 +198,7 @@ int mce_notify_irq(void); 7972@@ -198,7 +198,7 @@ int mce_notify_irq(void);
8023 void mce_notify_process(void); 7973 void mce_notify_process(void);
8024 7974
@@ -8028,9 +7978,9 @@ diff -urNp linux-2.6.38.3/arch/x86/include/asm/mce.h linux-2.6.38.3/arch/x86/inc
8028 7978
8029 /* 7979 /*
8030 * Exception handler 7980 * Exception handler
8031diff -urNp linux-2.6.38.3/arch/x86/include/asm/microcode.h linux-2.6.38.3/arch/x86/include/asm/microcode.h 7981diff -urNp linux-2.6.38.2/arch/x86/include/asm/microcode.h linux-2.6.38.2/arch/x86/include/asm/microcode.h
8032--- linux-2.6.38.3/arch/x86/include/asm/microcode.h 2011-03-14 21:20:32.000000000 -0400 7982--- linux-2.6.38.2/arch/x86/include/asm/microcode.h 2011-03-14 21:20:32.000000000 -0400
8033+++ linux-2.6.38.3/arch/x86/include/asm/microcode.h 2011-04-17 15:57:32.000000000 -0400 7983+++ linux-2.6.38.2/arch/x86/include/asm/microcode.h 2011-03-21 18:31:35.000000000 -0400
8034@@ -12,13 +12,13 @@ struct device; 7984@@ -12,13 +12,13 @@ struct device;
8035 enum ucode_state { UCODE_ERROR, UCODE_OK, UCODE_NFOUND }; 7985 enum ucode_state { UCODE_ERROR, UCODE_OK, UCODE_NFOUND };
8036 7986
@@ -8077,9 +8027,9 @@ diff -urNp linux-2.6.38.3/arch/x86/include/asm/microcode.h linux-2.6.38.3/arch/x
8077 { 8027 {
8078 return NULL; 8028 return NULL;
8079 } 8029 }
8080diff -urNp linux-2.6.38.3/arch/x86/include/asm/mman.h linux-2.6.38.3/arch/x86/include/asm/mman.h 8030diff -urNp linux-2.6.38.2/arch/x86/include/asm/mman.h linux-2.6.38.2/arch/x86/include/asm/mman.h
8081--- linux-2.6.38.3/arch/x86/include/asm/mman.h 2011-03-14 21:20:32.000000000 -0400 8031--- linux-2.6.38.2/arch/x86/include/asm/mman.h 2011-03-14 21:20:32.000000000 -0400
8082+++ linux-2.6.38.3/arch/x86/include/asm/mman.h 2011-04-17 15:57:32.000000000 -0400 8032+++ linux-2.6.38.2/arch/x86/include/asm/mman.h 2011-03-21 18:31:35.000000000 -0400
8083@@ -5,4 +5,14 @@ 8033@@ -5,4 +5,14 @@
8084 8034
8085 #include <asm-generic/mman.h> 8035 #include <asm-generic/mman.h>
@@ -8095,9 +8045,9 @@ diff -urNp linux-2.6.38.3/arch/x86/include/asm/mman.h linux-2.6.38.3/arch/x86/in
8095+#endif 8045+#endif
8096+ 8046+
8097 #endif /* _ASM_X86_MMAN_H */ 8047 #endif /* _ASM_X86_MMAN_H */
8098diff -urNp linux-2.6.38.3/arch/x86/include/asm/mmu_context.h linux-2.6.38.3/arch/x86/include/asm/mmu_context.h 8048diff -urNp linux-2.6.38.2/arch/x86/include/asm/mmu_context.h linux-2.6.38.2/arch/x86/include/asm/mmu_context.h
8099--- linux-2.6.38.3/arch/x86/include/asm/mmu_context.h 2011-03-14 21:20:32.000000000 -0400 8049--- linux-2.6.38.2/arch/x86/include/asm/mmu_context.h 2011-03-14 21:20:32.000000000 -0400
8100+++ linux-2.6.38.3/arch/x86/include/asm/mmu_context.h 2011-04-17 15:57:32.000000000 -0400 8050+++ linux-2.6.38.2/arch/x86/include/asm/mmu_context.h 2011-03-28 16:54:16.000000000 -0400
8101@@ -24,6 +24,21 @@ void destroy_context(struct mm_struct *m 8051@@ -24,6 +24,21 @@ void destroy_context(struct mm_struct *m
8102 8052
8103 static inline void enter_lazy_tlb(struct mm_struct *mm, struct task_struct *tsk) 8053 static inline void enter_lazy_tlb(struct mm_struct *mm, struct task_struct *tsk)
@@ -8221,9 +8171,9 @@ diff -urNp linux-2.6.38.3/arch/x86/include/asm/mmu_context.h linux-2.6.38.3/arch
8221 } 8171 }
8222 8172
8223 #define activate_mm(prev, next) \ 8173 #define activate_mm(prev, next) \
8224diff -urNp linux-2.6.38.3/arch/x86/include/asm/mmu.h linux-2.6.38.3/arch/x86/include/asm/mmu.h 8174diff -urNp linux-2.6.38.2/arch/x86/include/asm/mmu.h linux-2.6.38.2/arch/x86/include/asm/mmu.h
8225--- linux-2.6.38.3/arch/x86/include/asm/mmu.h 2011-03-14 21:20:32.000000000 -0400 8175--- linux-2.6.38.2/arch/x86/include/asm/mmu.h 2011-03-14 21:20:32.000000000 -0400
8226+++ linux-2.6.38.3/arch/x86/include/asm/mmu.h 2011-04-17 15:57:32.000000000 -0400 8176+++ linux-2.6.38.2/arch/x86/include/asm/mmu.h 2011-03-21 18:31:35.000000000 -0400
8227@@ -9,10 +9,23 @@ 8177@@ -9,10 +9,23 @@
8228 * we put the segment information here. 8178 * we put the segment information here.
8229 */ 8179 */
@@ -8250,9 +8200,9 @@ diff -urNp linux-2.6.38.3/arch/x86/include/asm/mmu.h linux-2.6.38.3/arch/x86/inc
8250 } mm_context_t; 8200 } mm_context_t;
8251 8201
8252 #ifdef CONFIG_SMP 8202 #ifdef CONFIG_SMP
8253diff -urNp linux-2.6.38.3/arch/x86/include/asm/module.h linux-2.6.38.3/arch/x86/include/asm/module.h 8203diff -urNp linux-2.6.38.2/arch/x86/include/asm/module.h linux-2.6.38.2/arch/x86/include/asm/module.h
8254--- linux-2.6.38.3/arch/x86/include/asm/module.h 2011-03-14 21:20:32.000000000 -0400 8204--- linux-2.6.38.2/arch/x86/include/asm/module.h 2011-03-14 21:20:32.000000000 -0400
8255+++ linux-2.6.38.3/arch/x86/include/asm/module.h 2011-04-17 15:57:32.000000000 -0400 8205+++ linux-2.6.38.2/arch/x86/include/asm/module.h 2011-03-21 18:31:35.000000000 -0400
8256@@ -59,8 +59,26 @@ 8206@@ -59,8 +59,26 @@
8257 #error unknown processor family 8207 #error unknown processor family
8258 #endif 8208 #endif
@@ -8281,9 +8231,9 @@ diff -urNp linux-2.6.38.3/arch/x86/include/asm/module.h linux-2.6.38.3/arch/x86/
8281 #endif 8231 #endif
8282 8232
8283 #endif /* _ASM_X86_MODULE_H */ 8233 #endif /* _ASM_X86_MODULE_H */
8284diff -urNp linux-2.6.38.3/arch/x86/include/asm/page_64_types.h linux-2.6.38.3/arch/x86/include/asm/page_64_types.h 8234diff -urNp linux-2.6.38.2/arch/x86/include/asm/page_64_types.h linux-2.6.38.2/arch/x86/include/asm/page_64_types.h
8285--- linux-2.6.38.3/arch/x86/include/asm/page_64_types.h 2011-03-14 21:20:32.000000000 -0400 8235--- linux-2.6.38.2/arch/x86/include/asm/page_64_types.h 2011-03-14 21:20:32.000000000 -0400
8286+++ linux-2.6.38.3/arch/x86/include/asm/page_64_types.h 2011-04-17 15:57:32.000000000 -0400 8236+++ linux-2.6.38.2/arch/x86/include/asm/page_64_types.h 2011-03-21 18:31:35.000000000 -0400
8287@@ -56,7 +56,7 @@ void copy_page(void *to, void *from); 8237@@ -56,7 +56,7 @@ void copy_page(void *to, void *from);
8288 8238
8289 /* duplicated to the one in bootmem.h */ 8239 /* duplicated to the one in bootmem.h */
@@ -8293,9 +8243,9 @@ diff -urNp linux-2.6.38.3/arch/x86/include/asm/page_64_types.h linux-2.6.38.3/ar
8293 8243
8294 extern unsigned long __phys_addr(unsigned long); 8244 extern unsigned long __phys_addr(unsigned long);
8295 #define __phys_reloc_hide(x) (x) 8245 #define __phys_reloc_hide(x) (x)
8296diff -urNp linux-2.6.38.3/arch/x86/include/asm/paravirt.h linux-2.6.38.3/arch/x86/include/asm/paravirt.h 8246diff -urNp linux-2.6.38.2/arch/x86/include/asm/paravirt.h linux-2.6.38.2/arch/x86/include/asm/paravirt.h
8297--- linux-2.6.38.3/arch/x86/include/asm/paravirt.h 2011-03-14 21:20:32.000000000 -0400 8247--- linux-2.6.38.2/arch/x86/include/asm/paravirt.h 2011-03-14 21:20:32.000000000 -0400
8298+++ linux-2.6.38.3/arch/x86/include/asm/paravirt.h 2011-04-17 15:57:32.000000000 -0400 8248+++ linux-2.6.38.2/arch/x86/include/asm/paravirt.h 2011-03-21 18:31:35.000000000 -0400
8299@@ -739,6 +739,21 @@ static inline void __set_fixmap(unsigned 8249@@ -739,6 +739,21 @@ static inline void __set_fixmap(unsigned
8300 pv_mmu_ops.set_fixmap(idx, phys, flags); 8250 pv_mmu_ops.set_fixmap(idx, phys, flags);
8301 } 8251 }
@@ -8349,9 +8299,9 @@ diff -urNp linux-2.6.38.3/arch/x86/include/asm/paravirt.h linux-2.6.38.3/arch/x8
8349 #endif /* CONFIG_X86_32 */ 8299 #endif /* CONFIG_X86_32 */
8350 8300
8351 #endif /* __ASSEMBLY__ */ 8301 #endif /* __ASSEMBLY__ */
8352diff -urNp linux-2.6.38.3/arch/x86/include/asm/paravirt_types.h linux-2.6.38.3/arch/x86/include/asm/paravirt_types.h 8302diff -urNp linux-2.6.38.2/arch/x86/include/asm/paravirt_types.h linux-2.6.38.2/arch/x86/include/asm/paravirt_types.h
8353--- linux-2.6.38.3/arch/x86/include/asm/paravirt_types.h 2011-03-14 21:20:32.000000000 -0400 8303--- linux-2.6.38.2/arch/x86/include/asm/paravirt_types.h 2011-03-14 21:20:32.000000000 -0400
8354+++ linux-2.6.38.3/arch/x86/include/asm/paravirt_types.h 2011-04-17 15:57:32.000000000 -0400 8304+++ linux-2.6.38.2/arch/x86/include/asm/paravirt_types.h 2011-03-21 18:31:35.000000000 -0400
8355@@ -317,6 +317,12 @@ struct pv_mmu_ops { 8305@@ -317,6 +317,12 @@ struct pv_mmu_ops {
8356 an mfn. We can tell which is which from the index. */ 8306 an mfn. We can tell which is which from the index. */
8357 void (*set_fixmap)(unsigned /* enum fixed_addresses */ idx, 8307 void (*set_fixmap)(unsigned /* enum fixed_addresses */ idx,
@@ -8365,9 +8315,9 @@ diff -urNp linux-2.6.38.3/arch/x86/include/asm/paravirt_types.h linux-2.6.38.3/a
8365 }; 8315 };
8366 8316
8367 struct arch_spinlock; 8317 struct arch_spinlock;
8368diff -urNp linux-2.6.38.3/arch/x86/include/asm/pci_x86.h linux-2.6.38.3/arch/x86/include/asm/pci_x86.h 8318diff -urNp linux-2.6.38.2/arch/x86/include/asm/pci_x86.h linux-2.6.38.2/arch/x86/include/asm/pci_x86.h
8369--- linux-2.6.38.3/arch/x86/include/asm/pci_x86.h 2011-03-14 21:20:32.000000000 -0400 8319--- linux-2.6.38.2/arch/x86/include/asm/pci_x86.h 2011-03-14 21:20:32.000000000 -0400
8370+++ linux-2.6.38.3/arch/x86/include/asm/pci_x86.h 2011-04-17 15:57:32.000000000 -0400 8320+++ linux-2.6.38.2/arch/x86/include/asm/pci_x86.h 2011-03-21 18:31:35.000000000 -0400
8371@@ -93,16 +93,16 @@ extern int (*pcibios_enable_irq)(struct 8321@@ -93,16 +93,16 @@ extern int (*pcibios_enable_irq)(struct
8372 extern void (*pcibios_disable_irq)(struct pci_dev *dev); 8322 extern void (*pcibios_disable_irq)(struct pci_dev *dev);
8373 8323
@@ -8390,9 +8340,9 @@ diff -urNp linux-2.6.38.3/arch/x86/include/asm/pci_x86.h linux-2.6.38.3/arch/x86
8390 extern bool port_cf9_safe; 8340 extern bool port_cf9_safe;
8391 8341
8392 /* arch_initcall level */ 8342 /* arch_initcall level */
8393diff -urNp linux-2.6.38.3/arch/x86/include/asm/pgalloc.h linux-2.6.38.3/arch/x86/include/asm/pgalloc.h 8343diff -urNp linux-2.6.38.2/arch/x86/include/asm/pgalloc.h linux-2.6.38.2/arch/x86/include/asm/pgalloc.h
8394--- linux-2.6.38.3/arch/x86/include/asm/pgalloc.h 2011-03-14 21:20:32.000000000 -0400 8344--- linux-2.6.38.2/arch/x86/include/asm/pgalloc.h 2011-03-14 21:20:32.000000000 -0400
8395+++ linux-2.6.38.3/arch/x86/include/asm/pgalloc.h 2011-04-17 15:57:32.000000000 -0400 8345+++ linux-2.6.38.2/arch/x86/include/asm/pgalloc.h 2011-03-21 18:31:35.000000000 -0400
8396@@ -63,6 +63,13 @@ static inline void pmd_populate_kernel(s 8346@@ -63,6 +63,13 @@ static inline void pmd_populate_kernel(s
8397 pmd_t *pmd, pte_t *pte) 8347 pmd_t *pmd, pte_t *pte)
8398 { 8348 {
@@ -8407,9 +8357,9 @@ diff -urNp linux-2.6.38.3/arch/x86/include/asm/pgalloc.h linux-2.6.38.3/arch/x86
8407 set_pmd(pmd, __pmd(__pa(pte) | _PAGE_TABLE)); 8357 set_pmd(pmd, __pmd(__pa(pte) | _PAGE_TABLE));
8408 } 8358 }
8409 8359
8410diff -urNp linux-2.6.38.3/arch/x86/include/asm/pgtable-2level.h linux-2.6.38.3/arch/x86/include/asm/pgtable-2level.h 8360diff -urNp linux-2.6.38.2/arch/x86/include/asm/pgtable-2level.h linux-2.6.38.2/arch/x86/include/asm/pgtable-2level.h
8411--- linux-2.6.38.3/arch/x86/include/asm/pgtable-2level.h 2011-03-14 21:20:32.000000000 -0400 8361--- linux-2.6.38.2/arch/x86/include/asm/pgtable-2level.h 2011-03-14 21:20:32.000000000 -0400
8412+++ linux-2.6.38.3/arch/x86/include/asm/pgtable-2level.h 2011-04-17 15:57:32.000000000 -0400 8362+++ linux-2.6.38.2/arch/x86/include/asm/pgtable-2level.h 2011-03-21 18:31:35.000000000 -0400
8413@@ -18,7 +18,9 @@ static inline void native_set_pte(pte_t 8363@@ -18,7 +18,9 @@ static inline void native_set_pte(pte_t
8414 8364
8415 static inline void native_set_pmd(pmd_t *pmdp, pmd_t pmd) 8365 static inline void native_set_pmd(pmd_t *pmdp, pmd_t pmd)
@@ -8420,9 +8370,9 @@ diff -urNp linux-2.6.38.3/arch/x86/include/asm/pgtable-2level.h linux-2.6.38.3/a
8420 } 8370 }
8421 8371
8422 static inline void native_set_pte_atomic(pte_t *ptep, pte_t pte) 8372 static inline void native_set_pte_atomic(pte_t *ptep, pte_t pte)
8423diff -urNp linux-2.6.38.3/arch/x86/include/asm/pgtable_32.h linux-2.6.38.3/arch/x86/include/asm/pgtable_32.h 8373diff -urNp linux-2.6.38.2/arch/x86/include/asm/pgtable_32.h linux-2.6.38.2/arch/x86/include/asm/pgtable_32.h
8424--- linux-2.6.38.3/arch/x86/include/asm/pgtable_32.h 2011-03-14 21:20:32.000000000 -0400 8374--- linux-2.6.38.2/arch/x86/include/asm/pgtable_32.h 2011-03-14 21:20:32.000000000 -0400
8425+++ linux-2.6.38.3/arch/x86/include/asm/pgtable_32.h 2011-04-17 15:57:32.000000000 -0400 8375+++ linux-2.6.38.2/arch/x86/include/asm/pgtable_32.h 2011-03-21 18:31:35.000000000 -0400
8426@@ -25,9 +25,6 @@ 8376@@ -25,9 +25,6 @@
8427 struct mm_struct; 8377 struct mm_struct;
8428 struct vm_area_struct; 8378 struct vm_area_struct;
@@ -8466,9 +8416,9 @@ diff -urNp linux-2.6.38.3/arch/x86/include/asm/pgtable_32.h linux-2.6.38.3/arch/
8466 /* 8416 /*
8467 * kern_addr_valid() is (1) for FLATMEM and (0) for 8417 * kern_addr_valid() is (1) for FLATMEM and (0) for
8468 * SPARSEMEM and DISCONTIGMEM 8418 * SPARSEMEM and DISCONTIGMEM
8469diff -urNp linux-2.6.38.3/arch/x86/include/asm/pgtable_32_types.h linux-2.6.38.3/arch/x86/include/asm/pgtable_32_types.h 8419diff -urNp linux-2.6.38.2/arch/x86/include/asm/pgtable_32_types.h linux-2.6.38.2/arch/x86/include/asm/pgtable_32_types.h
8470--- linux-2.6.38.3/arch/x86/include/asm/pgtable_32_types.h 2011-03-14 21:20:32.000000000 -0400 8420--- linux-2.6.38.2/arch/x86/include/asm/pgtable_32_types.h 2011-03-14 21:20:32.000000000 -0400
8471+++ linux-2.6.38.3/arch/x86/include/asm/pgtable_32_types.h 2011-04-17 15:57:32.000000000 -0400 8421+++ linux-2.6.38.2/arch/x86/include/asm/pgtable_32_types.h 2011-03-21 18:31:35.000000000 -0400
8472@@ -8,7 +8,7 @@ 8422@@ -8,7 +8,7 @@
8473 */ 8423 */
8474 #ifdef CONFIG_X86_PAE 8424 #ifdef CONFIG_X86_PAE
@@ -8498,9 +8448,9 @@ diff -urNp linux-2.6.38.3/arch/x86/include/asm/pgtable_32_types.h linux-2.6.38.3
8498 #define MODULES_VADDR VMALLOC_START 8448 #define MODULES_VADDR VMALLOC_START
8499 #define MODULES_END VMALLOC_END 8449 #define MODULES_END VMALLOC_END
8500 #define MODULES_LEN (MODULES_VADDR - MODULES_END) 8450 #define MODULES_LEN (MODULES_VADDR - MODULES_END)
8501diff -urNp linux-2.6.38.3/arch/x86/include/asm/pgtable-3level.h linux-2.6.38.3/arch/x86/include/asm/pgtable-3level.h 8451diff -urNp linux-2.6.38.2/arch/x86/include/asm/pgtable-3level.h linux-2.6.38.2/arch/x86/include/asm/pgtable-3level.h
8502--- linux-2.6.38.3/arch/x86/include/asm/pgtable-3level.h 2011-04-18 17:27:13.000000000 -0400 8452--- linux-2.6.38.2/arch/x86/include/asm/pgtable-3level.h 2011-03-23 17:20:06.000000000 -0400
8503+++ linux-2.6.38.3/arch/x86/include/asm/pgtable-3level.h 2011-04-17 15:57:32.000000000 -0400 8453+++ linux-2.6.38.2/arch/x86/include/asm/pgtable-3level.h 2011-03-23 17:21:43.000000000 -0400
8504@@ -38,12 +38,16 @@ static inline void native_set_pte_atomic 8454@@ -38,12 +38,16 @@ static inline void native_set_pte_atomic
8505 8455
8506 static inline void native_set_pmd(pmd_t *pmdp, pmd_t pmd) 8456 static inline void native_set_pmd(pmd_t *pmdp, pmd_t pmd)
@@ -8518,9 +8468,9 @@ diff -urNp linux-2.6.38.3/arch/x86/include/asm/pgtable-3level.h linux-2.6.38.3/a
8518 } 8468 }
8519 8469
8520 /* 8470 /*
8521diff -urNp linux-2.6.38.3/arch/x86/include/asm/pgtable_64.h linux-2.6.38.3/arch/x86/include/asm/pgtable_64.h 8471diff -urNp linux-2.6.38.2/arch/x86/include/asm/pgtable_64.h linux-2.6.38.2/arch/x86/include/asm/pgtable_64.h
8522--- linux-2.6.38.3/arch/x86/include/asm/pgtable_64.h 2011-03-14 21:20:32.000000000 -0400 8472--- linux-2.6.38.2/arch/x86/include/asm/pgtable_64.h 2011-03-14 21:20:32.000000000 -0400
8523+++ linux-2.6.38.3/arch/x86/include/asm/pgtable_64.h 2011-04-17 15:57:32.000000000 -0400 8473+++ linux-2.6.38.2/arch/x86/include/asm/pgtable_64.h 2011-03-21 18:31:35.000000000 -0400
8524@@ -16,10 +16,13 @@ 8474@@ -16,10 +16,13 @@
8525 8475
8526 extern pud_t level3_kernel_pgt[512]; 8476 extern pud_t level3_kernel_pgt[512];
@@ -8557,9 +8507,9 @@ diff -urNp linux-2.6.38.3/arch/x86/include/asm/pgtable_64.h linux-2.6.38.3/arch/
8557 } 8507 }
8558 8508
8559 static inline void native_pgd_clear(pgd_t *pgd) 8509 static inline void native_pgd_clear(pgd_t *pgd)
8560diff -urNp linux-2.6.38.3/arch/x86/include/asm/pgtable_64_types.h linux-2.6.38.3/arch/x86/include/asm/pgtable_64_types.h 8510diff -urNp linux-2.6.38.2/arch/x86/include/asm/pgtable_64_types.h linux-2.6.38.2/arch/x86/include/asm/pgtable_64_types.h
8561--- linux-2.6.38.3/arch/x86/include/asm/pgtable_64_types.h 2011-03-14 21:20:32.000000000 -0400 8511--- linux-2.6.38.2/arch/x86/include/asm/pgtable_64_types.h 2011-03-14 21:20:32.000000000 -0400
8562+++ linux-2.6.38.3/arch/x86/include/asm/pgtable_64_types.h 2011-04-17 15:57:32.000000000 -0400 8512+++ linux-2.6.38.2/arch/x86/include/asm/pgtable_64_types.h 2011-03-21 18:31:35.000000000 -0400
8563@@ -59,5 +59,10 @@ typedef struct { pteval_t pte; } pte_t; 8513@@ -59,5 +59,10 @@ typedef struct { pteval_t pte; } pte_t;
8564 #define MODULES_VADDR _AC(0xffffffffa0000000, UL) 8514 #define MODULES_VADDR _AC(0xffffffffa0000000, UL)
8565 #define MODULES_END _AC(0xffffffffff000000, UL) 8515 #define MODULES_END _AC(0xffffffffff000000, UL)
@@ -8571,9 +8521,9 @@ diff -urNp linux-2.6.38.3/arch/x86/include/asm/pgtable_64_types.h linux-2.6.38.3
8571+#define ktva_ktla(addr) (addr) 8521+#define ktva_ktla(addr) (addr)
8572 8522
8573 #endif /* _ASM_X86_PGTABLE_64_DEFS_H */ 8523 #endif /* _ASM_X86_PGTABLE_64_DEFS_H */
8574diff -urNp linux-2.6.38.3/arch/x86/include/asm/pgtable.h linux-2.6.38.3/arch/x86/include/asm/pgtable.h 8524diff -urNp linux-2.6.38.2/arch/x86/include/asm/pgtable.h linux-2.6.38.2/arch/x86/include/asm/pgtable.h
8575--- linux-2.6.38.3/arch/x86/include/asm/pgtable.h 2011-03-14 21:20:32.000000000 -0400 8525--- linux-2.6.38.2/arch/x86/include/asm/pgtable.h 2011-03-14 21:20:32.000000000 -0400
8576+++ linux-2.6.38.3/arch/x86/include/asm/pgtable.h 2011-04-17 15:57:32.000000000 -0400 8526+++ linux-2.6.38.2/arch/x86/include/asm/pgtable.h 2011-03-21 18:31:35.000000000 -0400
8577@@ -81,12 +81,51 @@ extern struct mm_struct *pgd_page_get_mm 8527@@ -81,12 +81,51 @@ extern struct mm_struct *pgd_page_get_mm
8578 8528
8579 #define arch_end_context_switch(prev) do {} while(0) 8529 #define arch_end_context_switch(prev) do {} while(0)
@@ -8743,9 +8693,9 @@ diff -urNp linux-2.6.38.3/arch/x86/include/asm/pgtable.h linux-2.6.38.3/arch/x86
8743 8693
8744 #include <asm-generic/pgtable.h> 8694 #include <asm-generic/pgtable.h>
8745 #endif /* __ASSEMBLY__ */ 8695 #endif /* __ASSEMBLY__ */
8746diff -urNp linux-2.6.38.3/arch/x86/include/asm/pgtable_types.h linux-2.6.38.3/arch/x86/include/asm/pgtable_types.h 8696diff -urNp linux-2.6.38.2/arch/x86/include/asm/pgtable_types.h linux-2.6.38.2/arch/x86/include/asm/pgtable_types.h
8747--- linux-2.6.38.3/arch/x86/include/asm/pgtable_types.h 2011-03-14 21:20:32.000000000 -0400 8697--- linux-2.6.38.2/arch/x86/include/asm/pgtable_types.h 2011-03-14 21:20:32.000000000 -0400
8748+++ linux-2.6.38.3/arch/x86/include/asm/pgtable_types.h 2011-04-17 15:57:32.000000000 -0400 8698+++ linux-2.6.38.2/arch/x86/include/asm/pgtable_types.h 2011-03-21 18:31:35.000000000 -0400
8749@@ -16,13 +16,12 @@ 8699@@ -16,13 +16,12 @@
8750 #define _PAGE_BIT_PSE 7 /* 4 MB (or 2MB) page */ 8700 #define _PAGE_BIT_PSE 7 /* 4 MB (or 2MB) page */
8751 #define _PAGE_BIT_PAT 7 /* on 4KB pages */ 8701 #define _PAGE_BIT_PAT 7 /* on 4KB pages */
@@ -8859,9 +8809,9 @@ diff -urNp linux-2.6.38.3/arch/x86/include/asm/pgtable_types.h linux-2.6.38.3/ar
8859 8809
8860 #define pgprot_writecombine pgprot_writecombine 8810 #define pgprot_writecombine pgprot_writecombine
8861 extern pgprot_t pgprot_writecombine(pgprot_t prot); 8811 extern pgprot_t pgprot_writecombine(pgprot_t prot);
8862diff -urNp linux-2.6.38.3/arch/x86/include/asm/processor.h linux-2.6.38.3/arch/x86/include/asm/processor.h 8812diff -urNp linux-2.6.38.2/arch/x86/include/asm/processor.h linux-2.6.38.2/arch/x86/include/asm/processor.h
8863--- linux-2.6.38.3/arch/x86/include/asm/processor.h 2011-03-14 21:20:32.000000000 -0400 8813--- linux-2.6.38.2/arch/x86/include/asm/processor.h 2011-03-14 21:20:32.000000000 -0400
8864+++ linux-2.6.38.3/arch/x86/include/asm/processor.h 2011-04-17 15:57:32.000000000 -0400 8814+++ linux-2.6.38.2/arch/x86/include/asm/processor.h 2011-03-21 18:31:35.000000000 -0400
8865@@ -270,7 +270,7 @@ struct tss_struct { 8815@@ -270,7 +270,7 @@ struct tss_struct {
8866 8816
8867 } ____cacheline_aligned; 8817 } ____cacheline_aligned;
@@ -8946,9 +8896,9 @@ diff -urNp linux-2.6.38.3/arch/x86/include/asm/processor.h linux-2.6.38.3/arch/x
8946 #define KSTK_EIP(task) (task_pt_regs(task)->ip) 8896 #define KSTK_EIP(task) (task_pt_regs(task)->ip)
8947 8897
8948 /* Get/set a process' ability to use the timestamp counter instruction */ 8898 /* Get/set a process' ability to use the timestamp counter instruction */
8949diff -urNp linux-2.6.38.3/arch/x86/include/asm/ptrace.h linux-2.6.38.3/arch/x86/include/asm/ptrace.h 8899diff -urNp linux-2.6.38.2/arch/x86/include/asm/ptrace.h linux-2.6.38.2/arch/x86/include/asm/ptrace.h
8950--- linux-2.6.38.3/arch/x86/include/asm/ptrace.h 2011-03-14 21:20:32.000000000 -0400 8900--- linux-2.6.38.2/arch/x86/include/asm/ptrace.h 2011-03-14 21:20:32.000000000 -0400
8951+++ linux-2.6.38.3/arch/x86/include/asm/ptrace.h 2011-04-17 15:57:32.000000000 -0400 8901+++ linux-2.6.38.2/arch/x86/include/asm/ptrace.h 2011-03-21 18:31:35.000000000 -0400
8952@@ -152,28 +152,29 @@ static inline unsigned long regs_return_ 8902@@ -152,28 +152,29 @@ static inline unsigned long regs_return_
8953 } 8903 }
8954 8904
@@ -8985,9 +8935,9 @@ diff -urNp linux-2.6.38.3/arch/x86/include/asm/ptrace.h linux-2.6.38.3/arch/x86/
8985 #endif 8935 #endif
8986 } 8936 }
8987 8937
8988diff -urNp linux-2.6.38.3/arch/x86/include/asm/reboot.h linux-2.6.38.3/arch/x86/include/asm/reboot.h 8938diff -urNp linux-2.6.38.2/arch/x86/include/asm/reboot.h linux-2.6.38.2/arch/x86/include/asm/reboot.h
8989--- linux-2.6.38.3/arch/x86/include/asm/reboot.h 2011-03-14 21:20:32.000000000 -0400 8939--- linux-2.6.38.2/arch/x86/include/asm/reboot.h 2011-03-14 21:20:32.000000000 -0400
8990+++ linux-2.6.38.3/arch/x86/include/asm/reboot.h 2011-04-17 15:57:32.000000000 -0400 8940+++ linux-2.6.38.2/arch/x86/include/asm/reboot.h 2011-03-21 18:31:35.000000000 -0400
8991@@ -18,7 +18,7 @@ extern struct machine_ops machine_ops; 8941@@ -18,7 +18,7 @@ extern struct machine_ops machine_ops;
8992 8942
8993 void native_machine_crash_shutdown(struct pt_regs *regs); 8943 void native_machine_crash_shutdown(struct pt_regs *regs);
@@ -8997,9 +8947,9 @@ diff -urNp linux-2.6.38.3/arch/x86/include/asm/reboot.h linux-2.6.38.3/arch/x86/
8997 8947
8998 typedef void (*nmi_shootdown_cb)(int, struct die_args*); 8948 typedef void (*nmi_shootdown_cb)(int, struct die_args*);
8999 void nmi_shootdown_cpus(nmi_shootdown_cb callback); 8949 void nmi_shootdown_cpus(nmi_shootdown_cb callback);
9000diff -urNp linux-2.6.38.3/arch/x86/include/asm/rwsem.h linux-2.6.38.3/arch/x86/include/asm/rwsem.h 8950diff -urNp linux-2.6.38.2/arch/x86/include/asm/rwsem.h linux-2.6.38.2/arch/x86/include/asm/rwsem.h
9001--- linux-2.6.38.3/arch/x86/include/asm/rwsem.h 2011-03-14 21:20:32.000000000 -0400 8951--- linux-2.6.38.2/arch/x86/include/asm/rwsem.h 2011-03-14 21:20:32.000000000 -0400
9002+++ linux-2.6.38.3/arch/x86/include/asm/rwsem.h 2011-04-17 15:57:32.000000000 -0400 8952+++ linux-2.6.38.2/arch/x86/include/asm/rwsem.h 2011-03-21 18:31:35.000000000 -0400
9003@@ -118,6 +118,14 @@ static inline void __down_read(struct rw 8953@@ -118,6 +118,14 @@ static inline void __down_read(struct rw
9004 { 8954 {
9005 asm volatile("# beginning down_read\n\t" 8955 asm volatile("# beginning down_read\n\t"
@@ -9124,9 +9074,9 @@ diff -urNp linux-2.6.38.3/arch/x86/include/asm/rwsem.h linux-2.6.38.3/arch/x86/i
9124 : "+r" (tmp), "+m" (sem->count) 9074 : "+r" (tmp), "+m" (sem->count)
9125 : : "memory"); 9075 : : "memory");
9126 9076
9127diff -urNp linux-2.6.38.3/arch/x86/include/asm/segment.h linux-2.6.38.3/arch/x86/include/asm/segment.h 9077diff -urNp linux-2.6.38.2/arch/x86/include/asm/segment.h linux-2.6.38.2/arch/x86/include/asm/segment.h
9128--- linux-2.6.38.3/arch/x86/include/asm/segment.h 2011-03-14 21:20:32.000000000 -0400 9078--- linux-2.6.38.2/arch/x86/include/asm/segment.h 2011-03-14 21:20:32.000000000 -0400
9129+++ linux-2.6.38.3/arch/x86/include/asm/segment.h 2011-04-17 15:57:32.000000000 -0400 9079+++ linux-2.6.38.2/arch/x86/include/asm/segment.h 2011-03-21 18:31:35.000000000 -0400
9130@@ -62,8 +62,8 @@ 9080@@ -62,8 +62,8 @@
9131 * 26 - ESPFIX small SS 9081 * 26 - ESPFIX small SS
9132 * 27 - per-cpu [ offset to per-cpu data area ] 9082 * 27 - per-cpu [ offset to per-cpu data area ]
@@ -9186,9 +9136,9 @@ diff -urNp linux-2.6.38.3/arch/x86/include/asm/segment.h linux-2.6.38.3/arch/x86
9186 #define __KERNEL_DS (GDT_ENTRY_KERNEL_DS*8) 9136 #define __KERNEL_DS (GDT_ENTRY_KERNEL_DS*8)
9187 #define __USER_DS (GDT_ENTRY_DEFAULT_USER_DS*8+3) 9137 #define __USER_DS (GDT_ENTRY_DEFAULT_USER_DS*8+3)
9188 #define __USER_CS (GDT_ENTRY_DEFAULT_USER_CS*8+3) 9138 #define __USER_CS (GDT_ENTRY_DEFAULT_USER_CS*8+3)
9189diff -urNp linux-2.6.38.3/arch/x86/include/asm/smp.h linux-2.6.38.3/arch/x86/include/asm/smp.h 9139diff -urNp linux-2.6.38.2/arch/x86/include/asm/smp.h linux-2.6.38.2/arch/x86/include/asm/smp.h
9190--- linux-2.6.38.3/arch/x86/include/asm/smp.h 2011-03-14 21:20:32.000000000 -0400 9140--- linux-2.6.38.2/arch/x86/include/asm/smp.h 2011-03-14 21:20:32.000000000 -0400
9191+++ linux-2.6.38.3/arch/x86/include/asm/smp.h 2011-04-17 15:57:32.000000000 -0400 9141+++ linux-2.6.38.2/arch/x86/include/asm/smp.h 2011-03-21 18:31:35.000000000 -0400
9192@@ -24,7 +24,7 @@ extern unsigned int num_processors; 9142@@ -24,7 +24,7 @@ extern unsigned int num_processors;
9193 DECLARE_PER_CPU(cpumask_var_t, cpu_sibling_map); 9143 DECLARE_PER_CPU(cpumask_var_t, cpu_sibling_map);
9194 DECLARE_PER_CPU(cpumask_var_t, cpu_core_map); 9144 DECLARE_PER_CPU(cpumask_var_t, cpu_core_map);
@@ -9198,26 +9148,9 @@ diff -urNp linux-2.6.38.3/arch/x86/include/asm/smp.h linux-2.6.38.3/arch/x86/inc
9198 9148
9199 static inline struct cpumask *cpu_sibling_mask(int cpu) 9149 static inline struct cpumask *cpu_sibling_mask(int cpu)
9200 { 9150 {
9201@@ -172,14 +172,8 @@ extern unsigned disabled_cpus __cpuinitd 9151diff -urNp linux-2.6.38.2/arch/x86/include/asm/spinlock.h linux-2.6.38.2/arch/x86/include/asm/spinlock.h
9202 extern int safe_smp_processor_id(void); 9152--- linux-2.6.38.2/arch/x86/include/asm/spinlock.h 2011-03-14 21:20:32.000000000 -0400
9203 9153+++ linux-2.6.38.2/arch/x86/include/asm/spinlock.h 2011-03-21 18:31:35.000000000 -0400
9204 #elif defined(CONFIG_X86_64_SMP)
9205-#define raw_smp_processor_id() (percpu_read(cpu_number))
9206-
9207-#define stack_smp_processor_id() \
9208-({ \
9209- struct thread_info *ti; \
9210- __asm__("andq %%rsp,%0; ":"=r" (ti) : "0" (CURRENT_MASK)); \
9211- ti->cpu; \
9212-})
9213+#define raw_smp_processor_id() (percpu_read(cpu_number))
9214+#define stack_smp_processor_id() raw_smp_processor_id()
9215 #define safe_smp_processor_id() smp_processor_id()
9216
9217 #endif
9218diff -urNp linux-2.6.38.3/arch/x86/include/asm/spinlock.h linux-2.6.38.3/arch/x86/include/asm/spinlock.h
9219--- linux-2.6.38.3/arch/x86/include/asm/spinlock.h 2011-03-14 21:20:32.000000000 -0400
9220+++ linux-2.6.38.3/arch/x86/include/asm/spinlock.h 2011-04-17 15:57:32.000000000 -0400
9221@@ -249,6 +249,14 @@ static inline int arch_write_can_lock(ar 9154@@ -249,6 +249,14 @@ static inline int arch_write_can_lock(ar
9222 static inline void arch_read_lock(arch_rwlock_t *rw) 9155 static inline void arch_read_lock(arch_rwlock_t *rw)
9223 { 9156 {
@@ -9280,9 +9213,9 @@ diff -urNp linux-2.6.38.3/arch/x86/include/asm/spinlock.h linux-2.6.38.3/arch/x8
9280 : "+m" (rw->lock) : "i" (RW_LOCK_BIAS) : "memory"); 9213 : "+m" (rw->lock) : "i" (RW_LOCK_BIAS) : "memory");
9281 } 9214 }
9282 9215
9283diff -urNp linux-2.6.38.3/arch/x86/include/asm/stackprotector.h linux-2.6.38.3/arch/x86/include/asm/stackprotector.h 9216diff -urNp linux-2.6.38.2/arch/x86/include/asm/stackprotector.h linux-2.6.38.2/arch/x86/include/asm/stackprotector.h
9284--- linux-2.6.38.3/arch/x86/include/asm/stackprotector.h 2011-03-14 21:20:32.000000000 -0400 9217--- linux-2.6.38.2/arch/x86/include/asm/stackprotector.h 2011-03-14 21:20:32.000000000 -0400
9285+++ linux-2.6.38.3/arch/x86/include/asm/stackprotector.h 2011-04-17 15:57:32.000000000 -0400 9218+++ linux-2.6.38.2/arch/x86/include/asm/stackprotector.h 2011-03-21 18:31:35.000000000 -0400
9286@@ -113,7 +113,7 @@ static inline void setup_stack_canary_se 9219@@ -113,7 +113,7 @@ static inline void setup_stack_canary_se
9287 9220
9288 static inline void load_stack_canary_segment(void) 9221 static inline void load_stack_canary_segment(void)
@@ -9292,80 +9225,9 @@ diff -urNp linux-2.6.38.3/arch/x86/include/asm/stackprotector.h linux-2.6.38.3/a
9292 asm volatile ("mov %0, %%gs" : : "r" (0)); 9225 asm volatile ("mov %0, %%gs" : : "r" (0));
9293 #endif 9226 #endif
9294 } 9227 }
9295diff -urNp linux-2.6.38.3/arch/x86/include/asm/stacktrace.h linux-2.6.38.3/arch/x86/include/asm/stacktrace.h 9228diff -urNp linux-2.6.38.2/arch/x86/include/asm/system.h linux-2.6.38.2/arch/x86/include/asm/system.h
9296--- linux-2.6.38.3/arch/x86/include/asm/stacktrace.h 2011-03-14 21:20:32.000000000 -0400 9229--- linux-2.6.38.2/arch/x86/include/asm/system.h 2011-03-14 21:20:32.000000000 -0400
9297+++ linux-2.6.38.3/arch/x86/include/asm/stacktrace.h 2011-04-17 15:57:32.000000000 -0400 9230+++ linux-2.6.38.2/arch/x86/include/asm/system.h 2011-03-21 18:31:35.000000000 -0400
9298@@ -11,28 +11,20 @@
9299
9300 extern int kstack_depth_to_print;
9301
9302-struct thread_info;
9303+struct task_struct;
9304 struct stacktrace_ops;
9305
9306-typedef unsigned long (*walk_stack_t)(struct thread_info *tinfo,
9307- unsigned long *stack,
9308- unsigned long bp,
9309- const struct stacktrace_ops *ops,
9310- void *data,
9311- unsigned long *end,
9312- int *graph);
9313-
9314-extern unsigned long
9315-print_context_stack(struct thread_info *tinfo,
9316- unsigned long *stack, unsigned long bp,
9317- const struct stacktrace_ops *ops, void *data,
9318- unsigned long *end, int *graph);
9319-
9320-extern unsigned long
9321-print_context_stack_bp(struct thread_info *tinfo,
9322- unsigned long *stack, unsigned long bp,
9323- const struct stacktrace_ops *ops, void *data,
9324- unsigned long *end, int *graph);
9325+typedef unsigned long walk_stack_t(struct task_struct *task,
9326+ void *stack_start,
9327+ unsigned long *stack,
9328+ unsigned long bp,
9329+ const struct stacktrace_ops *ops,
9330+ void *data,
9331+ unsigned long *end,
9332+ int *graph);
9333+
9334+extern walk_stack_t print_context_stack;
9335+extern walk_stack_t print_context_stack_bp;
9336
9337 /* Generic stack tracer with callbacks */
9338
9339@@ -43,7 +35,7 @@ struct stacktrace_ops {
9340 void (*address)(void *data, unsigned long address, int reliable);
9341 /* On negative return stop dumping */
9342 int (*stack)(void *data, char *name);
9343- walk_stack_t walk_stack;
9344+ walk_stack_t *walk_stack;
9345 };
9346
9347 void dump_trace(struct task_struct *tsk, struct pt_regs *regs,
9348diff -urNp linux-2.6.38.3/arch/x86/include/asm/system.h linux-2.6.38.3/arch/x86/include/asm/system.h
9349--- linux-2.6.38.3/arch/x86/include/asm/system.h 2011-03-14 21:20:32.000000000 -0400
9350+++ linux-2.6.38.3/arch/x86/include/asm/system.h 2011-04-17 15:57:32.000000000 -0400
9351@@ -131,7 +131,7 @@ do { \
9352 "call __switch_to\n\t" \
9353 "movq "__percpu_arg([current_task])",%%rsi\n\t" \
9354 __switch_canary \
9355- "movq %P[thread_info](%%rsi),%%r8\n\t" \
9356+ "movq "__percpu_arg([thread_info])",%%r8\n\t" \
9357 "movq %%rax,%%rdi\n\t" \
9358 "testl %[_tif_fork],%P[ti_flags](%%r8)\n\t" \
9359 "jnz ret_from_fork\n\t" \
9360@@ -142,7 +142,7 @@ do { \
9361 [threadrsp] "i" (offsetof(struct task_struct, thread.sp)), \
9362 [ti_flags] "i" (offsetof(struct thread_info, flags)), \
9363 [_tif_fork] "i" (_TIF_FORK), \
9364- [thread_info] "i" (offsetof(struct task_struct, stack)), \
9365+ [thread_info] "m" (current_tinfo), \
9366 [current_task] "m" (current_task) \
9367 __switch_canary_iparam \
9368 : "memory", "cc" __EXTRA_CLOBBER)
9369@@ -202,7 +202,7 @@ static inline unsigned long get_limit(un 9231@@ -202,7 +202,7 @@ static inline unsigned long get_limit(un
9370 { 9232 {
9371 unsigned long __limit; 9233 unsigned long __limit;
@@ -9384,156 +9246,9 @@ diff -urNp linux-2.6.38.3/arch/x86/include/asm/system.h linux-2.6.38.3/arch/x86/
9384 extern void free_init_pages(char *what, unsigned long begin, unsigned long end); 9246 extern void free_init_pages(char *what, unsigned long begin, unsigned long end);
9385 9247
9386 void default_idle(void); 9248 void default_idle(void);
9387diff -urNp linux-2.6.38.3/arch/x86/include/asm/thread_info.h linux-2.6.38.3/arch/x86/include/asm/thread_info.h 9249diff -urNp linux-2.6.38.2/arch/x86/include/asm/uaccess_32.h linux-2.6.38.2/arch/x86/include/asm/uaccess_32.h
9388--- linux-2.6.38.3/arch/x86/include/asm/thread_info.h 2011-03-14 21:20:32.000000000 -0400 9250--- linux-2.6.38.2/arch/x86/include/asm/uaccess_32.h 2011-03-14 21:20:32.000000000 -0400
9389+++ linux-2.6.38.3/arch/x86/include/asm/thread_info.h 2011-04-17 15:57:32.000000000 -0400 9251+++ linux-2.6.38.2/arch/x86/include/asm/uaccess_32.h 2011-03-21 18:31:35.000000000 -0400
9390@@ -10,6 +10,7 @@
9391 #include <linux/compiler.h>
9392 #include <asm/page.h>
9393 #include <asm/types.h>
9394+#include <asm/percpu.h>
9395
9396 /*
9397 * low level task data that entry.S needs immediate access to
9398@@ -24,7 +25,6 @@ struct exec_domain;
9399 #include <asm/atomic.h>
9400
9401 struct thread_info {
9402- struct task_struct *task; /* main task structure */
9403 struct exec_domain *exec_domain; /* execution domain */
9404 __u32 flags; /* low level flags */
9405 __u32 status; /* thread synchronous flags */
9406@@ -34,18 +34,11 @@ struct thread_info {
9407 mm_segment_t addr_limit;
9408 struct restart_block restart_block;
9409 void __user *sysenter_return;
9410-#ifdef CONFIG_X86_32
9411- unsigned long previous_esp; /* ESP of the previous stack in
9412- case of nested (IRQ) stacks
9413- */
9414- __u8 supervisor_stack[0];
9415-#endif
9416 int uaccess_err;
9417 };
9418
9419-#define INIT_THREAD_INFO(tsk) \
9420+#define INIT_THREAD_INFO \
9421 { \
9422- .task = &tsk, \
9423 .exec_domain = &default_exec_domain, \
9424 .flags = 0, \
9425 .cpu = 0, \
9426@@ -56,7 +49,7 @@ struct thread_info {
9427 }, \
9428 }
9429
9430-#define init_thread_info (init_thread_union.thread_info)
9431+#define init_thread_info (init_task.tinfo)
9432 #define init_stack (init_thread_union.stack)
9433
9434 #else /* !__ASSEMBLY__ */
9435@@ -164,6 +157,23 @@ struct thread_info {
9436 #define alloc_thread_info(tsk) \
9437 ((struct thread_info *)__get_free_pages(THREAD_FLAGS, THREAD_ORDER))
9438
9439+#ifdef __ASSEMBLY__
9440+/* how to get the thread information struct from ASM */
9441+#define GET_THREAD_INFO(reg) \
9442+ mov PER_CPU_VAR(current_tinfo), reg
9443+
9444+/* use this one if reg already contains %esp */
9445+#define GET_THREAD_INFO_WITH_ESP(reg) GET_THREAD_INFO(reg)
9446+#else
9447+/* how to get the thread information struct from C */
9448+DECLARE_PER_CPU(struct thread_info *, current_tinfo);
9449+
9450+static __always_inline struct thread_info *current_thread_info(void)
9451+{
9452+ return percpu_read_stable(current_tinfo);
9453+}
9454+#endif
9455+
9456 #ifdef CONFIG_X86_32
9457
9458 #define STACK_WARN (THREAD_SIZE/8)
9459@@ -174,35 +184,13 @@ struct thread_info {
9460 */
9461 #ifndef __ASSEMBLY__
9462
9463-
9464 /* how to get the current stack pointer from C */
9465 register unsigned long current_stack_pointer asm("esp") __used;
9466
9467-/* how to get the thread information struct from C */
9468-static inline struct thread_info *current_thread_info(void)
9469-{
9470- return (struct thread_info *)
9471- (current_stack_pointer & ~(THREAD_SIZE - 1));
9472-}
9473-
9474-#else /* !__ASSEMBLY__ */
9475-
9476-/* how to get the thread information struct from ASM */
9477-#define GET_THREAD_INFO(reg) \
9478- movl $-THREAD_SIZE, reg; \
9479- andl %esp, reg
9480-
9481-/* use this one if reg already contains %esp */
9482-#define GET_THREAD_INFO_WITH_ESP(reg) \
9483- andl $-THREAD_SIZE, reg
9484-
9485 #endif
9486
9487 #else /* X86_32 */
9488
9489-#include <asm/percpu.h>
9490-#define KERNEL_STACK_OFFSET (5*8)
9491-
9492 /*
9493 * macros/functions for gaining access to the thread information structure
9494 * preempt_count needs to be 1 initially, until the scheduler is functional.
9495@@ -210,21 +198,6 @@ static inline struct thread_info *curren
9496 #ifndef __ASSEMBLY__
9497 DECLARE_PER_CPU(unsigned long, kernel_stack);
9498
9499-static inline struct thread_info *current_thread_info(void)
9500-{
9501- struct thread_info *ti;
9502- ti = (void *)(percpu_read_stable(kernel_stack) +
9503- KERNEL_STACK_OFFSET - THREAD_SIZE);
9504- return ti;
9505-}
9506-
9507-#else /* !__ASSEMBLY__ */
9508-
9509-/* how to get the thread information struct from ASM */
9510-#define GET_THREAD_INFO(reg) \
9511- movq PER_CPU_VAR(kernel_stack),reg ; \
9512- subq $(THREAD_SIZE-KERNEL_STACK_OFFSET),reg
9513-
9514 #endif
9515
9516 #endif /* !X86_32 */
9517@@ -260,5 +233,16 @@ extern void arch_task_cache_init(void);
9518 extern void free_thread_info(struct thread_info *ti);
9519 extern int arch_dup_task_struct(struct task_struct *dst, struct task_struct *src);
9520 #define arch_task_cache_init arch_task_cache_init
9521+
9522+#define __HAVE_THREAD_FUNCTIONS
9523+#define task_thread_info(task) (&(task)->tinfo)
9524+#define task_stack_page(task) ((task)->stack)
9525+#define setup_thread_stack(p, org) do {} while (0)
9526+#define end_of_stack(p) ((unsigned long *)task_stack_page(p) + 1)
9527+
9528+#define __HAVE_ARCH_TASK_STRUCT_ALLOCATOR
9529+extern struct task_struct *alloc_task_struct(void);
9530+extern void free_task_struct(struct task_struct *);
9531+
9532 #endif
9533 #endif /* _ASM_X86_THREAD_INFO_H */
9534diff -urNp linux-2.6.38.3/arch/x86/include/asm/uaccess_32.h linux-2.6.38.3/arch/x86/include/asm/uaccess_32.h
9535--- linux-2.6.38.3/arch/x86/include/asm/uaccess_32.h 2011-03-14 21:20:32.000000000 -0400
9536+++ linux-2.6.38.3/arch/x86/include/asm/uaccess_32.h 2011-04-17 15:57:32.000000000 -0400
9537@@ -44,6 +44,9 @@ unsigned long __must_check __copy_from_u 9252@@ -44,6 +44,9 @@ unsigned long __must_check __copy_from_u
9538 static __always_inline unsigned long __must_check 9253 static __always_inline unsigned long __must_check
9539 __copy_to_user_inatomic(void __user *to, const void *from, unsigned long n) 9254 __copy_to_user_inatomic(void __user *to, const void *from, unsigned long n)
@@ -9690,9 +9405,9 @@ diff -urNp linux-2.6.38.3/arch/x86/include/asm/uaccess_32.h linux-2.6.38.3/arch/
9690 return n; 9405 return n;
9691 } 9406 }
9692 9407
9693diff -urNp linux-2.6.38.3/arch/x86/include/asm/uaccess_64.h linux-2.6.38.3/arch/x86/include/asm/uaccess_64.h 9408diff -urNp linux-2.6.38.2/arch/x86/include/asm/uaccess_64.h linux-2.6.38.2/arch/x86/include/asm/uaccess_64.h
9694--- linux-2.6.38.3/arch/x86/include/asm/uaccess_64.h 2011-03-14 21:20:32.000000000 -0400 9409--- linux-2.6.38.2/arch/x86/include/asm/uaccess_64.h 2011-03-14 21:20:32.000000000 -0400
9695+++ linux-2.6.38.3/arch/x86/include/asm/uaccess_64.h 2011-04-17 15:57:32.000000000 -0400 9410+++ linux-2.6.38.2/arch/x86/include/asm/uaccess_64.h 2011-03-21 18:31:35.000000000 -0400
9696@@ -11,6 +11,9 @@ 9411@@ -11,6 +11,9 @@
9697 #include <asm/alternative.h> 9412 #include <asm/alternative.h>
9698 #include <asm/cpufeature.h> 9413 #include <asm/cpufeature.h>
@@ -10065,9 +9780,9 @@ diff -urNp linux-2.6.38.3/arch/x86/include/asm/uaccess_64.h linux-2.6.38.3/arch/
10065 copy_user_handle_tail(char *to, char *from, unsigned len, unsigned zerorest); 9780 copy_user_handle_tail(char *to, char *from, unsigned len, unsigned zerorest);
10066 9781
10067 #endif /* _ASM_X86_UACCESS_64_H */ 9782 #endif /* _ASM_X86_UACCESS_64_H */
10068diff -urNp linux-2.6.38.3/arch/x86/include/asm/uaccess.h linux-2.6.38.3/arch/x86/include/asm/uaccess.h 9783diff -urNp linux-2.6.38.2/arch/x86/include/asm/uaccess.h linux-2.6.38.2/arch/x86/include/asm/uaccess.h
10069--- linux-2.6.38.3/arch/x86/include/asm/uaccess.h 2011-03-14 21:20:32.000000000 -0400 9784--- linux-2.6.38.2/arch/x86/include/asm/uaccess.h 2011-03-14 21:20:32.000000000 -0400
10070+++ linux-2.6.38.3/arch/x86/include/asm/uaccess.h 2011-04-17 15:57:32.000000000 -0400 9785+++ linux-2.6.38.2/arch/x86/include/asm/uaccess.h 2011-03-21 18:31:35.000000000 -0400
10071@@ -8,12 +8,15 @@ 9786@@ -8,12 +8,15 @@
10072 #include <linux/thread_info.h> 9787 #include <linux/thread_info.h>
10073 #include <linux/prefetch.h> 9788 #include <linux/prefetch.h>
@@ -10286,9 +10001,9 @@ diff -urNp linux-2.6.38.3/arch/x86/include/asm/uaccess.h linux-2.6.38.3/arch/x86
10286 #ifdef CONFIG_X86_32 10001 #ifdef CONFIG_X86_32
10287 # include "uaccess_32.h" 10002 # include "uaccess_32.h"
10288 #else 10003 #else
10289diff -urNp linux-2.6.38.3/arch/x86/include/asm/vgtod.h linux-2.6.38.3/arch/x86/include/asm/vgtod.h 10004diff -urNp linux-2.6.38.2/arch/x86/include/asm/vgtod.h linux-2.6.38.2/arch/x86/include/asm/vgtod.h
10290--- linux-2.6.38.3/arch/x86/include/asm/vgtod.h 2011-03-14 21:20:32.000000000 -0400 10005--- linux-2.6.38.2/arch/x86/include/asm/vgtod.h 2011-03-14 21:20:32.000000000 -0400
10291+++ linux-2.6.38.3/arch/x86/include/asm/vgtod.h 2011-04-17 15:57:32.000000000 -0400 10006+++ linux-2.6.38.2/arch/x86/include/asm/vgtod.h 2011-03-21 18:31:35.000000000 -0400
10292@@ -14,6 +14,7 @@ struct vsyscall_gtod_data { 10007@@ -14,6 +14,7 @@ struct vsyscall_gtod_data {
10293 int sysctl_enabled; 10008 int sysctl_enabled;
10294 struct timezone sys_tz; 10009 struct timezone sys_tz;
@@ -10297,9 +10012,9 @@ diff -urNp linux-2.6.38.3/arch/x86/include/asm/vgtod.h linux-2.6.38.3/arch/x86/i
10297 cycle_t (*vread)(void); 10012 cycle_t (*vread)(void);
10298 cycle_t cycle_last; 10013 cycle_t cycle_last;
10299 cycle_t mask; 10014 cycle_t mask;
10300diff -urNp linux-2.6.38.3/arch/x86/include/asm/vsyscall.h linux-2.6.38.3/arch/x86/include/asm/vsyscall.h 10015diff -urNp linux-2.6.38.2/arch/x86/include/asm/vsyscall.h linux-2.6.38.2/arch/x86/include/asm/vsyscall.h
10301--- linux-2.6.38.3/arch/x86/include/asm/vsyscall.h 2011-03-14 21:20:32.000000000 -0400 10016--- linux-2.6.38.2/arch/x86/include/asm/vsyscall.h 2011-03-14 21:20:32.000000000 -0400
10302+++ linux-2.6.38.3/arch/x86/include/asm/vsyscall.h 2011-04-17 15:57:32.000000000 -0400 10017+++ linux-2.6.38.2/arch/x86/include/asm/vsyscall.h 2011-03-21 18:31:35.000000000 -0400
10303@@ -15,9 +15,10 @@ enum vsyscall_num { 10018@@ -15,9 +15,10 @@ enum vsyscall_num {
10304 10019
10305 #ifdef __KERNEL__ 10020 #ifdef __KERNEL__
@@ -10330,9 +10045,9 @@ diff -urNp linux-2.6.38.3/arch/x86/include/asm/vsyscall.h linux-2.6.38.3/arch/x8
10330 #endif /* __KERNEL__ */ 10045 #endif /* __KERNEL__ */
10331 10046
10332 #endif /* _ASM_X86_VSYSCALL_H */ 10047 #endif /* _ASM_X86_VSYSCALL_H */
10333diff -urNp linux-2.6.38.3/arch/x86/include/asm/xsave.h linux-2.6.38.3/arch/x86/include/asm/xsave.h 10048diff -urNp linux-2.6.38.2/arch/x86/include/asm/xsave.h linux-2.6.38.2/arch/x86/include/asm/xsave.h
10334--- linux-2.6.38.3/arch/x86/include/asm/xsave.h 2011-03-14 21:20:32.000000000 -0400 10049--- linux-2.6.38.2/arch/x86/include/asm/xsave.h 2011-03-14 21:20:32.000000000 -0400
10335+++ linux-2.6.38.3/arch/x86/include/asm/xsave.h 2011-04-17 15:57:32.000000000 -0400 10050+++ linux-2.6.38.2/arch/x86/include/asm/xsave.h 2011-03-21 18:31:35.000000000 -0400
10336@@ -65,6 +65,11 @@ static inline int xsave_user(struct xsav 10051@@ -65,6 +65,11 @@ static inline int xsave_user(struct xsav
10337 { 10052 {
10338 int err; 10053 int err;
@@ -10357,9 +10072,9 @@ diff -urNp linux-2.6.38.3/arch/x86/include/asm/xsave.h linux-2.6.38.3/arch/x86/i
10357 __asm__ __volatile__("1: .byte " REX_PREFIX "0x0f,0xae,0x2f\n" 10072 __asm__ __volatile__("1: .byte " REX_PREFIX "0x0f,0xae,0x2f\n"
10358 "2:\n" 10073 "2:\n"
10359 ".section .fixup,\"ax\"\n" 10074 ".section .fixup,\"ax\"\n"
10360diff -urNp linux-2.6.38.3/arch/x86/Kconfig linux-2.6.38.3/arch/x86/Kconfig 10075diff -urNp linux-2.6.38.2/arch/x86/Kconfig linux-2.6.38.2/arch/x86/Kconfig
10361--- linux-2.6.38.3/arch/x86/Kconfig 2011-03-14 21:20:32.000000000 -0400 10076--- linux-2.6.38.2/arch/x86/Kconfig 2011-03-14 21:20:32.000000000 -0400
10362+++ linux-2.6.38.3/arch/x86/Kconfig 2011-04-17 15:57:32.000000000 -0400 10077+++ linux-2.6.38.2/arch/x86/Kconfig 2011-03-21 18:31:35.000000000 -0400
10363@@ -223,7 +223,7 @@ config X86_TRAMPOLINE 10078@@ -223,7 +223,7 @@ config X86_TRAMPOLINE
10364 10079
10365 config X86_32_LAZY_GS 10080 config X86_32_LAZY_GS
@@ -10441,9 +10156,9 @@ diff -urNp linux-2.6.38.3/arch/x86/Kconfig linux-2.6.38.3/arch/x86/Kconfig
10441 ---help--- 10156 ---help---
10442 Map the 32-bit VDSO to the predictable old-style address too. 10157 Map the 32-bit VDSO to the predictable old-style address too.
10443 10158
10444diff -urNp linux-2.6.38.3/arch/x86/Kconfig.cpu linux-2.6.38.3/arch/x86/Kconfig.cpu 10159diff -urNp linux-2.6.38.2/arch/x86/Kconfig.cpu linux-2.6.38.2/arch/x86/Kconfig.cpu
10445--- linux-2.6.38.3/arch/x86/Kconfig.cpu 2011-03-14 21:20:32.000000000 -0400 10160--- linux-2.6.38.2/arch/x86/Kconfig.cpu 2011-03-14 21:20:32.000000000 -0400
10446+++ linux-2.6.38.3/arch/x86/Kconfig.cpu 2011-04-17 15:57:32.000000000 -0400 10161+++ linux-2.6.38.2/arch/x86/Kconfig.cpu 2011-03-21 18:31:35.000000000 -0400
10447@@ -339,7 +339,7 @@ config X86_PPRO_FENCE 10162@@ -339,7 +339,7 @@ config X86_PPRO_FENCE
10448 10163
10449 config X86_F00F_BUG 10164 config X86_F00F_BUG
@@ -10471,9 +10186,9 @@ diff -urNp linux-2.6.38.3/arch/x86/Kconfig.cpu linux-2.6.38.3/arch/x86/Kconfig.c
10471 10186
10472 config X86_MINIMUM_CPU_FAMILY 10187 config X86_MINIMUM_CPU_FAMILY
10473 int 10188 int
10474diff -urNp linux-2.6.38.3/arch/x86/Kconfig.debug linux-2.6.38.3/arch/x86/Kconfig.debug 10189diff -urNp linux-2.6.38.2/arch/x86/Kconfig.debug linux-2.6.38.2/arch/x86/Kconfig.debug
10475--- linux-2.6.38.3/arch/x86/Kconfig.debug 2011-03-14 21:20:32.000000000 -0400 10190--- linux-2.6.38.2/arch/x86/Kconfig.debug 2011-03-14 21:20:32.000000000 -0400
10476+++ linux-2.6.38.3/arch/x86/Kconfig.debug 2011-04-17 15:57:32.000000000 -0400 10191+++ linux-2.6.38.2/arch/x86/Kconfig.debug 2011-03-21 18:31:35.000000000 -0400
10477@@ -101,7 +101,7 @@ config X86_PTDUMP 10192@@ -101,7 +101,7 @@ config X86_PTDUMP
10478 config DEBUG_RODATA 10193 config DEBUG_RODATA
10479 bool "Write protect kernel read-only data structures" 10194 bool "Write protect kernel read-only data structures"
@@ -10492,9 +10207,9 @@ diff -urNp linux-2.6.38.3/arch/x86/Kconfig.debug linux-2.6.38.3/arch/x86/Kconfig
10492 ---help--- 10207 ---help---
10493 This option helps catch unintended modifications to loadable 10208 This option helps catch unintended modifications to loadable
10494 kernel module's text and read-only data. It also prevents execution 10209 kernel module's text and read-only data. It also prevents execution
10495diff -urNp linux-2.6.38.3/arch/x86/kernel/acpi/boot.c linux-2.6.38.3/arch/x86/kernel/acpi/boot.c 10210diff -urNp linux-2.6.38.2/arch/x86/kernel/acpi/boot.c linux-2.6.38.2/arch/x86/kernel/acpi/boot.c
10496--- linux-2.6.38.3/arch/x86/kernel/acpi/boot.c 2011-03-14 21:20:32.000000000 -0400 10211--- linux-2.6.38.2/arch/x86/kernel/acpi/boot.c 2011-03-14 21:20:32.000000000 -0400
10497+++ linux-2.6.38.3/arch/x86/kernel/acpi/boot.c 2011-04-17 15:57:32.000000000 -0400 10212+++ linux-2.6.38.2/arch/x86/kernel/acpi/boot.c 2011-03-21 18:31:35.000000000 -0400
10498@@ -1472,7 +1472,7 @@ static struct dmi_system_id __initdata a 10213@@ -1472,7 +1472,7 @@ static struct dmi_system_id __initdata a
10499 DMI_MATCH(DMI_PRODUCT_NAME, "HP Compaq 6715b"), 10214 DMI_MATCH(DMI_PRODUCT_NAME, "HP Compaq 6715b"),
10500 }, 10215 },
@@ -10504,9 +10219,9 @@ diff -urNp linux-2.6.38.3/arch/x86/kernel/acpi/boot.c linux-2.6.38.3/arch/x86/ke
10504 }; 10219 };
10505 10220
10506 /* 10221 /*
10507diff -urNp linux-2.6.38.3/arch/x86/kernel/acpi/sleep.c linux-2.6.38.3/arch/x86/kernel/acpi/sleep.c 10222diff -urNp linux-2.6.38.2/arch/x86/kernel/acpi/sleep.c linux-2.6.38.2/arch/x86/kernel/acpi/sleep.c
10508--- linux-2.6.38.3/arch/x86/kernel/acpi/sleep.c 2011-03-14 21:20:32.000000000 -0400 10223--- linux-2.6.38.2/arch/x86/kernel/acpi/sleep.c 2011-03-14 21:20:32.000000000 -0400
10509+++ linux-2.6.38.3/arch/x86/kernel/acpi/sleep.c 2011-04-17 15:57:32.000000000 -0400 10224+++ linux-2.6.38.2/arch/x86/kernel/acpi/sleep.c 2011-03-21 18:31:35.000000000 -0400
10510@@ -18,7 +18,7 @@ 10225@@ -18,7 +18,7 @@
10511 #include "realmode/wakeup.h" 10226 #include "realmode/wakeup.h"
10512 #include "sleep.h" 10227 #include "sleep.h"
@@ -10529,9 +10244,9 @@ diff -urNp linux-2.6.38.3/arch/x86/kernel/acpi/sleep.c linux-2.6.38.3/arch/x86/k
10529 initial_gs = per_cpu_offset(smp_processor_id()); 10244 initial_gs = per_cpu_offset(smp_processor_id());
10530 #endif 10245 #endif
10531 initial_code = (unsigned long)wakeup_long64; 10246 initial_code = (unsigned long)wakeup_long64;
10532diff -urNp linux-2.6.38.3/arch/x86/kernel/acpi/wakeup_32.S linux-2.6.38.3/arch/x86/kernel/acpi/wakeup_32.S 10247diff -urNp linux-2.6.38.2/arch/x86/kernel/acpi/wakeup_32.S linux-2.6.38.2/arch/x86/kernel/acpi/wakeup_32.S
10533--- linux-2.6.38.3/arch/x86/kernel/acpi/wakeup_32.S 2011-03-14 21:20:32.000000000 -0400 10248--- linux-2.6.38.2/arch/x86/kernel/acpi/wakeup_32.S 2011-03-14 21:20:32.000000000 -0400
10534+++ linux-2.6.38.3/arch/x86/kernel/acpi/wakeup_32.S 2011-04-17 15:57:32.000000000 -0400 10249+++ linux-2.6.38.2/arch/x86/kernel/acpi/wakeup_32.S 2011-03-21 18:31:35.000000000 -0400
10535@@ -30,13 +30,11 @@ wakeup_pmode_return: 10250@@ -30,13 +30,11 @@ wakeup_pmode_return:
10536 # and restore the stack ... but you need gdt for this to work 10251 # and restore the stack ... but you need gdt for this to work
10537 movl saved_context_esp, %esp 10252 movl saved_context_esp, %esp
@@ -10548,9 +10263,9 @@ diff -urNp linux-2.6.38.3/arch/x86/kernel/acpi/wakeup_32.S linux-2.6.38.3/arch/x
10548 10263
10549 bogus_magic: 10264 bogus_magic:
10550 jmp bogus_magic 10265 jmp bogus_magic
10551diff -urNp linux-2.6.38.3/arch/x86/kernel/alternative.c linux-2.6.38.3/arch/x86/kernel/alternative.c 10266diff -urNp linux-2.6.38.2/arch/x86/kernel/alternative.c linux-2.6.38.2/arch/x86/kernel/alternative.c
10552--- linux-2.6.38.3/arch/x86/kernel/alternative.c 2011-04-18 17:27:13.000000000 -0400 10267--- linux-2.6.38.2/arch/x86/kernel/alternative.c 2011-03-23 17:20:06.000000000 -0400
10553+++ linux-2.6.38.3/arch/x86/kernel/alternative.c 2011-04-17 15:57:32.000000000 -0400 10268+++ linux-2.6.38.2/arch/x86/kernel/alternative.c 2011-03-28 16:55:19.000000000 -0400
10554@@ -248,7 +248,7 @@ static void alternatives_smp_lock(const 10269@@ -248,7 +248,7 @@ static void alternatives_smp_lock(const
10555 if (!*poff || ptr < text || ptr >= text_end) 10270 if (!*poff || ptr < text || ptr >= text_end)
10556 continue; 10271 continue;
@@ -10664,9 +10379,9 @@ diff -urNp linux-2.6.38.3/arch/x86/kernel/alternative.c linux-2.6.38.3/arch/x86/
10664 #endif 10379 #endif
10665 10380
10666 void __init arch_init_ideal_nop5(void) 10381 void __init arch_init_ideal_nop5(void)
10667diff -urNp linux-2.6.38.3/arch/x86/kernel/amd_iommu.c linux-2.6.38.3/arch/x86/kernel/amd_iommu.c 10382diff -urNp linux-2.6.38.2/arch/x86/kernel/amd_iommu.c linux-2.6.38.2/arch/x86/kernel/amd_iommu.c
10668--- linux-2.6.38.3/arch/x86/kernel/amd_iommu.c 2011-03-14 21:20:32.000000000 -0400 10383--- linux-2.6.38.2/arch/x86/kernel/amd_iommu.c 2011-03-14 21:20:32.000000000 -0400
10669+++ linux-2.6.38.3/arch/x86/kernel/amd_iommu.c 2011-04-17 15:57:32.000000000 -0400 10384+++ linux-2.6.38.2/arch/x86/kernel/amd_iommu.c 2011-03-21 18:31:35.000000000 -0400
10670@@ -2286,7 +2286,7 @@ static void prealloc_protection_domains( 10385@@ -2286,7 +2286,7 @@ static void prealloc_protection_domains(
10671 } 10386 }
10672 } 10387 }
@@ -10676,9 +10391,9 @@ diff -urNp linux-2.6.38.3/arch/x86/kernel/amd_iommu.c linux-2.6.38.3/arch/x86/ke
10676 .alloc_coherent = alloc_coherent, 10391 .alloc_coherent = alloc_coherent,
10677 .free_coherent = free_coherent, 10392 .free_coherent = free_coherent,
10678 .map_page = map_page, 10393 .map_page = map_page,
10679diff -urNp linux-2.6.38.3/arch/x86/kernel/apic/io_apic.c linux-2.6.38.3/arch/x86/kernel/apic/io_apic.c 10394diff -urNp linux-2.6.38.2/arch/x86/kernel/apic/io_apic.c linux-2.6.38.2/arch/x86/kernel/apic/io_apic.c
10680--- linux-2.6.38.3/arch/x86/kernel/apic/io_apic.c 2011-03-14 21:20:32.000000000 -0400 10395--- linux-2.6.38.2/arch/x86/kernel/apic/io_apic.c 2011-03-14 21:20:32.000000000 -0400
10681+++ linux-2.6.38.3/arch/x86/kernel/apic/io_apic.c 2011-04-17 15:57:32.000000000 -0400 10396+++ linux-2.6.38.2/arch/x86/kernel/apic/io_apic.c 2011-03-21 18:31:35.000000000 -0400
10682@@ -617,7 +617,7 @@ struct IO_APIC_route_entry **alloc_ioapi 10397@@ -617,7 +617,7 @@ struct IO_APIC_route_entry **alloc_ioapi
10683 ioapic_entries = kzalloc(sizeof(*ioapic_entries) * nr_ioapics, 10398 ioapic_entries = kzalloc(sizeof(*ioapic_entries) * nr_ioapics,
10684 GFP_KERNEL); 10399 GFP_KERNEL);
@@ -10715,9 +10430,9 @@ diff -urNp linux-2.6.38.3/arch/x86/kernel/apic/io_apic.c linux-2.6.38.3/arch/x86
10715 { 10430 {
10716 raw_spin_unlock(&vector_lock); 10431 raw_spin_unlock(&vector_lock);
10717 } 10432 }
10718diff -urNp linux-2.6.38.3/arch/x86/kernel/apm_32.c linux-2.6.38.3/arch/x86/kernel/apm_32.c 10433diff -urNp linux-2.6.38.2/arch/x86/kernel/apm_32.c linux-2.6.38.2/arch/x86/kernel/apm_32.c
10719--- linux-2.6.38.3/arch/x86/kernel/apm_32.c 2011-03-14 21:20:32.000000000 -0400 10434--- linux-2.6.38.2/arch/x86/kernel/apm_32.c 2011-03-14 21:20:32.000000000 -0400
10720+++ linux-2.6.38.3/arch/x86/kernel/apm_32.c 2011-04-17 15:57:32.000000000 -0400 10435+++ linux-2.6.38.2/arch/x86/kernel/apm_32.c 2011-03-21 18:31:35.000000000 -0400
10721@@ -410,7 +410,7 @@ static DEFINE_MUTEX(apm_mutex); 10436@@ -410,7 +410,7 @@ static DEFINE_MUTEX(apm_mutex);
10722 * This is for buggy BIOS's that refer to (real mode) segment 0x40 10437 * This is for buggy BIOS's that refer to (real mode) segment 0x40
10723 * even though they are called in protected mode. 10438 * even though they are called in protected mode.
@@ -10819,18 +10534,10 @@ diff -urNp linux-2.6.38.3/arch/x86/kernel/apm_32.c linux-2.6.38.3/arch/x86/kerne
10819 10534
10820 proc_create("apm", 0, NULL, &apm_file_ops); 10535 proc_create("apm", 0, NULL, &apm_file_ops);
10821 10536
10822diff -urNp linux-2.6.38.3/arch/x86/kernel/asm-offsets_32.c linux-2.6.38.3/arch/x86/kernel/asm-offsets_32.c 10537diff -urNp linux-2.6.38.2/arch/x86/kernel/asm-offsets_32.c linux-2.6.38.2/arch/x86/kernel/asm-offsets_32.c
10823--- linux-2.6.38.3/arch/x86/kernel/asm-offsets_32.c 2011-03-14 21:20:32.000000000 -0400 10538--- linux-2.6.38.2/arch/x86/kernel/asm-offsets_32.c 2011-03-14 21:20:32.000000000 -0400
10824+++ linux-2.6.38.3/arch/x86/kernel/asm-offsets_32.c 2011-04-17 15:57:32.000000000 -0400 10539+++ linux-2.6.38.2/arch/x86/kernel/asm-offsets_32.c 2011-03-21 18:31:35.000000000 -0400
10825@@ -51,7 +51,6 @@ void foo(void) 10540@@ -113,6 +113,11 @@ void foo(void)
10826 OFFSET(CPUINFO_x86_vendor_id, cpuinfo_x86, x86_vendor_id);
10827 BLANK();
10828
10829- OFFSET(TI_task, thread_info, task);
10830 OFFSET(TI_exec_domain, thread_info, exec_domain);
10831 OFFSET(TI_flags, thread_info, flags);
10832 OFFSET(TI_status, thread_info, status);
10833@@ -113,6 +112,11 @@ void foo(void)
10834 OFFSET(PV_CPU_iret, pv_cpu_ops, iret); 10541 OFFSET(PV_CPU_iret, pv_cpu_ops, iret);
10835 OFFSET(PV_CPU_irq_enable_sysexit, pv_cpu_ops, irq_enable_sysexit); 10542 OFFSET(PV_CPU_irq_enable_sysexit, pv_cpu_ops, irq_enable_sysexit);
10836 OFFSET(PV_CPU_read_cr0, pv_cpu_ops, read_cr0); 10543 OFFSET(PV_CPU_read_cr0, pv_cpu_ops, read_cr0);
@@ -10842,9 +10549,9 @@ diff -urNp linux-2.6.38.3/arch/x86/kernel/asm-offsets_32.c linux-2.6.38.3/arch/x
10842 #endif 10549 #endif
10843 10550
10844 #ifdef CONFIG_XEN 10551 #ifdef CONFIG_XEN
10845diff -urNp linux-2.6.38.3/arch/x86/kernel/asm-offsets_64.c linux-2.6.38.3/arch/x86/kernel/asm-offsets_64.c 10552diff -urNp linux-2.6.38.2/arch/x86/kernel/asm-offsets_64.c linux-2.6.38.2/arch/x86/kernel/asm-offsets_64.c
10846--- linux-2.6.38.3/arch/x86/kernel/asm-offsets_64.c 2011-03-14 21:20:32.000000000 -0400 10553--- linux-2.6.38.2/arch/x86/kernel/asm-offsets_64.c 2011-03-14 21:20:32.000000000 -0400
10847+++ linux-2.6.38.3/arch/x86/kernel/asm-offsets_64.c 2011-04-17 15:57:32.000000000 -0400 10554+++ linux-2.6.38.2/arch/x86/kernel/asm-offsets_64.c 2011-03-21 18:31:35.000000000 -0400
10848@@ -63,6 +63,18 @@ int main(void) 10555@@ -63,6 +63,18 @@ int main(void)
10849 OFFSET(PV_CPU_irq_enable_sysexit, pv_cpu_ops, irq_enable_sysexit); 10556 OFFSET(PV_CPU_irq_enable_sysexit, pv_cpu_ops, irq_enable_sysexit);
10850 OFFSET(PV_CPU_swapgs, pv_cpu_ops, swapgs); 10557 OFFSET(PV_CPU_swapgs, pv_cpu_ops, swapgs);
@@ -10872,21 +10579,9 @@ diff -urNp linux-2.6.38.3/arch/x86/kernel/asm-offsets_64.c linux-2.6.38.3/arch/x
10872 DEFINE(TSS_ist, offsetof(struct tss_struct, x86_tss.ist)); 10579 DEFINE(TSS_ist, offsetof(struct tss_struct, x86_tss.ist));
10873 BLANK(); 10580 BLANK();
10874 DEFINE(crypto_tfm_ctx_offset, offsetof(struct crypto_tfm, __crt_ctx)); 10581 DEFINE(crypto_tfm_ctx_offset, offsetof(struct crypto_tfm, __crt_ctx));
10875diff -urNp linux-2.6.38.3/arch/x86/kernel/cpu/amd.c linux-2.6.38.3/arch/x86/kernel/cpu/amd.c 10582diff -urNp linux-2.6.38.2/arch/x86/kernel/cpu/common.c linux-2.6.38.2/arch/x86/kernel/cpu/common.c
10876--- linux-2.6.38.3/arch/x86/kernel/cpu/amd.c 2011-03-14 21:20:32.000000000 -0400 10583--- linux-2.6.38.2/arch/x86/kernel/cpu/common.c 2011-03-14 21:20:32.000000000 -0400
10877+++ linux-2.6.38.3/arch/x86/kernel/cpu/amd.c 2011-04-17 15:57:32.000000000 -0400 10584+++ linux-2.6.38.2/arch/x86/kernel/cpu/common.c 2011-03-21 18:31:35.000000000 -0400
10878@@ -601,7 +601,7 @@ static unsigned int __cpuinit amd_size_c
10879 unsigned int size)
10880 {
10881 /* AMD errata T13 (order #21922) */
10882- if ((c->x86 == 6)) {
10883+ if (c->x86 == 6) {
10884 /* Duron Rev A0 */
10885 if (c->x86_model == 3 && c->x86_mask == 0)
10886 size = 64;
10887diff -urNp linux-2.6.38.3/arch/x86/kernel/cpu/common.c linux-2.6.38.3/arch/x86/kernel/cpu/common.c
10888--- linux-2.6.38.3/arch/x86/kernel/cpu/common.c 2011-03-14 21:20:32.000000000 -0400
10889+++ linux-2.6.38.3/arch/x86/kernel/cpu/common.c 2011-04-17 15:57:32.000000000 -0400
10890@@ -83,60 +83,6 @@ static const struct cpu_dev __cpuinitcon 10585@@ -83,60 +83,6 @@ static const struct cpu_dev __cpuinitcon
10891 10586
10892 static const struct cpu_dev *this_cpu __cpuinitdata = &default_cpu; 10587 static const struct cpu_dev *this_cpu __cpuinitdata = &default_cpu;
@@ -10968,26 +10663,7 @@ diff -urNp linux-2.6.38.3/arch/x86/kernel/cpu/common.c linux-2.6.38.3/arch/x86/k
10968 /* If the model name is still unset, do table lookup. */ 10663 /* If the model name is still unset, do table lookup. */
10969 if (!c->x86_model_id[0]) { 10664 if (!c->x86_model_id[0]) {
10970 const char *p; 10665 const char *p;
10971@@ -1004,6 +954,9 @@ static __init int setup_disablecpuid(cha 10666@@ -1084,7 +1034,7 @@ struct pt_regs * __cpuinit idle_regs(str
10972 }
10973 __setup("clearcpuid=", setup_disablecpuid);
10974
10975+DEFINE_PER_CPU(struct thread_info *, current_tinfo) = &init_task.tinfo;
10976+EXPORT_PER_CPU_SYMBOL(current_tinfo);
10977+
10978 #ifdef CONFIG_X86_64
10979 struct desc_ptr idt_descr = { NR_VECTORS * 16 - 1, (unsigned long) idt_table };
10980
10981@@ -1019,7 +972,7 @@ DEFINE_PER_CPU(struct task_struct *, cur
10982 EXPORT_PER_CPU_SYMBOL(current_task);
10983
10984 DEFINE_PER_CPU(unsigned long, kernel_stack) =
10985- (unsigned long)&init_thread_union - KERNEL_STACK_OFFSET + THREAD_SIZE;
10986+ (unsigned long)&init_thread_union - 8 + THREAD_SIZE;
10987 EXPORT_PER_CPU_SYMBOL(kernel_stack);
10988
10989 DEFINE_PER_CPU(char *, irq_stack_ptr) =
10990@@ -1084,7 +1037,7 @@ struct pt_regs * __cpuinit idle_regs(str
10991 { 10667 {
10992 memset(regs, 0, sizeof(struct pt_regs)); 10668 memset(regs, 0, sizeof(struct pt_regs));
10993 regs->fs = __KERNEL_PERCPU; 10669 regs->fs = __KERNEL_PERCPU;
@@ -10996,7 +10672,7 @@ diff -urNp linux-2.6.38.3/arch/x86/kernel/cpu/common.c linux-2.6.38.3/arch/x86/k
10996 10672
10997 return regs; 10673 return regs;
10998 } 10674 }
10999@@ -1139,7 +1092,7 @@ void __cpuinit cpu_init(void) 10675@@ -1139,7 +1089,7 @@ void __cpuinit cpu_init(void)
11000 int i; 10676 int i;
11001 10677
11002 cpu = stack_smp_processor_id(); 10678 cpu = stack_smp_processor_id();
@@ -11005,7 +10681,7 @@ diff -urNp linux-2.6.38.3/arch/x86/kernel/cpu/common.c linux-2.6.38.3/arch/x86/k
11005 oist = &per_cpu(orig_ist, cpu); 10681 oist = &per_cpu(orig_ist, cpu);
11006 10682
11007 #ifdef CONFIG_NUMA 10683 #ifdef CONFIG_NUMA
11008@@ -1165,7 +1118,7 @@ void __cpuinit cpu_init(void) 10684@@ -1165,7 +1115,7 @@ void __cpuinit cpu_init(void)
11009 switch_to_new_gdt(cpu); 10685 switch_to_new_gdt(cpu);
11010 loadsegment(fs, 0); 10686 loadsegment(fs, 0);
11011 10687
@@ -11014,7 +10690,7 @@ diff -urNp linux-2.6.38.3/arch/x86/kernel/cpu/common.c linux-2.6.38.3/arch/x86/k
11014 10690
11015 memset(me->thread.tls_array, 0, GDT_ENTRY_TLS_ENTRIES * 8); 10691 memset(me->thread.tls_array, 0, GDT_ENTRY_TLS_ENTRIES * 8);
11016 syscall_init(); 10692 syscall_init();
11017@@ -1174,7 +1127,6 @@ void __cpuinit cpu_init(void) 10693@@ -1174,7 +1124,6 @@ void __cpuinit cpu_init(void)
11018 wrmsrl(MSR_KERNEL_GS_BASE, 0); 10694 wrmsrl(MSR_KERNEL_GS_BASE, 0);
11019 barrier(); 10695 barrier();
11020 10696
@@ -11022,7 +10698,7 @@ diff -urNp linux-2.6.38.3/arch/x86/kernel/cpu/common.c linux-2.6.38.3/arch/x86/k
11022 if (cpu != 0) 10698 if (cpu != 0)
11023 enable_x2apic(); 10699 enable_x2apic();
11024 10700
11025@@ -1228,7 +1180,7 @@ void __cpuinit cpu_init(void) 10701@@ -1228,7 +1177,7 @@ void __cpuinit cpu_init(void)
11026 { 10702 {
11027 int cpu = smp_processor_id(); 10703 int cpu = smp_processor_id();
11028 struct task_struct *curr = current; 10704 struct task_struct *curr = current;
@@ -11031,9 +10707,9 @@ diff -urNp linux-2.6.38.3/arch/x86/kernel/cpu/common.c linux-2.6.38.3/arch/x86/k
11031 struct thread_struct *thread = &curr->thread; 10707 struct thread_struct *thread = &curr->thread;
11032 10708
11033 if (cpumask_test_and_set_cpu(cpu, cpu_initialized_mask)) { 10709 if (cpumask_test_and_set_cpu(cpu, cpu_initialized_mask)) {
11034diff -urNp linux-2.6.38.3/arch/x86/kernel/cpu/cpufreq/acpi-cpufreq.c linux-2.6.38.3/arch/x86/kernel/cpu/cpufreq/acpi-cpufreq.c 10710diff -urNp linux-2.6.38.2/arch/x86/kernel/cpu/cpufreq/acpi-cpufreq.c linux-2.6.38.2/arch/x86/kernel/cpu/cpufreq/acpi-cpufreq.c
11035--- linux-2.6.38.3/arch/x86/kernel/cpu/cpufreq/acpi-cpufreq.c 2011-03-14 21:20:32.000000000 -0400 10711--- linux-2.6.38.2/arch/x86/kernel/cpu/cpufreq/acpi-cpufreq.c 2011-03-14 21:20:32.000000000 -0400
11036+++ linux-2.6.38.3/arch/x86/kernel/cpu/cpufreq/acpi-cpufreq.c 2011-04-17 15:57:32.000000000 -0400 10712+++ linux-2.6.38.2/arch/x86/kernel/cpu/cpufreq/acpi-cpufreq.c 2011-03-21 18:31:35.000000000 -0400
11037@@ -481,7 +481,7 @@ static const struct dmi_system_id sw_any 10713@@ -481,7 +481,7 @@ static const struct dmi_system_id sw_any
11038 DMI_MATCH(DMI_PRODUCT_NAME, "X6DLP"), 10714 DMI_MATCH(DMI_PRODUCT_NAME, "X6DLP"),
11039 }, 10715 },
@@ -11043,9 +10719,9 @@ diff -urNp linux-2.6.38.3/arch/x86/kernel/cpu/cpufreq/acpi-cpufreq.c linux-2.6.3
11043 }; 10719 };
11044 10720
11045 static int acpi_cpufreq_blacklist(struct cpuinfo_x86 *c) 10721 static int acpi_cpufreq_blacklist(struct cpuinfo_x86 *c)
11046diff -urNp linux-2.6.38.3/arch/x86/kernel/cpu/cpufreq/speedstep-centrino.c linux-2.6.38.3/arch/x86/kernel/cpu/cpufreq/speedstep-centrino.c 10722diff -urNp linux-2.6.38.2/arch/x86/kernel/cpu/cpufreq/speedstep-centrino.c linux-2.6.38.2/arch/x86/kernel/cpu/cpufreq/speedstep-centrino.c
11047--- linux-2.6.38.3/arch/x86/kernel/cpu/cpufreq/speedstep-centrino.c 2011-03-14 21:20:32.000000000 -0400 10723--- linux-2.6.38.2/arch/x86/kernel/cpu/cpufreq/speedstep-centrino.c 2011-03-14 21:20:32.000000000 -0400
11048+++ linux-2.6.38.3/arch/x86/kernel/cpu/cpufreq/speedstep-centrino.c 2011-04-17 15:57:32.000000000 -0400 10724+++ linux-2.6.38.2/arch/x86/kernel/cpu/cpufreq/speedstep-centrino.c 2011-03-21 18:31:35.000000000 -0400
11049@@ -226,7 +226,7 @@ static struct cpu_model models[] = 10725@@ -226,7 +226,7 @@ static struct cpu_model models[] =
11050 { &cpu_ids[CPU_MP4HT_D0], NULL, 0, NULL }, 10726 { &cpu_ids[CPU_MP4HT_D0], NULL, 0, NULL },
11051 { &cpu_ids[CPU_MP4HT_E0], NULL, 0, NULL }, 10727 { &cpu_ids[CPU_MP4HT_E0], NULL, 0, NULL },
@@ -11055,9 +10731,9 @@ diff -urNp linux-2.6.38.3/arch/x86/kernel/cpu/cpufreq/speedstep-centrino.c linux
11055 }; 10731 };
11056 #undef _BANIAS 10732 #undef _BANIAS
11057 #undef BANIAS 10733 #undef BANIAS
11058diff -urNp linux-2.6.38.3/arch/x86/kernel/cpu/intel.c linux-2.6.38.3/arch/x86/kernel/cpu/intel.c 10734diff -urNp linux-2.6.38.2/arch/x86/kernel/cpu/intel.c linux-2.6.38.2/arch/x86/kernel/cpu/intel.c
11059--- linux-2.6.38.3/arch/x86/kernel/cpu/intel.c 2011-03-14 21:20:32.000000000 -0400 10735--- linux-2.6.38.2/arch/x86/kernel/cpu/intel.c 2011-03-14 21:20:32.000000000 -0400
11060+++ linux-2.6.38.3/arch/x86/kernel/cpu/intel.c 2011-04-17 15:57:32.000000000 -0400 10736+++ linux-2.6.38.2/arch/x86/kernel/cpu/intel.c 2011-03-21 18:31:35.000000000 -0400
11061@@ -161,7 +161,7 @@ static void __cpuinit trap_init_f00f_bug 10737@@ -161,7 +161,7 @@ static void __cpuinit trap_init_f00f_bug
11062 * Update the IDT descriptor and reload the IDT so that 10738 * Update the IDT descriptor and reload the IDT so that
11063 * it uses the read-only mapped virtual address. 10739 * it uses the read-only mapped virtual address.
@@ -11067,9 +10743,9 @@ diff -urNp linux-2.6.38.3/arch/x86/kernel/cpu/intel.c linux-2.6.38.3/arch/x86/ke
11067 load_idt(&idt_descr); 10743 load_idt(&idt_descr);
11068 } 10744 }
11069 #endif 10745 #endif
11070diff -urNp linux-2.6.38.3/arch/x86/kernel/cpu/Makefile linux-2.6.38.3/arch/x86/kernel/cpu/Makefile 10746diff -urNp linux-2.6.38.2/arch/x86/kernel/cpu/Makefile linux-2.6.38.2/arch/x86/kernel/cpu/Makefile
11071--- linux-2.6.38.3/arch/x86/kernel/cpu/Makefile 2011-03-14 21:20:32.000000000 -0400 10747--- linux-2.6.38.2/arch/x86/kernel/cpu/Makefile 2011-03-14 21:20:32.000000000 -0400
11072+++ linux-2.6.38.3/arch/x86/kernel/cpu/Makefile 2011-04-17 15:57:32.000000000 -0400 10748+++ linux-2.6.38.2/arch/x86/kernel/cpu/Makefile 2011-03-21 18:31:35.000000000 -0400
11073@@ -8,10 +8,6 @@ CFLAGS_REMOVE_common.o = -pg 10749@@ -8,10 +8,6 @@ CFLAGS_REMOVE_common.o = -pg
11074 CFLAGS_REMOVE_perf_event.o = -pg 10750 CFLAGS_REMOVE_perf_event.o = -pg
11075 endif 10751 endif
@@ -11081,9 +10757,9 @@ diff -urNp linux-2.6.38.3/arch/x86/kernel/cpu/Makefile linux-2.6.38.3/arch/x86/k
11081 obj-y := intel_cacheinfo.o scattered.o topology.o 10757 obj-y := intel_cacheinfo.o scattered.o topology.o
11082 obj-y += proc.o capflags.o powerflags.o common.o 10758 obj-y += proc.o capflags.o powerflags.o common.o
11083 obj-y += vmware.o hypervisor.o sched.o mshyperv.o 10759 obj-y += vmware.o hypervisor.o sched.o mshyperv.o
11084diff -urNp linux-2.6.38.3/arch/x86/kernel/cpu/mcheck/mce.c linux-2.6.38.3/arch/x86/kernel/cpu/mcheck/mce.c 10760diff -urNp linux-2.6.38.2/arch/x86/kernel/cpu/mcheck/mce.c linux-2.6.38.2/arch/x86/kernel/cpu/mcheck/mce.c
11085--- linux-2.6.38.3/arch/x86/kernel/cpu/mcheck/mce.c 2011-03-14 21:20:32.000000000 -0400 10761--- linux-2.6.38.2/arch/x86/kernel/cpu/mcheck/mce.c 2011-03-14 21:20:32.000000000 -0400
11086+++ linux-2.6.38.3/arch/x86/kernel/cpu/mcheck/mce.c 2011-04-17 15:57:32.000000000 -0400 10762+++ linux-2.6.38.2/arch/x86/kernel/cpu/mcheck/mce.c 2011-03-21 18:31:35.000000000 -0400
11087@@ -45,6 +45,7 @@ 10763@@ -45,6 +45,7 @@
11088 #include <asm/ipi.h> 10764 #include <asm/ipi.h>
11089 #include <asm/mce.h> 10765 #include <asm/mce.h>
@@ -11154,9 +10830,9 @@ diff -urNp linux-2.6.38.3/arch/x86/kernel/cpu/mcheck/mce.c linux-2.6.38.3/arch/x
11154 }; 10830 };
11155 10831
11156 /* 10832 /*
11157diff -urNp linux-2.6.38.3/arch/x86/kernel/cpu/mtrr/generic.c linux-2.6.38.3/arch/x86/kernel/cpu/mtrr/generic.c 10833diff -urNp linux-2.6.38.2/arch/x86/kernel/cpu/mtrr/generic.c linux-2.6.38.2/arch/x86/kernel/cpu/mtrr/generic.c
11158--- linux-2.6.38.3/arch/x86/kernel/cpu/mtrr/generic.c 2011-03-14 21:20:32.000000000 -0400 10834--- linux-2.6.38.2/arch/x86/kernel/cpu/mtrr/generic.c 2011-03-14 21:20:32.000000000 -0400
11159+++ linux-2.6.38.3/arch/x86/kernel/cpu/mtrr/generic.c 2011-04-17 15:57:32.000000000 -0400 10835+++ linux-2.6.38.2/arch/x86/kernel/cpu/mtrr/generic.c 2011-03-21 18:31:35.000000000 -0400
11160@@ -28,7 +28,7 @@ static struct fixed_range_block fixed_ra 10836@@ -28,7 +28,7 @@ static struct fixed_range_block fixed_ra
11161 { MSR_MTRRfix64K_00000, 1 }, /* one 64k MTRR */ 10837 { MSR_MTRRfix64K_00000, 1 }, /* one 64k MTRR */
11162 { MSR_MTRRfix16K_80000, 2 }, /* two 16k MTRRs */ 10838 { MSR_MTRRfix16K_80000, 2 }, /* two 16k MTRRs */
@@ -11166,9 +10842,9 @@ diff -urNp linux-2.6.38.3/arch/x86/kernel/cpu/mtrr/generic.c linux-2.6.38.3/arch
11166 }; 10842 };
11167 10843
11168 static unsigned long smp_changes_mask; 10844 static unsigned long smp_changes_mask;
11169diff -urNp linux-2.6.38.3/arch/x86/kernel/cpu/mtrr/main.c linux-2.6.38.3/arch/x86/kernel/cpu/mtrr/main.c 10845diff -urNp linux-2.6.38.2/arch/x86/kernel/cpu/mtrr/main.c linux-2.6.38.2/arch/x86/kernel/cpu/mtrr/main.c
11170--- linux-2.6.38.3/arch/x86/kernel/cpu/mtrr/main.c 2011-04-18 17:27:18.000000000 -0400 10846--- linux-2.6.38.2/arch/x86/kernel/cpu/mtrr/main.c 2011-03-14 21:20:32.000000000 -0400
11171+++ linux-2.6.38.3/arch/x86/kernel/cpu/mtrr/main.c 2011-04-17 16:53:16.000000000 -0400 10847+++ linux-2.6.38.2/arch/x86/kernel/cpu/mtrr/main.c 2011-03-21 18:31:35.000000000 -0400
11172@@ -61,7 +61,7 @@ static DEFINE_MUTEX(mtrr_mutex); 10848@@ -61,7 +61,7 @@ static DEFINE_MUTEX(mtrr_mutex);
11173 u64 size_or_mask, size_and_mask; 10849 u64 size_or_mask, size_and_mask;
11174 static bool mtrr_aps_delayed_init; 10850 static bool mtrr_aps_delayed_init;
@@ -11178,9 +10854,9 @@ diff -urNp linux-2.6.38.3/arch/x86/kernel/cpu/mtrr/main.c linux-2.6.38.3/arch/x8
11178 10854
11179 const struct mtrr_ops *mtrr_if; 10855 const struct mtrr_ops *mtrr_if;
11180 10856
11181diff -urNp linux-2.6.38.3/arch/x86/kernel/cpu/mtrr/mtrr.h linux-2.6.38.3/arch/x86/kernel/cpu/mtrr/mtrr.h 10857diff -urNp linux-2.6.38.2/arch/x86/kernel/cpu/mtrr/mtrr.h linux-2.6.38.2/arch/x86/kernel/cpu/mtrr/mtrr.h
11182--- linux-2.6.38.3/arch/x86/kernel/cpu/mtrr/mtrr.h 2011-03-14 21:20:32.000000000 -0400 10858--- linux-2.6.38.2/arch/x86/kernel/cpu/mtrr/mtrr.h 2011-03-14 21:20:32.000000000 -0400
11183+++ linux-2.6.38.3/arch/x86/kernel/cpu/mtrr/mtrr.h 2011-04-17 15:57:32.000000000 -0400 10859+++ linux-2.6.38.2/arch/x86/kernel/cpu/mtrr/mtrr.h 2011-03-21 18:31:35.000000000 -0400
11184@@ -12,19 +12,19 @@ 10860@@ -12,19 +12,19 @@
11185 extern unsigned int mtrr_usage_table[MTRR_MAX_VAR_RANGES]; 10861 extern unsigned int mtrr_usage_table[MTRR_MAX_VAR_RANGES];
11186 10862
@@ -11209,9 +10885,9 @@ diff -urNp linux-2.6.38.3/arch/x86/kernel/cpu/mtrr/mtrr.h linux-2.6.38.3/arch/x8
11209 }; 10885 };
11210 10886
11211 extern int generic_get_free_region(unsigned long base, unsigned long size, 10887 extern int generic_get_free_region(unsigned long base, unsigned long size,
11212diff -urNp linux-2.6.38.3/arch/x86/kernel/cpu/perf_event.c linux-2.6.38.3/arch/x86/kernel/cpu/perf_event.c 10888diff -urNp linux-2.6.38.2/arch/x86/kernel/cpu/perf_event.c linux-2.6.38.2/arch/x86/kernel/cpu/perf_event.c
11213--- linux-2.6.38.3/arch/x86/kernel/cpu/perf_event.c 2011-03-14 21:20:32.000000000 -0400 10889--- linux-2.6.38.2/arch/x86/kernel/cpu/perf_event.c 2011-03-14 21:20:32.000000000 -0400
11214+++ linux-2.6.38.3/arch/x86/kernel/cpu/perf_event.c 2011-04-17 15:57:32.000000000 -0400 10890+++ linux-2.6.38.2/arch/x86/kernel/cpu/perf_event.c 2011-03-21 18:31:35.000000000 -0400
11215@@ -1781,7 +1781,7 @@ perf_callchain_user(struct perf_callchai 10891@@ -1781,7 +1781,7 @@ perf_callchain_user(struct perf_callchai
11216 break; 10892 break;
11217 10893
@@ -11221,9 +10897,9 @@ diff -urNp linux-2.6.38.3/arch/x86/kernel/cpu/perf_event.c linux-2.6.38.3/arch/x
11221 } 10897 }
11222 } 10898 }
11223 10899
11224diff -urNp linux-2.6.38.3/arch/x86/kernel/crash.c linux-2.6.38.3/arch/x86/kernel/crash.c 10900diff -urNp linux-2.6.38.2/arch/x86/kernel/crash.c linux-2.6.38.2/arch/x86/kernel/crash.c
11225--- linux-2.6.38.3/arch/x86/kernel/crash.c 2011-03-14 21:20:32.000000000 -0400 10901--- linux-2.6.38.2/arch/x86/kernel/crash.c 2011-03-14 21:20:32.000000000 -0400
11226+++ linux-2.6.38.3/arch/x86/kernel/crash.c 2011-04-17 15:57:32.000000000 -0400 10902+++ linux-2.6.38.2/arch/x86/kernel/crash.c 2011-03-21 18:31:35.000000000 -0400
11227@@ -42,7 +42,7 @@ static void kdump_nmi_callback(int cpu, 10903@@ -42,7 +42,7 @@ static void kdump_nmi_callback(int cpu,
11228 regs = args->regs; 10904 regs = args->regs;
11229 10905
@@ -11233,9 +10909,9 @@ diff -urNp linux-2.6.38.3/arch/x86/kernel/crash.c linux-2.6.38.3/arch/x86/kernel
11233 crash_fixup_ss_esp(&fixed_regs, regs); 10909 crash_fixup_ss_esp(&fixed_regs, regs);
11234 regs = &fixed_regs; 10910 regs = &fixed_regs;
11235 } 10911 }
11236diff -urNp linux-2.6.38.3/arch/x86/kernel/doublefault_32.c linux-2.6.38.3/arch/x86/kernel/doublefault_32.c 10912diff -urNp linux-2.6.38.2/arch/x86/kernel/doublefault_32.c linux-2.6.38.2/arch/x86/kernel/doublefault_32.c
11237--- linux-2.6.38.3/arch/x86/kernel/doublefault_32.c 2011-03-14 21:20:32.000000000 -0400 10913--- linux-2.6.38.2/arch/x86/kernel/doublefault_32.c 2011-03-14 21:20:32.000000000 -0400
11238+++ linux-2.6.38.3/arch/x86/kernel/doublefault_32.c 2011-04-17 15:57:32.000000000 -0400 10914+++ linux-2.6.38.2/arch/x86/kernel/doublefault_32.c 2011-03-21 18:31:35.000000000 -0400
11239@@ -11,7 +11,7 @@ 10915@@ -11,7 +11,7 @@
11240 10916
11241 #define DOUBLEFAULT_STACKSIZE (1024) 10917 #define DOUBLEFAULT_STACKSIZE (1024)
@@ -11267,30 +10943,10 @@ diff -urNp linux-2.6.38.3/arch/x86/kernel/doublefault_32.c linux-2.6.38.3/arch/x
11267 .fs = __KERNEL_PERCPU, 10943 .fs = __KERNEL_PERCPU,
11268 10944
11269 .__cr3 = __pa_nodebug(swapper_pg_dir), 10945 .__cr3 = __pa_nodebug(swapper_pg_dir),
11270diff -urNp linux-2.6.38.3/arch/x86/kernel/dumpstack_32.c linux-2.6.38.3/arch/x86/kernel/dumpstack_32.c 10946diff -urNp linux-2.6.38.2/arch/x86/kernel/dumpstack_32.c linux-2.6.38.2/arch/x86/kernel/dumpstack_32.c
11271--- linux-2.6.38.3/arch/x86/kernel/dumpstack_32.c 2011-03-14 21:20:32.000000000 -0400 10947--- linux-2.6.38.2/arch/x86/kernel/dumpstack_32.c 2011-03-14 21:20:32.000000000 -0400
11272+++ linux-2.6.38.3/arch/x86/kernel/dumpstack_32.c 2011-04-17 15:57:32.000000000 -0400 10948+++ linux-2.6.38.2/arch/x86/kernel/dumpstack_32.c 2011-03-21 18:31:35.000000000 -0400
11273@@ -37,15 +37,12 @@ void dump_trace(struct task_struct *task 10949@@ -95,21 +95,22 @@ void show_registers(struct pt_regs *regs
11274
11275 bp = stack_frame(task, regs);
11276 for (;;) {
11277- struct thread_info *context;
11278+ void *stack_start = (void *)((unsigned long)stack & ~(THREAD_SIZE-1));
11279+ bp = ops->walk_stack(task, stack_start, stack, bp, ops, data, NULL, &graph);
11280
11281- context = (struct thread_info *)
11282- ((unsigned long)stack & (~(THREAD_SIZE - 1)));
11283- bp = ops->walk_stack(context, stack, bp, ops, data, NULL, &graph);
11284-
11285- stack = (unsigned long *)context->previous_esp;
11286- if (!stack)
11287+ if (stack_start == task_stack_page(task))
11288 break;
11289+ stack = *(unsigned long **)stack_start;
11290 if (ops->stack(data, "IRQ") < 0)
11291 break;
11292 touch_nmi_watchdog();
11293@@ -95,21 +92,22 @@ void show_registers(struct pt_regs *regs
11294 * When in-kernel, we also print out the stack and code at the 10950 * When in-kernel, we also print out the stack and code at the
11295 * time of the fault.. 10951 * time of the fault..
11296 */ 10952 */
@@ -11316,7 +10972,7 @@ diff -urNp linux-2.6.38.3/arch/x86/kernel/dumpstack_32.c linux-2.6.38.3/arch/x86
11316 code_len = code_len - code_prologue + 1; 10972 code_len = code_len - code_prologue + 1;
11317 } 10973 }
11318 for (i = 0; i < code_len; i++, ip++) { 10974 for (i = 0; i < code_len; i++, ip++) {
11319@@ -118,7 +116,7 @@ void show_registers(struct pt_regs *regs 10975@@ -118,7 +119,7 @@ void show_registers(struct pt_regs *regs
11320 printk(" Bad EIP value."); 10976 printk(" Bad EIP value.");
11321 break; 10977 break;
11322 } 10978 }
@@ -11325,7 +10981,7 @@ diff -urNp linux-2.6.38.3/arch/x86/kernel/dumpstack_32.c linux-2.6.38.3/arch/x86
11325 printk("<%02x> ", c); 10981 printk("<%02x> ", c);
11326 else 10982 else
11327 printk("%02x ", c); 10983 printk("%02x ", c);
11328@@ -131,6 +129,7 @@ int is_valid_bugaddr(unsigned long ip) 10984@@ -131,6 +132,7 @@ int is_valid_bugaddr(unsigned long ip)
11329 { 10985 {
11330 unsigned short ud2; 10986 unsigned short ud2;
11331 10987
@@ -11333,64 +10989,9 @@ diff -urNp linux-2.6.38.3/arch/x86/kernel/dumpstack_32.c linux-2.6.38.3/arch/x86
11333 if (ip < PAGE_OFFSET) 10989 if (ip < PAGE_OFFSET)
11334 return 0; 10990 return 0;
11335 if (probe_kernel_address((unsigned short *)ip, ud2)) 10991 if (probe_kernel_address((unsigned short *)ip, ud2))
11336diff -urNp linux-2.6.38.3/arch/x86/kernel/dumpstack_64.c linux-2.6.38.3/arch/x86/kernel/dumpstack_64.c 10992diff -urNp linux-2.6.38.2/arch/x86/kernel/dumpstack.c linux-2.6.38.2/arch/x86/kernel/dumpstack.c
11337--- linux-2.6.38.3/arch/x86/kernel/dumpstack_64.c 2011-03-14 21:20:32.000000000 -0400 10993--- linux-2.6.38.2/arch/x86/kernel/dumpstack.c 2011-03-14 21:20:32.000000000 -0400
11338+++ linux-2.6.38.3/arch/x86/kernel/dumpstack_64.c 2011-04-17 15:57:32.000000000 -0400 10994+++ linux-2.6.38.2/arch/x86/kernel/dumpstack.c 2011-03-21 18:31:35.000000000 -0400
11339@@ -147,10 +147,10 @@ void dump_trace(struct task_struct *task
11340 unsigned long *irq_stack_end =
11341 (unsigned long *)per_cpu(irq_stack_ptr, cpu);
11342 unsigned used = 0;
11343- struct thread_info *tinfo;
11344 int graph = 0;
11345 unsigned long dummy;
11346 unsigned long bp;
11347+ void *stack_start;
11348
11349 if (!task)
11350 task = current;
11351@@ -167,10 +167,10 @@ void dump_trace(struct task_struct *task
11352 * current stack address. If the stacks consist of nested
11353 * exceptions
11354 */
11355- tinfo = task_thread_info(task);
11356 for (;;) {
11357 char *id;
11358 unsigned long *estack_end;
11359+
11360 estack_end = in_exception_stack(cpu, (unsigned long)stack,
11361 &used, &id);
11362
11363@@ -178,7 +178,7 @@ void dump_trace(struct task_struct *task
11364 if (ops->stack(data, id) < 0)
11365 break;
11366
11367- bp = ops->walk_stack(tinfo, stack, bp, ops,
11368+ bp = ops->walk_stack(task, estack_end - EXCEPTION_STKSZ, stack, bp, ops,
11369 data, estack_end, &graph);
11370 ops->stack(data, "<EOE>");
11371 /*
11372@@ -197,7 +197,7 @@ void dump_trace(struct task_struct *task
11373 if (in_irq_stack(stack, irq_stack, irq_stack_end)) {
11374 if (ops->stack(data, "IRQ") < 0)
11375 break;
11376- bp = ops->walk_stack(tinfo, stack, bp,
11377+ bp = ops->walk_stack(task, irq_stack, stack, bp,
11378 ops, data, irq_stack_end, &graph);
11379 /*
11380 * We link to the next stack (which would be
11381@@ -218,7 +218,8 @@ void dump_trace(struct task_struct *task
11382 /*
11383 * This handles the process stack:
11384 */
11385- bp = ops->walk_stack(tinfo, stack, bp, ops, data, NULL, &graph);
11386+ stack_start = (void *)((unsigned long)stack & ~(THREAD_SIZE-1));
11387+ bp = ops->walk_stack(task, stack_start, stack, bp, ops, data, NULL, &graph);
11388 put_cpu();
11389 }
11390 EXPORT_SYMBOL(dump_trace);
11391diff -urNp linux-2.6.38.3/arch/x86/kernel/dumpstack.c linux-2.6.38.3/arch/x86/kernel/dumpstack.c
11392--- linux-2.6.38.3/arch/x86/kernel/dumpstack.c 2011-03-14 21:20:32.000000000 -0400
11393+++ linux-2.6.38.3/arch/x86/kernel/dumpstack.c 2011-04-17 15:57:32.000000000 -0400
11394@@ -2,6 +2,9 @@ 10995@@ -2,6 +2,9 @@
11395 * Copyright (C) 1991, 1992 Linus Torvalds 10996 * Copyright (C) 1991, 1992 Linus Torvalds
11396 * Copyright (C) 2000, 2001, 2002 Andi Kleen, SuSE Labs 10997 * Copyright (C) 2000, 2001, 2002 Andi Kleen, SuSE Labs
@@ -11410,92 +11011,7 @@ diff -urNp linux-2.6.38.3/arch/x86/kernel/dumpstack.c linux-2.6.38.3/arch/x86/ke
11410 reliable ? "" : "? ", (void *) address); 11011 reliable ? "" : "? ", (void *) address);
11411 } 11012 }
11412 11013
11413@@ -35,9 +38,8 @@ void printk_address(unsigned long addres 11014@@ -200,7 +203,7 @@ void dump_stack(void)
11414 static void
11415 print_ftrace_graph_addr(unsigned long addr, void *data,
11416 const struct stacktrace_ops *ops,
11417- struct thread_info *tinfo, int *graph)
11418+ struct task_struct *task, int *graph)
11419 {
11420- struct task_struct *task = tinfo->task;
11421 unsigned long ret_addr;
11422 int index = task->curr_ret_stack;
11423
11424@@ -58,7 +60,7 @@ print_ftrace_graph_addr(unsigned long ad
11425 static inline void
11426 print_ftrace_graph_addr(unsigned long addr, void *data,
11427 const struct stacktrace_ops *ops,
11428- struct thread_info *tinfo, int *graph)
11429+ struct task_struct *task, int *graph)
11430 { }
11431 #endif
11432
11433@@ -69,10 +71,8 @@ print_ftrace_graph_addr(unsigned long ad
11434 * severe exception (double fault, nmi, stack fault, debug, mce) hardware stack
11435 */
11436
11437-static inline int valid_stack_ptr(struct thread_info *tinfo,
11438- void *p, unsigned int size, void *end)
11439+static inline int valid_stack_ptr(void *t, void *p, unsigned int size, void *end)
11440 {
11441- void *t = tinfo;
11442 if (end) {
11443 if (p < end && p >= (end-THREAD_SIZE))
11444 return 1;
11445@@ -83,14 +83,14 @@ static inline int valid_stack_ptr(struct
11446 }
11447
11448 unsigned long
11449-print_context_stack(struct thread_info *tinfo,
11450+print_context_stack(struct task_struct *task, void *stack_start,
11451 unsigned long *stack, unsigned long bp,
11452 const struct stacktrace_ops *ops, void *data,
11453 unsigned long *end, int *graph)
11454 {
11455 struct stack_frame *frame = (struct stack_frame *)bp;
11456
11457- while (valid_stack_ptr(tinfo, stack, sizeof(*stack), end)) {
11458+ while (valid_stack_ptr(stack_start, stack, sizeof(*stack), end)) {
11459 unsigned long addr;
11460
11461 addr = *stack;
11462@@ -102,7 +102,7 @@ print_context_stack(struct thread_info *
11463 } else {
11464 ops->address(data, addr, 0);
11465 }
11466- print_ftrace_graph_addr(addr, data, ops, tinfo, graph);
11467+ print_ftrace_graph_addr(addr, data, ops, task, graph);
11468 }
11469 stack++;
11470 }
11471@@ -111,7 +111,7 @@ print_context_stack(struct thread_info *
11472 EXPORT_SYMBOL_GPL(print_context_stack);
11473
11474 unsigned long
11475-print_context_stack_bp(struct thread_info *tinfo,
11476+print_context_stack_bp(struct task_struct *task, void *stack_start,
11477 unsigned long *stack, unsigned long bp,
11478 const struct stacktrace_ops *ops, void *data,
11479 unsigned long *end, int *graph)
11480@@ -119,7 +119,7 @@ print_context_stack_bp(struct thread_inf
11481 struct stack_frame *frame = (struct stack_frame *)bp;
11482 unsigned long *ret_addr = &frame->return_address;
11483
11484- while (valid_stack_ptr(tinfo, ret_addr, sizeof(*ret_addr), end)) {
11485+ while (valid_stack_ptr(stack_start, ret_addr, sizeof(*ret_addr), end)) {
11486 unsigned long addr = *ret_addr;
11487
11488 if (!__kernel_text_address(addr))
11489@@ -128,7 +128,7 @@ print_context_stack_bp(struct thread_inf
11490 ops->address(data, addr, 1);
11491 frame = frame->next_frame;
11492 ret_addr = &frame->return_address;
11493- print_ftrace_graph_addr(addr, data, ops, tinfo, graph);
11494+ print_ftrace_graph_addr(addr, data, ops, task, graph);
11495 }
11496
11497 return (unsigned long)frame;
11498@@ -200,7 +200,7 @@ void dump_stack(void)
11499 unsigned long stack; 11015 unsigned long stack;
11500 11016
11501 printk("Pid: %d, comm: %.20s %s %s %.*s\n", 11017 printk("Pid: %d, comm: %.20s %s %s %.*s\n",
@@ -11504,28 +11020,16 @@ diff -urNp linux-2.6.38.3/arch/x86/kernel/dumpstack.c linux-2.6.38.3/arch/x86/ke
11504 init_utsname()->release, 11020 init_utsname()->release,
11505 (int)strcspn(init_utsname()->version, " "), 11021 (int)strcspn(init_utsname()->version, " "),
11506 init_utsname()->version); 11022 init_utsname()->version);
11507@@ -236,6 +236,8 @@ unsigned __kprobes long oops_begin(void) 11023@@ -257,7 +260,7 @@ void __kprobes oops_end(unsigned long fl
11508 }
11509 EXPORT_SYMBOL_GPL(oops_begin);
11510
11511+extern void gr_handle_kernel_exploit(void);
11512+
11513 void __kprobes oops_end(unsigned long flags, struct pt_regs *regs, int signr)
11514 {
11515 if (regs && kexec_should_crash(current))
11516@@ -257,7 +259,10 @@ void __kprobes oops_end(unsigned long fl
11517 panic("Fatal exception in interrupt"); 11024 panic("Fatal exception in interrupt");
11518 if (panic_on_oops) 11025 if (panic_on_oops)
11519 panic("Fatal exception"); 11026 panic("Fatal exception");
11520- do_exit(signr); 11027- do_exit(signr);
11521+
11522+ gr_handle_kernel_exploit();
11523+
11524+ do_group_exit(signr); 11028+ do_group_exit(signr);
11525 } 11029 }
11526 11030
11527 int __kprobes __die(const char *str, struct pt_regs *regs, long err) 11031 int __kprobes __die(const char *str, struct pt_regs *regs, long err)
11528@@ -284,7 +289,7 @@ int __kprobes __die(const char *str, str 11032@@ -284,7 +287,7 @@ int __kprobes __die(const char *str, str
11529 11033
11530 show_registers(regs); 11034 show_registers(regs);
11531 #ifdef CONFIG_X86_32 11035 #ifdef CONFIG_X86_32
@@ -11534,7 +11038,7 @@ diff -urNp linux-2.6.38.3/arch/x86/kernel/dumpstack.c linux-2.6.38.3/arch/x86/ke
11534 sp = regs->sp; 11038 sp = regs->sp;
11535 ss = regs->ss & 0xffff; 11039 ss = regs->ss & 0xffff;
11536 } else { 11040 } else {
11537@@ -312,7 +317,7 @@ void die(const char *str, struct pt_regs 11041@@ -312,7 +315,7 @@ void die(const char *str, struct pt_regs
11538 unsigned long flags = oops_begin(); 11042 unsigned long flags = oops_begin();
11539 int sig = SIGSEGV; 11043 int sig = SIGSEGV;
11540 11044
@@ -11543,9 +11047,9 @@ diff -urNp linux-2.6.38.3/arch/x86/kernel/dumpstack.c linux-2.6.38.3/arch/x86/ke
11543 report_bug(regs->ip, regs); 11047 report_bug(regs->ip, regs);
11544 11048
11545 if (__die(str, regs, err)) 11049 if (__die(str, regs, err))
11546diff -urNp linux-2.6.38.3/arch/x86/kernel/entry_32.S linux-2.6.38.3/arch/x86/kernel/entry_32.S 11050diff -urNp linux-2.6.38.2/arch/x86/kernel/entry_32.S linux-2.6.38.2/arch/x86/kernel/entry_32.S
11547--- linux-2.6.38.3/arch/x86/kernel/entry_32.S 2011-04-18 17:27:16.000000000 -0400 11051--- linux-2.6.38.2/arch/x86/kernel/entry_32.S 2011-03-28 17:42:40.000000000 -0400
11548+++ linux-2.6.38.3/arch/x86/kernel/entry_32.S 2011-04-19 17:17:51.000000000 -0400 11052+++ linux-2.6.38.2/arch/x86/kernel/entry_32.S 2011-03-28 17:42:53.000000000 -0400
11549@@ -183,13 +183,81 @@ 11053@@ -183,13 +183,81 @@
11550 /*CFI_REL_OFFSET gs, PT_GS*/ 11054 /*CFI_REL_OFFSET gs, PT_GS*/
11551 .endm 11055 .endm
@@ -11670,7 +11174,7 @@ diff -urNp linux-2.6.38.3/arch/x86/kernel/entry_32.S linux-2.6.38.3/arch/x86/ker
11670 11174
11671 ENTRY(resume_userspace) 11175 ENTRY(resume_userspace)
11672 LOCKDEP_SYS_EXIT 11176 LOCKDEP_SYS_EXIT
11673@@ -392,23 +477,34 @@ sysenter_past_esp: 11177@@ -392,10 +477,9 @@ sysenter_past_esp:
11674 /*CFI_REL_OFFSET cs, 0*/ 11178 /*CFI_REL_OFFSET cs, 0*/
11675 /* 11179 /*
11676 * Push current_thread_info()->sysenter_return to the stack. 11180 * Push current_thread_info()->sysenter_return to the stack.
@@ -11678,17 +11182,12 @@ diff -urNp linux-2.6.38.3/arch/x86/kernel/entry_32.S linux-2.6.38.3/arch/x86/ker
11678- * pushed above; +8 corresponds to copy_thread's esp0 setting. 11182- * pushed above; +8 corresponds to copy_thread's esp0 setting.
11679 */ 11183 */
11680- pushl_cfi ((TI_sysenter_return)-THREAD_SIZE_asm+8+4*4)(%esp) 11184- pushl_cfi ((TI_sysenter_return)-THREAD_SIZE_asm+8+4*4)(%esp)
11681+ pushl_cfi $0 11185+ GET_THREAD_INFO(%ebp)
11186+ pushl_cfi TI_sysenter_return(%ebp)
11682 CFI_REL_OFFSET eip, 0 11187 CFI_REL_OFFSET eip, 0
11683 11188
11684 pushl_cfi %eax 11189 pushl_cfi %eax
11685 SAVE_ALL 11190@@ -406,9 +490,19 @@ sysenter_past_esp:
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 /*
11692 * Load the potential sixth argument from user stack. 11191 * Load the potential sixth argument from user stack.
11693 * Careful about security. 11192 * Careful about security.
11694 */ 11193 */
@@ -11708,7 +11207,7 @@ diff -urNp linux-2.6.38.3/arch/x86/kernel/entry_32.S linux-2.6.38.3/arch/x86/ker
11708 movl %ebp,PT_EBP(%esp) 11207 movl %ebp,PT_EBP(%esp)
11709 .section __ex_table,"a" 11208 .section __ex_table,"a"
11710 .align 4 11209 .align 4
11711@@ -431,12 +527,23 @@ sysenter_do_call: 11210@@ -431,12 +525,23 @@ sysenter_do_call:
11712 testl $_TIF_ALLWORK_MASK, %ecx 11211 testl $_TIF_ALLWORK_MASK, %ecx
11713 jne sysexit_audit 11212 jne sysexit_audit
11714 sysenter_exit: 11213 sysenter_exit:
@@ -11732,7 +11231,7 @@ diff -urNp linux-2.6.38.3/arch/x86/kernel/entry_32.S linux-2.6.38.3/arch/x86/ker
11732 PTGS_TO_GS 11231 PTGS_TO_GS
11733 ENABLE_INTERRUPTS_SYSEXIT 11232 ENABLE_INTERRUPTS_SYSEXIT
11734 11233
11735@@ -479,11 +586,17 @@ sysexit_audit: 11234@@ -479,11 +584,17 @@ sysexit_audit:
11736 11235
11737 CFI_ENDPROC 11236 CFI_ENDPROC
11738 .pushsection .fixup,"ax" 11237 .pushsection .fixup,"ax"
@@ -11752,7 +11251,7 @@ diff -urNp linux-2.6.38.3/arch/x86/kernel/entry_32.S linux-2.6.38.3/arch/x86/ker
11752 .popsection 11251 .popsection
11753 PTGS_TO_GS_EX 11252 PTGS_TO_GS_EX
11754 ENDPROC(ia32_sysenter_target) 11253 ENDPROC(ia32_sysenter_target)
11755@@ -516,6 +629,10 @@ syscall_exit: 11254@@ -516,6 +627,10 @@ syscall_exit:
11756 testl $_TIF_ALLWORK_MASK, %ecx # current->work 11255 testl $_TIF_ALLWORK_MASK, %ecx # current->work
11757 jne syscall_exit_work 11256 jne syscall_exit_work
11758 11257
@@ -11763,7 +11262,7 @@ diff -urNp linux-2.6.38.3/arch/x86/kernel/entry_32.S linux-2.6.38.3/arch/x86/ker
11763 restore_all: 11262 restore_all:
11764 TRACE_IRQS_IRET 11263 TRACE_IRQS_IRET
11765 restore_all_notrace: 11264 restore_all_notrace:
11766@@ -575,14 +692,21 @@ ldt_ss: 11265@@ -575,14 +690,21 @@ ldt_ss:
11767 * compensating for the offset by changing to the ESPFIX segment with 11266 * compensating for the offset by changing to the ESPFIX segment with
11768 * a base address that matches for the difference. 11267 * a base address that matches for the difference.
11769 */ 11268 */
@@ -11788,7 +11287,7 @@ diff -urNp linux-2.6.38.3/arch/x86/kernel/entry_32.S linux-2.6.38.3/arch/x86/ker
11788 pushl_cfi $__ESPFIX_SS 11287 pushl_cfi $__ESPFIX_SS
11789 pushl_cfi %eax /* new kernel esp */ 11288 pushl_cfi %eax /* new kernel esp */
11790 /* Disable interrupts, but do not irqtrace this section: we 11289 /* Disable interrupts, but do not irqtrace this section: we
11791@@ -617,23 +741,17 @@ work_resched: 11290@@ -617,23 +739,17 @@ work_resched:
11792 11291
11793 work_notifysig: # deal with pending signals and 11292 work_notifysig: # deal with pending signals and
11794 # notify-resume requests 11293 # notify-resume requests
@@ -11815,7 +11314,7 @@ diff -urNp linux-2.6.38.3/arch/x86/kernel/entry_32.S linux-2.6.38.3/arch/x86/ker
11815 #endif 11314 #endif
11816 xorl %edx, %edx 11315 xorl %edx, %edx
11817 call do_notify_resume 11316 call do_notify_resume
11818@@ -668,6 +786,10 @@ END(syscall_exit_work) 11317@@ -668,6 +784,10 @@ END(syscall_exit_work)
11819 11318
11820 RING0_INT_FRAME # can't unwind into user space anyway 11319 RING0_INT_FRAME # can't unwind into user space anyway
11821 syscall_fault: 11320 syscall_fault:
@@ -11826,7 +11325,7 @@ diff -urNp linux-2.6.38.3/arch/x86/kernel/entry_32.S linux-2.6.38.3/arch/x86/ker
11826 GET_THREAD_INFO(%ebp) 11325 GET_THREAD_INFO(%ebp)
11827 movl $-EFAULT,PT_EAX(%esp) 11326 movl $-EFAULT,PT_EAX(%esp)
11828 jmp resume_userspace 11327 jmp resume_userspace
11829@@ -750,6 +872,36 @@ ptregs_clone: 11328@@ -750,6 +870,36 @@ ptregs_clone:
11830 CFI_ENDPROC 11329 CFI_ENDPROC
11831 ENDPROC(ptregs_clone) 11330 ENDPROC(ptregs_clone)
11832 11331
@@ -11863,7 +11362,7 @@ diff -urNp linux-2.6.38.3/arch/x86/kernel/entry_32.S linux-2.6.38.3/arch/x86/ker
11863 .macro FIXUP_ESPFIX_STACK 11362 .macro FIXUP_ESPFIX_STACK
11864 /* 11363 /*
11865 * Switch back for ESPFIX stack to the normal zerobased stack 11364 * Switch back for ESPFIX stack to the normal zerobased stack
11866@@ -759,8 +911,15 @@ ENDPROC(ptregs_clone) 11365@@ -759,8 +909,15 @@ ENDPROC(ptregs_clone)
11867 * normal stack and adjusts ESP with the matching offset. 11366 * normal stack and adjusts ESP with the matching offset.
11868 */ 11367 */
11869 /* fixup the stack */ 11368 /* fixup the stack */
@@ -11881,7 +11380,7 @@ diff -urNp linux-2.6.38.3/arch/x86/kernel/entry_32.S linux-2.6.38.3/arch/x86/ker
11881 shl $16, %eax 11380 shl $16, %eax
11882 addl %esp, %eax /* the adjusted stack pointer */ 11381 addl %esp, %eax /* the adjusted stack pointer */
11883 pushl_cfi $__KERNEL_DS 11382 pushl_cfi $__KERNEL_DS
11884@@ -1211,7 +1370,6 @@ return_to_handler: 11383@@ -1211,7 +1368,6 @@ return_to_handler:
11885 jmp *%ecx 11384 jmp *%ecx
11886 #endif 11385 #endif
11887 11386
@@ -11889,7 +11388,7 @@ diff -urNp linux-2.6.38.3/arch/x86/kernel/entry_32.S linux-2.6.38.3/arch/x86/ker
11889 #include "syscall_table_32.S" 11388 #include "syscall_table_32.S"
11890 11389
11891 syscall_table_size=(.-sys_call_table) 11390 syscall_table_size=(.-sys_call_table)
11892@@ -1257,9 +1415,12 @@ error_code: 11391@@ -1257,9 +1413,12 @@ error_code:
11893 movl $-1, PT_ORIG_EAX(%esp) # no syscall to restart 11392 movl $-1, PT_ORIG_EAX(%esp) # no syscall to restart
11894 REG_TO_PTGS %ecx 11393 REG_TO_PTGS %ecx
11895 SET_KERNEL_GS %ecx 11394 SET_KERNEL_GS %ecx
@@ -11903,7 +11402,7 @@ diff -urNp linux-2.6.38.3/arch/x86/kernel/entry_32.S linux-2.6.38.3/arch/x86/ker
11903 TRACE_IRQS_OFF 11402 TRACE_IRQS_OFF
11904 movl %esp,%eax # pt_regs pointer 11403 movl %esp,%eax # pt_regs pointer
11905 call *%edi 11404 call *%edi
11906@@ -1344,6 +1505,9 @@ nmi_stack_correct: 11405@@ -1344,6 +1503,9 @@ nmi_stack_correct:
11907 xorl %edx,%edx # zero error code 11406 xorl %edx,%edx # zero error code
11908 movl %esp,%eax # pt_regs pointer 11407 movl %esp,%eax # pt_regs pointer
11909 call do_nmi 11408 call do_nmi
@@ -11913,7 +11412,7 @@ diff -urNp linux-2.6.38.3/arch/x86/kernel/entry_32.S linux-2.6.38.3/arch/x86/ker
11913 jmp restore_all_notrace 11412 jmp restore_all_notrace
11914 CFI_ENDPROC 11413 CFI_ENDPROC
11915 11414
11916@@ -1380,6 +1544,9 @@ nmi_espfix_stack: 11415@@ -1380,6 +1542,9 @@ nmi_espfix_stack:
11917 FIXUP_ESPFIX_STACK # %eax == %esp 11416 FIXUP_ESPFIX_STACK # %eax == %esp
11918 xorl %edx,%edx # zero error code 11417 xorl %edx,%edx # zero error code
11919 call do_nmi 11418 call do_nmi
@@ -11923,9 +11422,9 @@ diff -urNp linux-2.6.38.3/arch/x86/kernel/entry_32.S linux-2.6.38.3/arch/x86/ker
11923 RESTORE_REGS 11422 RESTORE_REGS
11924 lss 12+4(%esp), %esp # back to espfix stack 11423 lss 12+4(%esp), %esp # back to espfix stack
11925 CFI_ADJUST_CFA_OFFSET -24 11424 CFI_ADJUST_CFA_OFFSET -24
11926diff -urNp linux-2.6.38.3/arch/x86/kernel/entry_64.S linux-2.6.38.3/arch/x86/kernel/entry_64.S 11425diff -urNp linux-2.6.38.2/arch/x86/kernel/entry_64.S linux-2.6.38.2/arch/x86/kernel/entry_64.S
11927--- linux-2.6.38.3/arch/x86/kernel/entry_64.S 2011-04-18 17:27:13.000000000 -0400 11426--- linux-2.6.38.2/arch/x86/kernel/entry_64.S 2011-03-23 17:20:06.000000000 -0400
11928+++ linux-2.6.38.3/arch/x86/kernel/entry_64.S 2011-04-17 15:57:32.000000000 -0400 11427+++ linux-2.6.38.2/arch/x86/kernel/entry_64.S 2011-03-23 17:21:49.000000000 -0400
11929@@ -53,6 +53,7 @@ 11428@@ -53,6 +53,7 @@
11930 #include <asm/paravirt.h> 11429 #include <asm/paravirt.h>
11931 #include <asm/ftrace.h> 11430 #include <asm/ftrace.h>
@@ -11934,7 +11433,7 @@ diff -urNp linux-2.6.38.3/arch/x86/kernel/entry_64.S linux-2.6.38.3/arch/x86/ker
11934 11433
11935 /* Avoid __ASSEMBLER__'ifying <linux/audit.h> just for this. */ 11434 /* Avoid __ASSEMBLER__'ifying <linux/audit.h> just for this. */
11936 #include <linux/elf-em.h> 11435 #include <linux/elf-em.h>
11937@@ -174,6 +175,206 @@ ENTRY(native_usergs_sysret64) 11436@@ -174,6 +175,201 @@ ENTRY(native_usergs_sysret64)
11938 ENDPROC(native_usergs_sysret64) 11437 ENDPROC(native_usergs_sysret64)
11939 #endif /* CONFIG_PARAVIRT */ 11438 #endif /* CONFIG_PARAVIRT */
11940 11439
@@ -12026,11 +11525,6 @@ diff -urNp linux-2.6.38.3/arch/x86/kernel/entry_64.S linux-2.6.38.3/arch/x86/ker
12026+#ifdef CONFIG_PAX_MEMORY_UDEREF 11525+#ifdef CONFIG_PAX_MEMORY_UDEREF
12027+ call pax_exit_kernel_user 11526+ call pax_exit_kernel_user
12028+#endif 11527+#endif
12029+#ifdef CONFIG_PAX_RANDKSTACK
12030+ push %rax
12031+ call pax_randomize_kstack
12032+ pop %rax
12033+#endif
12034+ .endm 11528+ .endm
12035+ 11529+
12036+#ifdef CONFIG_PAX_MEMORY_UDEREF 11530+#ifdef CONFIG_PAX_MEMORY_UDEREF
@@ -12141,7 +11635,7 @@ diff -urNp linux-2.6.38.3/arch/x86/kernel/entry_64.S linux-2.6.38.3/arch/x86/ker
12141 11635
12142 .macro TRACE_IRQS_IRETQ offset=ARGOFFSET 11636 .macro TRACE_IRQS_IRETQ offset=ARGOFFSET
12143 #ifdef CONFIG_TRACE_IRQFLAGS 11637 #ifdef CONFIG_TRACE_IRQFLAGS
12144@@ -316,7 +517,7 @@ ENTRY(save_args) 11638@@ -316,7 +512,7 @@ ENTRY(save_args)
12145 leaq -RBP+8(%rsp),%rdi /* arg1 for handler */ 11639 leaq -RBP+8(%rsp),%rdi /* arg1 for handler */
12146 movq_cfi rbp, 8 /* push %rbp */ 11640 movq_cfi rbp, 8 /* push %rbp */
12147 leaq 8(%rsp), %rbp /* mov %rsp, %ebp */ 11641 leaq 8(%rsp), %rbp /* mov %rsp, %ebp */
@@ -12150,7 +11644,7 @@ diff -urNp linux-2.6.38.3/arch/x86/kernel/entry_64.S linux-2.6.38.3/arch/x86/ker
12150 je 1f 11644 je 1f
12151 SWAPGS 11645 SWAPGS
12152 /* 11646 /*
12153@@ -407,7 +608,7 @@ ENTRY(ret_from_fork) 11647@@ -407,7 +603,7 @@ ENTRY(ret_from_fork)
12154 11648
12155 RESTORE_REST 11649 RESTORE_REST
12156 11650
@@ -12159,16 +11653,7 @@ diff -urNp linux-2.6.38.3/arch/x86/kernel/entry_64.S linux-2.6.38.3/arch/x86/ker
12159 je int_ret_from_sys_call 11653 je int_ret_from_sys_call
12160 11654
12161 testl $_TIF_IA32, TI_flags(%rcx) # 32-bit compat task needs IRET 11655 testl $_TIF_IA32, TI_flags(%rcx) # 32-bit compat task needs IRET
12162@@ -453,7 +654,7 @@ END(ret_from_fork) 11656@@ -466,6 +662,7 @@ ENTRY(system_call_after_swapgs)
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)
12172 11657
12173 movq %rsp,PER_CPU_VAR(old_rsp) 11658 movq %rsp,PER_CPU_VAR(old_rsp)
12174 movq PER_CPU_VAR(kernel_stack),%rsp 11659 movq PER_CPU_VAR(kernel_stack),%rsp
@@ -12176,14 +11661,7 @@ diff -urNp linux-2.6.38.3/arch/x86/kernel/entry_64.S linux-2.6.38.3/arch/x86/ker
12176 /* 11661 /*
12177 * No need to follow this irqs off/on section - it's straight 11662 * No need to follow this irqs off/on section - it's straight
12178 * and short: 11663 * and short:
12179 */ 11664@@ -500,6 +697,7 @@ sysret_check:
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:
12187 andl %edi,%edx 11665 andl %edi,%edx
12188 jnz sysret_careful 11666 jnz sysret_careful
12189 CFI_REMEMBER_STATE 11667 CFI_REMEMBER_STATE
@@ -12191,7 +11669,7 @@ diff -urNp linux-2.6.38.3/arch/x86/kernel/entry_64.S linux-2.6.38.3/arch/x86/ker
12191 /* 11669 /*
12192 * sysretq will re-enable interrupts: 11670 * sysretq will re-enable interrupts:
12193 */ 11671 */
12194@@ -609,7 +812,7 @@ tracesys: 11672@@ -609,7 +807,7 @@ tracesys:
12195 GLOBAL(int_ret_from_sys_call) 11673 GLOBAL(int_ret_from_sys_call)
12196 DISABLE_INTERRUPTS(CLBR_NONE) 11674 DISABLE_INTERRUPTS(CLBR_NONE)
12197 TRACE_IRQS_OFF 11675 TRACE_IRQS_OFF
@@ -12200,7 +11678,7 @@ diff -urNp linux-2.6.38.3/arch/x86/kernel/entry_64.S linux-2.6.38.3/arch/x86/ker
12200 je retint_restore_args 11678 je retint_restore_args
12201 movl $_TIF_ALLWORK_MASK,%edi 11679 movl $_TIF_ALLWORK_MASK,%edi
12202 /* edi: mask to check */ 11680 /* edi: mask to check */
12203@@ -791,6 +994,16 @@ END(interrupt) 11681@@ -791,6 +989,16 @@ END(interrupt)
12204 CFI_ADJUST_CFA_OFFSET ORIG_RAX-RBP 11682 CFI_ADJUST_CFA_OFFSET ORIG_RAX-RBP
12205 call save_args 11683 call save_args
12206 PARTIAL_FRAME 0 11684 PARTIAL_FRAME 0
@@ -12217,7 +11695,7 @@ diff -urNp linux-2.6.38.3/arch/x86/kernel/entry_64.S linux-2.6.38.3/arch/x86/ker
12217 call \func 11695 call \func
12218 .endm 11696 .endm
12219 11697
12220@@ -823,7 +1036,7 @@ ret_from_intr: 11698@@ -823,7 +1031,7 @@ ret_from_intr:
12221 CFI_ADJUST_CFA_OFFSET -8 11699 CFI_ADJUST_CFA_OFFSET -8
12222 exit_intr: 11700 exit_intr:
12223 GET_THREAD_INFO(%rcx) 11701 GET_THREAD_INFO(%rcx)
@@ -12226,7 +11704,7 @@ diff -urNp linux-2.6.38.3/arch/x86/kernel/entry_64.S linux-2.6.38.3/arch/x86/ker
12226 je retint_kernel 11704 je retint_kernel
12227 11705
12228 /* Interrupt came from user space */ 11706 /* Interrupt came from user space */
12229@@ -845,12 +1058,14 @@ retint_swapgs: /* return to user-space 11707@@ -845,12 +1053,14 @@ retint_swapgs: /* return to user-space
12230 * The iretq could re-enable interrupts: 11708 * The iretq could re-enable interrupts:
12231 */ 11709 */
12232 DISABLE_INTERRUPTS(CLBR_ANY) 11710 DISABLE_INTERRUPTS(CLBR_ANY)
@@ -12241,7 +11719,7 @@ diff -urNp linux-2.6.38.3/arch/x86/kernel/entry_64.S linux-2.6.38.3/arch/x86/ker
12241 /* 11719 /*
12242 * The iretq could re-enable interrupts: 11720 * The iretq could re-enable interrupts:
12243 */ 11721 */
12244@@ -1022,6 +1237,16 @@ ENTRY(\sym) 11722@@ -1022,6 +1232,16 @@ ENTRY(\sym)
12245 CFI_ADJUST_CFA_OFFSET ORIG_RAX-R15 11723 CFI_ADJUST_CFA_OFFSET ORIG_RAX-R15
12246 call error_entry 11724 call error_entry
12247 DEFAULT_FRAME 0 11725 DEFAULT_FRAME 0
@@ -12258,7 +11736,7 @@ diff -urNp linux-2.6.38.3/arch/x86/kernel/entry_64.S linux-2.6.38.3/arch/x86/ker
12258 movq %rsp,%rdi /* pt_regs pointer */ 11736 movq %rsp,%rdi /* pt_regs pointer */
12259 xorl %esi,%esi /* no error code */ 11737 xorl %esi,%esi /* no error code */
12260 call \do_sym 11738 call \do_sym
12261@@ -1039,6 +1264,16 @@ ENTRY(\sym) 11739@@ -1039,6 +1259,16 @@ ENTRY(\sym)
12262 CFI_ADJUST_CFA_OFFSET ORIG_RAX-R15 11740 CFI_ADJUST_CFA_OFFSET ORIG_RAX-R15
12263 call save_paranoid 11741 call save_paranoid
12264 TRACE_IRQS_OFF 11742 TRACE_IRQS_OFF
@@ -12275,7 +11753,7 @@ diff -urNp linux-2.6.38.3/arch/x86/kernel/entry_64.S linux-2.6.38.3/arch/x86/ker
12275 movq %rsp,%rdi /* pt_regs pointer */ 11753 movq %rsp,%rdi /* pt_regs pointer */
12276 xorl %esi,%esi /* no error code */ 11754 xorl %esi,%esi /* no error code */
12277 call \do_sym 11755 call \do_sym
12278@@ -1047,7 +1282,7 @@ ENTRY(\sym) 11756@@ -1047,7 +1277,7 @@ ENTRY(\sym)
12279 END(\sym) 11757 END(\sym)
12280 .endm 11758 .endm
12281 11759
@@ -12284,7 +11762,7 @@ diff -urNp linux-2.6.38.3/arch/x86/kernel/entry_64.S linux-2.6.38.3/arch/x86/ker
12284 .macro paranoidzeroentry_ist sym do_sym ist 11762 .macro paranoidzeroentry_ist sym do_sym ist
12285 ENTRY(\sym) 11763 ENTRY(\sym)
12286 INTR_FRAME 11764 INTR_FRAME
12287@@ -1057,8 +1292,24 @@ ENTRY(\sym) 11765@@ -1057,8 +1287,24 @@ ENTRY(\sym)
12288 CFI_ADJUST_CFA_OFFSET ORIG_RAX-R15 11766 CFI_ADJUST_CFA_OFFSET ORIG_RAX-R15
12289 call save_paranoid 11767 call save_paranoid
12290 TRACE_IRQS_OFF 11768 TRACE_IRQS_OFF
@@ -12309,7 +11787,7 @@ diff -urNp linux-2.6.38.3/arch/x86/kernel/entry_64.S linux-2.6.38.3/arch/x86/ker
12309 subq $EXCEPTION_STKSZ, INIT_TSS_IST(\ist) 11787 subq $EXCEPTION_STKSZ, INIT_TSS_IST(\ist)
12310 call \do_sym 11788 call \do_sym
12311 addq $EXCEPTION_STKSZ, INIT_TSS_IST(\ist) 11789 addq $EXCEPTION_STKSZ, INIT_TSS_IST(\ist)
12312@@ -1075,6 +1326,16 @@ ENTRY(\sym) 11790@@ -1075,6 +1321,16 @@ ENTRY(\sym)
12313 CFI_ADJUST_CFA_OFFSET ORIG_RAX-R15 11791 CFI_ADJUST_CFA_OFFSET ORIG_RAX-R15
12314 call error_entry 11792 call error_entry
12315 DEFAULT_FRAME 0 11793 DEFAULT_FRAME 0
@@ -12326,7 +11804,7 @@ diff -urNp linux-2.6.38.3/arch/x86/kernel/entry_64.S linux-2.6.38.3/arch/x86/ker
12326 movq %rsp,%rdi /* pt_regs pointer */ 11804 movq %rsp,%rdi /* pt_regs pointer */
12327 movq ORIG_RAX(%rsp),%rsi /* get error code */ 11805 movq ORIG_RAX(%rsp),%rsi /* get error code */
12328 movq $-1,ORIG_RAX(%rsp) /* no syscall to restart */ 11806 movq $-1,ORIG_RAX(%rsp) /* no syscall to restart */
12329@@ -1094,6 +1355,16 @@ ENTRY(\sym) 11807@@ -1094,6 +1350,16 @@ ENTRY(\sym)
12330 call save_paranoid 11808 call save_paranoid
12331 DEFAULT_FRAME 0 11809 DEFAULT_FRAME 0
12332 TRACE_IRQS_OFF 11810 TRACE_IRQS_OFF
@@ -12343,7 +11821,7 @@ diff -urNp linux-2.6.38.3/arch/x86/kernel/entry_64.S linux-2.6.38.3/arch/x86/ker
12343 movq %rsp,%rdi /* pt_regs pointer */ 11821 movq %rsp,%rdi /* pt_regs pointer */
12344 movq ORIG_RAX(%rsp),%rsi /* get error code */ 11822 movq ORIG_RAX(%rsp),%rsi /* get error code */
12345 movq $-1,ORIG_RAX(%rsp) /* no syscall to restart */ 11823 movq $-1,ORIG_RAX(%rsp) /* no syscall to restart */
12346@@ -1356,14 +1627,27 @@ ENTRY(paranoid_exit) 11824@@ -1356,14 +1622,27 @@ ENTRY(paranoid_exit)
12347 TRACE_IRQS_OFF 11825 TRACE_IRQS_OFF
12348 testl %ebx,%ebx /* swapgs needed? */ 11826 testl %ebx,%ebx /* swapgs needed? */
12349 jnz paranoid_restore 11827 jnz paranoid_restore
@@ -12372,7 +11850,7 @@ diff -urNp linux-2.6.38.3/arch/x86/kernel/entry_64.S linux-2.6.38.3/arch/x86/ker
12372 TRACE_IRQS_IRETQ 0 11850 TRACE_IRQS_IRETQ 0
12373 RESTORE_ALL 8 11851 RESTORE_ALL 8
12374 jmp irq_return 11852 jmp irq_return
12375@@ -1421,7 +1705,7 @@ ENTRY(error_entry) 11853@@ -1421,7 +1700,7 @@ ENTRY(error_entry)
12376 movq_cfi r14, R14+8 11854 movq_cfi r14, R14+8
12377 movq_cfi r15, R15+8 11855 movq_cfi r15, R15+8
12378 xorl %ebx,%ebx 11856 xorl %ebx,%ebx
@@ -12381,7 +11859,7 @@ diff -urNp linux-2.6.38.3/arch/x86/kernel/entry_64.S linux-2.6.38.3/arch/x86/ker
12381 je error_kernelspace 11859 je error_kernelspace
12382 error_swapgs: 11860 error_swapgs:
12383 SWAPGS 11861 SWAPGS
12384@@ -1485,6 +1769,16 @@ ENTRY(nmi) 11862@@ -1485,6 +1764,16 @@ ENTRY(nmi)
12385 CFI_ADJUST_CFA_OFFSET ORIG_RAX-R15 11863 CFI_ADJUST_CFA_OFFSET ORIG_RAX-R15
12386 call save_paranoid 11864 call save_paranoid
12387 DEFAULT_FRAME 0 11865 DEFAULT_FRAME 0
@@ -12398,7 +11876,7 @@ diff -urNp linux-2.6.38.3/arch/x86/kernel/entry_64.S linux-2.6.38.3/arch/x86/ker
12398 /* paranoidentry do_nmi, 0; without TRACE_IRQS_OFF */ 11876 /* paranoidentry do_nmi, 0; without TRACE_IRQS_OFF */
12399 movq %rsp,%rdi 11877 movq %rsp,%rdi
12400 movq $-1,%rsi 11878 movq $-1,%rsi
12401@@ -1495,11 +1789,25 @@ ENTRY(nmi) 11879@@ -1495,11 +1784,25 @@ ENTRY(nmi)
12402 DISABLE_INTERRUPTS(CLBR_NONE) 11880 DISABLE_INTERRUPTS(CLBR_NONE)
12403 testl %ebx,%ebx /* swapgs needed? */ 11881 testl %ebx,%ebx /* swapgs needed? */
12404 jnz nmi_restore 11882 jnz nmi_restore
@@ -12425,9 +11903,9 @@ diff -urNp linux-2.6.38.3/arch/x86/kernel/entry_64.S linux-2.6.38.3/arch/x86/ker
12425 RESTORE_ALL 8 11903 RESTORE_ALL 8
12426 jmp irq_return 11904 jmp irq_return
12427 nmi_userspace: 11905 nmi_userspace:
12428diff -urNp linux-2.6.38.3/arch/x86/kernel/ftrace.c linux-2.6.38.3/arch/x86/kernel/ftrace.c 11906diff -urNp linux-2.6.38.2/arch/x86/kernel/ftrace.c linux-2.6.38.2/arch/x86/kernel/ftrace.c
12429--- linux-2.6.38.3/arch/x86/kernel/ftrace.c 2011-03-14 21:20:32.000000000 -0400 11907--- linux-2.6.38.2/arch/x86/kernel/ftrace.c 2011-03-14 21:20:32.000000000 -0400
12430+++ linux-2.6.38.3/arch/x86/kernel/ftrace.c 2011-04-17 15:57:32.000000000 -0400 11908+++ linux-2.6.38.2/arch/x86/kernel/ftrace.c 2011-03-21 18:31:35.000000000 -0400
12431@@ -177,7 +177,9 @@ void ftrace_nmi_enter(void) 11909@@ -177,7 +177,9 @@ void ftrace_nmi_enter(void)
12432 11910
12433 if (atomic_inc_return(&nmi_running) & MOD_CODE_WRITE_FLAG) { 11911 if (atomic_inc_return(&nmi_running) & MOD_CODE_WRITE_FLAG) {
@@ -12465,9 +11943,9 @@ diff -urNp linux-2.6.38.3/arch/x86/kernel/ftrace.c linux-2.6.38.3/arch/x86/kerne
12465 if (probe_kernel_read(code, (void *)ip, MCOUNT_INSN_SIZE)) 11943 if (probe_kernel_read(code, (void *)ip, MCOUNT_INSN_SIZE))
12466 return -EFAULT; 11944 return -EFAULT;
12467 11945
12468diff -urNp linux-2.6.38.3/arch/x86/kernel/head32.c linux-2.6.38.3/arch/x86/kernel/head32.c 11946diff -urNp linux-2.6.38.2/arch/x86/kernel/head32.c linux-2.6.38.2/arch/x86/kernel/head32.c
12469--- linux-2.6.38.3/arch/x86/kernel/head32.c 2011-03-14 21:20:32.000000000 -0400 11947--- linux-2.6.38.2/arch/x86/kernel/head32.c 2011-03-14 21:20:32.000000000 -0400
12470+++ linux-2.6.38.3/arch/x86/kernel/head32.c 2011-04-17 15:57:32.000000000 -0400 11948+++ linux-2.6.38.2/arch/x86/kernel/head32.c 2011-03-21 18:31:35.000000000 -0400
12471@@ -19,6 +19,7 @@ 11949@@ -19,6 +19,7 @@
12472 #include <asm/io_apic.h> 11950 #include <asm/io_apic.h>
12473 #include <asm/bios_ebda.h> 11951 #include <asm/bios_ebda.h>
@@ -12485,9 +11963,9 @@ diff -urNp linux-2.6.38.3/arch/x86/kernel/head32.c linux-2.6.38.3/arch/x86/kerne
12485 11963
12486 #ifdef CONFIG_BLK_DEV_INITRD 11964 #ifdef CONFIG_BLK_DEV_INITRD
12487 /* Reserve INITRD */ 11965 /* Reserve INITRD */
12488diff -urNp linux-2.6.38.3/arch/x86/kernel/head_32.S linux-2.6.38.3/arch/x86/kernel/head_32.S 11966diff -urNp linux-2.6.38.2/arch/x86/kernel/head_32.S linux-2.6.38.2/arch/x86/kernel/head_32.S
12489--- linux-2.6.38.3/arch/x86/kernel/head_32.S 2011-03-14 21:20:32.000000000 -0400 11967--- linux-2.6.38.2/arch/x86/kernel/head_32.S 2011-03-14 21:20:32.000000000 -0400
12490+++ linux-2.6.38.3/arch/x86/kernel/head_32.S 2011-04-17 16:02:16.000000000 -0400 11968+++ linux-2.6.38.2/arch/x86/kernel/head_32.S 2011-03-21 18:31:35.000000000 -0400
12491@@ -25,6 +25,12 @@ 11969@@ -25,6 +25,12 @@
12492 /* Physical address */ 11970 /* Physical address */
12493 #define pa(X) ((X) - __PAGE_OFFSET) 11971 #define pa(X) ((X) - __PAGE_OFFSET)
@@ -12805,7 +12283,7 @@ diff -urNp linux-2.6.38.3/arch/x86/kernel/head_32.S linux-2.6.38.3/arch/x86/kern
12805 ENTRY(initial_page_table) 12283 ENTRY(initial_page_table)
12806 .long pa(initial_pg_pmd+PGD_IDENT_ATTR),0 /* low identity map */ 12284 .long pa(initial_pg_pmd+PGD_IDENT_ATTR),0 /* low identity map */
12807 # if KPMDS == 3 12285 # if KPMDS == 3
12808@@ -663,18 +758,27 @@ ENTRY(initial_page_table) 12286@@ -663,13 +758,22 @@ ENTRY(initial_page_table)
12809 # error "Kernel PMDs should be 1, 2 or 3" 12287 # error "Kernel PMDs should be 1, 2 or 3"
12810 # endif 12288 # endif
12811 .align PAGE_SIZE_asm /* needs to be page-sized too */ 12289 .align PAGE_SIZE_asm /* needs to be page-sized too */
@@ -12824,18 +12302,11 @@ diff -urNp linux-2.6.38.3/arch/x86/kernel/head_32.S linux-2.6.38.3/arch/x86/kern
12824 ENTRY(stack_start) 12302 ENTRY(stack_start)
12825- .long init_thread_union+THREAD_SIZE 12303- .long init_thread_union+THREAD_SIZE
12826+ .long init_thread_union+THREAD_SIZE-8 12304+ .long init_thread_union+THREAD_SIZE-8
12827+
12828+ready: .byte 0
12829 12305
12830+.section .rodata,"a",@progbits 12306+.section .rodata,"a",@progbits
12831 early_recursion_flag: 12307 early_recursion_flag:
12832 .long 0 12308 .long 0
12833 12309
12834-ready: .byte 0
12835-
12836 int_msg:
12837 .asciz "Unknown interrupt or fault at: %p %p %p\n"
12838
12839@@ -707,7 +811,7 @@ fault_msg: 12310@@ -707,7 +811,7 @@ fault_msg:
12840 .word 0 # 32 bit align gdt_desc.address 12311 .word 0 # 32 bit align gdt_desc.address
12841 boot_gdt_descr: 12312 boot_gdt_descr:
@@ -12922,9 +12393,9 @@ diff -urNp linux-2.6.38.3/arch/x86/kernel/head_32.S linux-2.6.38.3/arch/x86/kern
12922+ /* Be sure this is zeroed to avoid false validations in Xen */ 12393+ /* Be sure this is zeroed to avoid false validations in Xen */
12923+ .fill PAGE_SIZE_asm - GDT_SIZE,1,0 12394+ .fill PAGE_SIZE_asm - GDT_SIZE,1,0
12924+ .endr 12395+ .endr
12925diff -urNp linux-2.6.38.3/arch/x86/kernel/head_64.S linux-2.6.38.3/arch/x86/kernel/head_64.S 12396diff -urNp linux-2.6.38.2/arch/x86/kernel/head_64.S linux-2.6.38.2/arch/x86/kernel/head_64.S
12926--- linux-2.6.38.3/arch/x86/kernel/head_64.S 2011-03-14 21:20:32.000000000 -0400 12397--- linux-2.6.38.2/arch/x86/kernel/head_64.S 2011-03-14 21:20:32.000000000 -0400
12927+++ linux-2.6.38.3/arch/x86/kernel/head_64.S 2011-04-17 15:57:32.000000000 -0400 12398+++ linux-2.6.38.2/arch/x86/kernel/head_64.S 2011-03-21 18:31:35.000000000 -0400
12928@@ -19,6 +19,7 @@ 12399@@ -19,6 +19,7 @@
12929 #include <asm/cache.h> 12400 #include <asm/cache.h>
12930 #include <asm/processor-flags.h> 12401 #include <asm/processor-flags.h>
@@ -13194,9 +12665,9 @@ diff -urNp linux-2.6.38.3/arch/x86/kernel/head_64.S linux-2.6.38.3/arch/x86/kern
13194 12665
13195 __PAGE_ALIGNED_BSS 12666 __PAGE_ALIGNED_BSS
13196 .align PAGE_SIZE 12667 .align PAGE_SIZE
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 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
13198--- linux-2.6.38.3/arch/x86/kernel/i386_ksyms_32.c 2011-03-14 21:20:32.000000000 -0400 12669--- linux-2.6.38.2/arch/x86/kernel/i386_ksyms_32.c 2011-03-14 21:20:32.000000000 -0400
13199+++ linux-2.6.38.3/arch/x86/kernel/i386_ksyms_32.c 2011-04-17 15:57:32.000000000 -0400 12670+++ linux-2.6.38.2/arch/x86/kernel/i386_ksyms_32.c 2011-03-21 18:31:35.000000000 -0400
13200@@ -20,8 +20,12 @@ extern void cmpxchg8b_emu(void); 12671@@ -20,8 +20,12 @@ extern void cmpxchg8b_emu(void);
13201 EXPORT_SYMBOL(cmpxchg8b_emu); 12672 EXPORT_SYMBOL(cmpxchg8b_emu);
13202 #endif 12673 #endif
@@ -13218,20 +12689,10 @@ diff -urNp linux-2.6.38.3/arch/x86/kernel/i386_ksyms_32.c linux-2.6.38.3/arch/x8
13218+#ifdef CONFIG_PAX_KERNEXEC 12689+#ifdef CONFIG_PAX_KERNEXEC
13219+EXPORT_SYMBOL(__LOAD_PHYSICAL_ADDR); 12690+EXPORT_SYMBOL(__LOAD_PHYSICAL_ADDR);
13220+#endif 12691+#endif
13221diff -urNp linux-2.6.38.3/arch/x86/kernel/init_task.c linux-2.6.38.3/arch/x86/kernel/init_task.c 12692diff -urNp linux-2.6.38.2/arch/x86/kernel/init_task.c linux-2.6.38.2/arch/x86/kernel/init_task.c
13222--- linux-2.6.38.3/arch/x86/kernel/init_task.c 2011-03-14 21:20:32.000000000 -0400 12693--- linux-2.6.38.2/arch/x86/kernel/init_task.c 2011-03-14 21:20:32.000000000 -0400
13223+++ linux-2.6.38.3/arch/x86/kernel/init_task.c 2011-04-17 15:57:32.000000000 -0400 12694+++ linux-2.6.38.2/arch/x86/kernel/init_task.c 2011-03-21 18:31:35.000000000 -0400
13224@@ -20,8 +20,7 @@ static struct sighand_struct init_sighan 12695@@ -38,5 +38,5 @@ EXPORT_SYMBOL(init_task);
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);
13235 * section. Since TSS's are completely CPU-local, we want them 12696 * section. Since TSS's are completely CPU-local, we want them
13236 * on exact cacheline boundaries, to eliminate cacheline ping-pong. 12697 * on exact cacheline boundaries, to eliminate cacheline ping-pong.
13237 */ 12698 */
@@ -13239,9 +12700,9 @@ diff -urNp linux-2.6.38.3/arch/x86/kernel/init_task.c linux-2.6.38.3/arch/x86/ke
13239- 12700-
13240+struct tss_struct init_tss[NR_CPUS] ____cacheline_internodealigned_in_smp = { [0 ... NR_CPUS-1] = INIT_TSS }; 12701+struct tss_struct init_tss[NR_CPUS] ____cacheline_internodealigned_in_smp = { [0 ... NR_CPUS-1] = INIT_TSS };
13241+EXPORT_SYMBOL(init_tss); 12702+EXPORT_SYMBOL(init_tss);
13242diff -urNp linux-2.6.38.3/arch/x86/kernel/ioport.c linux-2.6.38.3/arch/x86/kernel/ioport.c 12703diff -urNp linux-2.6.38.2/arch/x86/kernel/ioport.c linux-2.6.38.2/arch/x86/kernel/ioport.c
13243--- linux-2.6.38.3/arch/x86/kernel/ioport.c 2011-03-14 21:20:32.000000000 -0400 12704--- linux-2.6.38.2/arch/x86/kernel/ioport.c 2011-03-14 21:20:32.000000000 -0400
13244+++ linux-2.6.38.3/arch/x86/kernel/ioport.c 2011-04-17 15:57:32.000000000 -0400 12705+++ linux-2.6.38.2/arch/x86/kernel/ioport.c 2011-03-21 18:31:35.000000000 -0400
13245@@ -6,6 +6,7 @@ 12706@@ -6,6 +6,7 @@
13246 #include <linux/sched.h> 12707 #include <linux/sched.h>
13247 #include <linux/kernel.h> 12708 #include <linux/kernel.h>
@@ -13285,153 +12746,64 @@ diff -urNp linux-2.6.38.3/arch/x86/kernel/ioport.c linux-2.6.38.3/arch/x86/kerne
13285 if (!capable(CAP_SYS_RAWIO)) 12746 if (!capable(CAP_SYS_RAWIO))
13286 return -EPERM; 12747 return -EPERM;
13287 } 12748 }
13288diff -urNp linux-2.6.38.3/arch/x86/kernel/irq_32.c linux-2.6.38.3/arch/x86/kernel/irq_32.c 12749diff -urNp linux-2.6.38.2/arch/x86/kernel/irq_32.c linux-2.6.38.2/arch/x86/kernel/irq_32.c
13289--- linux-2.6.38.3/arch/x86/kernel/irq_32.c 2011-03-14 21:20:32.000000000 -0400 12750--- linux-2.6.38.2/arch/x86/kernel/irq_32.c 2011-03-14 21:20:32.000000000 -0400
13290+++ linux-2.6.38.3/arch/x86/kernel/irq_32.c 2011-04-17 15:57:32.000000000 -0400 12751+++ linux-2.6.38.2/arch/x86/kernel/irq_32.c 2011-03-21 18:31:35.000000000 -0400
13291@@ -36,7 +36,7 @@ static int check_stack_overflow(void) 12752@@ -91,7 +91,7 @@ execute_on_irq_stack(int overflow, struc
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))
13329 return 0; 12753 return 0;
13330 12754
13331 /* build the stack frame on the IRQ stack */ 12755 /* build the stack frame on the IRQ stack */
13332- isp = (u32 *) ((char *)irqctx + sizeof(*irqctx)); 12756- isp = (u32 *) ((char *)irqctx + sizeof(*irqctx));
13333- irqctx->tinfo.task = curctx->tinfo.task;
13334- irqctx->tinfo.previous_esp = current_stack_pointer;
13335+ isp = (u32 *) ((char *)irqctx + sizeof(*irqctx) - 8); 12757+ isp = (u32 *) ((char *)irqctx + sizeof(*irqctx) - 8);
13336+ irqctx->previous_esp = current_stack_pointer; 12758 irqctx->tinfo.task = curctx->tinfo.task;
13337+ add_preempt_count(HARDIRQ_OFFSET); 12759 irqctx->tinfo.previous_esp = current_stack_pointer;
12760
12761@@ -103,6 +103,10 @@ execute_on_irq_stack(int overflow, struc
12762 (irqctx->tinfo.preempt_count & ~SOFTIRQ_MASK) |
12763 (curctx->tinfo.preempt_count & SOFTIRQ_MASK);
13338 12764
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);
13346+#ifdef CONFIG_PAX_MEMORY_UDEREF 12765+#ifdef CONFIG_PAX_MEMORY_UDEREF
13347+ __set_fs(MAKE_MM_SEG(0)); 12766+ __set_fs(irqctx->tinfo.addr_limit);
13348+#endif 12767+#endif
13349 12768+
13350 if (unlikely(overflow)) 12769 if (unlikely(overflow))
13351 call_on_stack(print_stack_overflow, isp); 12770 call_on_stack(print_stack_overflow, isp);
13352@@ -113,6 +108,12 @@ execute_on_irq_stack(int overflow, struc 12771
12772@@ -113,6 +117,11 @@ execute_on_irq_stack(int overflow, struc
13353 : "0" (irq), "1" (desc), "2" (isp), 12773 : "0" (irq), "1" (desc), "2" (isp),
13354 "D" (desc->handle_irq) 12774 "D" (desc->handle_irq)
13355 : "memory", "cc", "ecx"); 12775 : "memory", "cc", "ecx");
13356+ 12776+
13357+#ifdef CONFIG_PAX_MEMORY_UDEREF 12777+#ifdef CONFIG_PAX_MEMORY_UDEREF
13358+ __set_fs(current_thread_info()->addr_limit); 12778+ __set_fs(curctx->tinfo.addr_limit);
13359+#endif 12779+#endif
13360+ 12780+
13361+ sub_preempt_count(HARDIRQ_OFFSET);
13362 return 1; 12781 return 1;
13363 } 12782 }
13364 12783
13365@@ -121,29 +122,11 @@ execute_on_irq_stack(int overflow, struc 12784@@ -168,9 +177,18 @@ asmlinkage void do_softirq(void)
13366 */ 12785 irqctx->tinfo.previous_esp = current_stack_pointer;
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;
13414 12786
13415 /* build the stack frame on the softirq stack */ 12787 /* build the stack frame on the softirq stack */
13416- isp = (u32 *) ((char *)irqctx + sizeof(*irqctx)); 12788- isp = (u32 *) ((char *)irqctx + sizeof(*irqctx));
13417+ isp = (u32 *) ((char *)irqctx + sizeof(*irqctx) - 8); 12789+ isp = (u32 *) ((char *)irqctx + sizeof(*irqctx) - 8);
13418+ 12790+
13419+#ifdef CONFIG_PAX_MEMORY_UDEREF 12791+#ifdef CONFIG_PAX_MEMORY_UDEREF
13420+ __set_fs(MAKE_MM_SEG(0)); 12792+ __set_fs(irqctx->tinfo.addr_limit);
13421+#endif 12793+#endif
13422 12794
13423 call_on_stack(__do_softirq, isp); 12795 call_on_stack(__do_softirq, isp);
13424+ 12796+
13425+#ifdef CONFIG_PAX_MEMORY_UDEREF 12797+#ifdef CONFIG_PAX_MEMORY_UDEREF
13426+ __set_fs(current_thread_info()->addr_limit); 12798+ __set_fs(curctx->addr_limit);
13427+#endif 12799+#endif
13428+ 12800+
13429 /* 12801 /*
13430 * Shouldnt happen, we returned above if in_interrupt(): 12802 * Shouldnt happen, we returned above if in_interrupt():
13431 */ 12803 */
13432diff -urNp linux-2.6.38.3/arch/x86/kernel/kgdb.c linux-2.6.38.3/arch/x86/kernel/kgdb.c 12804diff -urNp linux-2.6.38.2/arch/x86/kernel/kgdb.c linux-2.6.38.2/arch/x86/kernel/kgdb.c
13433--- linux-2.6.38.3/arch/x86/kernel/kgdb.c 2011-03-14 21:20:32.000000000 -0400 12805--- linux-2.6.38.2/arch/x86/kernel/kgdb.c 2011-03-14 21:20:32.000000000 -0400
13434+++ linux-2.6.38.3/arch/x86/kernel/kgdb.c 2011-04-17 15:57:32.000000000 -0400 12806+++ linux-2.6.38.2/arch/x86/kernel/kgdb.c 2011-03-21 18:31:35.000000000 -0400
13435@@ -124,11 +124,11 @@ char *dbg_get_reg(int regno, void *mem, 12807@@ -124,11 +124,11 @@ char *dbg_get_reg(int regno, void *mem,
13436 switch (regno) { 12808 switch (regno) {
13437 #ifdef CONFIG_X86_32 12809 #ifdef CONFIG_X86_32
@@ -13455,9 +12827,9 @@ diff -urNp linux-2.6.38.3/arch/x86/kernel/kgdb.c linux-2.6.38.3/arch/x86/kernel/
13455 /* Breakpoint instruction: */ 12827 /* Breakpoint instruction: */
13456 .gdb_bpt_instr = { 0xcc }, 12828 .gdb_bpt_instr = { 0xcc },
13457 .flags = KGDB_HW_BREAKPOINT, 12829 .flags = KGDB_HW_BREAKPOINT,
13458diff -urNp linux-2.6.38.3/arch/x86/kernel/kprobes.c linux-2.6.38.3/arch/x86/kernel/kprobes.c 12830diff -urNp linux-2.6.38.2/arch/x86/kernel/kprobes.c linux-2.6.38.2/arch/x86/kernel/kprobes.c
13459--- linux-2.6.38.3/arch/x86/kernel/kprobes.c 2011-03-14 21:20:32.000000000 -0400 12831--- linux-2.6.38.2/arch/x86/kernel/kprobes.c 2011-03-14 21:20:32.000000000 -0400
13460+++ linux-2.6.38.3/arch/x86/kernel/kprobes.c 2011-04-17 15:57:32.000000000 -0400 12832+++ linux-2.6.38.2/arch/x86/kernel/kprobes.c 2011-03-21 18:31:35.000000000 -0400
13461@@ -115,8 +115,11 @@ static void __kprobes __synthesize_relat 12833@@ -115,8 +115,11 @@ static void __kprobes __synthesize_relat
13462 } __attribute__((packed)) *insn; 12834 } __attribute__((packed)) *insn;
13463 12835
@@ -13591,9 +12963,9 @@ diff -urNp linux-2.6.38.3/arch/x86/kernel/kprobes.c linux-2.6.38.3/arch/x86/kern
13591 RELATIVE_ADDR_SIZE); 12963 RELATIVE_ADDR_SIZE);
13592 12964
13593 insn_buf[0] = RELATIVEJUMP_OPCODE; 12965 insn_buf[0] = RELATIVEJUMP_OPCODE;
13594diff -urNp linux-2.6.38.3/arch/x86/kernel/ldt.c linux-2.6.38.3/arch/x86/kernel/ldt.c 12966diff -urNp linux-2.6.38.2/arch/x86/kernel/ldt.c linux-2.6.38.2/arch/x86/kernel/ldt.c
13595--- linux-2.6.38.3/arch/x86/kernel/ldt.c 2011-03-14 21:20:32.000000000 -0400 12967--- linux-2.6.38.2/arch/x86/kernel/ldt.c 2011-03-14 21:20:32.000000000 -0400
13596+++ linux-2.6.38.3/arch/x86/kernel/ldt.c 2011-04-17 15:57:32.000000000 -0400 12968+++ linux-2.6.38.2/arch/x86/kernel/ldt.c 2011-03-21 18:31:35.000000000 -0400
13597@@ -67,13 +67,13 @@ static int alloc_ldt(mm_context_t *pc, i 12969@@ -67,13 +67,13 @@ static int alloc_ldt(mm_context_t *pc, i
13598 if (reload) { 12970 if (reload) {
13599 #ifdef CONFIG_SMP 12971 #ifdef CONFIG_SMP
@@ -13658,9 +13030,9 @@ diff -urNp linux-2.6.38.3/arch/x86/kernel/ldt.c linux-2.6.38.3/arch/x86/kernel/l
13658 fill_ldt(&ldt, &ldt_info); 13030 fill_ldt(&ldt, &ldt_info);
13659 if (oldmode) 13031 if (oldmode)
13660 ldt.avl = 0; 13032 ldt.avl = 0;
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 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
13662--- linux-2.6.38.3/arch/x86/kernel/machine_kexec_32.c 2011-03-14 21:20:32.000000000 -0400 13034--- linux-2.6.38.2/arch/x86/kernel/machine_kexec_32.c 2011-03-14 21:20:32.000000000 -0400
13663+++ linux-2.6.38.3/arch/x86/kernel/machine_kexec_32.c 2011-04-17 15:57:32.000000000 -0400 13035+++ linux-2.6.38.2/arch/x86/kernel/machine_kexec_32.c 2011-03-21 18:31:35.000000000 -0400
13664@@ -27,7 +27,7 @@ 13036@@ -27,7 +27,7 @@
13665 #include <asm/cacheflush.h> 13037 #include <asm/cacheflush.h>
13666 #include <asm/debugreg.h> 13038 #include <asm/debugreg.h>
@@ -13688,9 +13060,9 @@ diff -urNp linux-2.6.38.3/arch/x86/kernel/machine_kexec_32.c linux-2.6.38.3/arch
13688 13060
13689 relocate_kernel_ptr = control_page; 13061 relocate_kernel_ptr = control_page;
13690 page_list[PA_CONTROL_PAGE] = __pa(control_page); 13062 page_list[PA_CONTROL_PAGE] = __pa(control_page);
13691diff -urNp linux-2.6.38.3/arch/x86/kernel/microcode_amd.c linux-2.6.38.3/arch/x86/kernel/microcode_amd.c 13063diff -urNp linux-2.6.38.2/arch/x86/kernel/microcode_amd.c linux-2.6.38.2/arch/x86/kernel/microcode_amd.c
13692--- linux-2.6.38.3/arch/x86/kernel/microcode_amd.c 2011-03-14 21:20:32.000000000 -0400 13064--- linux-2.6.38.2/arch/x86/kernel/microcode_amd.c 2011-03-14 21:20:32.000000000 -0400
13693+++ linux-2.6.38.3/arch/x86/kernel/microcode_amd.c 2011-04-17 15:57:32.000000000 -0400 13065+++ linux-2.6.38.2/arch/x86/kernel/microcode_amd.c 2011-03-21 18:31:35.000000000 -0400
13694@@ -317,7 +317,7 @@ static void microcode_fini_cpu_amd(int c 13066@@ -317,7 +317,7 @@ static void microcode_fini_cpu_amd(int c
13695 uci->mc = NULL; 13067 uci->mc = NULL;
13696 } 13068 }
@@ -13709,9 +13081,9 @@ diff -urNp linux-2.6.38.3/arch/x86/kernel/microcode_amd.c linux-2.6.38.3/arch/x8
13709 { 13081 {
13710 return &microcode_amd_ops; 13082 return &microcode_amd_ops;
13711 } 13083 }
13712diff -urNp linux-2.6.38.3/arch/x86/kernel/microcode_core.c linux-2.6.38.3/arch/x86/kernel/microcode_core.c 13084diff -urNp linux-2.6.38.2/arch/x86/kernel/microcode_core.c linux-2.6.38.2/arch/x86/kernel/microcode_core.c
13713--- linux-2.6.38.3/arch/x86/kernel/microcode_core.c 2011-03-14 21:20:32.000000000 -0400 13085--- linux-2.6.38.2/arch/x86/kernel/microcode_core.c 2011-03-14 21:20:32.000000000 -0400
13714+++ linux-2.6.38.3/arch/x86/kernel/microcode_core.c 2011-04-17 15:57:32.000000000 -0400 13086+++ linux-2.6.38.2/arch/x86/kernel/microcode_core.c 2011-03-21 18:31:35.000000000 -0400
13715@@ -92,7 +92,7 @@ MODULE_LICENSE("GPL"); 13087@@ -92,7 +92,7 @@ MODULE_LICENSE("GPL");
13716 13088
13717 #define MICROCODE_VERSION "2.00" 13089 #define MICROCODE_VERSION "2.00"
@@ -13721,9 +13093,9 @@ diff -urNp linux-2.6.38.3/arch/x86/kernel/microcode_core.c linux-2.6.38.3/arch/x
13721 13093
13722 /* 13094 /*
13723 * Synchronization. 13095 * Synchronization.
13724diff -urNp linux-2.6.38.3/arch/x86/kernel/microcode_intel.c linux-2.6.38.3/arch/x86/kernel/microcode_intel.c 13096diff -urNp linux-2.6.38.2/arch/x86/kernel/microcode_intel.c linux-2.6.38.2/arch/x86/kernel/microcode_intel.c
13725--- linux-2.6.38.3/arch/x86/kernel/microcode_intel.c 2011-03-14 21:20:32.000000000 -0400 13097--- linux-2.6.38.2/arch/x86/kernel/microcode_intel.c 2011-03-14 21:20:32.000000000 -0400
13726+++ linux-2.6.38.3/arch/x86/kernel/microcode_intel.c 2011-04-17 15:57:32.000000000 -0400 13098+++ linux-2.6.38.2/arch/x86/kernel/microcode_intel.c 2011-03-21 18:31:35.000000000 -0400
13727@@ -440,13 +440,13 @@ static enum ucode_state request_microcod 13099@@ -440,13 +440,13 @@ static enum ucode_state request_microcod
13728 13100
13729 static int get_ucode_user(void *to, const void *from, size_t n) 13101 static int get_ucode_user(void *to, const void *from, size_t n)
@@ -13758,9 +13130,9 @@ diff -urNp linux-2.6.38.3/arch/x86/kernel/microcode_intel.c linux-2.6.38.3/arch/
13758 { 13130 {
13759 return &microcode_intel_ops; 13131 return &microcode_intel_ops;
13760 } 13132 }
13761diff -urNp linux-2.6.38.3/arch/x86/kernel/module.c linux-2.6.38.3/arch/x86/kernel/module.c 13133diff -urNp linux-2.6.38.2/arch/x86/kernel/module.c linux-2.6.38.2/arch/x86/kernel/module.c
13762--- linux-2.6.38.3/arch/x86/kernel/module.c 2011-03-14 21:20:32.000000000 -0400 13134--- linux-2.6.38.2/arch/x86/kernel/module.c 2011-03-14 21:20:32.000000000 -0400
13763+++ linux-2.6.38.3/arch/x86/kernel/module.c 2011-04-17 15:57:32.000000000 -0400 13135+++ linux-2.6.38.2/arch/x86/kernel/module.c 2011-03-21 18:31:35.000000000 -0400
13764@@ -35,21 +35,66 @@ 13136@@ -35,21 +35,66 @@
13765 #define DEBUGP(fmt...) 13137 #define DEBUGP(fmt...)
13766 #endif 13138 #endif
@@ -13899,9 +13271,9 @@ diff -urNp linux-2.6.38.3/arch/x86/kernel/module.c linux-2.6.38.3/arch/x86/kerne
13899 #if 0 13271 #if 0
13900 if ((s64)val != *(s32 *)loc) 13272 if ((s64)val != *(s32 *)loc)
13901 goto overflow; 13273 goto overflow;
13902diff -urNp linux-2.6.38.3/arch/x86/kernel/paravirt.c linux-2.6.38.3/arch/x86/kernel/paravirt.c 13274diff -urNp linux-2.6.38.2/arch/x86/kernel/paravirt.c linux-2.6.38.2/arch/x86/kernel/paravirt.c
13903--- linux-2.6.38.3/arch/x86/kernel/paravirt.c 2011-03-14 21:20:32.000000000 -0400 13275--- linux-2.6.38.2/arch/x86/kernel/paravirt.c 2011-03-14 21:20:32.000000000 -0400
13904+++ linux-2.6.38.3/arch/x86/kernel/paravirt.c 2011-04-17 15:57:32.000000000 -0400 13276+++ linux-2.6.38.2/arch/x86/kernel/paravirt.c 2011-03-21 18:31:35.000000000 -0400
13905@@ -122,7 +122,7 @@ unsigned paravirt_patch_jmp(void *insnbu 13277@@ -122,7 +122,7 @@ unsigned paravirt_patch_jmp(void *insnbu
13906 * corresponding structure. */ 13278 * corresponding structure. */
13907 static void *get_call_destination(u8 type) 13279 static void *get_call_destination(u8 type)
@@ -14005,9 +13377,9 @@ diff -urNp linux-2.6.38.3/arch/x86/kernel/paravirt.c linux-2.6.38.3/arch/x86/ker
14005 }; 13377 };
14006 13378
14007 EXPORT_SYMBOL_GPL(pv_time_ops); 13379 EXPORT_SYMBOL_GPL(pv_time_ops);
14008diff -urNp linux-2.6.38.3/arch/x86/kernel/paravirt-spinlocks.c linux-2.6.38.3/arch/x86/kernel/paravirt-spinlocks.c 13380diff -urNp linux-2.6.38.2/arch/x86/kernel/paravirt-spinlocks.c linux-2.6.38.2/arch/x86/kernel/paravirt-spinlocks.c
14009--- linux-2.6.38.3/arch/x86/kernel/paravirt-spinlocks.c 2011-03-14 21:20:32.000000000 -0400 13381--- linux-2.6.38.2/arch/x86/kernel/paravirt-spinlocks.c 2011-03-14 21:20:32.000000000 -0400
14010+++ linux-2.6.38.3/arch/x86/kernel/paravirt-spinlocks.c 2011-04-17 15:57:32.000000000 -0400 13382+++ linux-2.6.38.2/arch/x86/kernel/paravirt-spinlocks.c 2011-03-21 18:31:35.000000000 -0400
14011@@ -13,7 +13,7 @@ default_spin_lock_flags(arch_spinlock_t 13383@@ -13,7 +13,7 @@ default_spin_lock_flags(arch_spinlock_t
14012 arch_spin_lock(lock); 13384 arch_spin_lock(lock);
14013 } 13385 }
@@ -14017,9 +13389,9 @@ diff -urNp linux-2.6.38.3/arch/x86/kernel/paravirt-spinlocks.c linux-2.6.38.3/ar
14017 #ifdef CONFIG_SMP 13389 #ifdef CONFIG_SMP
14018 .spin_is_locked = __ticket_spin_is_locked, 13390 .spin_is_locked = __ticket_spin_is_locked,
14019 .spin_is_contended = __ticket_spin_is_contended, 13391 .spin_is_contended = __ticket_spin_is_contended,
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 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
14021--- linux-2.6.38.3/arch/x86/kernel/pci-calgary_64.c 2011-03-14 21:20:32.000000000 -0400 13393--- linux-2.6.38.2/arch/x86/kernel/pci-calgary_64.c 2011-03-14 21:20:32.000000000 -0400
14022+++ linux-2.6.38.3/arch/x86/kernel/pci-calgary_64.c 2011-04-17 15:57:32.000000000 -0400 13394+++ linux-2.6.38.2/arch/x86/kernel/pci-calgary_64.c 2011-03-21 18:31:35.000000000 -0400
14023@@ -476,7 +476,7 @@ static void calgary_free_coherent(struct 13395@@ -476,7 +476,7 @@ static void calgary_free_coherent(struct
14024 free_pages((unsigned long)vaddr, get_order(size)); 13396 free_pages((unsigned long)vaddr, get_order(size));
14025 } 13397 }
@@ -14029,9 +13401,9 @@ diff -urNp linux-2.6.38.3/arch/x86/kernel/pci-calgary_64.c linux-2.6.38.3/arch/x
14029 .alloc_coherent = calgary_alloc_coherent, 13401 .alloc_coherent = calgary_alloc_coherent,
14030 .free_coherent = calgary_free_coherent, 13402 .free_coherent = calgary_free_coherent,
14031 .map_sg = calgary_map_sg, 13403 .map_sg = calgary_map_sg,
14032diff -urNp linux-2.6.38.3/arch/x86/kernel/pci-dma.c linux-2.6.38.3/arch/x86/kernel/pci-dma.c 13404diff -urNp linux-2.6.38.2/arch/x86/kernel/pci-dma.c linux-2.6.38.2/arch/x86/kernel/pci-dma.c
14033--- linux-2.6.38.3/arch/x86/kernel/pci-dma.c 2011-03-14 21:20:32.000000000 -0400 13405--- linux-2.6.38.2/arch/x86/kernel/pci-dma.c 2011-03-14 21:20:32.000000000 -0400
14034+++ linux-2.6.38.3/arch/x86/kernel/pci-dma.c 2011-04-17 15:57:32.000000000 -0400 13406+++ linux-2.6.38.2/arch/x86/kernel/pci-dma.c 2011-03-21 18:31:35.000000000 -0400
14035@@ -16,7 +16,7 @@ 13407@@ -16,7 +16,7 @@
14036 13408
14037 static int forbid_dac __read_mostly; 13409 static int forbid_dac __read_mostly;
@@ -14050,9 +13422,9 @@ diff -urNp linux-2.6.38.3/arch/x86/kernel/pci-dma.c linux-2.6.38.3/arch/x86/kern
14050 13422
14051 #ifdef CONFIG_PCI 13423 #ifdef CONFIG_PCI
14052 if (mask > 0xffffffff && forbid_dac > 0) { 13424 if (mask > 0xffffffff && forbid_dac > 0) {
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 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
14054--- linux-2.6.38.3/arch/x86/kernel/pci-gart_64.c 2011-03-14 21:20:32.000000000 -0400 13426--- linux-2.6.38.2/arch/x86/kernel/pci-gart_64.c 2011-03-14 21:20:32.000000000 -0400
14055+++ linux-2.6.38.3/arch/x86/kernel/pci-gart_64.c 2011-04-17 15:57:32.000000000 -0400 13427+++ linux-2.6.38.2/arch/x86/kernel/pci-gart_64.c 2011-03-21 18:31:35.000000000 -0400
14056@@ -706,7 +706,7 @@ static __init int init_amd_gatt(struct a 13428@@ -706,7 +706,7 @@ static __init int init_amd_gatt(struct a
14057 return -1; 13429 return -1;
14058 } 13430 }
@@ -14062,9 +13434,9 @@ diff -urNp linux-2.6.38.3/arch/x86/kernel/pci-gart_64.c linux-2.6.38.3/arch/x86/
14062 .map_sg = gart_map_sg, 13434 .map_sg = gart_map_sg,
14063 .unmap_sg = gart_unmap_sg, 13435 .unmap_sg = gart_unmap_sg,
14064 .map_page = gart_map_page, 13436 .map_page = gart_map_page,
14065diff -urNp linux-2.6.38.3/arch/x86/kernel/pci-nommu.c linux-2.6.38.3/arch/x86/kernel/pci-nommu.c 13437diff -urNp linux-2.6.38.2/arch/x86/kernel/pci-nommu.c linux-2.6.38.2/arch/x86/kernel/pci-nommu.c
14066--- linux-2.6.38.3/arch/x86/kernel/pci-nommu.c 2011-03-14 21:20:32.000000000 -0400 13438--- linux-2.6.38.2/arch/x86/kernel/pci-nommu.c 2011-03-14 21:20:32.000000000 -0400
14067+++ linux-2.6.38.3/arch/x86/kernel/pci-nommu.c 2011-04-17 15:57:32.000000000 -0400 13439+++ linux-2.6.38.2/arch/x86/kernel/pci-nommu.c 2011-03-21 18:31:35.000000000 -0400
14068@@ -95,7 +95,7 @@ static void nommu_sync_sg_for_device(str 13440@@ -95,7 +95,7 @@ static void nommu_sync_sg_for_device(str
14069 flush_write_buffers(); 13441 flush_write_buffers();
14070 } 13442 }
@@ -14074,9 +13446,9 @@ diff -urNp linux-2.6.38.3/arch/x86/kernel/pci-nommu.c linux-2.6.38.3/arch/x86/ke
14074 .alloc_coherent = dma_generic_alloc_coherent, 13446 .alloc_coherent = dma_generic_alloc_coherent,
14075 .free_coherent = nommu_free_coherent, 13447 .free_coherent = nommu_free_coherent,
14076 .map_sg = nommu_map_sg, 13448 .map_sg = nommu_map_sg,
14077diff -urNp linux-2.6.38.3/arch/x86/kernel/pci-swiotlb.c linux-2.6.38.3/arch/x86/kernel/pci-swiotlb.c 13449diff -urNp linux-2.6.38.2/arch/x86/kernel/pci-swiotlb.c linux-2.6.38.2/arch/x86/kernel/pci-swiotlb.c
14078--- linux-2.6.38.3/arch/x86/kernel/pci-swiotlb.c 2011-03-14 21:20:32.000000000 -0400 13450--- linux-2.6.38.2/arch/x86/kernel/pci-swiotlb.c 2011-03-14 21:20:32.000000000 -0400
14079+++ linux-2.6.38.3/arch/x86/kernel/pci-swiotlb.c 2011-04-17 15:57:32.000000000 -0400 13451+++ linux-2.6.38.2/arch/x86/kernel/pci-swiotlb.c 2011-03-21 18:31:35.000000000 -0400
14080@@ -26,7 +26,7 @@ static void *x86_swiotlb_alloc_coherent( 13452@@ -26,7 +26,7 @@ static void *x86_swiotlb_alloc_coherent(
14081 return swiotlb_alloc_coherent(hwdev, size, dma_handle, flags); 13453 return swiotlb_alloc_coherent(hwdev, size, dma_handle, flags);
14082 } 13454 }
@@ -14086,9 +13458,9 @@ diff -urNp linux-2.6.38.3/arch/x86/kernel/pci-swiotlb.c linux-2.6.38.3/arch/x86/
14086 .mapping_error = swiotlb_dma_mapping_error, 13458 .mapping_error = swiotlb_dma_mapping_error,
14087 .alloc_coherent = x86_swiotlb_alloc_coherent, 13459 .alloc_coherent = x86_swiotlb_alloc_coherent,
14088 .free_coherent = swiotlb_free_coherent, 13460 .free_coherent = swiotlb_free_coherent,
14089diff -urNp linux-2.6.38.3/arch/x86/kernel/process_32.c linux-2.6.38.3/arch/x86/kernel/process_32.c 13461diff -urNp linux-2.6.38.2/arch/x86/kernel/process_32.c linux-2.6.38.2/arch/x86/kernel/process_32.c
14090--- linux-2.6.38.3/arch/x86/kernel/process_32.c 2011-03-14 21:20:32.000000000 -0400 13462--- linux-2.6.38.2/arch/x86/kernel/process_32.c 2011-03-14 21:20:32.000000000 -0400
14091+++ linux-2.6.38.3/arch/x86/kernel/process_32.c 2011-04-17 15:57:32.000000000 -0400 13463+++ linux-2.6.38.2/arch/x86/kernel/process_32.c 2011-03-21 18:31:35.000000000 -0400
14092@@ -65,6 +65,7 @@ asmlinkage void ret_from_fork(void) __as 13464@@ -65,6 +65,7 @@ asmlinkage void ret_from_fork(void) __as
14093 unsigned long thread_saved_pc(struct task_struct *tsk) 13465 unsigned long thread_saved_pc(struct task_struct *tsk)
14094 { 13466 {
@@ -14144,33 +13516,37 @@ diff -urNp linux-2.6.38.3/arch/x86/kernel/process_32.c linux-2.6.38.3/arch/x86/k
14144 /* 13516 /*
14145 * Load the per-thread Thread-Local Storage descriptor. 13517 * Load the per-thread Thread-Local Storage descriptor.
14146 */ 13518 */
14147@@ -363,6 +367,9 @@ __switch_to(struct task_struct *prev_p, 13519@@ -404,3 +408,27 @@ unsigned long get_wchan(struct task_stru
14148 */
14149 arch_end_context_switch(next_p);
14150
14151+ percpu_write(current_task, next_p);
14152+ percpu_write(current_tinfo, &next_p->tinfo);
14153+
14154 if (preload_fpu)
14155 __math_state_restore();
14156
14157@@ -372,8 +379,6 @@ __switch_to(struct task_struct *prev_p,
14158 if (prev->gs | next->gs)
14159 lazy_load_gs(next->gs);
14160
14161- percpu_write(current_task, next_p);
14162-
14163 return prev_p;
14164 }
14165
14166@@ -403,4 +408,3 @@ unsigned long get_wchan(struct task_stru
14167 } while (count++ < 16);
14168 return 0; 13520 return 0;
14169 } 13521 }
14170- 13522
14171diff -urNp linux-2.6.38.3/arch/x86/kernel/process_64.c linux-2.6.38.3/arch/x86/kernel/process_64.c 13523+#ifdef CONFIG_PAX_RANDKSTACK
14172--- linux-2.6.38.3/arch/x86/kernel/process_64.c 2011-03-14 21:20:32.000000000 -0400 13524+asmlinkage void pax_randomize_kstack(void)
14173+++ linux-2.6.38.3/arch/x86/kernel/process_64.c 2011-04-17 15:57:32.000000000 -0400 13525+{
13526+ struct thread_struct *thread = &current->thread;
13527+ unsigned long time;
13528+
13529+ if (!randomize_va_space)
13530+ return;
13531+
13532+ rdtscl(time);
13533+
13534+ /* P4 seems to return a 0 LSB, ignore it */
13535+#ifdef CONFIG_MPENTIUM4
13536+ time &= 0x1EUL;
13537+ time <<= 2;
13538+#else
13539+ time &= 0xFUL;
13540+ time <<= 3;
13541+#endif
13542+
13543+ thread->sp0 ^= time;
13544+ load_sp0(init_tss + smp_processor_id(), thread);
13545+}
13546+#endif
13547diff -urNp linux-2.6.38.2/arch/x86/kernel/process_64.c linux-2.6.38.2/arch/x86/kernel/process_64.c
13548--- linux-2.6.38.2/arch/x86/kernel/process_64.c 2011-03-14 21:20:32.000000000 -0400
13549+++ linux-2.6.38.2/arch/x86/kernel/process_64.c 2011-03-21 18:31:35.000000000 -0400
14174@@ -87,7 +87,7 @@ static void __exit_idle(void) 13550@@ -87,7 +87,7 @@ static void __exit_idle(void)
14175 void exit_idle(void) 13551 void exit_idle(void)
14176 { 13552 {
@@ -14180,17 +13556,7 @@ diff -urNp linux-2.6.38.3/arch/x86/kernel/process_64.c linux-2.6.38.3/arch/x86/k
14180 return; 13556 return;
14181 __exit_idle(); 13557 __exit_idle();
14182 } 13558 }
14183@@ -260,8 +260,7 @@ int copy_thread(unsigned long clone_flag 13559@@ -376,7 +376,7 @@ __switch_to(struct task_struct *prev_p,
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,
14194 struct thread_struct *prev = &prev_p->thread; 13560 struct thread_struct *prev = &prev_p->thread;
14195 struct thread_struct *next = &next_p->thread; 13561 struct thread_struct *next = &next_p->thread;
14196 int cpu = smp_processor_id(); 13562 int cpu = smp_processor_id();
@@ -14199,20 +13565,7 @@ diff -urNp linux-2.6.38.3/arch/x86/kernel/process_64.c linux-2.6.38.3/arch/x86/k
14199 unsigned fsindex, gsindex; 13565 unsigned fsindex, gsindex;
14200 bool preload_fpu; 13566 bool preload_fpu;
14201 13567
14202@@ -472,10 +471,9 @@ __switch_to(struct task_struct *prev_p, 13568@@ -529,12 +529,11 @@ unsigned long get_wchan(struct task_stru
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
14216 if (!p || p == current || p->state == TASK_RUNNING) 13569 if (!p || p == current || p->state == TASK_RUNNING)
14217 return 0; 13570 return 0;
14218 stack = (unsigned long)task_stack_page(p); 13571 stack = (unsigned long)task_stack_page(p);
@@ -14227,48 +13580,10 @@ diff -urNp linux-2.6.38.3/arch/x86/kernel/process_64.c linux-2.6.38.3/arch/x86/k
14227 return 0; 13580 return 0;
14228 ip = *(u64 *)(fp+8); 13581 ip = *(u64 *)(fp+8);
14229 if (!in_sched_functions(ip)) 13582 if (!in_sched_functions(ip))
14230diff -urNp linux-2.6.38.3/arch/x86/kernel/process.c linux-2.6.38.3/arch/x86/kernel/process.c 13583diff -urNp linux-2.6.38.2/arch/x86/kernel/process.c linux-2.6.38.2/arch/x86/kernel/process.c
14231--- linux-2.6.38.3/arch/x86/kernel/process.c 2011-03-14 21:20:32.000000000 -0400 13584--- linux-2.6.38.2/arch/x86/kernel/process.c 2011-03-14 21:20:32.000000000 -0400
14232+++ linux-2.6.38.3/arch/x86/kernel/process.c 2011-04-17 15:57:32.000000000 -0400 13585+++ linux-2.6.38.2/arch/x86/kernel/process.c 2011-03-28 16:56:19.000000000 -0400
14233@@ -48,16 +48,33 @@ void free_thread_xstate(struct task_stru 13586@@ -70,7 +70,7 @@ void exit_thread(void)
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)
14272 unsigned long *bp = t->io_bitmap_ptr; 13587 unsigned long *bp = t->io_bitmap_ptr;
14273 13588
14274 if (bp) { 13589 if (bp) {
@@ -14277,7 +13592,7 @@ diff -urNp linux-2.6.38.3/arch/x86/kernel/process.c linux-2.6.38.3/arch/x86/kern
14277 13592
14278 t->io_bitmap_ptr = NULL; 13593 t->io_bitmap_ptr = NULL;
14279 clear_thread_flag(TIF_IO_BITMAP); 13594 clear_thread_flag(TIF_IO_BITMAP);
14280@@ -106,7 +123,7 @@ void show_regs_common(void) 13595@@ -106,7 +106,7 @@ void show_regs_common(void)
14281 13596
14282 printk(KERN_CONT "\n"); 13597 printk(KERN_CONT "\n");
14283 printk(KERN_DEFAULT "Pid: %d, comm: %.20s %s %s %.*s", 13598 printk(KERN_DEFAULT "Pid: %d, comm: %.20s %s %s %.*s",
@@ -14286,7 +13601,7 @@ diff -urNp linux-2.6.38.3/arch/x86/kernel/process.c linux-2.6.38.3/arch/x86/kern
14286 init_utsname()->release, 13601 init_utsname()->release,
14287 (int)strcspn(init_utsname()->version, " "), 13602 (int)strcspn(init_utsname()->version, " "),
14288 init_utsname()->version); 13603 init_utsname()->version);
14289@@ -123,6 +140,9 @@ void flush_thread(void) 13604@@ -123,6 +123,9 @@ void flush_thread(void)
14290 { 13605 {
14291 struct task_struct *tsk = current; 13606 struct task_struct *tsk = current;
14292 13607
@@ -14296,7 +13611,7 @@ diff -urNp linux-2.6.38.3/arch/x86/kernel/process.c linux-2.6.38.3/arch/x86/kern
14296 flush_ptrace_hw_breakpoint(tsk); 13611 flush_ptrace_hw_breakpoint(tsk);
14297 memset(tsk->thread.tls_array, 0, sizeof(tsk->thread.tls_array)); 13612 memset(tsk->thread.tls_array, 0, sizeof(tsk->thread.tls_array));
14298 /* 13613 /*
14299@@ -285,10 +305,10 @@ int kernel_thread(int (*fn)(void *), voi 13614@@ -285,10 +288,10 @@ int kernel_thread(int (*fn)(void *), voi
14300 regs.di = (unsigned long) arg; 13615 regs.di = (unsigned long) arg;
14301 13616
14302 #ifdef CONFIG_X86_32 13617 #ifdef CONFIG_X86_32
@@ -14310,51 +13625,27 @@ diff -urNp linux-2.6.38.3/arch/x86/kernel/process.c linux-2.6.38.3/arch/x86/kern
14310 #else 13625 #else
14311 regs.ss = __KERNEL_DS; 13626 regs.ss = __KERNEL_DS;
14312 #endif 13627 #endif
14313@@ -668,16 +688,31 @@ static int __init idle_setup(char *str) 13628@@ -667,17 +670,3 @@ static int __init idle_setup(char *str)
13629 return 0;
14314 } 13630 }
14315 early_param("idle", idle_setup); 13631 early_param("idle", idle_setup);
14316 13632-
14317-unsigned long arch_align_stack(unsigned long sp) 13633-unsigned long arch_align_stack(unsigned long sp)
14318+#ifdef CONFIG_PAX_RANDKSTACK 13634-{
14319+asmlinkage void pax_randomize_kstack(void)
14320 {
14321- if (!(current->personality & ADDR_NO_RANDOMIZE) && randomize_va_space) 13635- if (!(current->personality & ADDR_NO_RANDOMIZE) && randomize_va_space)
14322- sp -= get_random_int() % 8192; 13636- sp -= get_random_int() % 8192;
14323- return sp & ~0xf; 13637- return sp & ~0xf;
14324-} 13638-}
14325+ struct thread_struct *thread = &current->thread; 13639-
14326+ unsigned long time;
14327
14328-unsigned long arch_randomize_brk(struct mm_struct *mm) 13640-unsigned long arch_randomize_brk(struct mm_struct *mm)
14329-{ 13641-{
14330- unsigned long range_end = mm->brk + 0x02000000; 13642- unsigned long range_end = mm->brk + 0x02000000;
14331- return randomize_range(mm->brk, range_end, 0) ? : mm->brk; 13643- return randomize_range(mm->brk, range_end, 0) ? : mm->brk;
14332-} 13644-}
14333+ if (!randomize_va_space) 13645-
14334+ return; 13646diff -urNp linux-2.6.38.2/arch/x86/kernel/ptrace.c linux-2.6.38.2/arch/x86/kernel/ptrace.c
14335+ 13647--- linux-2.6.38.2/arch/x86/kernel/ptrace.c 2011-03-14 21:20:32.000000000 -0400
14336+ rdtscl(time); 13648+++ linux-2.6.38.2/arch/x86/kernel/ptrace.c 2011-03-21 18:31:35.000000000 -0400
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
14358@@ -805,7 +805,7 @@ long arch_ptrace(struct task_struct *chi 13649@@ -805,7 +805,7 @@ long arch_ptrace(struct task_struct *chi
14359 unsigned long addr, unsigned long data) 13650 unsigned long addr, unsigned long data)
14360 { 13651 {
@@ -14408,9 +13699,9 @@ diff -urNp linux-2.6.38.3/arch/x86/kernel/ptrace.c linux-2.6.38.3/arch/x86/kerne
14408 { 13699 {
14409 bool step; 13700 bool step;
14410 13701
14411diff -urNp linux-2.6.38.3/arch/x86/kernel/reboot.c linux-2.6.38.3/arch/x86/kernel/reboot.c 13702diff -urNp linux-2.6.38.2/arch/x86/kernel/reboot.c linux-2.6.38.2/arch/x86/kernel/reboot.c
14412--- linux-2.6.38.3/arch/x86/kernel/reboot.c 2011-03-14 21:20:32.000000000 -0400 13703--- linux-2.6.38.2/arch/x86/kernel/reboot.c 2011-03-14 21:20:32.000000000 -0400
14413+++ linux-2.6.38.3/arch/x86/kernel/reboot.c 2011-04-17 15:57:32.000000000 -0400 13704+++ linux-2.6.38.2/arch/x86/kernel/reboot.c 2011-03-21 18:31:35.000000000 -0400
14414@@ -34,7 +34,7 @@ void (*pm_power_off)(void); 13705@@ -34,7 +34,7 @@ void (*pm_power_off)(void);
14415 EXPORT_SYMBOL(pm_power_off); 13706 EXPORT_SYMBOL(pm_power_off);
14416 13707
@@ -14476,10 +13767,10 @@ diff -urNp linux-2.6.38.3/arch/x86/kernel/reboot.c linux-2.6.38.3/arch/x86/kerne
14476 13767
14477 /* Set up the IDT for real mode. */ 13768 /* Set up the IDT for real mode. */
14478 load_idt(&real_mode_idt); 13769 load_idt(&real_mode_idt);
14479diff -urNp linux-2.6.38.3/arch/x86/kernel/setup.c linux-2.6.38.3/arch/x86/kernel/setup.c 13770diff -urNp linux-2.6.38.2/arch/x86/kernel/setup.c linux-2.6.38.2/arch/x86/kernel/setup.c
14480--- linux-2.6.38.3/arch/x86/kernel/setup.c 2011-04-18 17:27:18.000000000 -0400 13771--- linux-2.6.38.2/arch/x86/kernel/setup.c 2011-03-28 17:42:40.000000000 -0400
14481+++ linux-2.6.38.3/arch/x86/kernel/setup.c 2011-04-17 16:53:16.000000000 -0400 13772+++ linux-2.6.38.2/arch/x86/kernel/setup.c 2011-03-28 17:42:53.000000000 -0400
14482@@ -654,7 +654,7 @@ static void __init trim_bios_range(void) 13773@@ -657,7 +657,7 @@ static void __init trim_bios_range(void)
14483 * area (640->1Mb) as ram even though it is not. 13774 * area (640->1Mb) as ram even though it is not.
14484 * take them out. 13775 * take them out.
14485 */ 13776 */
@@ -14488,7 +13779,7 @@ diff -urNp linux-2.6.38.3/arch/x86/kernel/setup.c linux-2.6.38.3/arch/x86/kernel
14488 sanitize_e820_map(e820.map, ARRAY_SIZE(e820.map), &e820.nr_map); 13779 sanitize_e820_map(e820.map, ARRAY_SIZE(e820.map), &e820.nr_map);
14489 } 13780 }
14490 13781
14491@@ -790,14 +790,14 @@ void __init setup_arch(char **cmdline_p) 13782@@ -793,14 +793,14 @@ void __init setup_arch(char **cmdline_p)
14492 13783
14493 if (!boot_params.hdr.root_flags) 13784 if (!boot_params.hdr.root_flags)
14494 root_mountflags &= ~MS_RDONLY; 13785 root_mountflags &= ~MS_RDONLY;
@@ -14508,9 +13799,9 @@ diff -urNp linux-2.6.38.3/arch/x86/kernel/setup.c linux-2.6.38.3/arch/x86/kernel
14508 data_resource.end = virt_to_phys(_edata)-1; 13799 data_resource.end = virt_to_phys(_edata)-1;
14509 bss_resource.start = virt_to_phys(&__bss_start); 13800 bss_resource.start = virt_to_phys(&__bss_start);
14510 bss_resource.end = virt_to_phys(&__bss_stop)-1; 13801 bss_resource.end = virt_to_phys(&__bss_stop)-1;
14511diff -urNp linux-2.6.38.3/arch/x86/kernel/setup_percpu.c linux-2.6.38.3/arch/x86/kernel/setup_percpu.c 13802diff -urNp linux-2.6.38.2/arch/x86/kernel/setup_percpu.c linux-2.6.38.2/arch/x86/kernel/setup_percpu.c
14512--- linux-2.6.38.3/arch/x86/kernel/setup_percpu.c 2011-03-14 21:20:32.000000000 -0400 13803--- linux-2.6.38.2/arch/x86/kernel/setup_percpu.c 2011-03-14 21:20:32.000000000 -0400
14513+++ linux-2.6.38.3/arch/x86/kernel/setup_percpu.c 2011-04-17 15:57:32.000000000 -0400 13804+++ linux-2.6.38.2/arch/x86/kernel/setup_percpu.c 2011-03-21 18:31:35.000000000 -0400
14514@@ -21,19 +21,17 @@ 13805@@ -21,19 +21,17 @@
14515 #include <asm/cpu.h> 13806 #include <asm/cpu.h>
14516 #include <asm/stackprotector.h> 13807 #include <asm/stackprotector.h>
@@ -14574,9 +13865,9 @@ diff -urNp linux-2.6.38.3/arch/x86/kernel/setup_percpu.c linux-2.6.38.3/arch/x86
14574 /* 13865 /*
14575 * Up to this point, the boot CPU has been using .init.data 13866 * Up to this point, the boot CPU has been using .init.data
14576 * area. Reload any changed state for the boot CPU. 13867 * area. Reload any changed state for the boot CPU.
14577diff -urNp linux-2.6.38.3/arch/x86/kernel/signal.c linux-2.6.38.3/arch/x86/kernel/signal.c 13868diff -urNp linux-2.6.38.2/arch/x86/kernel/signal.c linux-2.6.38.2/arch/x86/kernel/signal.c
14578--- linux-2.6.38.3/arch/x86/kernel/signal.c 2011-03-14 21:20:32.000000000 -0400 13869--- linux-2.6.38.2/arch/x86/kernel/signal.c 2011-03-14 21:20:32.000000000 -0400
14579+++ linux-2.6.38.3/arch/x86/kernel/signal.c 2011-04-17 15:57:32.000000000 -0400 13870+++ linux-2.6.38.2/arch/x86/kernel/signal.c 2011-03-21 18:31:35.000000000 -0400
14580@@ -198,7 +198,7 @@ static unsigned long align_sigframe(unsi 13871@@ -198,7 +198,7 @@ static unsigned long align_sigframe(unsi
14581 * Align the stack pointer according to the i386 ABI, 13872 * Align the stack pointer according to the i386 ABI,
14582 * i.e. so that on function entry ((sp + 4) & 15) == 0. 13873 * i.e. so that on function entry ((sp + 4) & 15) == 0.
@@ -14651,24 +13942,12 @@ diff -urNp linux-2.6.38.3/arch/x86/kernel/signal.c linux-2.6.38.3/arch/x86/kerne
14651 return; 13942 return;
14652 13943
14653 if (current_thread_info()->status & TS_RESTORE_SIGMASK) 13944 if (current_thread_info()->status & TS_RESTORE_SIGMASK)
14654diff -urNp linux-2.6.38.3/arch/x86/kernel/smpboot.c linux-2.6.38.3/arch/x86/kernel/smpboot.c 13945diff -urNp linux-2.6.38.2/arch/x86/kernel/smpboot.c linux-2.6.38.2/arch/x86/kernel/smpboot.c
14655--- linux-2.6.38.3/arch/x86/kernel/smpboot.c 2011-03-14 21:20:32.000000000 -0400 13946--- linux-2.6.38.2/arch/x86/kernel/smpboot.c 2011-03-14 21:20:32.000000000 -0400
14656+++ linux-2.6.38.3/arch/x86/kernel/smpboot.c 2011-04-17 15:57:32.000000000 -0400 13947+++ linux-2.6.38.2/arch/x86/kernel/smpboot.c 2011-03-21 18:31:35.000000000 -0400
14657@@ -773,17 +773,20 @@ static int __cpuinit do_boot_cpu(int api 13948@@ -783,7 +783,11 @@ do_rest:
14658 set_idle_for_cpu(cpu, c_idle.idle); 13949 (unsigned long)task_stack_page(c_idle.idle) -
14659 do_rest: 13950 KERNEL_STACK_OFFSET + THREAD_SIZE;
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;
14672 #endif 13951 #endif
14673+ 13952+
14674+ pax_open_kernel(); 13953+ pax_open_kernel();
@@ -14678,7 +13957,7 @@ diff -urNp linux-2.6.38.3/arch/x86/kernel/smpboot.c linux-2.6.38.3/arch/x86/kern
14678 initial_code = (unsigned long)start_secondary; 13957 initial_code = (unsigned long)start_secondary;
14679 stack_start = c_idle.idle->thread.sp; 13958 stack_start = c_idle.idle->thread.sp;
14680 13959
14681@@ -923,6 +926,12 @@ int __cpuinit native_cpu_up(unsigned int 13960@@ -923,6 +927,12 @@ int __cpuinit native_cpu_up(unsigned int
14682 13961
14683 per_cpu(cpu_state, cpu) = CPU_UP_PREPARE; 13962 per_cpu(cpu_state, cpu) = CPU_UP_PREPARE;
14684 13963
@@ -14691,9 +13970,9 @@ diff -urNp linux-2.6.38.3/arch/x86/kernel/smpboot.c linux-2.6.38.3/arch/x86/kern
14691 err = do_boot_cpu(apicid, cpu); 13970 err = do_boot_cpu(apicid, cpu);
14692 if (err) { 13971 if (err) {
14693 pr_debug("do_boot_cpu failed %d\n", err); 13972 pr_debug("do_boot_cpu failed %d\n", err);
14694diff -urNp linux-2.6.38.3/arch/x86/kernel/step.c linux-2.6.38.3/arch/x86/kernel/step.c 13973diff -urNp linux-2.6.38.2/arch/x86/kernel/step.c linux-2.6.38.2/arch/x86/kernel/step.c
14695--- linux-2.6.38.3/arch/x86/kernel/step.c 2011-03-14 21:20:32.000000000 -0400 13974--- linux-2.6.38.2/arch/x86/kernel/step.c 2011-03-14 21:20:32.000000000 -0400
14696+++ linux-2.6.38.3/arch/x86/kernel/step.c 2011-04-17 15:57:32.000000000 -0400 13975+++ linux-2.6.38.2/arch/x86/kernel/step.c 2011-03-21 18:31:35.000000000 -0400
14697@@ -27,10 +27,10 @@ unsigned long convert_ip_to_linear(struc 13976@@ -27,10 +27,10 @@ unsigned long convert_ip_to_linear(struc
14698 struct desc_struct *desc; 13977 struct desc_struct *desc;
14699 unsigned long base; 13978 unsigned long base;
@@ -14736,17 +14015,17 @@ diff -urNp linux-2.6.38.3/arch/x86/kernel/step.c linux-2.6.38.3/arch/x86/kernel/
14736 /* 32-bit mode: register increment */ 14015 /* 32-bit mode: register increment */
14737 return 0; 14016 return 0;
14738 /* 64-bit mode: REX prefix */ 14017 /* 64-bit mode: REX prefix */
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 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
14740--- linux-2.6.38.3/arch/x86/kernel/syscall_table_32.S 2011-03-14 21:20:32.000000000 -0400 14019--- linux-2.6.38.2/arch/x86/kernel/syscall_table_32.S 2011-03-14 21:20:32.000000000 -0400
14741+++ linux-2.6.38.3/arch/x86/kernel/syscall_table_32.S 2011-04-17 15:57:32.000000000 -0400 14020+++ linux-2.6.38.2/arch/x86/kernel/syscall_table_32.S 2011-03-21 18:31:35.000000000 -0400
14742@@ -1,3 +1,4 @@ 14021@@ -1,3 +1,4 @@
14743+.section .rodata,"a",@progbits 14022+.section .rodata,"a",@progbits
14744 ENTRY(sys_call_table) 14023 ENTRY(sys_call_table)
14745 .long sys_restart_syscall /* 0 - old "setup()" system call, used for restarting */ 14024 .long sys_restart_syscall /* 0 - old "setup()" system call, used for restarting */
14746 .long sys_exit 14025 .long sys_exit
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 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
14748--- linux-2.6.38.3/arch/x86/kernel/sys_i386_32.c 2011-03-14 21:20:32.000000000 -0400 14027--- linux-2.6.38.2/arch/x86/kernel/sys_i386_32.c 2011-03-14 21:20:32.000000000 -0400
14749+++ linux-2.6.38.3/arch/x86/kernel/sys_i386_32.c 2011-04-17 15:57:32.000000000 -0400 14028+++ linux-2.6.38.2/arch/x86/kernel/sys_i386_32.c 2011-03-21 23:47:41.000000000 -0400
14750@@ -24,17 +24,224 @@ 14029@@ -24,17 +24,224 @@
14751 14030
14752 #include <asm/syscalls.h> 14031 #include <asm/syscalls.h>
@@ -14984,9 +14263,9 @@ diff -urNp linux-2.6.38.3/arch/x86/kernel/sys_i386_32.c linux-2.6.38.3/arch/x86/
14984+ 14263+
14985+ return addr; 14264+ return addr;
14986 } 14265 }
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 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
14988--- linux-2.6.38.3/arch/x86/kernel/sys_x86_64.c 2011-03-14 21:20:32.000000000 -0400 14267--- linux-2.6.38.2/arch/x86/kernel/sys_x86_64.c 2011-03-14 21:20:32.000000000 -0400
14989+++ linux-2.6.38.3/arch/x86/kernel/sys_x86_64.c 2011-04-17 15:57:32.000000000 -0400 14268+++ linux-2.6.38.2/arch/x86/kernel/sys_x86_64.c 2011-03-21 23:47:41.000000000 -0400
14990@@ -32,8 +32,8 @@ out: 14269@@ -32,8 +32,8 @@ out:
14991 return error; 14270 return error;
14992 } 14271 }
@@ -15124,9 +14403,9 @@ diff -urNp linux-2.6.38.3/arch/x86/kernel/sys_x86_64.c linux-2.6.38.3/arch/x86/k
15124 mm->cached_hole_size = ~0UL; 14403 mm->cached_hole_size = ~0UL;
15125 14404
15126 return addr; 14405 return addr;
15127diff -urNp linux-2.6.38.3/arch/x86/kernel/time.c linux-2.6.38.3/arch/x86/kernel/time.c 14406diff -urNp linux-2.6.38.2/arch/x86/kernel/time.c linux-2.6.38.2/arch/x86/kernel/time.c
15128--- linux-2.6.38.3/arch/x86/kernel/time.c 2011-03-14 21:20:32.000000000 -0400 14407--- linux-2.6.38.2/arch/x86/kernel/time.c 2011-03-14 21:20:32.000000000 -0400
15129+++ linux-2.6.38.3/arch/x86/kernel/time.c 2011-04-17 15:57:32.000000000 -0400 14408+++ linux-2.6.38.2/arch/x86/kernel/time.c 2011-03-21 18:31:35.000000000 -0400
15130@@ -22,17 +22,13 @@ 14409@@ -22,17 +22,13 @@
15131 #include <asm/hpet.h> 14410 #include <asm/hpet.h>
15132 #include <asm/time.h> 14411 #include <asm/time.h>
@@ -15165,9 +14444,9 @@ diff -urNp linux-2.6.38.3/arch/x86/kernel/time.c linux-2.6.38.3/arch/x86/kernel/
15165 } 14444 }
15166 return pc; 14445 return pc;
15167 } 14446 }
15168diff -urNp linux-2.6.38.3/arch/x86/kernel/tls.c linux-2.6.38.3/arch/x86/kernel/tls.c 14447diff -urNp linux-2.6.38.2/arch/x86/kernel/tls.c linux-2.6.38.2/arch/x86/kernel/tls.c
15169--- linux-2.6.38.3/arch/x86/kernel/tls.c 2011-03-14 21:20:32.000000000 -0400 14448--- linux-2.6.38.2/arch/x86/kernel/tls.c 2011-03-14 21:20:32.000000000 -0400
15170+++ linux-2.6.38.3/arch/x86/kernel/tls.c 2011-04-17 15:57:32.000000000 -0400 14449+++ linux-2.6.38.2/arch/x86/kernel/tls.c 2011-03-21 18:31:35.000000000 -0400
15171@@ -85,6 +85,11 @@ int do_set_thread_area(struct task_struc 14450@@ -85,6 +85,11 @@ int do_set_thread_area(struct task_struc
15172 if (idx < GDT_ENTRY_TLS_MIN || idx > GDT_ENTRY_TLS_MAX) 14451 if (idx < GDT_ENTRY_TLS_MIN || idx > GDT_ENTRY_TLS_MAX)
15173 return -EINVAL; 14452 return -EINVAL;
@@ -15180,9 +14459,9 @@ diff -urNp linux-2.6.38.3/arch/x86/kernel/tls.c linux-2.6.38.3/arch/x86/kernel/t
15180 set_tls_desc(p, idx, &info, 1); 14459 set_tls_desc(p, idx, &info, 1);
15181 14460
15182 return 0; 14461 return 0;
15183diff -urNp linux-2.6.38.3/arch/x86/kernel/trampoline_32.S linux-2.6.38.3/arch/x86/kernel/trampoline_32.S 14462diff -urNp linux-2.6.38.2/arch/x86/kernel/trampoline_32.S linux-2.6.38.2/arch/x86/kernel/trampoline_32.S
15184--- linux-2.6.38.3/arch/x86/kernel/trampoline_32.S 2011-03-14 21:20:32.000000000 -0400 14463--- linux-2.6.38.2/arch/x86/kernel/trampoline_32.S 2011-03-14 21:20:32.000000000 -0400
15185+++ linux-2.6.38.3/arch/x86/kernel/trampoline_32.S 2011-04-17 15:57:32.000000000 -0400 14464+++ linux-2.6.38.2/arch/x86/kernel/trampoline_32.S 2011-03-21 18:31:35.000000000 -0400
15186@@ -32,6 +32,12 @@ 14465@@ -32,6 +32,12 @@
15187 #include <asm/segment.h> 14466 #include <asm/segment.h>
15188 #include <asm/page_types.h> 14467 #include <asm/page_types.h>
@@ -15205,9 +14484,9 @@ diff -urNp linux-2.6.38.3/arch/x86/kernel/trampoline_32.S linux-2.6.38.3/arch/x8
15205 14484
15206 # These need to be in the same 64K segment as the above; 14485 # These need to be in the same 64K segment as the above;
15207 # hence we don't use the boot_gdt_descr defined in head.S 14486 # hence we don't use the boot_gdt_descr defined in head.S
15208diff -urNp linux-2.6.38.3/arch/x86/kernel/trampoline_64.S linux-2.6.38.3/arch/x86/kernel/trampoline_64.S 14487diff -urNp linux-2.6.38.2/arch/x86/kernel/trampoline_64.S linux-2.6.38.2/arch/x86/kernel/trampoline_64.S
15209--- linux-2.6.38.3/arch/x86/kernel/trampoline_64.S 2011-03-14 21:20:32.000000000 -0400 14488--- linux-2.6.38.2/arch/x86/kernel/trampoline_64.S 2011-03-14 21:20:32.000000000 -0400
15210+++ linux-2.6.38.3/arch/x86/kernel/trampoline_64.S 2011-04-17 15:57:32.000000000 -0400 14489+++ linux-2.6.38.2/arch/x86/kernel/trampoline_64.S 2011-03-21 18:31:35.000000000 -0400
15211@@ -91,7 +91,7 @@ startup_32: 14490@@ -91,7 +91,7 @@ startup_32:
15212 movl $__KERNEL_DS, %eax # Initialize the %ds segment register 14491 movl $__KERNEL_DS, %eax # Initialize the %ds segment register
15213 movl %eax, %ds 14492 movl %eax, %ds
@@ -15226,9 +14505,9 @@ diff -urNp linux-2.6.38.3/arch/x86/kernel/trampoline_64.S linux-2.6.38.3/arch/x8
15226 .long tgdt - r_base 14505 .long tgdt - r_base
15227 .short 0 14506 .short 0
15228 .quad 0x00cf9b000000ffff # __KERNEL32_CS 14507 .quad 0x00cf9b000000ffff # __KERNEL32_CS
15229diff -urNp linux-2.6.38.3/arch/x86/kernel/traps.c linux-2.6.38.3/arch/x86/kernel/traps.c 14508diff -urNp linux-2.6.38.2/arch/x86/kernel/traps.c linux-2.6.38.2/arch/x86/kernel/traps.c
15230--- linux-2.6.38.3/arch/x86/kernel/traps.c 2011-03-14 21:20:32.000000000 -0400 14509--- linux-2.6.38.2/arch/x86/kernel/traps.c 2011-03-14 21:20:32.000000000 -0400
15231+++ linux-2.6.38.3/arch/x86/kernel/traps.c 2011-04-17 15:57:32.000000000 -0400 14510+++ linux-2.6.38.2/arch/x86/kernel/traps.c 2011-03-21 18:31:35.000000000 -0400
15232@@ -70,12 +70,6 @@ asmlinkage int system_call(void); 14511@@ -70,12 +70,6 @@ asmlinkage int system_call(void);
15233 14512
15234 /* Do we ignore FPU interrupts ? */ 14513 /* Do we ignore FPU interrupts ? */
@@ -15371,28 +14650,9 @@ diff -urNp linux-2.6.38.3/arch/x86/kernel/traps.c linux-2.6.38.3/arch/x86/kernel
15371 { 14650 {
15372 if (!fixup_exception(regs)) { 14651 if (!fixup_exception(regs)) {
15373 task->thread.error_code = error_code; 14652 task->thread.error_code = error_code;
15374@@ -723,7 +752,7 @@ asmlinkage void __attribute__((weak)) sm 14653diff -urNp linux-2.6.38.2/arch/x86/kernel/tsc.c linux-2.6.38.2/arch/x86/kernel/tsc.c
15375 void __math_state_restore(void) 14654--- linux-2.6.38.2/arch/x86/kernel/tsc.c 2011-03-14 21:20:32.000000000 -0400
15376 { 14655+++ linux-2.6.38.2/arch/x86/kernel/tsc.c 2011-03-21 18:31:35.000000000 -0400
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
15396@@ -837,7 +837,7 @@ static struct dmi_system_id __initdata b 14656@@ -837,7 +837,7 @@ static struct dmi_system_id __initdata b
15397 DMI_MATCH(DMI_BOARD_NAME, "2635FA0"), 14657 DMI_MATCH(DMI_BOARD_NAME, "2635FA0"),
15398 }, 14658 },
@@ -15402,9 +14662,9 @@ diff -urNp linux-2.6.38.3/arch/x86/kernel/tsc.c linux-2.6.38.3/arch/x86/kernel/t
15402 }; 14662 };
15403 14663
15404 static void __init check_system_tsc_reliable(void) 14664 static void __init check_system_tsc_reliable(void)
15405diff -urNp linux-2.6.38.3/arch/x86/kernel/vm86_32.c linux-2.6.38.3/arch/x86/kernel/vm86_32.c 14665diff -urNp linux-2.6.38.2/arch/x86/kernel/vm86_32.c linux-2.6.38.2/arch/x86/kernel/vm86_32.c
15406--- linux-2.6.38.3/arch/x86/kernel/vm86_32.c 2011-03-14 21:20:32.000000000 -0400 14666--- linux-2.6.38.2/arch/x86/kernel/vm86_32.c 2011-03-14 21:20:32.000000000 -0400
15407+++ linux-2.6.38.3/arch/x86/kernel/vm86_32.c 2011-04-17 15:57:32.000000000 -0400 14667+++ linux-2.6.38.2/arch/x86/kernel/vm86_32.c 2011-03-21 18:31:35.000000000 -0400
15408@@ -41,6 +41,7 @@ 14668@@ -41,6 +41,7 @@
15409 #include <linux/ptrace.h> 14669 #include <linux/ptrace.h>
15410 #include <linux/audit.h> 14670 #include <linux/audit.h>
@@ -15469,9 +14729,9 @@ diff -urNp linux-2.6.38.3/arch/x86/kernel/vm86_32.c linux-2.6.38.3/arch/x86/kern
15469 if (get_user(segoffs, intr_ptr)) 14729 if (get_user(segoffs, intr_ptr))
15470 goto cannot_handle; 14730 goto cannot_handle;
15471 if ((segoffs >> 16) == BIOSSEG) 14731 if ((segoffs >> 16) == BIOSSEG)
15472diff -urNp linux-2.6.38.3/arch/x86/kernel/vmlinux.lds.S linux-2.6.38.3/arch/x86/kernel/vmlinux.lds.S 14732diff -urNp linux-2.6.38.2/arch/x86/kernel/vmlinux.lds.S linux-2.6.38.2/arch/x86/kernel/vmlinux.lds.S
15473--- linux-2.6.38.3/arch/x86/kernel/vmlinux.lds.S 2011-03-14 21:20:32.000000000 -0400 14733--- linux-2.6.38.2/arch/x86/kernel/vmlinux.lds.S 2011-03-14 21:20:32.000000000 -0400
15474+++ linux-2.6.38.3/arch/x86/kernel/vmlinux.lds.S 2011-04-17 15:57:32.000000000 -0400 14734+++ linux-2.6.38.2/arch/x86/kernel/vmlinux.lds.S 2011-03-21 18:31:35.000000000 -0400
15475@@ -26,6 +26,13 @@ 14735@@ -26,6 +26,13 @@
15476 #include <asm/page_types.h> 14736 #include <asm/page_types.h>
15477 #include <asm/cache.h> 14737 #include <asm/cache.h>
@@ -15768,9 +15028,9 @@ diff -urNp linux-2.6.38.3/arch/x86/kernel/vmlinux.lds.S linux-2.6.38.3/arch/x86/
15768 "kernel image bigger than KERNEL_IMAGE_SIZE"); 15028 "kernel image bigger than KERNEL_IMAGE_SIZE");
15769 15029
15770 #ifdef CONFIG_SMP 15030 #ifdef CONFIG_SMP
15771diff -urNp linux-2.6.38.3/arch/x86/kernel/vsyscall_64.c linux-2.6.38.3/arch/x86/kernel/vsyscall_64.c 15031diff -urNp linux-2.6.38.2/arch/x86/kernel/vsyscall_64.c linux-2.6.38.2/arch/x86/kernel/vsyscall_64.c
15772--- linux-2.6.38.3/arch/x86/kernel/vsyscall_64.c 2011-03-14 21:20:32.000000000 -0400 15032--- linux-2.6.38.2/arch/x86/kernel/vsyscall_64.c 2011-03-14 21:20:32.000000000 -0400
15773+++ linux-2.6.38.3/arch/x86/kernel/vsyscall_64.c 2011-04-17 15:57:32.000000000 -0400 15033+++ linux-2.6.38.2/arch/x86/kernel/vsyscall_64.c 2011-03-21 18:31:35.000000000 -0400
15774@@ -80,6 +80,7 @@ void update_vsyscall(struct timespec *wa 15034@@ -80,6 +80,7 @@ void update_vsyscall(struct timespec *wa
15775 15035
15776 write_seqlock_irqsave(&vsyscall_gtod_data.lock, flags); 15036 write_seqlock_irqsave(&vsyscall_gtod_data.lock, flags);
@@ -15788,9 +15048,9 @@ diff -urNp linux-2.6.38.3/arch/x86/kernel/vsyscall_64.c linux-2.6.38.3/arch/x86/
15788 p = tcache->blob[1]; 15048 p = tcache->blob[1];
15789 } else if (__vgetcpu_mode == VGETCPU_RDTSCP) { 15049 } else if (__vgetcpu_mode == VGETCPU_RDTSCP) {
15790 /* Load per CPU data from RDTSCP */ 15050 /* Load per CPU data from RDTSCP */
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 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
15792--- linux-2.6.38.3/arch/x86/kernel/x8664_ksyms_64.c 2011-03-14 21:20:32.000000000 -0400 15052--- linux-2.6.38.2/arch/x86/kernel/x8664_ksyms_64.c 2011-03-14 21:20:32.000000000 -0400
15793+++ linux-2.6.38.3/arch/x86/kernel/x8664_ksyms_64.c 2011-04-17 15:57:32.000000000 -0400 15053+++ linux-2.6.38.2/arch/x86/kernel/x8664_ksyms_64.c 2011-03-21 18:31:35.000000000 -0400
15794@@ -29,8 +29,6 @@ EXPORT_SYMBOL(__put_user_8); 15054@@ -29,8 +29,6 @@ EXPORT_SYMBOL(__put_user_8);
15795 EXPORT_SYMBOL(copy_user_generic_string); 15055 EXPORT_SYMBOL(copy_user_generic_string);
15796 EXPORT_SYMBOL(copy_user_generic_unrolled); 15056 EXPORT_SYMBOL(copy_user_generic_unrolled);
@@ -15800,9 +15060,9 @@ diff -urNp linux-2.6.38.3/arch/x86/kernel/x8664_ksyms_64.c linux-2.6.38.3/arch/x
15800 15060
15801 EXPORT_SYMBOL(copy_page); 15061 EXPORT_SYMBOL(copy_page);
15802 EXPORT_SYMBOL(clear_page); 15062 EXPORT_SYMBOL(clear_page);
15803diff -urNp linux-2.6.38.3/arch/x86/kernel/xsave.c linux-2.6.38.3/arch/x86/kernel/xsave.c 15063diff -urNp linux-2.6.38.2/arch/x86/kernel/xsave.c linux-2.6.38.2/arch/x86/kernel/xsave.c
15804--- linux-2.6.38.3/arch/x86/kernel/xsave.c 2011-03-14 21:20:32.000000000 -0400 15064--- linux-2.6.38.2/arch/x86/kernel/xsave.c 2011-03-14 21:20:32.000000000 -0400
15805+++ linux-2.6.38.3/arch/x86/kernel/xsave.c 2011-04-17 15:57:32.000000000 -0400 15065+++ linux-2.6.38.2/arch/x86/kernel/xsave.c 2011-03-21 18:31:35.000000000 -0400
15806@@ -130,7 +130,7 @@ int check_for_xstate(struct i387_fxsave_ 15066@@ -130,7 +130,7 @@ int check_for_xstate(struct i387_fxsave_
15807 fx_sw_user->xstate_size > fx_sw_user->extended_size) 15067 fx_sw_user->xstate_size > fx_sw_user->extended_size)
15808 return -EINVAL; 15068 return -EINVAL;
@@ -15830,9 +15090,9 @@ diff -urNp linux-2.6.38.3/arch/x86/kernel/xsave.c linux-2.6.38.3/arch/x86/kernel
15830 buf); 15090 buf);
15831 if (unlikely(err)) { 15091 if (unlikely(err)) {
15832 /* 15092 /*
15833diff -urNp linux-2.6.38.3/arch/x86/kvm/emulate.c linux-2.6.38.3/arch/x86/kvm/emulate.c 15093diff -urNp linux-2.6.38.2/arch/x86/kvm/emulate.c linux-2.6.38.2/arch/x86/kvm/emulate.c
15834--- linux-2.6.38.3/arch/x86/kvm/emulate.c 2011-03-14 21:20:32.000000000 -0400 15094--- linux-2.6.38.2/arch/x86/kvm/emulate.c 2011-03-14 21:20:32.000000000 -0400
15835+++ linux-2.6.38.3/arch/x86/kvm/emulate.c 2011-04-17 15:57:32.000000000 -0400 15095+++ linux-2.6.38.2/arch/x86/kvm/emulate.c 2011-03-21 18:31:35.000000000 -0400
15836@@ -88,7 +88,7 @@ 15096@@ -88,7 +88,7 @@
15837 #define Src2ImmByte (2<<29) 15097 #define Src2ImmByte (2<<29)
15838 #define Src2One (3<<29) 15098 #define Src2One (3<<29)
@@ -15867,9 +15127,9 @@ diff -urNp linux-2.6.38.3/arch/x86/kvm/emulate.c linux-2.6.38.3/arch/x86/kvm/emu
15867 switch ((_dst).bytes) { \ 15127 switch ((_dst).bytes) { \
15868 case 1: \ 15128 case 1: \
15869 ____emulate_2op(_op,_src,_dst,_eflags,_bx,_by,"b",u8); \ 15129 ____emulate_2op(_op,_src,_dst,_eflags,_bx,_by,"b",u8); \
15870diff -urNp linux-2.6.38.3/arch/x86/kvm/lapic.c linux-2.6.38.3/arch/x86/kvm/lapic.c 15130diff -urNp linux-2.6.38.2/arch/x86/kvm/lapic.c linux-2.6.38.2/arch/x86/kvm/lapic.c
15871--- linux-2.6.38.3/arch/x86/kvm/lapic.c 2011-03-14 21:20:32.000000000 -0400 15131--- linux-2.6.38.2/arch/x86/kvm/lapic.c 2011-03-14 21:20:32.000000000 -0400
15872+++ linux-2.6.38.3/arch/x86/kvm/lapic.c 2011-04-17 15:57:32.000000000 -0400 15132+++ linux-2.6.38.2/arch/x86/kvm/lapic.c 2011-03-21 18:31:35.000000000 -0400
15873@@ -53,7 +53,7 @@ 15133@@ -53,7 +53,7 @@
15874 #define APIC_BUS_CYCLE_NS 1 15134 #define APIC_BUS_CYCLE_NS 1
15875 15135
@@ -15879,9 +15139,9 @@ diff -urNp linux-2.6.38.3/arch/x86/kvm/lapic.c linux-2.6.38.3/arch/x86/kvm/lapic
15879 15139
15880 #define APIC_LVT_NUM 6 15140 #define APIC_LVT_NUM 6
15881 /* 14 is the version for Xeon and Pentium 8.4.8*/ 15141 /* 14 is the version for Xeon and Pentium 8.4.8*/
15882diff -urNp linux-2.6.38.3/arch/x86/kvm/svm.c linux-2.6.38.3/arch/x86/kvm/svm.c 15142diff -urNp linux-2.6.38.2/arch/x86/kvm/svm.c linux-2.6.38.2/arch/x86/kvm/svm.c
15883--- linux-2.6.38.3/arch/x86/kvm/svm.c 2011-03-14 21:20:32.000000000 -0400 15143--- linux-2.6.38.2/arch/x86/kvm/svm.c 2011-03-14 21:20:32.000000000 -0400
15884+++ linux-2.6.38.3/arch/x86/kvm/svm.c 2011-04-17 15:57:32.000000000 -0400 15144+++ linux-2.6.38.2/arch/x86/kvm/svm.c 2011-03-21 18:31:35.000000000 -0400
15885@@ -3273,7 +3273,11 @@ static void reload_tss(struct kvm_vcpu * 15145@@ -3273,7 +3273,11 @@ static void reload_tss(struct kvm_vcpu *
15886 int cpu = raw_smp_processor_id(); 15146 int cpu = raw_smp_processor_id();
15887 15147
@@ -15903,9 +15163,9 @@ diff -urNp linux-2.6.38.3/arch/x86/kvm/svm.c linux-2.6.38.3/arch/x86/kvm/svm.c
15903 .cpu_has_kvm_support = has_svm, 15163 .cpu_has_kvm_support = has_svm,
15904 .disabled_by_bios = is_disabled, 15164 .disabled_by_bios = is_disabled,
15905 .hardware_setup = svm_hardware_setup, 15165 .hardware_setup = svm_hardware_setup,
15906diff -urNp linux-2.6.38.3/arch/x86/kvm/vmx.c linux-2.6.38.3/arch/x86/kvm/vmx.c 15166diff -urNp linux-2.6.38.2/arch/x86/kvm/vmx.c linux-2.6.38.2/arch/x86/kvm/vmx.c
15907--- linux-2.6.38.3/arch/x86/kvm/vmx.c 2011-03-14 21:20:32.000000000 -0400 15167--- linux-2.6.38.2/arch/x86/kvm/vmx.c 2011-03-14 21:20:32.000000000 -0400
15908+++ linux-2.6.38.3/arch/x86/kvm/vmx.c 2011-04-17 15:57:32.000000000 -0400 15168+++ linux-2.6.38.2/arch/x86/kvm/vmx.c 2011-03-21 18:31:35.000000000 -0400
15909@@ -725,7 +725,11 @@ static void reload_tss(void) 15169@@ -725,7 +725,11 @@ static void reload_tss(void)
15910 struct desc_struct *descs; 15170 struct desc_struct *descs;
15911 15171
@@ -15984,9 +15244,9 @@ diff -urNp linux-2.6.38.3/arch/x86/kvm/vmx.c linux-2.6.38.3/arch/x86/kvm/vmx.c
15984 .cpu_has_kvm_support = cpu_has_kvm_support, 15244 .cpu_has_kvm_support = cpu_has_kvm_support,
15985 .disabled_by_bios = vmx_disabled_by_bios, 15245 .disabled_by_bios = vmx_disabled_by_bios,
15986 .hardware_setup = hardware_setup, 15246 .hardware_setup = hardware_setup,
15987diff -urNp linux-2.6.38.3/arch/x86/kvm/x86.c linux-2.6.38.3/arch/x86/kvm/x86.c 15247diff -urNp linux-2.6.38.2/arch/x86/kvm/x86.c linux-2.6.38.2/arch/x86/kvm/x86.c
15988--- linux-2.6.38.3/arch/x86/kvm/x86.c 2011-03-14 21:20:32.000000000 -0400 15248--- linux-2.6.38.2/arch/x86/kvm/x86.c 2011-03-14 21:20:32.000000000 -0400
15989+++ linux-2.6.38.3/arch/x86/kvm/x86.c 2011-04-17 15:57:32.000000000 -0400 15249+++ linux-2.6.38.2/arch/x86/kvm/x86.c 2011-03-21 18:31:35.000000000 -0400
15990@@ -93,7 +93,7 @@ static void update_cr8_intercept(struct 15250@@ -93,7 +93,7 @@ static void update_cr8_intercept(struct
15991 static int kvm_dev_ioctl_get_supported_cpuid(struct kvm_cpuid2 *cpuid, 15251 static int kvm_dev_ioctl_get_supported_cpuid(struct kvm_cpuid2 *cpuid,
15992 struct kvm_cpuid_entry2 __user *entries); 15252 struct kvm_cpuid_entry2 __user *entries);
@@ -16098,9 +15358,9 @@ diff -urNp linux-2.6.38.3/arch/x86/kvm/x86.c linux-2.6.38.3/arch/x86/kvm/x86.c
16098 15358
16099 if (kvm_x86_ops) { 15359 if (kvm_x86_ops) {
16100 printk(KERN_ERR "kvm: already loaded the other module\n"); 15360 printk(KERN_ERR "kvm: already loaded the other module\n");
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 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
16102--- linux-2.6.38.3/arch/x86/lib/atomic64_cx8_32.S 2011-03-14 21:20:32.000000000 -0400 15362--- linux-2.6.38.2/arch/x86/lib/atomic64_cx8_32.S 2011-03-14 21:20:32.000000000 -0400
16103+++ linux-2.6.38.3/arch/x86/lib/atomic64_cx8_32.S 2011-04-17 15:57:32.000000000 -0400 15363+++ linux-2.6.38.2/arch/x86/lib/atomic64_cx8_32.S 2011-03-21 18:31:35.000000000 -0400
16104@@ -86,13 +86,23 @@ ENTRY(atomic64_\func\()_return_cx8) 15364@@ -86,13 +86,23 @@ ENTRY(atomic64_\func\()_return_cx8)
16105 movl %edx, %ecx 15365 movl %edx, %ecx
16106 \ins\()l %esi, %ebx 15366 \ins\()l %esi, %ebx
@@ -16181,9 +15441,9 @@ diff -urNp linux-2.6.38.3/arch/x86/lib/atomic64_cx8_32.S linux-2.6.38.3/arch/x86
16181 LOCK_PREFIX 15441 LOCK_PREFIX
16182 cmpxchg8b (%esi) 15442 cmpxchg8b (%esi)
16183 jne 1b 15443 jne 1b
16184diff -urNp linux-2.6.38.3/arch/x86/lib/checksum_32.S linux-2.6.38.3/arch/x86/lib/checksum_32.S 15444diff -urNp linux-2.6.38.2/arch/x86/lib/checksum_32.S linux-2.6.38.2/arch/x86/lib/checksum_32.S
16185--- linux-2.6.38.3/arch/x86/lib/checksum_32.S 2011-03-14 21:20:32.000000000 -0400 15445--- linux-2.6.38.2/arch/x86/lib/checksum_32.S 2011-03-14 21:20:32.000000000 -0400
16186+++ linux-2.6.38.3/arch/x86/lib/checksum_32.S 2011-04-17 15:57:32.000000000 -0400 15446+++ linux-2.6.38.2/arch/x86/lib/checksum_32.S 2011-03-21 18:31:35.000000000 -0400
16187@@ -28,7 +28,8 @@ 15447@@ -28,7 +28,8 @@
16188 #include <linux/linkage.h> 15448 #include <linux/linkage.h>
16189 #include <asm/dwarf2.h> 15449 #include <asm/dwarf2.h>
@@ -16444,9 +15704,9 @@ diff -urNp linux-2.6.38.3/arch/x86/lib/checksum_32.S linux-2.6.38.3/arch/x86/lib
16444 15704
16445 #undef ROUND 15705 #undef ROUND
16446 #undef ROUND1 15706 #undef ROUND1
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 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
16448--- linux-2.6.38.3/arch/x86/lib/clear_page_64.S 2011-03-14 21:20:32.000000000 -0400 15708--- linux-2.6.38.2/arch/x86/lib/clear_page_64.S 2011-03-14 21:20:32.000000000 -0400
16449+++ linux-2.6.38.3/arch/x86/lib/clear_page_64.S 2011-04-17 15:57:32.000000000 -0400 15709+++ linux-2.6.38.2/arch/x86/lib/clear_page_64.S 2011-03-21 18:31:35.000000000 -0400
16450@@ -43,7 +43,7 @@ ENDPROC(clear_page) 15710@@ -43,7 +43,7 @@ ENDPROC(clear_page)
16451 15711
16452 #include <asm/cpufeature.h> 15712 #include <asm/cpufeature.h>
@@ -16456,9 +15716,9 @@ diff -urNp linux-2.6.38.3/arch/x86/lib/clear_page_64.S linux-2.6.38.3/arch/x86/l
16456 1: .byte 0xeb /* jmp <disp8> */ 15716 1: .byte 0xeb /* jmp <disp8> */
16457 .byte (clear_page_c - clear_page) - (2f - 1b) /* offset */ 15717 .byte (clear_page_c - clear_page) - (2f - 1b) /* offset */
16458 2: 15718 2:
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 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
16460--- linux-2.6.38.3/arch/x86/lib/copy_page_64.S 2011-03-14 21:20:32.000000000 -0400 15720--- linux-2.6.38.2/arch/x86/lib/copy_page_64.S 2011-03-14 21:20:32.000000000 -0400
16461+++ linux-2.6.38.3/arch/x86/lib/copy_page_64.S 2011-04-17 15:57:32.000000000 -0400 15721+++ linux-2.6.38.2/arch/x86/lib/copy_page_64.S 2011-03-21 18:31:35.000000000 -0400
16462@@ -104,7 +104,7 @@ ENDPROC(copy_page) 15722@@ -104,7 +104,7 @@ ENDPROC(copy_page)
16463 15723
16464 #include <asm/cpufeature.h> 15724 #include <asm/cpufeature.h>
@@ -16468,9 +15728,9 @@ diff -urNp linux-2.6.38.3/arch/x86/lib/copy_page_64.S linux-2.6.38.3/arch/x86/li
16468 1: .byte 0xeb /* jmp <disp8> */ 15728 1: .byte 0xeb /* jmp <disp8> */
16469 .byte (copy_page_c - copy_page) - (2f - 1b) /* offset */ 15729 .byte (copy_page_c - copy_page) - (2f - 1b) /* offset */
16470 2: 15730 2:
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 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
16472--- linux-2.6.38.3/arch/x86/lib/copy_user_64.S 2011-03-14 21:20:32.000000000 -0400 15732--- linux-2.6.38.2/arch/x86/lib/copy_user_64.S 2011-03-14 21:20:32.000000000 -0400
16473+++ linux-2.6.38.3/arch/x86/lib/copy_user_64.S 2011-04-17 15:57:32.000000000 -0400 15733+++ linux-2.6.38.2/arch/x86/lib/copy_user_64.S 2011-03-21 18:31:35.000000000 -0400
16474@@ -15,13 +15,14 @@ 15734@@ -15,13 +15,14 @@
16475 #include <asm/asm-offsets.h> 15735 #include <asm/asm-offsets.h>
16476 #include <asm/thread_info.h> 15736 #include <asm/thread_info.h>
@@ -16527,9 +15787,9 @@ diff -urNp linux-2.6.38.3/arch/x86/lib/copy_user_64.S linux-2.6.38.3/arch/x86/li
16527 movl %edx,%ecx 15787 movl %edx,%ecx
16528 xorl %eax,%eax 15788 xorl %eax,%eax
16529 rep 15789 rep
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 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
16531--- linux-2.6.38.3/arch/x86/lib/copy_user_nocache_64.S 2011-03-14 21:20:32.000000000 -0400 15791--- linux-2.6.38.2/arch/x86/lib/copy_user_nocache_64.S 2011-03-14 21:20:32.000000000 -0400
16532+++ linux-2.6.38.3/arch/x86/lib/copy_user_nocache_64.S 2011-04-17 15:57:32.000000000 -0400 15792+++ linux-2.6.38.2/arch/x86/lib/copy_user_nocache_64.S 2011-03-21 18:31:35.000000000 -0400
16533@@ -14,6 +14,7 @@ 15793@@ -14,6 +14,7 @@
16534 #include <asm/current.h> 15794 #include <asm/current.h>
16535 #include <asm/asm-offsets.h> 15795 #include <asm/asm-offsets.h>
@@ -16554,9 +15814,9 @@ diff -urNp linux-2.6.38.3/arch/x86/lib/copy_user_nocache_64.S linux-2.6.38.3/arc
16554 cmpl $8,%edx 15814 cmpl $8,%edx
16555 jb 20f /* less then 8 bytes, go to byte copy loop */ 15815 jb 20f /* less then 8 bytes, go to byte copy loop */
16556 ALIGN_DESTINATION 15816 ALIGN_DESTINATION
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 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
16558--- linux-2.6.38.3/arch/x86/lib/csum-wrappers_64.c 2011-03-14 21:20:32.000000000 -0400 15818--- linux-2.6.38.2/arch/x86/lib/csum-wrappers_64.c 2011-03-14 21:20:32.000000000 -0400
16559+++ linux-2.6.38.3/arch/x86/lib/csum-wrappers_64.c 2011-04-17 15:57:32.000000000 -0400 15819+++ linux-2.6.38.2/arch/x86/lib/csum-wrappers_64.c 2011-03-21 18:31:35.000000000 -0400
16560@@ -52,6 +52,8 @@ csum_partial_copy_from_user(const void _ 15820@@ -52,6 +52,8 @@ csum_partial_copy_from_user(const void _
16561 len -= 2; 15821 len -= 2;
16562 } 15822 }
@@ -16575,9 +15835,9 @@ diff -urNp linux-2.6.38.3/arch/x86/lib/csum-wrappers_64.c linux-2.6.38.3/arch/x8
16575 return csum_partial_copy_generic(src, (void __force *)dst, 15835 return csum_partial_copy_generic(src, (void __force *)dst,
16576 len, isum, NULL, errp); 15836 len, isum, NULL, errp);
16577 } 15837 }
16578diff -urNp linux-2.6.38.3/arch/x86/lib/getuser.S linux-2.6.38.3/arch/x86/lib/getuser.S 15838diff -urNp linux-2.6.38.2/arch/x86/lib/getuser.S linux-2.6.38.2/arch/x86/lib/getuser.S
16579--- linux-2.6.38.3/arch/x86/lib/getuser.S 2011-03-14 21:20:32.000000000 -0400 15839--- linux-2.6.38.2/arch/x86/lib/getuser.S 2011-03-14 21:20:32.000000000 -0400
16580+++ linux-2.6.38.3/arch/x86/lib/getuser.S 2011-04-17 15:57:32.000000000 -0400 15840+++ linux-2.6.38.2/arch/x86/lib/getuser.S 2011-03-21 18:31:35.000000000 -0400
16581@@ -33,14 +33,35 @@ 15841@@ -33,14 +33,35 @@
16582 #include <asm/asm-offsets.h> 15842 #include <asm/asm-offsets.h>
16583 #include <asm/thread_info.h> 15843 #include <asm/thread_info.h>
@@ -16683,9 +15943,9 @@ diff -urNp linux-2.6.38.3/arch/x86/lib/getuser.S linux-2.6.38.3/arch/x86/lib/get
16683 4: movq -7(%_ASM_AX),%_ASM_DX 15943 4: movq -7(%_ASM_AX),%_ASM_DX
16684 xor %eax,%eax 15944 xor %eax,%eax
16685 ret 15945 ret
16686diff -urNp linux-2.6.38.3/arch/x86/lib/insn.c linux-2.6.38.3/arch/x86/lib/insn.c 15946diff -urNp linux-2.6.38.2/arch/x86/lib/insn.c linux-2.6.38.2/arch/x86/lib/insn.c
16687--- linux-2.6.38.3/arch/x86/lib/insn.c 2011-03-14 21:20:32.000000000 -0400 15947--- linux-2.6.38.2/arch/x86/lib/insn.c 2011-03-14 21:20:32.000000000 -0400
16688+++ linux-2.6.38.3/arch/x86/lib/insn.c 2011-04-17 15:57:32.000000000 -0400 15948+++ linux-2.6.38.2/arch/x86/lib/insn.c 2011-03-21 18:31:35.000000000 -0400
16689@@ -21,6 +21,11 @@ 15949@@ -21,6 +21,11 @@
16690 #include <linux/string.h> 15950 #include <linux/string.h>
16691 #include <asm/inat.h> 15951 #include <asm/inat.h>
@@ -16709,9 +15969,9 @@ diff -urNp linux-2.6.38.3/arch/x86/lib/insn.c linux-2.6.38.3/arch/x86/lib/insn.c
16709 insn->x86_64 = x86_64 ? 1 : 0; 15969 insn->x86_64 = x86_64 ? 1 : 0;
16710 insn->opnd_bytes = 4; 15970 insn->opnd_bytes = 4;
16711 if (x86_64) 15971 if (x86_64)
16712diff -urNp linux-2.6.38.3/arch/x86/lib/mmx_32.c linux-2.6.38.3/arch/x86/lib/mmx_32.c 15972diff -urNp linux-2.6.38.2/arch/x86/lib/mmx_32.c linux-2.6.38.2/arch/x86/lib/mmx_32.c
16713--- linux-2.6.38.3/arch/x86/lib/mmx_32.c 2011-03-14 21:20:32.000000000 -0400 15973--- linux-2.6.38.2/arch/x86/lib/mmx_32.c 2011-03-14 21:20:32.000000000 -0400
16714+++ linux-2.6.38.3/arch/x86/lib/mmx_32.c 2011-04-17 15:57:32.000000000 -0400 15974+++ linux-2.6.38.2/arch/x86/lib/mmx_32.c 2011-03-21 18:31:35.000000000 -0400
16715@@ -29,6 +29,7 @@ void *_mmx_memcpy(void *to, const void * 15975@@ -29,6 +29,7 @@ void *_mmx_memcpy(void *to, const void *
16716 { 15976 {
16717 void *p; 15977 void *p;
@@ -17027,9 +16287,9 @@ diff -urNp linux-2.6.38.3/arch/x86/lib/mmx_32.c linux-2.6.38.3/arch/x86/lib/mmx_
17027 16287
17028 from += 64; 16288 from += 64;
17029 to += 64; 16289 to += 64;
17030diff -urNp linux-2.6.38.3/arch/x86/lib/putuser.S linux-2.6.38.3/arch/x86/lib/putuser.S 16290diff -urNp linux-2.6.38.2/arch/x86/lib/putuser.S linux-2.6.38.2/arch/x86/lib/putuser.S
17031--- linux-2.6.38.3/arch/x86/lib/putuser.S 2011-03-14 21:20:32.000000000 -0400 16291--- linux-2.6.38.2/arch/x86/lib/putuser.S 2011-03-14 21:20:32.000000000 -0400
17032+++ linux-2.6.38.3/arch/x86/lib/putuser.S 2011-04-17 15:57:32.000000000 -0400 16292+++ linux-2.6.38.2/arch/x86/lib/putuser.S 2011-03-21 18:31:35.000000000 -0400
17033@@ -15,7 +15,8 @@ 16293@@ -15,7 +15,8 @@
17034 #include <asm/thread_info.h> 16294 #include <asm/thread_info.h>
17035 #include <asm/errno.h> 16295 #include <asm/errno.h>
@@ -17167,9 +16427,9 @@ diff -urNp linux-2.6.38.3/arch/x86/lib/putuser.S linux-2.6.38.3/arch/x86/lib/put
17167 #endif 16427 #endif
17168 xor %eax,%eax 16428 xor %eax,%eax
17169 EXIT 16429 EXIT
17170diff -urNp linux-2.6.38.3/arch/x86/lib/usercopy_32.c linux-2.6.38.3/arch/x86/lib/usercopy_32.c 16430diff -urNp linux-2.6.38.2/arch/x86/lib/usercopy_32.c linux-2.6.38.2/arch/x86/lib/usercopy_32.c
17171--- linux-2.6.38.3/arch/x86/lib/usercopy_32.c 2011-03-14 21:20:32.000000000 -0400 16431--- linux-2.6.38.2/arch/x86/lib/usercopy_32.c 2011-03-14 21:20:32.000000000 -0400
17172+++ linux-2.6.38.3/arch/x86/lib/usercopy_32.c 2011-04-17 15:57:32.000000000 -0400 16432+++ linux-2.6.38.2/arch/x86/lib/usercopy_32.c 2011-03-21 18:31:35.000000000 -0400
17173@@ -43,7 +43,7 @@ do { \ 16433@@ -43,7 +43,7 @@ do { \
17174 __asm__ __volatile__( \ 16434 __asm__ __volatile__( \
17175 " testl %1,%1\n" \ 16435 " testl %1,%1\n" \
@@ -17789,9 +17049,9 @@ diff -urNp linux-2.6.38.3/arch/x86/lib/usercopy_32.c linux-2.6.38.3/arch/x86/lib
17789+} 17049+}
17790+EXPORT_SYMBOL(set_fs); 17050+EXPORT_SYMBOL(set_fs);
17791+#endif 17051+#endif
17792diff -urNp linux-2.6.38.3/arch/x86/lib/usercopy_64.c linux-2.6.38.3/arch/x86/lib/usercopy_64.c 17052diff -urNp linux-2.6.38.2/arch/x86/lib/usercopy_64.c linux-2.6.38.2/arch/x86/lib/usercopy_64.c
17793--- linux-2.6.38.3/arch/x86/lib/usercopy_64.c 2011-03-14 21:20:32.000000000 -0400 17053--- linux-2.6.38.2/arch/x86/lib/usercopy_64.c 2011-03-14 21:20:32.000000000 -0400
17794+++ linux-2.6.38.3/arch/x86/lib/usercopy_64.c 2011-04-17 15:57:32.000000000 -0400 17054+++ linux-2.6.38.2/arch/x86/lib/usercopy_64.c 2011-03-21 18:31:35.000000000 -0400
17795@@ -42,6 +42,8 @@ long 17055@@ -42,6 +42,8 @@ long
17796 __strncpy_from_user(char *dst, const char __user *src, long count) 17056 __strncpy_from_user(char *dst, const char __user *src, long count)
17797 { 17057 {
@@ -17828,9 +17088,9 @@ diff -urNp linux-2.6.38.3/arch/x86/lib/usercopy_64.c linux-2.6.38.3/arch/x86/lib
17828 } 17088 }
17829 EXPORT_SYMBOL(copy_in_user); 17089 EXPORT_SYMBOL(copy_in_user);
17830 17090
17831diff -urNp linux-2.6.38.3/arch/x86/Makefile linux-2.6.38.3/arch/x86/Makefile 17091diff -urNp linux-2.6.38.2/arch/x86/Makefile linux-2.6.38.2/arch/x86/Makefile
17832--- linux-2.6.38.3/arch/x86/Makefile 2011-03-14 21:20:32.000000000 -0400 17092--- linux-2.6.38.2/arch/x86/Makefile 2011-03-14 21:20:32.000000000 -0400
17833+++ linux-2.6.38.3/arch/x86/Makefile 2011-04-17 15:57:32.000000000 -0400 17093+++ linux-2.6.38.2/arch/x86/Makefile 2011-03-21 18:31:35.000000000 -0400
17834@@ -195,3 +195,12 @@ define archhelp 17094@@ -195,3 +195,12 @@ define archhelp
17835 echo ' FDARGS="..." arguments for the booted kernel' 17095 echo ' FDARGS="..." arguments for the booted kernel'
17836 echo ' FDINITRD=file initrd for the booted kernel' 17096 echo ' FDINITRD=file initrd for the booted kernel'
@@ -17844,9 +17104,9 @@ diff -urNp linux-2.6.38.3/arch/x86/Makefile linux-2.6.38.3/arch/x86/Makefile
17844+ 17104+
17845+archprepare: 17105+archprepare:
17846+ $(if $(LDFLAGS_BUILD_ID),,$(error $(OLD_LD))) 17106+ $(if $(LDFLAGS_BUILD_ID),,$(error $(OLD_LD)))
17847diff -urNp linux-2.6.38.3/arch/x86/mm/extable.c linux-2.6.38.3/arch/x86/mm/extable.c 17107diff -urNp linux-2.6.38.2/arch/x86/mm/extable.c linux-2.6.38.2/arch/x86/mm/extable.c
17848--- linux-2.6.38.3/arch/x86/mm/extable.c 2011-03-14 21:20:32.000000000 -0400 17108--- linux-2.6.38.2/arch/x86/mm/extable.c 2011-03-14 21:20:32.000000000 -0400
17849+++ linux-2.6.38.3/arch/x86/mm/extable.c 2011-04-17 15:57:32.000000000 -0400 17109+++ linux-2.6.38.2/arch/x86/mm/extable.c 2011-03-21 18:31:35.000000000 -0400
17850@@ -1,14 +1,71 @@ 17110@@ -1,14 +1,71 @@
17851 #include <linux/module.h> 17111 #include <linux/module.h>
17852 #include <linux/spinlock.h> 17112 #include <linux/spinlock.h>
@@ -17920,9 +17180,9 @@ diff -urNp linux-2.6.38.3/arch/x86/mm/extable.c linux-2.6.38.3/arch/x86/mm/extab
17920 extern u32 pnp_bios_fault_eip, pnp_bios_fault_esp; 17180 extern u32 pnp_bios_fault_eip, pnp_bios_fault_esp;
17921 extern u32 pnp_bios_is_utter_crap; 17181 extern u32 pnp_bios_is_utter_crap;
17922 pnp_bios_is_utter_crap = 1; 17182 pnp_bios_is_utter_crap = 1;
17923diff -urNp linux-2.6.38.3/arch/x86/mm/fault.c linux-2.6.38.3/arch/x86/mm/fault.c 17183diff -urNp linux-2.6.38.2/arch/x86/mm/fault.c linux-2.6.38.2/arch/x86/mm/fault.c
17924--- linux-2.6.38.3/arch/x86/mm/fault.c 2011-03-14 21:20:32.000000000 -0400 17184--- linux-2.6.38.2/arch/x86/mm/fault.c 2011-03-14 21:20:32.000000000 -0400
17925+++ linux-2.6.38.3/arch/x86/mm/fault.c 2011-04-17 15:57:32.000000000 -0400 17185+++ linux-2.6.38.2/arch/x86/mm/fault.c 2011-03-21 23:48:53.000000000 -0400
17926@@ -12,10 +12,18 @@ 17186@@ -12,10 +12,18 @@
17927 #include <linux/mmiotrace.h> /* kmmio_handler, ... */ 17187 #include <linux/mmiotrace.h> /* kmmio_handler, ... */
17928 #include <linux/perf_event.h> /* perf_sw_event */ 17188 #include <linux/perf_event.h> /* perf_sw_event */
@@ -18592,9 +17852,9 @@ diff -urNp linux-2.6.38.3/arch/x86/mm/fault.c linux-2.6.38.3/arch/x86/mm/fault.c
18592+ 17852+
18593+ return ret ? -EFAULT : 0; 17853+ return ret ? -EFAULT : 0;
18594+} 17854+}
18595diff -urNp linux-2.6.38.3/arch/x86/mm/gup.c linux-2.6.38.3/arch/x86/mm/gup.c 17855diff -urNp linux-2.6.38.2/arch/x86/mm/gup.c linux-2.6.38.2/arch/x86/mm/gup.c
18596--- linux-2.6.38.3/arch/x86/mm/gup.c 2011-03-14 21:20:32.000000000 -0400 17856--- linux-2.6.38.2/arch/x86/mm/gup.c 2011-03-14 21:20:32.000000000 -0400
18597+++ linux-2.6.38.3/arch/x86/mm/gup.c 2011-04-17 15:57:32.000000000 -0400 17857+++ linux-2.6.38.2/arch/x86/mm/gup.c 2011-03-21 18:31:35.000000000 -0400
18598@@ -263,7 +263,7 @@ int __get_user_pages_fast(unsigned long 17858@@ -263,7 +263,7 @@ int __get_user_pages_fast(unsigned long
18599 addr = start; 17859 addr = start;
18600 len = (unsigned long) nr_pages << PAGE_SHIFT; 17860 len = (unsigned long) nr_pages << PAGE_SHIFT;
@@ -18604,9 +17864,9 @@ diff -urNp linux-2.6.38.3/arch/x86/mm/gup.c linux-2.6.38.3/arch/x86/mm/gup.c
18604 (void __user *)start, len))) 17864 (void __user *)start, len)))
18605 return 0; 17865 return 0;
18606 17866
18607diff -urNp linux-2.6.38.3/arch/x86/mm/highmem_32.c linux-2.6.38.3/arch/x86/mm/highmem_32.c 17867diff -urNp linux-2.6.38.2/arch/x86/mm/highmem_32.c linux-2.6.38.2/arch/x86/mm/highmem_32.c
18608--- linux-2.6.38.3/arch/x86/mm/highmem_32.c 2011-03-14 21:20:32.000000000 -0400 17868--- linux-2.6.38.2/arch/x86/mm/highmem_32.c 2011-03-14 21:20:32.000000000 -0400
18609+++ linux-2.6.38.3/arch/x86/mm/highmem_32.c 2011-04-17 15:57:32.000000000 -0400 17869+++ linux-2.6.38.2/arch/x86/mm/highmem_32.c 2011-03-21 18:31:35.000000000 -0400
18610@@ -44,7 +44,10 @@ void *kmap_atomic_prot(struct page *page 17870@@ -44,7 +44,10 @@ void *kmap_atomic_prot(struct page *page
18611 idx = type + KM_TYPE_NR*smp_processor_id(); 17871 idx = type + KM_TYPE_NR*smp_processor_id();
18612 vaddr = __fix_to_virt(FIX_KMAP_BEGIN + idx); 17872 vaddr = __fix_to_virt(FIX_KMAP_BEGIN + idx);
@@ -18618,9 +17878,9 @@ diff -urNp linux-2.6.38.3/arch/x86/mm/highmem_32.c linux-2.6.38.3/arch/x86/mm/hi
18618 17878
18619 return (void *)vaddr; 17879 return (void *)vaddr;
18620 } 17880 }
18621diff -urNp linux-2.6.38.3/arch/x86/mm/hugetlbpage.c linux-2.6.38.3/arch/x86/mm/hugetlbpage.c 17881diff -urNp linux-2.6.38.2/arch/x86/mm/hugetlbpage.c linux-2.6.38.2/arch/x86/mm/hugetlbpage.c
18622--- linux-2.6.38.3/arch/x86/mm/hugetlbpage.c 2011-03-14 21:20:32.000000000 -0400 17882--- linux-2.6.38.2/arch/x86/mm/hugetlbpage.c 2011-03-14 21:20:32.000000000 -0400
18623+++ linux-2.6.38.3/arch/x86/mm/hugetlbpage.c 2011-04-17 15:57:32.000000000 -0400 17883+++ linux-2.6.38.2/arch/x86/mm/hugetlbpage.c 2011-03-21 23:47:41.000000000 -0400
18624@@ -266,13 +266,20 @@ static unsigned long hugetlb_get_unmappe 17884@@ -266,13 +266,20 @@ static unsigned long hugetlb_get_unmappe
18625 struct hstate *h = hstate_file(file); 17885 struct hstate *h = hstate_file(file);
18626 struct mm_struct *mm = current->mm; 17886 struct mm_struct *mm = current->mm;
@@ -18828,9 +18088,9 @@ diff -urNp linux-2.6.38.3/arch/x86/mm/hugetlbpage.c linux-2.6.38.3/arch/x86/mm/h
18828 return addr; 18088 return addr;
18829 } 18089 }
18830 if (mm->get_unmapped_area == arch_get_unmapped_area) 18090 if (mm->get_unmapped_area == arch_get_unmapped_area)
18831diff -urNp linux-2.6.38.3/arch/x86/mm/init_32.c linux-2.6.38.3/arch/x86/mm/init_32.c 18091diff -urNp linux-2.6.38.2/arch/x86/mm/init_32.c linux-2.6.38.2/arch/x86/mm/init_32.c
18832--- linux-2.6.38.3/arch/x86/mm/init_32.c 2011-03-14 21:20:32.000000000 -0400 18092--- linux-2.6.38.2/arch/x86/mm/init_32.c 2011-03-14 21:20:32.000000000 -0400
18833+++ linux-2.6.38.3/arch/x86/mm/init_32.c 2011-04-17 15:57:32.000000000 -0400 18093+++ linux-2.6.38.2/arch/x86/mm/init_32.c 2011-03-21 18:31:35.000000000 -0400
18834@@ -74,36 +74,6 @@ static __init void *alloc_low_page(void) 18094@@ -74,36 +74,6 @@ static __init void *alloc_low_page(void)
18835 } 18095 }
18836 18096
@@ -19105,10 +18365,10 @@ diff -urNp linux-2.6.38.3/arch/x86/mm/init_32.c linux-2.6.38.3/arch/x86/mm/init_
19105 set_pages_ro(virt_to_page(start), size >> PAGE_SHIFT); 18365 set_pages_ro(virt_to_page(start), size >> PAGE_SHIFT);
19106 printk(KERN_INFO "Write protecting the kernel text: %luk\n", 18366 printk(KERN_INFO "Write protecting the kernel text: %luk\n",
19107 size >> 10); 18367 size >> 10);
19108diff -urNp linux-2.6.38.3/arch/x86/mm/init_64.c linux-2.6.38.3/arch/x86/mm/init_64.c 18368diff -urNp linux-2.6.38.2/arch/x86/mm/init_64.c linux-2.6.38.2/arch/x86/mm/init_64.c
19109--- linux-2.6.38.3/arch/x86/mm/init_64.c 2011-04-18 17:27:18.000000000 -0400 18369--- linux-2.6.38.2/arch/x86/mm/init_64.c 2011-03-28 17:42:40.000000000 -0400
19110+++ linux-2.6.38.3/arch/x86/mm/init_64.c 2011-04-17 16:53:16.000000000 -0400 18370+++ linux-2.6.38.2/arch/x86/mm/init_64.c 2011-03-28 17:42:53.000000000 -0400
19111@@ -72,7 +72,7 @@ early_param("gbpages", parse_direct_gbpa 18371@@ -73,7 +73,7 @@ early_param("gbpages", parse_direct_gbpa
19112 * around without checking the pgd every time. 18372 * around without checking the pgd every time.
19113 */ 18373 */
19114 18374
@@ -19117,7 +18377,7 @@ diff -urNp linux-2.6.38.3/arch/x86/mm/init_64.c linux-2.6.38.3/arch/x86/mm/init_
19117 EXPORT_SYMBOL_GPL(__supported_pte_mask); 18377 EXPORT_SYMBOL_GPL(__supported_pte_mask);
19118 18378
19119 int force_personality32; 18379 int force_personality32;
19120@@ -105,12 +105,22 @@ void sync_global_pgds(unsigned long star 18380@@ -106,12 +106,22 @@ void sync_global_pgds(unsigned long star
19121 18381
19122 for (address = start; address <= end; address += PGDIR_SIZE) { 18382 for (address = start; address <= end; address += PGDIR_SIZE) {
19123 const pgd_t *pgd_ref = pgd_offset_k(address); 18383 const pgd_t *pgd_ref = pgd_offset_k(address);
@@ -19140,7 +18400,7 @@ diff -urNp linux-2.6.38.3/arch/x86/mm/init_64.c linux-2.6.38.3/arch/x86/mm/init_
19140 list_for_each_entry(page, &pgd_list, lru) { 18400 list_for_each_entry(page, &pgd_list, lru) {
19141 pgd_t *pgd; 18401 pgd_t *pgd;
19142 spinlock_t *pgt_lock; 18402 spinlock_t *pgt_lock;
19143@@ -119,6 +129,7 @@ void sync_global_pgds(unsigned long star 18403@@ -120,6 +130,7 @@ void sync_global_pgds(unsigned long star
19144 /* the pgt_lock only for Xen */ 18404 /* the pgt_lock only for Xen */
19145 pgt_lock = &pgd_page_get_mm(page)->page_table_lock; 18405 pgt_lock = &pgd_page_get_mm(page)->page_table_lock;
19146 spin_lock(pgt_lock); 18406 spin_lock(pgt_lock);
@@ -19148,7 +18408,7 @@ diff -urNp linux-2.6.38.3/arch/x86/mm/init_64.c linux-2.6.38.3/arch/x86/mm/init_
19148 18408
19149 if (pgd_none(*pgd)) 18409 if (pgd_none(*pgd))
19150 set_pgd(pgd, *pgd_ref); 18410 set_pgd(pgd, *pgd_ref);
19151@@ -126,7 +137,10 @@ void sync_global_pgds(unsigned long star 18411@@ -127,7 +138,10 @@ void sync_global_pgds(unsigned long star
19152 BUG_ON(pgd_page_vaddr(*pgd) 18412 BUG_ON(pgd_page_vaddr(*pgd)
19153 != pgd_page_vaddr(*pgd_ref)); 18413 != pgd_page_vaddr(*pgd_ref));
19154 18414
@@ -19159,7 +18419,7 @@ diff -urNp linux-2.6.38.3/arch/x86/mm/init_64.c linux-2.6.38.3/arch/x86/mm/init_
19159 } 18419 }
19160 spin_unlock(&pgd_lock); 18420 spin_unlock(&pgd_lock);
19161 } 18421 }
19162@@ -200,7 +214,9 @@ void set_pte_vaddr_pud(pud_t *pud_page, 18422@@ -201,7 +215,9 @@ void set_pte_vaddr_pud(pud_t *pud_page,
19163 pmd = fill_pmd(pud, vaddr); 18423 pmd = fill_pmd(pud, vaddr);
19164 pte = fill_pte(pmd, vaddr); 18424 pte = fill_pte(pmd, vaddr);
19165 18425
@@ -19169,7 +18429,7 @@ diff -urNp linux-2.6.38.3/arch/x86/mm/init_64.c linux-2.6.38.3/arch/x86/mm/init_
19169 18429
19170 /* 18430 /*
19171 * It's enough to flush this one mapping. 18431 * It's enough to flush this one mapping.
19172@@ -259,14 +275,12 @@ static void __init __init_extra_mapping( 18432@@ -260,14 +276,12 @@ static void __init __init_extra_mapping(
19173 pgd = pgd_offset_k((unsigned long)__va(phys)); 18433 pgd = pgd_offset_k((unsigned long)__va(phys));
19174 if (pgd_none(*pgd)) { 18434 if (pgd_none(*pgd)) {
19175 pud = (pud_t *) spp_getpage(); 18435 pud = (pud_t *) spp_getpage();
@@ -19186,7 +18446,7 @@ diff -urNp linux-2.6.38.3/arch/x86/mm/init_64.c linux-2.6.38.3/arch/x86/mm/init_
19186 } 18446 }
19187 pmd = pmd_offset(pud, phys); 18447 pmd = pmd_offset(pud, phys);
19188 BUG_ON(!pmd_none(*pmd)); 18448 BUG_ON(!pmd_none(*pmd));
19189@@ -706,6 +720,12 @@ void __init mem_init(void) 18449@@ -707,6 +721,12 @@ void __init mem_init(void)
19190 18450
19191 pci_iommu_alloc(); 18451 pci_iommu_alloc();
19192 18452
@@ -19199,7 +18459,7 @@ diff -urNp linux-2.6.38.3/arch/x86/mm/init_64.c linux-2.6.38.3/arch/x86/mm/init_
19199 /* clear_bss() already clear the empty_zero_page */ 18459 /* clear_bss() already clear the empty_zero_page */
19200 18460
19201 reservedpages = 0; 18461 reservedpages = 0;
19202@@ -866,8 +886,8 @@ int kern_addr_valid(unsigned long addr) 18462@@ -867,8 +887,8 @@ int kern_addr_valid(unsigned long addr)
19203 static struct vm_area_struct gate_vma = { 18463 static struct vm_area_struct gate_vma = {
19204 .vm_start = VSYSCALL_START, 18464 .vm_start = VSYSCALL_START,
19205 .vm_end = VSYSCALL_START + (VSYSCALL_MAPPED_PAGES * PAGE_SIZE), 18465 .vm_end = VSYSCALL_START + (VSYSCALL_MAPPED_PAGES * PAGE_SIZE),
@@ -19210,7 +18470,7 @@ diff -urNp linux-2.6.38.3/arch/x86/mm/init_64.c linux-2.6.38.3/arch/x86/mm/init_
19210 }; 18470 };
19211 18471
19212 struct vm_area_struct *get_gate_vma(struct task_struct *tsk) 18472 struct vm_area_struct *get_gate_vma(struct task_struct *tsk)
19213@@ -901,7 +921,7 @@ int in_gate_area_no_task(unsigned long a 18473@@ -902,7 +922,7 @@ int in_gate_area_no_task(unsigned long a
19214 18474
19215 const char *arch_vma_name(struct vm_area_struct *vma) 18475 const char *arch_vma_name(struct vm_area_struct *vma)
19216 { 18476 {
@@ -19219,9 +18479,9 @@ diff -urNp linux-2.6.38.3/arch/x86/mm/init_64.c linux-2.6.38.3/arch/x86/mm/init_
19219 return "[vdso]"; 18479 return "[vdso]";
19220 if (vma == &gate_vma) 18480 if (vma == &gate_vma)
19221 return "[vsyscall]"; 18481 return "[vsyscall]";
19222diff -urNp linux-2.6.38.3/arch/x86/mm/init.c linux-2.6.38.3/arch/x86/mm/init.c 18482diff -urNp linux-2.6.38.2/arch/x86/mm/init.c linux-2.6.38.2/arch/x86/mm/init.c
19223--- linux-2.6.38.3/arch/x86/mm/init.c 2011-04-18 17:27:18.000000000 -0400 18483--- linux-2.6.38.2/arch/x86/mm/init.c 2011-03-28 17:42:40.000000000 -0400
19224+++ linux-2.6.38.3/arch/x86/mm/init.c 2011-04-17 16:53:16.000000000 -0400 18484+++ linux-2.6.38.2/arch/x86/mm/init.c 2011-03-28 17:42:53.000000000 -0400
19225@@ -72,11 +72,7 @@ static void __init find_early_table_spac 18485@@ -72,11 +72,7 @@ static void __init find_early_table_spac
19226 * cause a hotspot and fill up ZONE_DMA. The page tables 18486 * cause a hotspot and fill up ZONE_DMA. The page tables
19227 * need roughly 0.5KB per GB. 18487 * need roughly 0.5KB per GB.
@@ -19235,25 +18495,22 @@ diff -urNp linux-2.6.38.3/arch/x86/mm/init.c linux-2.6.38.3/arch/x86/mm/init.c
19235 base = memblock_find_in_range(start, max_pfn_mapped<<PAGE_SHIFT, 18495 base = memblock_find_in_range(start, max_pfn_mapped<<PAGE_SHIFT,
19236 tables, PAGE_SIZE); 18496 tables, PAGE_SIZE);
19237 if (base == MEMBLOCK_ERROR) 18497 if (base == MEMBLOCK_ERROR)
19238@@ -323,7 +319,16 @@ unsigned long __init_refok init_memory_m 18498@@ -304,7 +300,13 @@ unsigned long __init_refok init_memory_m
19239 */ 18499 */
19240 int devmem_is_allowed(unsigned long pagenr) 18500 int devmem_is_allowed(unsigned long pagenr)
19241 { 18501 {
19242- if (pagenr <= 256) 18502- if (pagenr <= 256)
19243+#ifndef CONFIG_GRKERNSEC_KMEM
19244+ if (!pagenr) 18503+ if (!pagenr)
19245+ return 1; 18504+ return 1;
19246+#ifdef CONFIG_VM86 18505+#ifdef CONFIG_VM86
19247+ if (pagenr < (ISA_START_ADDRESS >> PAGE_SHIFT)) 18506+ if (pagenr < (ISA_START_ADDRESS >> PAGE_SHIFT))
19248+ return 1; 18507+ return 1;
19249+#endif 18508+#endif
19250+#endif
19251+
19252+ if ((ISA_START_ADDRESS >> PAGE_SHIFT) <= pagenr && pagenr < (ISA_END_ADDRESS >> PAGE_SHIFT)) 18509+ if ((ISA_START_ADDRESS >> PAGE_SHIFT) <= pagenr && pagenr < (ISA_END_ADDRESS >> PAGE_SHIFT))
19253 return 1; 18510 return 1;
19254 if (iomem_is_exclusive(pagenr << PAGE_SHIFT)) 18511 if (iomem_is_exclusive(pagenr << PAGE_SHIFT))
19255 return 0; 18512 return 0;
19256@@ -383,6 +388,86 @@ void free_init_pages(char *what, unsigne 18513@@ -364,6 +366,86 @@ void free_init_pages(char *what, unsigne
19257 18514
19258 void free_initmem(void) 18515 void free_initmem(void)
19259 { 18516 {
@@ -19340,9 +18597,9 @@ diff -urNp linux-2.6.38.3/arch/x86/mm/init.c linux-2.6.38.3/arch/x86/mm/init.c
19340 free_init_pages("unused kernel memory", 18597 free_init_pages("unused kernel memory",
19341 (unsigned long)(&__init_begin), 18598 (unsigned long)(&__init_begin),
19342 (unsigned long)(&__init_end)); 18599 (unsigned long)(&__init_end));
19343diff -urNp linux-2.6.38.3/arch/x86/mm/iomap_32.c linux-2.6.38.3/arch/x86/mm/iomap_32.c 18600diff -urNp linux-2.6.38.2/arch/x86/mm/iomap_32.c linux-2.6.38.2/arch/x86/mm/iomap_32.c
19344--- linux-2.6.38.3/arch/x86/mm/iomap_32.c 2011-03-14 21:20:32.000000000 -0400 18601--- linux-2.6.38.2/arch/x86/mm/iomap_32.c 2011-03-14 21:20:32.000000000 -0400
19345+++ linux-2.6.38.3/arch/x86/mm/iomap_32.c 2011-04-17 15:57:32.000000000 -0400 18602+++ linux-2.6.38.2/arch/x86/mm/iomap_32.c 2011-03-21 18:31:35.000000000 -0400
19346@@ -64,7 +64,11 @@ void *kmap_atomic_prot_pfn(unsigned long 18603@@ -64,7 +64,11 @@ void *kmap_atomic_prot_pfn(unsigned long
19347 type = kmap_atomic_idx_push(); 18604 type = kmap_atomic_idx_push();
19348 idx = type + KM_TYPE_NR * smp_processor_id(); 18605 idx = type + KM_TYPE_NR * smp_processor_id();
@@ -19355,9 +18612,9 @@ diff -urNp linux-2.6.38.3/arch/x86/mm/iomap_32.c linux-2.6.38.3/arch/x86/mm/ioma
19355 arch_flush_lazy_mmu_mode(); 18612 arch_flush_lazy_mmu_mode();
19356 18613
19357 return (void *)vaddr; 18614 return (void *)vaddr;
19358diff -urNp linux-2.6.38.3/arch/x86/mm/ioremap.c linux-2.6.38.3/arch/x86/mm/ioremap.c 18615diff -urNp linux-2.6.38.2/arch/x86/mm/ioremap.c linux-2.6.38.2/arch/x86/mm/ioremap.c
19359--- linux-2.6.38.3/arch/x86/mm/ioremap.c 2011-03-14 21:20:32.000000000 -0400 18616--- linux-2.6.38.2/arch/x86/mm/ioremap.c 2011-03-14 21:20:32.000000000 -0400
19360+++ linux-2.6.38.3/arch/x86/mm/ioremap.c 2011-04-17 15:57:32.000000000 -0400 18617+++ linux-2.6.38.2/arch/x86/mm/ioremap.c 2011-03-21 18:31:35.000000000 -0400
19361@@ -104,7 +104,7 @@ static void __iomem *__ioremap_caller(re 18618@@ -104,7 +104,7 @@ static void __iomem *__ioremap_caller(re
19362 for (pfn = phys_addr >> PAGE_SHIFT; pfn <= last_pfn; pfn++) { 18619 for (pfn = phys_addr >> PAGE_SHIFT; pfn <= last_pfn; pfn++) {
19363 int is_ram = page_is_ram(pfn); 18620 int is_ram = page_is_ram(pfn);
@@ -19386,9 +18643,9 @@ diff -urNp linux-2.6.38.3/arch/x86/mm/ioremap.c linux-2.6.38.3/arch/x86/mm/iorem
19386 18643
19387 /* 18644 /*
19388 * The boot-ioremap range spans multiple pmds, for which 18645 * The boot-ioremap range spans multiple pmds, for which
19389diff -urNp linux-2.6.38.3/arch/x86/mm/kmemcheck/kmemcheck.c linux-2.6.38.3/arch/x86/mm/kmemcheck/kmemcheck.c 18646diff -urNp linux-2.6.38.2/arch/x86/mm/kmemcheck/kmemcheck.c linux-2.6.38.2/arch/x86/mm/kmemcheck/kmemcheck.c
19390--- linux-2.6.38.3/arch/x86/mm/kmemcheck/kmemcheck.c 2011-03-14 21:20:32.000000000 -0400 18647--- linux-2.6.38.2/arch/x86/mm/kmemcheck/kmemcheck.c 2011-03-14 21:20:32.000000000 -0400
19391+++ linux-2.6.38.3/arch/x86/mm/kmemcheck/kmemcheck.c 2011-04-17 15:57:32.000000000 -0400 18648+++ linux-2.6.38.2/arch/x86/mm/kmemcheck/kmemcheck.c 2011-03-21 18:31:35.000000000 -0400
19392@@ -622,9 +622,9 @@ bool kmemcheck_fault(struct pt_regs *reg 18649@@ -622,9 +622,9 @@ bool kmemcheck_fault(struct pt_regs *reg
19393 * memory (e.g. tracked pages)? For now, we need this to avoid 18650 * memory (e.g. tracked pages)? For now, we need this to avoid
19394 * invoking kmemcheck for PnP BIOS calls. 18651 * invoking kmemcheck for PnP BIOS calls.
@@ -19401,9 +18658,9 @@ diff -urNp linux-2.6.38.3/arch/x86/mm/kmemcheck/kmemcheck.c linux-2.6.38.3/arch/
19401 return false; 18658 return false;
19402 18659
19403 pte = kmemcheck_pte_lookup(address); 18660 pte = kmemcheck_pte_lookup(address);
19404diff -urNp linux-2.6.38.3/arch/x86/mm/mmap.c linux-2.6.38.3/arch/x86/mm/mmap.c 18661diff -urNp linux-2.6.38.2/arch/x86/mm/mmap.c linux-2.6.38.2/arch/x86/mm/mmap.c
19405--- linux-2.6.38.3/arch/x86/mm/mmap.c 2011-03-14 21:20:32.000000000 -0400 18662--- linux-2.6.38.2/arch/x86/mm/mmap.c 2011-03-14 21:20:32.000000000 -0400
19406+++ linux-2.6.38.3/arch/x86/mm/mmap.c 2011-04-17 15:57:32.000000000 -0400 18663+++ linux-2.6.38.2/arch/x86/mm/mmap.c 2011-03-21 18:31:35.000000000 -0400
19407@@ -49,7 +49,7 @@ static unsigned int stack_maxrandom_size 18664@@ -49,7 +49,7 @@ static unsigned int stack_maxrandom_size
19408 * Leave an at least ~128 MB hole with possible stack randomization. 18665 * Leave an at least ~128 MB hole with possible stack randomization.
19409 */ 18666 */
@@ -19485,9 +18742,9 @@ diff -urNp linux-2.6.38.3/arch/x86/mm/mmap.c linux-2.6.38.3/arch/x86/mm/mmap.c
19485 mm->get_unmapped_area = arch_get_unmapped_area_topdown; 18742 mm->get_unmapped_area = arch_get_unmapped_area_topdown;
19486 mm->unmap_area = arch_unmap_area_topdown; 18743 mm->unmap_area = arch_unmap_area_topdown;
19487 } 18744 }
19488diff -urNp linux-2.6.38.3/arch/x86/mm/numa_32.c linux-2.6.38.3/arch/x86/mm/numa_32.c 18745diff -urNp linux-2.6.38.2/arch/x86/mm/numa_32.c linux-2.6.38.2/arch/x86/mm/numa_32.c
19489--- linux-2.6.38.3/arch/x86/mm/numa_32.c 2011-03-14 21:20:32.000000000 -0400 18746--- linux-2.6.38.2/arch/x86/mm/numa_32.c 2011-03-14 21:20:32.000000000 -0400
19490+++ linux-2.6.38.3/arch/x86/mm/numa_32.c 2011-04-17 15:57:32.000000000 -0400 18747+++ linux-2.6.38.2/arch/x86/mm/numa_32.c 2011-03-21 18:31:35.000000000 -0400
19491@@ -99,7 +99,6 @@ unsigned long node_memmap_size_bytes(int 18748@@ -99,7 +99,6 @@ unsigned long node_memmap_size_bytes(int
19492 } 18749 }
19493 #endif 18750 #endif
@@ -19496,9 +18753,9 @@ diff -urNp linux-2.6.38.3/arch/x86/mm/numa_32.c linux-2.6.38.3/arch/x86/mm/numa_
19496 extern unsigned long highend_pfn, highstart_pfn; 18753 extern unsigned long highend_pfn, highstart_pfn;
19497 18754
19498 #define LARGE_PAGE_BYTES (PTRS_PER_PTE * PAGE_SIZE) 18755 #define LARGE_PAGE_BYTES (PTRS_PER_PTE * PAGE_SIZE)
19499diff -urNp linux-2.6.38.3/arch/x86/mm/pageattr.c linux-2.6.38.3/arch/x86/mm/pageattr.c 18756diff -urNp linux-2.6.38.2/arch/x86/mm/pageattr.c linux-2.6.38.2/arch/x86/mm/pageattr.c
19500--- linux-2.6.38.3/arch/x86/mm/pageattr.c 2011-03-14 21:20:32.000000000 -0400 18757--- linux-2.6.38.2/arch/x86/mm/pageattr.c 2011-03-14 21:20:32.000000000 -0400
19501+++ linux-2.6.38.3/arch/x86/mm/pageattr.c 2011-04-17 15:57:32.000000000 -0400 18758+++ linux-2.6.38.2/arch/x86/mm/pageattr.c 2011-03-21 18:31:35.000000000 -0400
19502@@ -261,7 +261,7 @@ static inline pgprot_t static_protection 18759@@ -261,7 +261,7 @@ static inline pgprot_t static_protection
19503 */ 18760 */
19504 #ifdef CONFIG_PCI_BIOS 18761 #ifdef CONFIG_PCI_BIOS
@@ -19583,9 +18840,9 @@ diff -urNp linux-2.6.38.3/arch/x86/mm/pageattr.c linux-2.6.38.3/arch/x86/mm/page
19583 } 18840 }
19584 18841
19585 static int 18842 static int
19586diff -urNp linux-2.6.38.3/arch/x86/mm/pageattr-test.c linux-2.6.38.3/arch/x86/mm/pageattr-test.c 18843diff -urNp linux-2.6.38.2/arch/x86/mm/pageattr-test.c linux-2.6.38.2/arch/x86/mm/pageattr-test.c
19587--- linux-2.6.38.3/arch/x86/mm/pageattr-test.c 2011-03-14 21:20:32.000000000 -0400 18844--- linux-2.6.38.2/arch/x86/mm/pageattr-test.c 2011-03-14 21:20:32.000000000 -0400
19588+++ linux-2.6.38.3/arch/x86/mm/pageattr-test.c 2011-04-17 15:57:32.000000000 -0400 18845+++ linux-2.6.38.2/arch/x86/mm/pageattr-test.c 2011-03-21 18:31:35.000000000 -0400
19589@@ -36,7 +36,7 @@ enum { 18846@@ -36,7 +36,7 @@ enum {
19590 18847
19591 static int pte_testbit(pte_t pte) 18848 static int pte_testbit(pte_t pte)
@@ -19595,9 +18852,9 @@ diff -urNp linux-2.6.38.3/arch/x86/mm/pageattr-test.c linux-2.6.38.3/arch/x86/mm
19595 } 18852 }
19596 18853
19597 struct split_state { 18854 struct split_state {
19598diff -urNp linux-2.6.38.3/arch/x86/mm/pat.c linux-2.6.38.3/arch/x86/mm/pat.c 18855diff -urNp linux-2.6.38.2/arch/x86/mm/pat.c linux-2.6.38.2/arch/x86/mm/pat.c
19599--- linux-2.6.38.3/arch/x86/mm/pat.c 2011-03-14 21:20:32.000000000 -0400 18856--- linux-2.6.38.2/arch/x86/mm/pat.c 2011-03-14 21:20:32.000000000 -0400
19600+++ linux-2.6.38.3/arch/x86/mm/pat.c 2011-04-17 15:57:32.000000000 -0400 18857+++ linux-2.6.38.2/arch/x86/mm/pat.c 2011-03-21 18:31:35.000000000 -0400
19601@@ -361,7 +361,7 @@ int free_memtype(u64 start, u64 end) 18858@@ -361,7 +361,7 @@ int free_memtype(u64 start, u64 end)
19602 18859
19603 if (!entry) { 18860 if (!entry) {
@@ -19645,9 +18902,9 @@ diff -urNp linux-2.6.38.3/arch/x86/mm/pat.c linux-2.6.38.3/arch/x86/mm/pat.c
19645 cattr_name(want_flags), 18902 cattr_name(want_flags),
19646 (unsigned long long)paddr, 18903 (unsigned long long)paddr,
19647 (unsigned long long)(paddr + size), 18904 (unsigned long long)(paddr + size),
19648diff -urNp linux-2.6.38.3/arch/x86/mm/pgtable_32.c linux-2.6.38.3/arch/x86/mm/pgtable_32.c 18905diff -urNp linux-2.6.38.2/arch/x86/mm/pgtable_32.c linux-2.6.38.2/arch/x86/mm/pgtable_32.c
19649--- linux-2.6.38.3/arch/x86/mm/pgtable_32.c 2011-03-14 21:20:32.000000000 -0400 18906--- linux-2.6.38.2/arch/x86/mm/pgtable_32.c 2011-03-14 21:20:32.000000000 -0400
19650+++ linux-2.6.38.3/arch/x86/mm/pgtable_32.c 2011-04-17 15:57:32.000000000 -0400 18907+++ linux-2.6.38.2/arch/x86/mm/pgtable_32.c 2011-03-21 18:31:35.000000000 -0400
19651@@ -48,10 +48,13 @@ void set_pte_vaddr(unsigned long vaddr, 18908@@ -48,10 +48,13 @@ void set_pte_vaddr(unsigned long vaddr,
19652 return; 18909 return;
19653 } 18910 }
@@ -19662,9 +18919,9 @@ diff -urNp linux-2.6.38.3/arch/x86/mm/pgtable_32.c linux-2.6.38.3/arch/x86/mm/pg
19662 18919
19663 /* 18920 /*
19664 * It's enough to flush this one mapping. 18921 * It's enough to flush this one mapping.
19665diff -urNp linux-2.6.38.3/arch/x86/mm/pgtable.c linux-2.6.38.3/arch/x86/mm/pgtable.c 18922diff -urNp linux-2.6.38.2/arch/x86/mm/pgtable.c linux-2.6.38.2/arch/x86/mm/pgtable.c
19666--- linux-2.6.38.3/arch/x86/mm/pgtable.c 2011-04-18 17:27:13.000000000 -0400 18923--- linux-2.6.38.2/arch/x86/mm/pgtable.c 2011-03-23 17:20:06.000000000 -0400
19667+++ linux-2.6.38.3/arch/x86/mm/pgtable.c 2011-04-17 15:57:32.000000000 -0400 18924+++ linux-2.6.38.2/arch/x86/mm/pgtable.c 2011-03-24 23:22:14.000000000 -0400
19668@@ -84,9 +84,58 @@ static inline void pgd_list_del(pgd_t *p 18925@@ -84,9 +84,58 @@ static inline void pgd_list_del(pgd_t *p
19669 list_del(&page->lru); 18926 list_del(&page->lru);
19670 } 18927 }
@@ -19916,9 +19173,9 @@ diff -urNp linux-2.6.38.3/arch/x86/mm/pgtable.c linux-2.6.38.3/arch/x86/mm/pgtab
19916 pgd_dtor(pgd); 19173 pgd_dtor(pgd);
19917 paravirt_pgd_free(mm, pgd); 19174 paravirt_pgd_free(mm, pgd);
19918 free_page((unsigned long)pgd); 19175 free_page((unsigned long)pgd);
19919diff -urNp linux-2.6.38.3/arch/x86/mm/setup_nx.c linux-2.6.38.3/arch/x86/mm/setup_nx.c 19176diff -urNp linux-2.6.38.2/arch/x86/mm/setup_nx.c linux-2.6.38.2/arch/x86/mm/setup_nx.c
19920--- linux-2.6.38.3/arch/x86/mm/setup_nx.c 2011-03-14 21:20:32.000000000 -0400 19177--- linux-2.6.38.2/arch/x86/mm/setup_nx.c 2011-03-14 21:20:32.000000000 -0400
19921+++ linux-2.6.38.3/arch/x86/mm/setup_nx.c 2011-04-17 15:57:32.000000000 -0400 19178+++ linux-2.6.38.2/arch/x86/mm/setup_nx.c 2011-03-21 18:31:35.000000000 -0400
19922@@ -5,8 +5,10 @@ 19179@@ -5,8 +5,10 @@
19923 #include <asm/pgtable.h> 19180 #include <asm/pgtable.h>
19924 #include <asm/proto.h> 19181 #include <asm/proto.h>
@@ -19948,9 +19205,9 @@ diff -urNp linux-2.6.38.3/arch/x86/mm/setup_nx.c linux-2.6.38.3/arch/x86/mm/setu
19948 __supported_pte_mask &= ~_PAGE_NX; 19205 __supported_pte_mask &= ~_PAGE_NX;
19949 } 19206 }
19950 19207
19951diff -urNp linux-2.6.38.3/arch/x86/mm/tlb.c linux-2.6.38.3/arch/x86/mm/tlb.c 19208diff -urNp linux-2.6.38.2/arch/x86/mm/tlb.c linux-2.6.38.2/arch/x86/mm/tlb.c
19952--- linux-2.6.38.3/arch/x86/mm/tlb.c 2011-03-14 21:20:32.000000000 -0400 19209--- linux-2.6.38.2/arch/x86/mm/tlb.c 2011-03-14 21:20:32.000000000 -0400
19953+++ linux-2.6.38.3/arch/x86/mm/tlb.c 2011-04-17 15:57:32.000000000 -0400 19210+++ linux-2.6.38.2/arch/x86/mm/tlb.c 2011-03-21 18:31:35.000000000 -0400
19954@@ -14,7 +14,7 @@ 19211@@ -14,7 +14,7 @@
19955 #include <asm/uv/uv.h> 19212 #include <asm/uv/uv.h>
19956 19213
@@ -19972,9 +19229,9 @@ diff -urNp linux-2.6.38.3/arch/x86/mm/tlb.c linux-2.6.38.3/arch/x86/mm/tlb.c
19972 } 19229 }
19973 EXPORT_SYMBOL_GPL(leave_mm); 19230 EXPORT_SYMBOL_GPL(leave_mm);
19974 19231
19975diff -urNp linux-2.6.38.3/arch/x86/oprofile/backtrace.c linux-2.6.38.3/arch/x86/oprofile/backtrace.c 19232diff -urNp linux-2.6.38.2/arch/x86/oprofile/backtrace.c linux-2.6.38.2/arch/x86/oprofile/backtrace.c
19976--- linux-2.6.38.3/arch/x86/oprofile/backtrace.c 2011-03-14 21:20:32.000000000 -0400 19233--- linux-2.6.38.2/arch/x86/oprofile/backtrace.c 2011-03-14 21:20:32.000000000 -0400
19977+++ linux-2.6.38.3/arch/x86/oprofile/backtrace.c 2011-04-17 15:57:32.000000000 -0400 19234+++ linux-2.6.38.2/arch/x86/oprofile/backtrace.c 2011-03-21 18:31:35.000000000 -0400
19978@@ -57,7 +57,7 @@ dump_user_backtrace_32(struct stack_fram 19235@@ -57,7 +57,7 @@ dump_user_backtrace_32(struct stack_fram
19979 struct stack_frame_ia32 *fp; 19236 struct stack_frame_ia32 *fp;
19980 19237
@@ -19993,9 +19250,9 @@ diff -urNp linux-2.6.38.3/arch/x86/oprofile/backtrace.c linux-2.6.38.3/arch/x86/
19993 unsigned long stack = kernel_stack_pointer(regs); 19250 unsigned long stack = kernel_stack_pointer(regs);
19994 if (depth) 19251 if (depth)
19995 dump_trace(NULL, regs, (unsigned long *)stack, 19252 dump_trace(NULL, regs, (unsigned long *)stack,
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 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
19997--- linux-2.6.38.3/arch/x86/oprofile/op_model_p4.c 2011-03-14 21:20:32.000000000 -0400 19254--- linux-2.6.38.2/arch/x86/oprofile/op_model_p4.c 2011-03-14 21:20:32.000000000 -0400
19998+++ linux-2.6.38.3/arch/x86/oprofile/op_model_p4.c 2011-04-17 15:57:32.000000000 -0400 19255+++ linux-2.6.38.2/arch/x86/oprofile/op_model_p4.c 2011-03-21 18:31:35.000000000 -0400
19999@@ -50,7 +50,7 @@ static inline void setup_num_counters(vo 19256@@ -50,7 +50,7 @@ static inline void setup_num_counters(vo
20000 #endif 19257 #endif
20001 } 19258 }
@@ -20005,9 +19262,9 @@ diff -urNp linux-2.6.38.3/arch/x86/oprofile/op_model_p4.c linux-2.6.38.3/arch/x8
20005 { 19262 {
20006 #ifdef CONFIG_SMP 19263 #ifdef CONFIG_SMP
20007 return smp_num_siblings == 2 ? 2 : 1; 19264 return smp_num_siblings == 2 ? 2 : 1;
20008diff -urNp linux-2.6.38.3/arch/x86/pci/ce4100.c linux-2.6.38.3/arch/x86/pci/ce4100.c 19265diff -urNp linux-2.6.38.2/arch/x86/pci/ce4100.c linux-2.6.38.2/arch/x86/pci/ce4100.c
20009--- linux-2.6.38.3/arch/x86/pci/ce4100.c 2011-03-14 21:20:32.000000000 -0400 19266--- linux-2.6.38.2/arch/x86/pci/ce4100.c 2011-03-14 21:20:32.000000000 -0400
20010+++ linux-2.6.38.3/arch/x86/pci/ce4100.c 2011-04-17 15:57:32.000000000 -0400 19267+++ linux-2.6.38.2/arch/x86/pci/ce4100.c 2011-03-21 18:31:35.000000000 -0400
20011@@ -302,7 +302,7 @@ static int ce4100_conf_write(unsigned in 19268@@ -302,7 +302,7 @@ static int ce4100_conf_write(unsigned in
20012 return pci_direct_conf1.write(seg, bus, devfn, reg, len, value); 19269 return pci_direct_conf1.write(seg, bus, devfn, reg, len, value);
20013 } 19270 }
@@ -20017,9 +19274,9 @@ diff -urNp linux-2.6.38.3/arch/x86/pci/ce4100.c linux-2.6.38.3/arch/x86/pci/ce41
20017 .read = ce4100_conf_read, 19274 .read = ce4100_conf_read,
20018 .write = ce4100_conf_write, 19275 .write = ce4100_conf_write,
20019 }; 19276 };
20020diff -urNp linux-2.6.38.3/arch/x86/pci/common.c linux-2.6.38.3/arch/x86/pci/common.c 19277diff -urNp linux-2.6.38.2/arch/x86/pci/common.c linux-2.6.38.2/arch/x86/pci/common.c
20021--- linux-2.6.38.3/arch/x86/pci/common.c 2011-03-14 21:20:32.000000000 -0400 19278--- linux-2.6.38.2/arch/x86/pci/common.c 2011-03-14 21:20:32.000000000 -0400
20022+++ linux-2.6.38.3/arch/x86/pci/common.c 2011-04-17 15:57:32.000000000 -0400 19279+++ linux-2.6.38.2/arch/x86/pci/common.c 2011-03-21 18:31:35.000000000 -0400
20023@@ -33,8 +33,8 @@ int noioapicreroute = 1; 19280@@ -33,8 +33,8 @@ int noioapicreroute = 1;
20024 int pcibios_last_bus = -1; 19281 int pcibios_last_bus = -1;
20025 unsigned long pirq_table_addr; 19282 unsigned long pirq_table_addr;
@@ -20040,9 +19297,9 @@ diff -urNp linux-2.6.38.3/arch/x86/pci/common.c linux-2.6.38.3/arch/x86/pci/comm
20040 }; 19297 };
20041 19298
20042 void __init dmi_check_pciprobe(void) 19299 void __init dmi_check_pciprobe(void)
20043diff -urNp linux-2.6.38.3/arch/x86/pci/direct.c linux-2.6.38.3/arch/x86/pci/direct.c 19300diff -urNp linux-2.6.38.2/arch/x86/pci/direct.c linux-2.6.38.2/arch/x86/pci/direct.c
20044--- linux-2.6.38.3/arch/x86/pci/direct.c 2011-03-14 21:20:32.000000000 -0400 19301--- linux-2.6.38.2/arch/x86/pci/direct.c 2011-03-14 21:20:32.000000000 -0400
20045+++ linux-2.6.38.3/arch/x86/pci/direct.c 2011-04-17 15:57:32.000000000 -0400 19302+++ linux-2.6.38.2/arch/x86/pci/direct.c 2011-03-21 18:31:35.000000000 -0400
20046@@ -79,7 +79,7 @@ static int pci_conf1_write(unsigned int 19303@@ -79,7 +79,7 @@ static int pci_conf1_write(unsigned int
20047 19304
20048 #undef PCI_CONF1_ADDRESS 19305 #undef PCI_CONF1_ADDRESS
@@ -20070,9 +19327,9 @@ diff -urNp linux-2.6.38.3/arch/x86/pci/direct.c linux-2.6.38.3/arch/x86/pci/dire
20070 { 19327 {
20071 u32 x = 0; 19328 u32 x = 0;
20072 int year, devfn; 19329 int year, devfn;
20073diff -urNp linux-2.6.38.3/arch/x86/pci/fixup.c linux-2.6.38.3/arch/x86/pci/fixup.c 19330diff -urNp linux-2.6.38.2/arch/x86/pci/fixup.c linux-2.6.38.2/arch/x86/pci/fixup.c
20074--- linux-2.6.38.3/arch/x86/pci/fixup.c 2011-03-14 21:20:32.000000000 -0400 19331--- linux-2.6.38.2/arch/x86/pci/fixup.c 2011-03-14 21:20:32.000000000 -0400
20075+++ linux-2.6.38.3/arch/x86/pci/fixup.c 2011-04-17 15:57:32.000000000 -0400 19332+++ linux-2.6.38.2/arch/x86/pci/fixup.c 2011-03-21 18:31:35.000000000 -0400
20076@@ -364,7 +364,7 @@ static const struct dmi_system_id __devi 19333@@ -364,7 +364,7 @@ static const struct dmi_system_id __devi
20077 DMI_MATCH(DMI_PRODUCT_NAME, "MS-6702E"), 19334 DMI_MATCH(DMI_PRODUCT_NAME, "MS-6702E"),
20078 }, 19335 },
@@ -20091,9 +19348,9 @@ diff -urNp linux-2.6.38.3/arch/x86/pci/fixup.c linux-2.6.38.3/arch/x86/pci/fixup
20091 }; 19348 };
20092 19349
20093 static void __devinit pci_pre_fixup_toshiba_ohci1394(struct pci_dev *dev) 19350 static void __devinit pci_pre_fixup_toshiba_ohci1394(struct pci_dev *dev)
20094diff -urNp linux-2.6.38.3/arch/x86/pci/irq.c linux-2.6.38.3/arch/x86/pci/irq.c 19351diff -urNp linux-2.6.38.2/arch/x86/pci/irq.c linux-2.6.38.2/arch/x86/pci/irq.c
20095--- linux-2.6.38.3/arch/x86/pci/irq.c 2011-03-14 21:20:32.000000000 -0400 19352--- linux-2.6.38.2/arch/x86/pci/irq.c 2011-03-14 21:20:32.000000000 -0400
20096+++ linux-2.6.38.3/arch/x86/pci/irq.c 2011-04-17 15:57:32.000000000 -0400 19353+++ linux-2.6.38.2/arch/x86/pci/irq.c 2011-03-21 18:31:35.000000000 -0400
20097@@ -542,7 +542,7 @@ static __init int intel_router_probe(str 19354@@ -542,7 +542,7 @@ static __init int intel_router_probe(str
20098 static struct pci_device_id __initdata pirq_440gx[] = { 19355 static struct pci_device_id __initdata pirq_440gx[] = {
20099 { PCI_DEVICE(PCI_VENDOR_ID_INTEL, PCI_DEVICE_ID_INTEL_82443GX_0) }, 19356 { PCI_DEVICE(PCI_VENDOR_ID_INTEL, PCI_DEVICE_ID_INTEL_82443GX_0) },
@@ -20112,9 +19369,9 @@ diff -urNp linux-2.6.38.3/arch/x86/pci/irq.c linux-2.6.38.3/arch/x86/pci/irq.c
20112 }; 19369 };
20113 19370
20114 void __init pcibios_irq_init(void) 19371 void __init pcibios_irq_init(void)
20115diff -urNp linux-2.6.38.3/arch/x86/pci/mmconfig_32.c linux-2.6.38.3/arch/x86/pci/mmconfig_32.c 19372diff -urNp linux-2.6.38.2/arch/x86/pci/mmconfig_32.c linux-2.6.38.2/arch/x86/pci/mmconfig_32.c
20116--- linux-2.6.38.3/arch/x86/pci/mmconfig_32.c 2011-03-14 21:20:32.000000000 -0400 19373--- linux-2.6.38.2/arch/x86/pci/mmconfig_32.c 2011-03-14 21:20:32.000000000 -0400
20117+++ linux-2.6.38.3/arch/x86/pci/mmconfig_32.c 2011-04-17 15:57:32.000000000 -0400 19374+++ linux-2.6.38.2/arch/x86/pci/mmconfig_32.c 2011-03-21 18:31:35.000000000 -0400
20118@@ -117,7 +117,7 @@ static int pci_mmcfg_write(unsigned int 19375@@ -117,7 +117,7 @@ static int pci_mmcfg_write(unsigned int
20119 return 0; 19376 return 0;
20120 } 19377 }
@@ -20124,9 +19381,9 @@ diff -urNp linux-2.6.38.3/arch/x86/pci/mmconfig_32.c linux-2.6.38.3/arch/x86/pci
20124 .read = pci_mmcfg_read, 19381 .read = pci_mmcfg_read,
20125 .write = pci_mmcfg_write, 19382 .write = pci_mmcfg_write,
20126 }; 19383 };
20127diff -urNp linux-2.6.38.3/arch/x86/pci/mmconfig_64.c linux-2.6.38.3/arch/x86/pci/mmconfig_64.c 19384diff -urNp linux-2.6.38.2/arch/x86/pci/mmconfig_64.c linux-2.6.38.2/arch/x86/pci/mmconfig_64.c
20128--- linux-2.6.38.3/arch/x86/pci/mmconfig_64.c 2011-03-14 21:20:32.000000000 -0400 19385--- linux-2.6.38.2/arch/x86/pci/mmconfig_64.c 2011-03-14 21:20:32.000000000 -0400
20129+++ linux-2.6.38.3/arch/x86/pci/mmconfig_64.c 2011-04-17 15:57:32.000000000 -0400 19386+++ linux-2.6.38.2/arch/x86/pci/mmconfig_64.c 2011-03-21 18:31:35.000000000 -0400
20130@@ -81,7 +81,7 @@ static int pci_mmcfg_write(unsigned int 19387@@ -81,7 +81,7 @@ static int pci_mmcfg_write(unsigned int
20131 return 0; 19388 return 0;
20132 } 19389 }
@@ -20136,9 +19393,9 @@ diff -urNp linux-2.6.38.3/arch/x86/pci/mmconfig_64.c linux-2.6.38.3/arch/x86/pci
20136 .read = pci_mmcfg_read, 19393 .read = pci_mmcfg_read,
20137 .write = pci_mmcfg_write, 19394 .write = pci_mmcfg_write,
20138 }; 19395 };
20139diff -urNp linux-2.6.38.3/arch/x86/pci/numaq_32.c linux-2.6.38.3/arch/x86/pci/numaq_32.c 19396diff -urNp linux-2.6.38.2/arch/x86/pci/numaq_32.c linux-2.6.38.2/arch/x86/pci/numaq_32.c
20140--- linux-2.6.38.3/arch/x86/pci/numaq_32.c 2011-03-14 21:20:32.000000000 -0400 19397--- linux-2.6.38.2/arch/x86/pci/numaq_32.c 2011-03-14 21:20:32.000000000 -0400
20141+++ linux-2.6.38.3/arch/x86/pci/numaq_32.c 2011-04-17 15:57:32.000000000 -0400 19398+++ linux-2.6.38.2/arch/x86/pci/numaq_32.c 2011-03-21 18:31:35.000000000 -0400
20142@@ -108,7 +108,7 @@ static int pci_conf1_mq_write(unsigned i 19399@@ -108,7 +108,7 @@ static int pci_conf1_mq_write(unsigned i
20143 19400
20144 #undef PCI_CONF1_MQ_ADDRESS 19401 #undef PCI_CONF1_MQ_ADDRESS
@@ -20148,9 +19405,9 @@ diff -urNp linux-2.6.38.3/arch/x86/pci/numaq_32.c linux-2.6.38.3/arch/x86/pci/nu
20148 .read = pci_conf1_mq_read, 19405 .read = pci_conf1_mq_read,
20149 .write = pci_conf1_mq_write 19406 .write = pci_conf1_mq_write
20150 }; 19407 };
20151diff -urNp linux-2.6.38.3/arch/x86/pci/olpc.c linux-2.6.38.3/arch/x86/pci/olpc.c 19408diff -urNp linux-2.6.38.2/arch/x86/pci/olpc.c linux-2.6.38.2/arch/x86/pci/olpc.c
20152--- linux-2.6.38.3/arch/x86/pci/olpc.c 2011-03-14 21:20:32.000000000 -0400 19409--- linux-2.6.38.2/arch/x86/pci/olpc.c 2011-03-14 21:20:32.000000000 -0400
20153+++ linux-2.6.38.3/arch/x86/pci/olpc.c 2011-04-17 15:57:32.000000000 -0400 19410+++ linux-2.6.38.2/arch/x86/pci/olpc.c 2011-03-21 18:31:35.000000000 -0400
20154@@ -297,7 +297,7 @@ static int pci_olpc_write(unsigned int s 19411@@ -297,7 +297,7 @@ static int pci_olpc_write(unsigned int s
20155 return 0; 19412 return 0;
20156 } 19413 }
@@ -20160,9 +19417,9 @@ diff -urNp linux-2.6.38.3/arch/x86/pci/olpc.c linux-2.6.38.3/arch/x86/pci/olpc.c
20160 .read = pci_olpc_read, 19417 .read = pci_olpc_read,
20161 .write = pci_olpc_write, 19418 .write = pci_olpc_write,
20162 }; 19419 };
20163diff -urNp linux-2.6.38.3/arch/x86/pci/pcbios.c linux-2.6.38.3/arch/x86/pci/pcbios.c 19420diff -urNp linux-2.6.38.2/arch/x86/pci/pcbios.c linux-2.6.38.2/arch/x86/pci/pcbios.c
20164--- linux-2.6.38.3/arch/x86/pci/pcbios.c 2011-03-14 21:20:32.000000000 -0400 19421--- linux-2.6.38.2/arch/x86/pci/pcbios.c 2011-03-14 21:20:32.000000000 -0400
20165+++ linux-2.6.38.3/arch/x86/pci/pcbios.c 2011-04-17 15:57:32.000000000 -0400 19422+++ linux-2.6.38.2/arch/x86/pci/pcbios.c 2011-03-21 18:31:35.000000000 -0400
20166@@ -79,50 +79,93 @@ union bios32 { 19423@@ -79,50 +79,93 @@ union bios32 {
20167 static struct { 19424 static struct {
20168 unsigned long address; 19425 unsigned long address;
@@ -20485,9 +19742,9 @@ diff -urNp linux-2.6.38.3/arch/x86/pci/pcbios.c linux-2.6.38.3/arch/x86/pci/pcbi
20485 return !(ret & 0xff00); 19742 return !(ret & 0xff00);
20486 } 19743 }
20487 EXPORT_SYMBOL(pcibios_set_irq_routing); 19744 EXPORT_SYMBOL(pcibios_set_irq_routing);
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 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
20489--- linux-2.6.38.3/arch/x86/platform/efi/efi_32.c 2011-03-14 21:20:32.000000000 -0400 19746--- linux-2.6.38.2/arch/x86/platform/efi/efi_32.c 2011-03-14 21:20:32.000000000 -0400
20490+++ linux-2.6.38.3/arch/x86/platform/efi/efi_32.c 2011-04-17 15:57:32.000000000 -0400 19747+++ linux-2.6.38.2/arch/x86/platform/efi/efi_32.c 2011-03-21 18:31:35.000000000 -0400
20491@@ -38,70 +38,37 @@ 19748@@ -38,70 +38,37 @@
20492 */ 19749 */
20493 19750
@@ -20568,9 +19825,9 @@ diff -urNp linux-2.6.38.3/arch/x86/platform/efi/efi_32.c linux-2.6.38.3/arch/x86
20568 19825
20569 /* 19826 /*
20570 * After the lock is released, the original page table is restored. 19827 * After the lock is released, the original page table is restored.
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 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
20572--- linux-2.6.38.3/arch/x86/platform/efi/efi_stub_32.S 2011-03-14 21:20:32.000000000 -0400 19829--- linux-2.6.38.2/arch/x86/platform/efi/efi_stub_32.S 2011-03-14 21:20:32.000000000 -0400
20573+++ linux-2.6.38.3/arch/x86/platform/efi/efi_stub_32.S 2011-04-17 15:57:32.000000000 -0400 19830+++ linux-2.6.38.2/arch/x86/platform/efi/efi_stub_32.S 2011-03-21 18:31:35.000000000 -0400
20574@@ -6,6 +6,7 @@ 19831@@ -6,6 +6,7 @@
20575 */ 19832 */
20576 19833
@@ -20669,9 +19926,9 @@ diff -urNp linux-2.6.38.3/arch/x86/platform/efi/efi_stub_32.S linux-2.6.38.3/arc
20669 saved_return_addr: 19926 saved_return_addr:
20670 .long 0 19927 .long 0
20671 efi_rt_function_ptr: 19928 efi_rt_function_ptr:
20672diff -urNp linux-2.6.38.3/arch/x86/power/cpu.c linux-2.6.38.3/arch/x86/power/cpu.c 19929diff -urNp linux-2.6.38.2/arch/x86/power/cpu.c linux-2.6.38.2/arch/x86/power/cpu.c
20673--- linux-2.6.38.3/arch/x86/power/cpu.c 2011-03-14 21:20:32.000000000 -0400 19930--- linux-2.6.38.2/arch/x86/power/cpu.c 2011-03-14 21:20:32.000000000 -0400
20674+++ linux-2.6.38.3/arch/x86/power/cpu.c 2011-04-17 15:57:32.000000000 -0400 19931+++ linux-2.6.38.2/arch/x86/power/cpu.c 2011-03-21 18:31:35.000000000 -0400
20675@@ -130,7 +130,7 @@ static void do_fpu_end(void) 19932@@ -130,7 +130,7 @@ static void do_fpu_end(void)
20676 static void fix_processor_context(void) 19933 static void fix_processor_context(void)
20677 { 19934 {
@@ -20691,21 +19948,21 @@ diff -urNp linux-2.6.38.3/arch/x86/power/cpu.c linux-2.6.38.3/arch/x86/power/cpu
20691 19948
20692 syscall_init(); /* This sets MSR_*STAR and related */ 19949 syscall_init(); /* This sets MSR_*STAR and related */
20693 #endif 19950 #endif
20694diff -urNp linux-2.6.38.3/arch/x86/vdso/Makefile linux-2.6.38.3/arch/x86/vdso/Makefile 19951diff -urNp linux-2.6.38.2/arch/x86/vdso/Makefile linux-2.6.38.2/arch/x86/vdso/Makefile
20695--- linux-2.6.38.3/arch/x86/vdso/Makefile 2011-03-14 21:20:32.000000000 -0400 19952--- linux-2.6.38.2/arch/x86/vdso/Makefile 2011-03-14 21:20:32.000000000 -0400
20696+++ linux-2.6.38.3/arch/x86/vdso/Makefile 2011-04-17 15:57:32.000000000 -0400 19953+++ linux-2.6.38.2/arch/x86/vdso/Makefile 2011-03-21 18:31:35.000000000 -0400
20697@@ -123,7 +123,7 @@ quiet_cmd_vdso = VDSO $@ 19954@@ -123,7 +123,7 @@ quiet_cmd_vdso = VDSO $@
20698 -Wl,-T,$(filter %.lds,$^) $(filter %.o,$^) && \ 19955 -Wl,-T,$(filter %.lds,$^) $(filter %.o,$^) && \
20699 sh $(srctree)/$(src)/checkundef.sh '$(NM)' '$@' 19956 sh $(srctree)/$(src)/checkundef.sh '$(NM)' '$@'
20700 19957
20701-VDSO_LDFLAGS = -fPIC -shared $(call cc-ldoption, -Wl$(comma)--hash-style=sysv) 19958-VDSO_LDFLAGS = -fPIC -shared $(call cc-ldoption, -Wl$(comma)--hash-style=sysv)
20702+VDSO_LDFLAGS = -fPIC -shared -Wl,--no-undefined $(call cc-ldoption, -Wl$(comma)--hash-style=sysv) 19959+VDSO_LDFLAGS = -fPIC -shared --no-undefined $(call cc-ldoption, -Wl$(comma)--hash-style=sysv)
20703 GCOV_PROFILE := n 19960 GCOV_PROFILE := n
20704 19961
20705 # 19962 #
20706diff -urNp linux-2.6.38.3/arch/x86/vdso/vclock_gettime.c linux-2.6.38.3/arch/x86/vdso/vclock_gettime.c 19963diff -urNp linux-2.6.38.2/arch/x86/vdso/vclock_gettime.c linux-2.6.38.2/arch/x86/vdso/vclock_gettime.c
20707--- linux-2.6.38.3/arch/x86/vdso/vclock_gettime.c 2011-03-14 21:20:32.000000000 -0400 19964--- linux-2.6.38.2/arch/x86/vdso/vclock_gettime.c 2011-03-14 21:20:32.000000000 -0400
20708+++ linux-2.6.38.3/arch/x86/vdso/vclock_gettime.c 2011-04-17 15:57:32.000000000 -0400 19965+++ linux-2.6.38.2/arch/x86/vdso/vclock_gettime.c 2011-03-21 18:31:35.000000000 -0400
20709@@ -22,24 +22,48 @@ 19966@@ -22,24 +22,48 @@
20710 #include <asm/hpet.h> 19967 #include <asm/hpet.h>
20711 #include <asm/unistd.h> 19968 #include <asm/unistd.h>
@@ -20804,9 +20061,9 @@ diff -urNp linux-2.6.38.3/arch/x86/vdso/vclock_gettime.c linux-2.6.38.3/arch/x86
20804 } 20061 }
20805 int gettimeofday(struct timeval *, struct timezone *) 20062 int gettimeofday(struct timeval *, struct timezone *)
20806 __attribute__((weak, alias("__vdso_gettimeofday"))); 20063 __attribute__((weak, alias("__vdso_gettimeofday")));
20807diff -urNp linux-2.6.38.3/arch/x86/vdso/vdso32-setup.c linux-2.6.38.3/arch/x86/vdso/vdso32-setup.c 20064diff -urNp linux-2.6.38.2/arch/x86/vdso/vdso32-setup.c linux-2.6.38.2/arch/x86/vdso/vdso32-setup.c
20808--- linux-2.6.38.3/arch/x86/vdso/vdso32-setup.c 2011-03-14 21:20:32.000000000 -0400 20065--- linux-2.6.38.2/arch/x86/vdso/vdso32-setup.c 2011-03-14 21:20:32.000000000 -0400
20809+++ linux-2.6.38.3/arch/x86/vdso/vdso32-setup.c 2011-04-17 15:57:32.000000000 -0400 20066+++ linux-2.6.38.2/arch/x86/vdso/vdso32-setup.c 2011-03-21 18:31:35.000000000 -0400
20810@@ -25,6 +25,7 @@ 20067@@ -25,6 +25,7 @@
20811 #include <asm/tlbflush.h> 20068 #include <asm/tlbflush.h>
20812 #include <asm/vdso.h> 20069 #include <asm/vdso.h>
@@ -20889,9 +20146,9 @@ diff -urNp linux-2.6.38.3/arch/x86/vdso/vdso32-setup.c linux-2.6.38.3/arch/x86/v
20889 return &gate_vma; 20146 return &gate_vma;
20890 return NULL; 20147 return NULL;
20891 } 20148 }
20892diff -urNp linux-2.6.38.3/arch/x86/vdso/vdso.lds.S linux-2.6.38.3/arch/x86/vdso/vdso.lds.S 20149diff -urNp linux-2.6.38.2/arch/x86/vdso/vdso.lds.S linux-2.6.38.2/arch/x86/vdso/vdso.lds.S
20893--- linux-2.6.38.3/arch/x86/vdso/vdso.lds.S 2011-03-14 21:20:32.000000000 -0400 20150--- linux-2.6.38.2/arch/x86/vdso/vdso.lds.S 2011-03-14 21:20:32.000000000 -0400
20894+++ linux-2.6.38.3/arch/x86/vdso/vdso.lds.S 2011-04-17 15:57:32.000000000 -0400 20151+++ linux-2.6.38.2/arch/x86/vdso/vdso.lds.S 2011-03-21 18:31:35.000000000 -0400
20895@@ -35,3 +35,9 @@ VDSO64_PRELINK = VDSO_PRELINK; 20152@@ -35,3 +35,9 @@ VDSO64_PRELINK = VDSO_PRELINK;
20896 #define VEXTERN(x) VDSO64_ ## x = vdso_ ## x; 20153 #define VEXTERN(x) VDSO64_ ## x = vdso_ ## x;
20897 #include "vextern.h" 20154 #include "vextern.h"
@@ -20902,9 +20159,9 @@ diff -urNp linux-2.6.38.3/arch/x86/vdso/vdso.lds.S linux-2.6.38.3/arch/x86/vdso/
20902+VEXTERN(fallback_time) 20159+VEXTERN(fallback_time)
20903+VEXTERN(getcpu) 20160+VEXTERN(getcpu)
20904+#undef VEXTERN 20161+#undef VEXTERN
20905diff -urNp linux-2.6.38.3/arch/x86/vdso/vextern.h linux-2.6.38.3/arch/x86/vdso/vextern.h 20162diff -urNp linux-2.6.38.2/arch/x86/vdso/vextern.h linux-2.6.38.2/arch/x86/vdso/vextern.h
20906--- linux-2.6.38.3/arch/x86/vdso/vextern.h 2011-03-14 21:20:32.000000000 -0400 20163--- linux-2.6.38.2/arch/x86/vdso/vextern.h 2011-03-14 21:20:32.000000000 -0400
20907+++ linux-2.6.38.3/arch/x86/vdso/vextern.h 2011-04-17 15:57:32.000000000 -0400 20164+++ linux-2.6.38.2/arch/x86/vdso/vextern.h 2011-03-21 18:31:35.000000000 -0400
20908@@ -11,6 +11,5 @@ 20165@@ -11,6 +11,5 @@
20909 put into vextern.h and be referenced as a pointer with vdso prefix. 20166 put into vextern.h and be referenced as a pointer with vdso prefix.
20910 The main kernel later fills in the values. */ 20167 The main kernel later fills in the values. */
@@ -20912,9 +20169,9 @@ diff -urNp linux-2.6.38.3/arch/x86/vdso/vextern.h linux-2.6.38.3/arch/x86/vdso/v
20912-VEXTERN(jiffies) 20169-VEXTERN(jiffies)
20913 VEXTERN(vgetcpu_mode) 20170 VEXTERN(vgetcpu_mode)
20914 VEXTERN(vsyscall_gtod_data) 20171 VEXTERN(vsyscall_gtod_data)
20915diff -urNp linux-2.6.38.3/arch/x86/vdso/vma.c linux-2.6.38.3/arch/x86/vdso/vma.c 20172diff -urNp linux-2.6.38.2/arch/x86/vdso/vma.c linux-2.6.38.2/arch/x86/vdso/vma.c
20916--- linux-2.6.38.3/arch/x86/vdso/vma.c 2011-03-14 21:20:32.000000000 -0400 20173--- linux-2.6.38.2/arch/x86/vdso/vma.c 2011-03-14 21:20:32.000000000 -0400
20917+++ linux-2.6.38.3/arch/x86/vdso/vma.c 2011-04-17 15:57:32.000000000 -0400 20174+++ linux-2.6.38.2/arch/x86/vdso/vma.c 2011-03-21 18:31:35.000000000 -0400
20918@@ -58,7 +58,7 @@ static int __init init_vdso_vars(void) 20175@@ -58,7 +58,7 @@ static int __init init_vdso_vars(void)
20919 if (!vbase) 20176 if (!vbase)
20920 goto oom; 20177 goto oom;
@@ -20953,9 +20210,9 @@ diff -urNp linux-2.6.38.3/arch/x86/vdso/vma.c linux-2.6.38.3/arch/x86/vdso/vma.c
20953- return 0; 20210- return 0;
20954-} 20211-}
20955-__setup("vdso=", vdso_setup); 20212-__setup("vdso=", vdso_setup);
20956diff -urNp linux-2.6.38.3/arch/x86/xen/enlighten.c linux-2.6.38.3/arch/x86/xen/enlighten.c 20213diff -urNp linux-2.6.38.2/arch/x86/xen/enlighten.c linux-2.6.38.2/arch/x86/xen/enlighten.c
20957--- linux-2.6.38.3/arch/x86/xen/enlighten.c 2011-03-14 21:20:32.000000000 -0400 20214--- linux-2.6.38.2/arch/x86/xen/enlighten.c 2011-03-14 21:20:32.000000000 -0400
20958+++ linux-2.6.38.3/arch/x86/xen/enlighten.c 2011-04-17 15:57:32.000000000 -0400 20215+++ linux-2.6.38.2/arch/x86/xen/enlighten.c 2011-03-21 18:31:35.000000000 -0400
20959@@ -85,8 +85,6 @@ EXPORT_SYMBOL_GPL(xen_start_info); 20216@@ -85,8 +85,6 @@ EXPORT_SYMBOL_GPL(xen_start_info);
20960 20217
20961 struct shared_info xen_dummy_shared_info; 20218 struct shared_info xen_dummy_shared_info;
@@ -20998,9 +20255,9 @@ diff -urNp linux-2.6.38.3/arch/x86/xen/enlighten.c linux-2.6.38.3/arch/x86/xen/e
20998 xen_smp_init(); 20255 xen_smp_init();
20999 20256
21000 #ifdef CONFIG_ACPI_NUMA 20257 #ifdef CONFIG_ACPI_NUMA
21001diff -urNp linux-2.6.38.3/arch/x86/xen/mmu.c linux-2.6.38.3/arch/x86/xen/mmu.c 20258diff -urNp linux-2.6.38.2/arch/x86/xen/mmu.c linux-2.6.38.2/arch/x86/xen/mmu.c
21002--- linux-2.6.38.3/arch/x86/xen/mmu.c 2011-04-18 17:27:16.000000000 -0400 20259--- linux-2.6.38.2/arch/x86/xen/mmu.c 2011-03-28 17:42:40.000000000 -0400
21003+++ linux-2.6.38.3/arch/x86/xen/mmu.c 2011-04-17 15:57:32.000000000 -0400 20260+++ linux-2.6.38.2/arch/x86/xen/mmu.c 2011-03-28 17:42:53.000000000 -0400
21004@@ -1721,6 +1721,8 @@ __init pgd_t *xen_setup_kernel_pagetable 20261@@ -1721,6 +1721,8 @@ __init pgd_t *xen_setup_kernel_pagetable
21005 convert_pfn_mfn(init_level4_pgt); 20262 convert_pfn_mfn(init_level4_pgt);
21006 convert_pfn_mfn(level3_ident_pgt); 20263 convert_pfn_mfn(level3_ident_pgt);
@@ -21021,9 +20278,9 @@ diff -urNp linux-2.6.38.3/arch/x86/xen/mmu.c linux-2.6.38.3/arch/x86/xen/mmu.c
21021 set_page_prot(level2_kernel_pgt, PAGE_KERNEL_RO); 20278 set_page_prot(level2_kernel_pgt, PAGE_KERNEL_RO);
21022 set_page_prot(level2_fixmap_pgt, PAGE_KERNEL_RO); 20279 set_page_prot(level2_fixmap_pgt, PAGE_KERNEL_RO);
21023 20280
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 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
21025--- linux-2.6.38.3/arch/x86/xen/pci-swiotlb-xen.c 2011-03-14 21:20:32.000000000 -0400 20282--- linux-2.6.38.2/arch/x86/xen/pci-swiotlb-xen.c 2011-03-14 21:20:32.000000000 -0400
21026+++ linux-2.6.38.3/arch/x86/xen/pci-swiotlb-xen.c 2011-04-17 15:57:32.000000000 -0400 20283+++ linux-2.6.38.2/arch/x86/xen/pci-swiotlb-xen.c 2011-03-21 18:31:35.000000000 -0400
21027@@ -10,7 +10,7 @@ 20284@@ -10,7 +10,7 @@
21028 20285
21029 int xen_swiotlb __read_mostly; 20286 int xen_swiotlb __read_mostly;
@@ -21033,9 +20290,9 @@ diff -urNp linux-2.6.38.3/arch/x86/xen/pci-swiotlb-xen.c linux-2.6.38.3/arch/x86
21033 .mapping_error = xen_swiotlb_dma_mapping_error, 20290 .mapping_error = xen_swiotlb_dma_mapping_error,
21034 .alloc_coherent = xen_swiotlb_alloc_coherent, 20291 .alloc_coherent = xen_swiotlb_alloc_coherent,
21035 .free_coherent = xen_swiotlb_free_coherent, 20292 .free_coherent = xen_swiotlb_free_coherent,
21036diff -urNp linux-2.6.38.3/arch/x86/xen/smp.c linux-2.6.38.3/arch/x86/xen/smp.c 20293diff -urNp linux-2.6.38.2/arch/x86/xen/smp.c linux-2.6.38.2/arch/x86/xen/smp.c
21037--- linux-2.6.38.3/arch/x86/xen/smp.c 2011-03-14 21:20:32.000000000 -0400 20294--- linux-2.6.38.2/arch/x86/xen/smp.c 2011-03-14 21:20:32.000000000 -0400
21038+++ linux-2.6.38.3/arch/x86/xen/smp.c 2011-04-17 15:57:32.000000000 -0400 20295+++ linux-2.6.38.2/arch/x86/xen/smp.c 2011-03-21 18:31:35.000000000 -0400
21039@@ -194,11 +194,6 @@ static void __init xen_smp_prepare_boot_ 20296@@ -194,11 +194,6 @@ static void __init xen_smp_prepare_boot_
21040 { 20297 {
21041 BUG_ON(smp_processor_id() != 0); 20298 BUG_ON(smp_processor_id() != 0);
@@ -21064,25 +20321,9 @@ diff -urNp linux-2.6.38.3/arch/x86/xen/smp.c linux-2.6.38.3/arch/x86/xen/smp.c
21064 #else 20321 #else
21065 ctxt->gs_base_kernel = per_cpu_offset(cpu); 20322 ctxt->gs_base_kernel = per_cpu_offset(cpu);
21066 #endif 20323 #endif
21067@@ -315,13 +310,12 @@ static int __cpuinit xen_cpu_up(unsigned 20324diff -urNp linux-2.6.38.2/arch/x86/xen/xen-head.S linux-2.6.38.2/arch/x86/xen/xen-head.S
21068 int rc; 20325--- linux-2.6.38.2/arch/x86/xen/xen-head.S 2011-03-14 21:20:32.000000000 -0400
21069 20326+++ linux-2.6.38.2/arch/x86/xen/xen-head.S 2011-03-21 18:31:35.000000000 -0400
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
21086@@ -19,6 +19,17 @@ ENTRY(startup_xen) 20327@@ -19,6 +19,17 @@ ENTRY(startup_xen)
21087 #ifdef CONFIG_X86_32 20328 #ifdef CONFIG_X86_32
21088 mov %esi,xen_start_info 20329 mov %esi,xen_start_info
@@ -21101,9 +20342,9 @@ diff -urNp linux-2.6.38.3/arch/x86/xen/xen-head.S linux-2.6.38.3/arch/x86/xen/xe
21101 #else 20342 #else
21102 mov %rsi,xen_start_info 20343 mov %rsi,xen_start_info
21103 mov $init_thread_union+THREAD_SIZE,%rsp 20344 mov $init_thread_union+THREAD_SIZE,%rsp
21104diff -urNp linux-2.6.38.3/arch/x86/xen/xen-ops.h linux-2.6.38.3/arch/x86/xen/xen-ops.h 20345diff -urNp linux-2.6.38.2/arch/x86/xen/xen-ops.h linux-2.6.38.2/arch/x86/xen/xen-ops.h
21105--- linux-2.6.38.3/arch/x86/xen/xen-ops.h 2011-03-14 21:20:32.000000000 -0400 20346--- linux-2.6.38.2/arch/x86/xen/xen-ops.h 2011-03-14 21:20:32.000000000 -0400
21106+++ linux-2.6.38.3/arch/x86/xen/xen-ops.h 2011-04-17 15:57:32.000000000 -0400 20347+++ linux-2.6.38.2/arch/x86/xen/xen-ops.h 2011-03-21 18:31:35.000000000 -0400
21107@@ -10,8 +10,6 @@ 20348@@ -10,8 +10,6 @@
21108 extern const char xen_hypervisor_callback[]; 20349 extern const char xen_hypervisor_callback[];
21109 extern const char xen_failsafe_callback[]; 20350 extern const char xen_failsafe_callback[];
@@ -21113,9 +20354,9 @@ diff -urNp linux-2.6.38.3/arch/x86/xen/xen-ops.h linux-2.6.38.3/arch/x86/xen/xen
21113 struct trap_info; 20354 struct trap_info;
21114 void xen_copy_trap_info(struct trap_info *traps); 20355 void xen_copy_trap_info(struct trap_info *traps);
21115 20356
21116diff -urNp linux-2.6.38.3/block/blk-iopoll.c linux-2.6.38.3/block/blk-iopoll.c 20357diff -urNp linux-2.6.38.2/block/blk-iopoll.c linux-2.6.38.2/block/blk-iopoll.c
21117--- linux-2.6.38.3/block/blk-iopoll.c 2011-03-14 21:20:32.000000000 -0400 20358--- linux-2.6.38.2/block/blk-iopoll.c 2011-03-14 21:20:32.000000000 -0400
21118+++ linux-2.6.38.3/block/blk-iopoll.c 2011-04-17 15:57:32.000000000 -0400 20359+++ linux-2.6.38.2/block/blk-iopoll.c 2011-03-21 18:31:35.000000000 -0400
21119@@ -77,7 +77,7 @@ void blk_iopoll_complete(struct blk_iopo 20360@@ -77,7 +77,7 @@ void blk_iopoll_complete(struct blk_iopo
21120 } 20361 }
21121 EXPORT_SYMBOL(blk_iopoll_complete); 20362 EXPORT_SYMBOL(blk_iopoll_complete);
@@ -21125,9 +20366,9 @@ diff -urNp linux-2.6.38.3/block/blk-iopoll.c linux-2.6.38.3/block/blk-iopoll.c
21125 { 20366 {
21126 struct list_head *list = &__get_cpu_var(blk_cpu_iopoll); 20367 struct list_head *list = &__get_cpu_var(blk_cpu_iopoll);
21127 int rearm = 0, budget = blk_iopoll_budget; 20368 int rearm = 0, budget = blk_iopoll_budget;
21128diff -urNp linux-2.6.38.3/block/blk-map.c linux-2.6.38.3/block/blk-map.c 20369diff -urNp linux-2.6.38.2/block/blk-map.c linux-2.6.38.2/block/blk-map.c
21129--- linux-2.6.38.3/block/blk-map.c 2011-03-14 21:20:32.000000000 -0400 20370--- linux-2.6.38.2/block/blk-map.c 2011-03-14 21:20:32.000000000 -0400
21130+++ linux-2.6.38.3/block/blk-map.c 2011-04-17 15:57:32.000000000 -0400 20371+++ linux-2.6.38.2/block/blk-map.c 2011-03-21 18:31:35.000000000 -0400
21131@@ -301,7 +301,7 @@ int blk_rq_map_kern(struct request_queue 20372@@ -301,7 +301,7 @@ int blk_rq_map_kern(struct request_queue
21132 if (!len || !kbuf) 20373 if (!len || !kbuf)
21133 return -EINVAL; 20374 return -EINVAL;
@@ -21137,9 +20378,9 @@ diff -urNp linux-2.6.38.3/block/blk-map.c linux-2.6.38.3/block/blk-map.c
21137 if (do_copy) 20378 if (do_copy)
21138 bio = bio_copy_kern(q, kbuf, len, gfp_mask, reading); 20379 bio = bio_copy_kern(q, kbuf, len, gfp_mask, reading);
21139 else 20380 else
21140diff -urNp linux-2.6.38.3/block/blk-softirq.c linux-2.6.38.3/block/blk-softirq.c 20381diff -urNp linux-2.6.38.2/block/blk-softirq.c linux-2.6.38.2/block/blk-softirq.c
21141--- linux-2.6.38.3/block/blk-softirq.c 2011-03-14 21:20:32.000000000 -0400 20382--- linux-2.6.38.2/block/blk-softirq.c 2011-03-14 21:20:32.000000000 -0400
21142+++ linux-2.6.38.3/block/blk-softirq.c 2011-04-17 15:57:32.000000000 -0400 20383+++ linux-2.6.38.2/block/blk-softirq.c 2011-03-21 18:31:35.000000000 -0400
21143@@ -17,7 +17,7 @@ static DEFINE_PER_CPU(struct list_head, 20384@@ -17,7 +17,7 @@ static DEFINE_PER_CPU(struct list_head,
21144 * Softirq action handler - move entries to local list and loop over them 20385 * Softirq action handler - move entries to local list and loop over them
21145 * while passing them to the queue registered handler. 20386 * while passing them to the queue registered handler.
@@ -21149,93 +20390,9 @@ diff -urNp linux-2.6.38.3/block/blk-softirq.c linux-2.6.38.3/block/blk-softirq.c
21149 { 20390 {
21150 struct list_head *cpu_list, local_list; 20391 struct list_head *cpu_list, local_list;
21151 20392
21152diff -urNp linux-2.6.38.3/block/bsg.c linux-2.6.38.3/block/bsg.c 20393diff -urNp linux-2.6.38.2/crypto/lrw.c linux-2.6.38.2/crypto/lrw.c
21153--- linux-2.6.38.3/block/bsg.c 2011-03-14 21:20:32.000000000 -0400 20394--- linux-2.6.38.2/crypto/lrw.c 2011-03-14 21:20:32.000000000 -0400
21154+++ linux-2.6.38.3/block/bsg.c 2011-04-17 15:57:32.000000000 -0400 20395+++ linux-2.6.38.2/crypto/lrw.c 2011-03-21 18:31:35.000000000 -0400
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
21239@@ -60,7 +60,7 @@ static int setkey(struct crypto_tfm *par 20396@@ -60,7 +60,7 @@ static int setkey(struct crypto_tfm *par
21240 struct priv *ctx = crypto_tfm_ctx(parent); 20397 struct priv *ctx = crypto_tfm_ctx(parent);
21241 struct crypto_cipher *child = ctx->child; 20398 struct crypto_cipher *child = ctx->child;
@@ -21245,9 +20402,9 @@ diff -urNp linux-2.6.38.3/crypto/lrw.c linux-2.6.38.3/crypto/lrw.c
21245 int bsize = crypto_cipher_blocksize(child); 20402 int bsize = crypto_cipher_blocksize(child);
21246 20403
21247 crypto_cipher_clear_flags(child, CRYPTO_TFM_REQ_MASK); 20404 crypto_cipher_clear_flags(child, CRYPTO_TFM_REQ_MASK);
21248diff -urNp linux-2.6.38.3/Documentation/dontdiff linux-2.6.38.3/Documentation/dontdiff 20405diff -urNp linux-2.6.38.2/Documentation/dontdiff linux-2.6.38.2/Documentation/dontdiff
21249--- linux-2.6.38.3/Documentation/dontdiff 2011-03-14 21:20:32.000000000 -0400 20406--- linux-2.6.38.2/Documentation/dontdiff 2011-03-14 21:20:32.000000000 -0400
21250+++ linux-2.6.38.3/Documentation/dontdiff 2011-04-17 15:57:32.000000000 -0400 20407+++ linux-2.6.38.2/Documentation/dontdiff 2011-03-21 18:31:35.000000000 -0400
21251@@ -3,6 +3,7 @@ 20408@@ -3,6 +3,7 @@
21252 *.bin 20409 *.bin
21253 *.cpio 20410 *.cpio
@@ -21373,9 +20530,9 @@ diff -urNp linux-2.6.38.3/Documentation/dontdiff linux-2.6.38.3/Documentation/do
21373 wakeup.bin 20530 wakeup.bin
21374 wakeup.elf 20531 wakeup.elf
21375 wakeup.lds 20532 wakeup.lds
21376diff -urNp linux-2.6.38.3/Documentation/filesystems/sysfs.txt linux-2.6.38.3/Documentation/filesystems/sysfs.txt 20533diff -urNp linux-2.6.38.2/Documentation/filesystems/sysfs.txt linux-2.6.38.2/Documentation/filesystems/sysfs.txt
21377--- linux-2.6.38.3/Documentation/filesystems/sysfs.txt 2011-03-14 21:20:32.000000000 -0400 20534--- linux-2.6.38.2/Documentation/filesystems/sysfs.txt 2011-03-14 21:20:32.000000000 -0400
21378+++ linux-2.6.38.3/Documentation/filesystems/sysfs.txt 2011-04-17 15:57:32.000000000 -0400 20535+++ linux-2.6.38.2/Documentation/filesystems/sysfs.txt 2011-03-21 18:31:35.000000000 -0400
21379@@ -123,8 +123,8 @@ set of sysfs operations for forwarding r 20536@@ -123,8 +123,8 @@ set of sysfs operations for forwarding r
21380 show and store methods of the attribute owners. 20537 show and store methods of the attribute owners.
21381 20538
@@ -21387,9 +20544,9 @@ diff -urNp linux-2.6.38.3/Documentation/filesystems/sysfs.txt linux-2.6.38.3/Doc
21387 }; 20544 };
21388 20545
21389 [ Subsystems should have already defined a struct kobj_type as a 20546 [ Subsystems should have already defined a struct kobj_type as a
21390diff -urNp linux-2.6.38.3/Documentation/kernel-parameters.txt linux-2.6.38.3/Documentation/kernel-parameters.txt 20547diff -urNp linux-2.6.38.2/Documentation/kernel-parameters.txt linux-2.6.38.2/Documentation/kernel-parameters.txt
21391--- linux-2.6.38.3/Documentation/kernel-parameters.txt 2011-03-14 21:20:32.000000000 -0400 20548--- linux-2.6.38.2/Documentation/kernel-parameters.txt 2011-03-14 21:20:32.000000000 -0400
21392+++ linux-2.6.38.3/Documentation/kernel-parameters.txt 2011-04-17 15:57:32.000000000 -0400 20549+++ linux-2.6.38.2/Documentation/kernel-parameters.txt 2011-03-21 18:31:35.000000000 -0400
21393@@ -1853,6 +1853,13 @@ bytes respectively. Such letter suffixes 20550@@ -1853,6 +1853,13 @@ bytes respectively. Such letter suffixes
21394 the specified number of seconds. This is to be used if 20551 the specified number of seconds. This is to be used if
21395 your oopses keep scrolling off the screen. 20552 your oopses keep scrolling off the screen.
@@ -21404,9 +20561,9 @@ diff -urNp linux-2.6.38.3/Documentation/kernel-parameters.txt linux-2.6.38.3/Doc
21404 pcbit= [HW,ISDN] 20561 pcbit= [HW,ISDN]
21405 20562
21406 pcd. [PARIDE] 20563 pcd. [PARIDE]
21407diff -urNp linux-2.6.38.3/drivers/acpi/battery.c linux-2.6.38.3/drivers/acpi/battery.c 20564diff -urNp linux-2.6.38.2/drivers/acpi/battery.c linux-2.6.38.2/drivers/acpi/battery.c
21408--- linux-2.6.38.3/drivers/acpi/battery.c 2011-03-14 21:20:32.000000000 -0400 20565--- linux-2.6.38.2/drivers/acpi/battery.c 2011-03-14 21:20:32.000000000 -0400
21409+++ linux-2.6.38.3/drivers/acpi/battery.c 2011-04-17 15:57:32.000000000 -0400 20566+++ linux-2.6.38.2/drivers/acpi/battery.c 2011-03-21 18:31:35.000000000 -0400
21410@@ -862,7 +862,7 @@ DECLARE_FILE_FUNCTIONS(alarm); 20567@@ -862,7 +862,7 @@ DECLARE_FILE_FUNCTIONS(alarm);
21411 } 20568 }
21412 20569
@@ -21416,9 +20573,9 @@ diff -urNp linux-2.6.38.3/drivers/acpi/battery.c linux-2.6.38.3/drivers/acpi/bat
21416 mode_t mode; 20573 mode_t mode;
21417 const char *name; 20574 const char *name;
21418 } acpi_battery_file[] = { 20575 } acpi_battery_file[] = {
21419diff -urNp linux-2.6.38.3/drivers/acpi/blacklist.c linux-2.6.38.3/drivers/acpi/blacklist.c 20576diff -urNp linux-2.6.38.2/drivers/acpi/blacklist.c linux-2.6.38.2/drivers/acpi/blacklist.c
21420--- linux-2.6.38.3/drivers/acpi/blacklist.c 2011-03-14 21:20:32.000000000 -0400 20577--- linux-2.6.38.2/drivers/acpi/blacklist.c 2011-03-14 21:20:32.000000000 -0400
21421+++ linux-2.6.38.3/drivers/acpi/blacklist.c 2011-04-17 15:57:32.000000000 -0400 20578+++ linux-2.6.38.2/drivers/acpi/blacklist.c 2011-03-21 18:31:35.000000000 -0400
21422@@ -73,7 +73,7 @@ static struct acpi_blacklist_item acpi_b 20579@@ -73,7 +73,7 @@ static struct acpi_blacklist_item acpi_b
21423 {"IBM ", "TP600E ", 0x00000105, ACPI_SIG_DSDT, less_than_or_equal, 20580 {"IBM ", "TP600E ", 0x00000105, ACPI_SIG_DSDT, less_than_or_equal,
21424 "Incorrect _ADR", 1}, 20581 "Incorrect _ADR", 1},
@@ -21428,9 +20585,9 @@ diff -urNp linux-2.6.38.3/drivers/acpi/blacklist.c linux-2.6.38.3/drivers/acpi/b
21428 }; 20585 };
21429 20586
21430 #if CONFIG_ACPI_BLACKLIST_YEAR 20587 #if CONFIG_ACPI_BLACKLIST_YEAR
21431diff -urNp linux-2.6.38.3/drivers/acpi/dock.c linux-2.6.38.3/drivers/acpi/dock.c 20588diff -urNp linux-2.6.38.2/drivers/acpi/dock.c linux-2.6.38.2/drivers/acpi/dock.c
21432--- linux-2.6.38.3/drivers/acpi/dock.c 2011-03-14 21:20:32.000000000 -0400 20589--- linux-2.6.38.2/drivers/acpi/dock.c 2011-03-14 21:20:32.000000000 -0400
21433+++ linux-2.6.38.3/drivers/acpi/dock.c 2011-04-17 15:57:32.000000000 -0400 20590+++ linux-2.6.38.2/drivers/acpi/dock.c 2011-03-21 18:31:35.000000000 -0400
21434@@ -77,7 +77,7 @@ struct dock_dependent_device { 20591@@ -77,7 +77,7 @@ struct dock_dependent_device {
21435 struct list_head list; 20592 struct list_head list;
21436 struct list_head hotplug_list; 20593 struct list_head hotplug_list;
@@ -21449,9 +20606,9 @@ diff -urNp linux-2.6.38.3/drivers/acpi/dock.c linux-2.6.38.3/drivers/acpi/dock.c
21449 void *context) 20606 void *context)
21450 { 20607 {
21451 struct dock_dependent_device *dd; 20608 struct dock_dependent_device *dd;
21452diff -urNp linux-2.6.38.3/drivers/acpi/ec_sys.c linux-2.6.38.3/drivers/acpi/ec_sys.c 20609diff -urNp linux-2.6.38.2/drivers/acpi/ec_sys.c linux-2.6.38.2/drivers/acpi/ec_sys.c
21453--- linux-2.6.38.3/drivers/acpi/ec_sys.c 2011-03-14 21:20:32.000000000 -0400 20610--- linux-2.6.38.2/drivers/acpi/ec_sys.c 2011-03-14 21:20:32.000000000 -0400
21454+++ linux-2.6.38.3/drivers/acpi/ec_sys.c 2011-04-17 15:57:32.000000000 -0400 20611+++ linux-2.6.38.2/drivers/acpi/ec_sys.c 2011-03-21 18:31:35.000000000 -0400
21455@@ -96,7 +96,7 @@ static ssize_t acpi_ec_write_io(struct f 20612@@ -96,7 +96,7 @@ static ssize_t acpi_ec_write_io(struct f
21456 return count; 20613 return count;
21457 } 20614 }
@@ -21461,9 +20618,9 @@ diff -urNp linux-2.6.38.3/drivers/acpi/ec_sys.c linux-2.6.38.3/drivers/acpi/ec_s
21461 .owner = THIS_MODULE, 20618 .owner = THIS_MODULE,
21462 .open = acpi_ec_open_io, 20619 .open = acpi_ec_open_io,
21463 .read = acpi_ec_read_io, 20620 .read = acpi_ec_read_io,
21464diff -urNp linux-2.6.38.3/drivers/acpi/power_meter.c linux-2.6.38.3/drivers/acpi/power_meter.c 20621diff -urNp linux-2.6.38.2/drivers/acpi/power_meter.c linux-2.6.38.2/drivers/acpi/power_meter.c
21465--- linux-2.6.38.3/drivers/acpi/power_meter.c 2011-03-14 21:20:32.000000000 -0400 20622--- linux-2.6.38.2/drivers/acpi/power_meter.c 2011-03-14 21:20:32.000000000 -0400
21466+++ linux-2.6.38.3/drivers/acpi/power_meter.c 2011-04-17 15:57:32.000000000 -0400 20623+++ linux-2.6.38.2/drivers/acpi/power_meter.c 2011-03-21 18:31:35.000000000 -0400
21467@@ -316,8 +316,6 @@ static ssize_t set_trip(struct device *d 20624@@ -316,8 +316,6 @@ static ssize_t set_trip(struct device *d
21468 return res; 20625 return res;
21469 20626
@@ -21473,9 +20630,9 @@ diff -urNp linux-2.6.38.3/drivers/acpi/power_meter.c linux-2.6.38.3/drivers/acpi
21473 20630
21474 mutex_lock(&resource->lock); 20631 mutex_lock(&resource->lock);
21475 resource->trip[attr->index - 7] = temp; 20632 resource->trip[attr->index - 7] = temp;
21476diff -urNp linux-2.6.38.3/drivers/acpi/proc.c linux-2.6.38.3/drivers/acpi/proc.c 20633diff -urNp linux-2.6.38.2/drivers/acpi/proc.c linux-2.6.38.2/drivers/acpi/proc.c
21477--- linux-2.6.38.3/drivers/acpi/proc.c 2011-03-14 21:20:32.000000000 -0400 20634--- linux-2.6.38.2/drivers/acpi/proc.c 2011-03-14 21:20:32.000000000 -0400
21478+++ linux-2.6.38.3/drivers/acpi/proc.c 2011-04-17 15:57:32.000000000 -0400 20635+++ linux-2.6.38.2/drivers/acpi/proc.c 2011-03-21 18:31:35.000000000 -0400
21479@@ -342,19 +342,13 @@ acpi_system_write_wakeup_device(struct f 20636@@ -342,19 +342,13 @@ acpi_system_write_wakeup_device(struct f
21480 size_t count, loff_t * ppos) 20637 size_t count, loff_t * ppos)
21481 { 20638 {
@@ -21510,9 +20667,9 @@ diff -urNp linux-2.6.38.3/drivers/acpi/proc.c linux-2.6.38.3/drivers/acpi/proc.c
21510 if (device_can_wakeup(&dev->dev)) { 20667 if (device_can_wakeup(&dev->dev)) {
21511 bool enable = !device_may_wakeup(&dev->dev); 20668 bool enable = !device_may_wakeup(&dev->dev);
21512 device_set_wakeup_enable(&dev->dev, enable); 20669 device_set_wakeup_enable(&dev->dev, enable);
21513diff -urNp linux-2.6.38.3/drivers/acpi/processor_driver.c linux-2.6.38.3/drivers/acpi/processor_driver.c 20670diff -urNp linux-2.6.38.2/drivers/acpi/processor_driver.c linux-2.6.38.2/drivers/acpi/processor_driver.c
21514--- linux-2.6.38.3/drivers/acpi/processor_driver.c 2011-03-14 21:20:32.000000000 -0400 20671--- linux-2.6.38.2/drivers/acpi/processor_driver.c 2011-03-14 21:20:32.000000000 -0400
21515+++ linux-2.6.38.3/drivers/acpi/processor_driver.c 2011-04-17 15:57:32.000000000 -0400 20672+++ linux-2.6.38.2/drivers/acpi/processor_driver.c 2011-03-21 18:31:35.000000000 -0400
21516@@ -473,7 +473,7 @@ static int __cpuinit acpi_processor_add( 20673@@ -473,7 +473,7 @@ static int __cpuinit acpi_processor_add(
21517 return 0; 20674 return 0;
21518 #endif 20675 #endif
@@ -21522,9 +20679,9 @@ diff -urNp linux-2.6.38.3/drivers/acpi/processor_driver.c linux-2.6.38.3/drivers
21522 20679
21523 /* 20680 /*
21524 * Buggy BIOS check 20681 * Buggy BIOS check
21525diff -urNp linux-2.6.38.3/drivers/acpi/processor_idle.c linux-2.6.38.3/drivers/acpi/processor_idle.c 20682diff -urNp linux-2.6.38.2/drivers/acpi/processor_idle.c linux-2.6.38.2/drivers/acpi/processor_idle.c
21526--- linux-2.6.38.3/drivers/acpi/processor_idle.c 2011-03-14 21:20:32.000000000 -0400 20683--- linux-2.6.38.2/drivers/acpi/processor_idle.c 2011-03-14 21:20:32.000000000 -0400
21527+++ linux-2.6.38.3/drivers/acpi/processor_idle.c 2011-04-17 15:57:32.000000000 -0400 20684+++ linux-2.6.38.2/drivers/acpi/processor_idle.c 2011-03-21 18:31:35.000000000 -0400
21528@@ -121,7 +121,7 @@ static struct dmi_system_id __cpuinitdat 20685@@ -121,7 +121,7 @@ static struct dmi_system_id __cpuinitdat
21529 DMI_MATCH(DMI_SYS_VENDOR, "ASUSTeK Computer Inc."), 20686 DMI_MATCH(DMI_SYS_VENDOR, "ASUSTeK Computer Inc."),
21530 DMI_MATCH(DMI_PRODUCT_NAME,"L8400B series Notebook PC")}, 20687 DMI_MATCH(DMI_PRODUCT_NAME,"L8400B series Notebook PC")},
@@ -21534,9 +20691,9 @@ diff -urNp linux-2.6.38.3/drivers/acpi/processor_idle.c linux-2.6.38.3/drivers/a
21534 }; 20691 };
21535 20692
21536 20693
21537diff -urNp linux-2.6.38.3/drivers/ata/acard-ahci.c linux-2.6.38.3/drivers/ata/acard-ahci.c 20694diff -urNp linux-2.6.38.2/drivers/ata/acard-ahci.c linux-2.6.38.2/drivers/ata/acard-ahci.c
21538--- linux-2.6.38.3/drivers/ata/acard-ahci.c 2011-03-14 21:20:32.000000000 -0400 20695--- linux-2.6.38.2/drivers/ata/acard-ahci.c 2011-03-14 21:20:32.000000000 -0400
21539+++ linux-2.6.38.3/drivers/ata/acard-ahci.c 2011-04-17 15:57:32.000000000 -0400 20696+++ linux-2.6.38.2/drivers/ata/acard-ahci.c 2011-03-21 18:31:35.000000000 -0400
21540@@ -87,7 +87,7 @@ static struct scsi_host_template acard_a 20697@@ -87,7 +87,7 @@ static struct scsi_host_template acard_a
21541 AHCI_SHT("acard-ahci"), 20698 AHCI_SHT("acard-ahci"),
21542 }; 20699 };
@@ -21546,9 +20703,9 @@ diff -urNp linux-2.6.38.3/drivers/ata/acard-ahci.c linux-2.6.38.3/drivers/ata/ac
21546 .inherits = &ahci_ops, 20703 .inherits = &ahci_ops,
21547 .qc_prep = acard_ahci_qc_prep, 20704 .qc_prep = acard_ahci_qc_prep,
21548 .qc_fill_rtf = acard_ahci_qc_fill_rtf, 20705 .qc_fill_rtf = acard_ahci_qc_fill_rtf,
21549diff -urNp linux-2.6.38.3/drivers/ata/ahci.c linux-2.6.38.3/drivers/ata/ahci.c 20706diff -urNp linux-2.6.38.2/drivers/ata/ahci.c linux-2.6.38.2/drivers/ata/ahci.c
21550--- linux-2.6.38.3/drivers/ata/ahci.c 2011-04-18 17:27:13.000000000 -0400 20707--- linux-2.6.38.2/drivers/ata/ahci.c 2011-03-23 17:20:06.000000000 -0400
21551+++ linux-2.6.38.3/drivers/ata/ahci.c 2011-04-17 15:57:32.000000000 -0400 20708+++ linux-2.6.38.2/drivers/ata/ahci.c 2011-03-23 17:21:49.000000000 -0400
21552@@ -94,17 +94,17 @@ static struct scsi_host_template ahci_sh 20709@@ -94,17 +94,17 @@ static struct scsi_host_template ahci_sh
21553 AHCI_SHT("ahci"), 20710 AHCI_SHT("ahci"),
21554 }; 20711 };
@@ -21579,9 +20736,9 @@ diff -urNp linux-2.6.38.3/drivers/ata/ahci.c linux-2.6.38.3/drivers/ata/ahci.c
21579 }; 20736 };
21580 20737
21581 20738
21582diff -urNp linux-2.6.38.3/drivers/ata/ahci.h linux-2.6.38.3/drivers/ata/ahci.h 20739diff -urNp linux-2.6.38.2/drivers/ata/ahci.h linux-2.6.38.2/drivers/ata/ahci.h
21583--- linux-2.6.38.3/drivers/ata/ahci.h 2011-03-14 21:20:32.000000000 -0400 20740--- linux-2.6.38.2/drivers/ata/ahci.h 2011-03-14 21:20:32.000000000 -0400
21584+++ linux-2.6.38.3/drivers/ata/ahci.h 2011-04-17 15:57:32.000000000 -0400 20741+++ linux-2.6.38.2/drivers/ata/ahci.h 2011-03-21 18:31:35.000000000 -0400
21585@@ -309,7 +309,7 @@ extern struct device_attribute *ahci_sde 20742@@ -309,7 +309,7 @@ extern struct device_attribute *ahci_sde
21586 .shost_attrs = ahci_shost_attrs, \ 20743 .shost_attrs = ahci_shost_attrs, \
21587 .sdev_attrs = ahci_sdev_attrs 20744 .sdev_attrs = ahci_sdev_attrs
@@ -21591,9 +20748,9 @@ diff -urNp linux-2.6.38.3/drivers/ata/ahci.h linux-2.6.38.3/drivers/ata/ahci.h
21591 20748
21592 void ahci_fill_cmd_slot(struct ahci_port_priv *pp, unsigned int tag, 20749 void ahci_fill_cmd_slot(struct ahci_port_priv *pp, unsigned int tag,
21593 u32 opts); 20750 u32 opts);
21594diff -urNp linux-2.6.38.3/drivers/ata/ata_generic.c linux-2.6.38.3/drivers/ata/ata_generic.c 20751diff -urNp linux-2.6.38.2/drivers/ata/ata_generic.c linux-2.6.38.2/drivers/ata/ata_generic.c
21595--- linux-2.6.38.3/drivers/ata/ata_generic.c 2011-03-14 21:20:32.000000000 -0400 20752--- linux-2.6.38.2/drivers/ata/ata_generic.c 2011-03-14 21:20:32.000000000 -0400
21596+++ linux-2.6.38.3/drivers/ata/ata_generic.c 2011-04-17 15:57:32.000000000 -0400 20753+++ linux-2.6.38.2/drivers/ata/ata_generic.c 2011-03-21 18:31:35.000000000 -0400
21597@@ -101,7 +101,7 @@ static struct scsi_host_template generic 20754@@ -101,7 +101,7 @@ static struct scsi_host_template generic
21598 ATA_BMDMA_SHT(DRV_NAME), 20755 ATA_BMDMA_SHT(DRV_NAME),
21599 }; 20756 };
@@ -21603,9 +20760,9 @@ diff -urNp linux-2.6.38.3/drivers/ata/ata_generic.c linux-2.6.38.3/drivers/ata/a
21603 .inherits = &ata_bmdma_port_ops, 20760 .inherits = &ata_bmdma_port_ops,
21604 .cable_detect = ata_cable_unknown, 20761 .cable_detect = ata_cable_unknown,
21605 .set_mode = generic_set_mode, 20762 .set_mode = generic_set_mode,
21606diff -urNp linux-2.6.38.3/drivers/ata/ata_piix.c linux-2.6.38.3/drivers/ata/ata_piix.c 20763diff -urNp linux-2.6.38.2/drivers/ata/ata_piix.c linux-2.6.38.2/drivers/ata/ata_piix.c
21607--- linux-2.6.38.3/drivers/ata/ata_piix.c 2011-03-14 21:20:32.000000000 -0400 20764--- linux-2.6.38.2/drivers/ata/ata_piix.c 2011-03-14 21:20:32.000000000 -0400
21608+++ linux-2.6.38.3/drivers/ata/ata_piix.c 2011-04-17 15:57:32.000000000 -0400 20765+++ linux-2.6.38.2/drivers/ata/ata_piix.c 2011-03-21 18:31:35.000000000 -0400
21609@@ -309,7 +309,7 @@ static const struct pci_device_id piix_p 20766@@ -309,7 +309,7 @@ static const struct pci_device_id piix_p
21610 { 0x8086, 0x1d00, PCI_ANY_ID, PCI_ANY_ID, 0, 0, ich8_sata }, 20767 { 0x8086, 0x1d00, PCI_ANY_ID, PCI_ANY_ID, 0, 0, ich8_sata },
21611 /* SATA Controller IDE (PBG) */ 20768 /* SATA Controller IDE (PBG) */
@@ -21672,9 +20829,9 @@ diff -urNp linux-2.6.38.3/drivers/ata/ata_piix.c linux-2.6.38.3/drivers/ata/ata_
21672 }; 20829 };
21673 static const char *oemstrs[] = { 20830 static const char *oemstrs[] = {
21674 "Tecra M3,", 20831 "Tecra M3,",
21675diff -urNp linux-2.6.38.3/drivers/ata/libahci.c linux-2.6.38.3/drivers/ata/libahci.c 20832diff -urNp linux-2.6.38.2/drivers/ata/libahci.c linux-2.6.38.2/drivers/ata/libahci.c
21676--- linux-2.6.38.3/drivers/ata/libahci.c 2011-03-14 21:20:32.000000000 -0400 20833--- linux-2.6.38.2/drivers/ata/libahci.c 2011-03-14 21:20:32.000000000 -0400
21677+++ linux-2.6.38.3/drivers/ata/libahci.c 2011-04-17 15:57:32.000000000 -0400 20834+++ linux-2.6.38.2/drivers/ata/libahci.c 2011-03-21 18:31:35.000000000 -0400
21678@@ -137,7 +137,7 @@ struct device_attribute *ahci_sdev_attrs 20835@@ -137,7 +137,7 @@ struct device_attribute *ahci_sdev_attrs
21679 }; 20836 };
21680 EXPORT_SYMBOL_GPL(ahci_sdev_attrs); 20837 EXPORT_SYMBOL_GPL(ahci_sdev_attrs);
@@ -21684,9 +20841,9 @@ diff -urNp linux-2.6.38.3/drivers/ata/libahci.c linux-2.6.38.3/drivers/ata/libah
21684 .inherits = &sata_pmp_port_ops, 20841 .inherits = &sata_pmp_port_ops,
21685 20842
21686 .qc_defer = ahci_pmp_qc_defer, 20843 .qc_defer = ahci_pmp_qc_defer,
21687diff -urNp linux-2.6.38.3/drivers/ata/libata-acpi.c linux-2.6.38.3/drivers/ata/libata-acpi.c 20844diff -urNp linux-2.6.38.2/drivers/ata/libata-acpi.c linux-2.6.38.2/drivers/ata/libata-acpi.c
21688--- linux-2.6.38.3/drivers/ata/libata-acpi.c 2011-03-14 21:20:32.000000000 -0400 20845--- linux-2.6.38.2/drivers/ata/libata-acpi.c 2011-03-14 21:20:32.000000000 -0400
21689+++ linux-2.6.38.3/drivers/ata/libata-acpi.c 2011-04-17 15:57:32.000000000 -0400 20846+++ linux-2.6.38.2/drivers/ata/libata-acpi.c 2011-03-21 18:31:35.000000000 -0400
21690@@ -218,12 +218,12 @@ static void ata_acpi_dev_uevent(acpi_han 20847@@ -218,12 +218,12 @@ static void ata_acpi_dev_uevent(acpi_han
21691 ata_acpi_uevent(dev->link->ap, dev, event); 20848 ata_acpi_uevent(dev->link->ap, dev, event);
21692 } 20849 }
@@ -21702,9 +20859,9 @@ diff -urNp linux-2.6.38.3/drivers/ata/libata-acpi.c linux-2.6.38.3/drivers/ata/l
21702 .handler = ata_acpi_ap_notify_dock, 20859 .handler = ata_acpi_ap_notify_dock,
21703 .uevent = ata_acpi_ap_uevent, 20860 .uevent = ata_acpi_ap_uevent,
21704 }; 20861 };
21705diff -urNp linux-2.6.38.3/drivers/ata/libata-core.c linux-2.6.38.3/drivers/ata/libata-core.c 20862diff -urNp linux-2.6.38.2/drivers/ata/libata-core.c linux-2.6.38.2/drivers/ata/libata-core.c
21706--- linux-2.6.38.3/drivers/ata/libata-core.c 2011-03-14 21:20:32.000000000 -0400 20863--- linux-2.6.38.2/drivers/ata/libata-core.c 2011-03-14 21:20:32.000000000 -0400
21707+++ linux-2.6.38.3/drivers/ata/libata-core.c 2011-04-17 15:57:32.000000000 -0400 20864+++ linux-2.6.38.2/drivers/ata/libata-core.c 2011-03-21 18:31:35.000000000 -0400
21708@@ -897,7 +897,7 @@ static const struct ata_xfer_ent { 20865@@ -897,7 +897,7 @@ static const struct ata_xfer_ent {
21709 { ATA_SHIFT_PIO, ATA_NR_PIO_MODES, XFER_PIO_0 }, 20866 { ATA_SHIFT_PIO, ATA_NR_PIO_MODES, XFER_PIO_0 },
21710 { ATA_SHIFT_MWDMA, ATA_NR_MWDMA_MODES, XFER_MW_DMA_0 }, 20867 { ATA_SHIFT_MWDMA, ATA_NR_MWDMA_MODES, XFER_MW_DMA_0 },
@@ -21796,9 +20953,9 @@ diff -urNp linux-2.6.38.3/drivers/ata/libata-core.c linux-2.6.38.3/drivers/ata/l
21796 .qc_prep = ata_noop_qc_prep, 20953 .qc_prep = ata_noop_qc_prep,
21797 .qc_issue = ata_dummy_qc_issue, 20954 .qc_issue = ata_dummy_qc_issue,
21798 .error_handler = ata_dummy_error_handler, 20955 .error_handler = ata_dummy_error_handler,
21799diff -urNp linux-2.6.38.3/drivers/ata/libata-eh.c linux-2.6.38.3/drivers/ata/libata-eh.c 20956diff -urNp linux-2.6.38.2/drivers/ata/libata-eh.c linux-2.6.38.2/drivers/ata/libata-eh.c
21800--- linux-2.6.38.3/drivers/ata/libata-eh.c 2011-04-18 17:27:13.000000000 -0400 20957--- linux-2.6.38.2/drivers/ata/libata-eh.c 2011-03-23 17:20:06.000000000 -0400
21801+++ linux-2.6.38.3/drivers/ata/libata-eh.c 2011-04-17 15:57:32.000000000 -0400 20958+++ linux-2.6.38.2/drivers/ata/libata-eh.c 2011-03-23 17:21:49.000000000 -0400
21802@@ -3880,7 +3880,7 @@ void ata_do_eh(struct ata_port *ap, ata_ 20959@@ -3880,7 +3880,7 @@ void ata_do_eh(struct ata_port *ap, ata_
21803 */ 20960 */
21804 void ata_std_error_handler(struct ata_port *ap) 20961 void ata_std_error_handler(struct ata_port *ap)
@@ -21808,9 +20965,9 @@ diff -urNp linux-2.6.38.3/drivers/ata/libata-eh.c linux-2.6.38.3/drivers/ata/lib
21808 ata_reset_fn_t hardreset = ops->hardreset; 20965 ata_reset_fn_t hardreset = ops->hardreset;
21809 20966
21810 /* ignore built-in hardreset if SCR access is not available */ 20967 /* ignore built-in hardreset if SCR access is not available */
21811diff -urNp linux-2.6.38.3/drivers/ata/libata-pmp.c linux-2.6.38.3/drivers/ata/libata-pmp.c 20968diff -urNp linux-2.6.38.2/drivers/ata/libata-pmp.c linux-2.6.38.2/drivers/ata/libata-pmp.c
21812--- linux-2.6.38.3/drivers/ata/libata-pmp.c 2011-03-14 21:20:32.000000000 -0400 20969--- linux-2.6.38.2/drivers/ata/libata-pmp.c 2011-03-14 21:20:32.000000000 -0400
21813+++ linux-2.6.38.3/drivers/ata/libata-pmp.c 2011-04-17 15:57:32.000000000 -0400 20970+++ linux-2.6.38.2/drivers/ata/libata-pmp.c 2011-03-21 18:31:35.000000000 -0400
21814@@ -912,7 +912,7 @@ static int sata_pmp_handle_link_fail(str 20971@@ -912,7 +912,7 @@ static int sata_pmp_handle_link_fail(str
21815 */ 20972 */
21816 static int sata_pmp_eh_recover(struct ata_port *ap) 20973 static int sata_pmp_eh_recover(struct ata_port *ap)
@@ -21820,9 +20977,9 @@ diff -urNp linux-2.6.38.3/drivers/ata/libata-pmp.c linux-2.6.38.3/drivers/ata/li
21820 int pmp_tries, link_tries[SATA_PMP_MAX_PORTS]; 20977 int pmp_tries, link_tries[SATA_PMP_MAX_PORTS];
21821 struct ata_link *pmp_link = &ap->link; 20978 struct ata_link *pmp_link = &ap->link;
21822 struct ata_device *pmp_dev = pmp_link->device; 20979 struct ata_device *pmp_dev = pmp_link->device;
21823diff -urNp linux-2.6.38.3/drivers/ata/pata_acpi.c linux-2.6.38.3/drivers/ata/pata_acpi.c 20980diff -urNp linux-2.6.38.2/drivers/ata/pata_acpi.c linux-2.6.38.2/drivers/ata/pata_acpi.c
21824--- linux-2.6.38.3/drivers/ata/pata_acpi.c 2011-03-14 21:20:32.000000000 -0400 20981--- linux-2.6.38.2/drivers/ata/pata_acpi.c 2011-03-14 21:20:32.000000000 -0400
21825+++ linux-2.6.38.3/drivers/ata/pata_acpi.c 2011-04-17 15:57:32.000000000 -0400 20982+++ linux-2.6.38.2/drivers/ata/pata_acpi.c 2011-03-21 18:31:35.000000000 -0400
21826@@ -216,7 +216,7 @@ static struct scsi_host_template pacpi_s 20983@@ -216,7 +216,7 @@ static struct scsi_host_template pacpi_s
21827 ATA_BMDMA_SHT(DRV_NAME), 20984 ATA_BMDMA_SHT(DRV_NAME),
21828 }; 20985 };
@@ -21832,9 +20989,9 @@ diff -urNp linux-2.6.38.3/drivers/ata/pata_acpi.c linux-2.6.38.3/drivers/ata/pat
21832 .inherits = &ata_bmdma_port_ops, 20989 .inherits = &ata_bmdma_port_ops,
21833 .qc_issue = pacpi_qc_issue, 20990 .qc_issue = pacpi_qc_issue,
21834 .cable_detect = pacpi_cable_detect, 20991 .cable_detect = pacpi_cable_detect,
21835diff -urNp linux-2.6.38.3/drivers/ata/pata_ali.c linux-2.6.38.3/drivers/ata/pata_ali.c 20992diff -urNp linux-2.6.38.2/drivers/ata/pata_ali.c linux-2.6.38.2/drivers/ata/pata_ali.c
21836--- linux-2.6.38.3/drivers/ata/pata_ali.c 2011-03-14 21:20:32.000000000 -0400 20993--- linux-2.6.38.2/drivers/ata/pata_ali.c 2011-03-14 21:20:32.000000000 -0400
21837+++ linux-2.6.38.3/drivers/ata/pata_ali.c 2011-04-17 15:57:32.000000000 -0400 20994+++ linux-2.6.38.2/drivers/ata/pata_ali.c 2011-03-21 18:31:35.000000000 -0400
21838@@ -363,7 +363,7 @@ static struct scsi_host_template ali_sht 20995@@ -363,7 +363,7 @@ static struct scsi_host_template ali_sht
21839 * Port operations for PIO only ALi 20996 * Port operations for PIO only ALi
21840 */ 20997 */
@@ -21880,9 +21037,9 @@ diff -urNp linux-2.6.38.3/drivers/ata/pata_ali.c linux-2.6.38.3/drivers/ata/pata
21880 .inherits = &ali_dma_base_ops, 21037 .inherits = &ali_dma_base_ops,
21881 .check_atapi_dma = ali_check_atapi_dma, 21038 .check_atapi_dma = ali_check_atapi_dma,
21882 .dev_config = ali_warn_atapi_dma, 21039 .dev_config = ali_warn_atapi_dma,
21883diff -urNp linux-2.6.38.3/drivers/ata/pata_amd.c linux-2.6.38.3/drivers/ata/pata_amd.c 21040diff -urNp linux-2.6.38.2/drivers/ata/pata_amd.c linux-2.6.38.2/drivers/ata/pata_amd.c
21884--- linux-2.6.38.3/drivers/ata/pata_amd.c 2011-03-14 21:20:32.000000000 -0400 21041--- linux-2.6.38.2/drivers/ata/pata_amd.c 2011-03-14 21:20:32.000000000 -0400
21885+++ linux-2.6.38.3/drivers/ata/pata_amd.c 2011-04-17 15:57:32.000000000 -0400 21042+++ linux-2.6.38.2/drivers/ata/pata_amd.c 2011-03-21 18:31:35.000000000 -0400
21886@@ -397,28 +397,28 @@ static const struct ata_port_operations 21043@@ -397,28 +397,28 @@ static const struct ata_port_operations
21887 .prereset = amd_pre_reset, 21044 .prereset = amd_pre_reset,
21888 }; 21045 };
@@ -21932,9 +21089,9 @@ diff -urNp linux-2.6.38.3/drivers/ata/pata_amd.c linux-2.6.38.3/drivers/ata/pata
21932 .inherits = &nv_base_port_ops, 21089 .inherits = &nv_base_port_ops,
21933 .set_piomode = nv133_set_piomode, 21090 .set_piomode = nv133_set_piomode,
21934 .set_dmamode = nv133_set_dmamode, 21091 .set_dmamode = nv133_set_dmamode,
21935diff -urNp linux-2.6.38.3/drivers/ata/pata_artop.c linux-2.6.38.3/drivers/ata/pata_artop.c 21092diff -urNp linux-2.6.38.2/drivers/ata/pata_artop.c linux-2.6.38.2/drivers/ata/pata_artop.c
21936--- linux-2.6.38.3/drivers/ata/pata_artop.c 2011-03-14 21:20:32.000000000 -0400 21093--- linux-2.6.38.2/drivers/ata/pata_artop.c 2011-03-14 21:20:32.000000000 -0400
21937+++ linux-2.6.38.3/drivers/ata/pata_artop.c 2011-04-17 15:57:32.000000000 -0400 21094+++ linux-2.6.38.2/drivers/ata/pata_artop.c 2011-03-21 18:31:35.000000000 -0400
21938@@ -312,7 +312,7 @@ static struct scsi_host_template artop_s 21095@@ -312,7 +312,7 @@ static struct scsi_host_template artop_s
21939 ATA_BMDMA_SHT(DRV_NAME), 21096 ATA_BMDMA_SHT(DRV_NAME),
21940 }; 21097 };
@@ -21953,9 +21110,9 @@ diff -urNp linux-2.6.38.3/drivers/ata/pata_artop.c linux-2.6.38.3/drivers/ata/pa
21953 .inherits = &ata_bmdma_port_ops, 21110 .inherits = &ata_bmdma_port_ops,
21954 .cable_detect = artop6260_cable_detect, 21111 .cable_detect = artop6260_cable_detect,
21955 .set_piomode = artop6260_set_piomode, 21112 .set_piomode = artop6260_set_piomode,
21956diff -urNp linux-2.6.38.3/drivers/ata/pata_at32.c linux-2.6.38.3/drivers/ata/pata_at32.c 21113diff -urNp linux-2.6.38.2/drivers/ata/pata_at32.c linux-2.6.38.2/drivers/ata/pata_at32.c
21957--- linux-2.6.38.3/drivers/ata/pata_at32.c 2011-03-14 21:20:32.000000000 -0400 21114--- linux-2.6.38.2/drivers/ata/pata_at32.c 2011-03-14 21:20:32.000000000 -0400
21958+++ linux-2.6.38.3/drivers/ata/pata_at32.c 2011-04-17 15:57:32.000000000 -0400 21115+++ linux-2.6.38.2/drivers/ata/pata_at32.c 2011-03-21 18:31:35.000000000 -0400
21959@@ -173,7 +173,7 @@ static struct scsi_host_template at32_sh 21116@@ -173,7 +173,7 @@ static struct scsi_host_template at32_sh
21960 ATA_PIO_SHT(DRV_NAME), 21117 ATA_PIO_SHT(DRV_NAME),
21961 }; 21118 };
@@ -21965,9 +21122,9 @@ diff -urNp linux-2.6.38.3/drivers/ata/pata_at32.c linux-2.6.38.3/drivers/ata/pat
21965 .inherits = &ata_sff_port_ops, 21122 .inherits = &ata_sff_port_ops,
21966 .cable_detect = ata_cable_40wire, 21123 .cable_detect = ata_cable_40wire,
21967 .set_piomode = pata_at32_set_piomode, 21124 .set_piomode = pata_at32_set_piomode,
21968diff -urNp linux-2.6.38.3/drivers/ata/pata_at91.c linux-2.6.38.3/drivers/ata/pata_at91.c 21125diff -urNp linux-2.6.38.2/drivers/ata/pata_at91.c linux-2.6.38.2/drivers/ata/pata_at91.c
21969--- linux-2.6.38.3/drivers/ata/pata_at91.c 2011-03-14 21:20:32.000000000 -0400 21126--- linux-2.6.38.2/drivers/ata/pata_at91.c 2011-03-14 21:20:32.000000000 -0400
21970+++ linux-2.6.38.3/drivers/ata/pata_at91.c 2011-04-17 15:57:32.000000000 -0400 21127+++ linux-2.6.38.2/drivers/ata/pata_at91.c 2011-03-21 18:31:35.000000000 -0400
21971@@ -196,7 +196,7 @@ static struct scsi_host_template pata_at 21128@@ -196,7 +196,7 @@ static struct scsi_host_template pata_at
21972 ATA_PIO_SHT(DRV_NAME), 21129 ATA_PIO_SHT(DRV_NAME),
21973 }; 21130 };
@@ -21977,9 +21134,9 @@ diff -urNp linux-2.6.38.3/drivers/ata/pata_at91.c linux-2.6.38.3/drivers/ata/pat
21977 .inherits = &ata_sff_port_ops, 21134 .inherits = &ata_sff_port_ops,
21978 21135
21979 .sff_data_xfer = pata_at91_data_xfer_noirq, 21136 .sff_data_xfer = pata_at91_data_xfer_noirq,
21980diff -urNp linux-2.6.38.3/drivers/ata/pata_atiixp.c linux-2.6.38.3/drivers/ata/pata_atiixp.c 21137diff -urNp linux-2.6.38.2/drivers/ata/pata_atiixp.c linux-2.6.38.2/drivers/ata/pata_atiixp.c
21981--- linux-2.6.38.3/drivers/ata/pata_atiixp.c 2011-03-14 21:20:32.000000000 -0400 21138--- linux-2.6.38.2/drivers/ata/pata_atiixp.c 2011-03-14 21:20:32.000000000 -0400
21982+++ linux-2.6.38.3/drivers/ata/pata_atiixp.c 2011-04-17 15:57:32.000000000 -0400 21139+++ linux-2.6.38.2/drivers/ata/pata_atiixp.c 2011-03-21 18:31:35.000000000 -0400
21983@@ -214,7 +214,7 @@ static struct scsi_host_template atiixp_ 21140@@ -214,7 +214,7 @@ static struct scsi_host_template atiixp_
21984 .sg_tablesize = LIBATA_DUMB_MAX_PRD, 21141 .sg_tablesize = LIBATA_DUMB_MAX_PRD,
21985 }; 21142 };
@@ -21989,9 +21146,9 @@ diff -urNp linux-2.6.38.3/drivers/ata/pata_atiixp.c linux-2.6.38.3/drivers/ata/p
21989 .inherits = &ata_bmdma_port_ops, 21146 .inherits = &ata_bmdma_port_ops,
21990 21147
21991 .qc_prep = ata_bmdma_dumb_qc_prep, 21148 .qc_prep = ata_bmdma_dumb_qc_prep,
21992diff -urNp linux-2.6.38.3/drivers/ata/pata_atp867x.c linux-2.6.38.3/drivers/ata/pata_atp867x.c 21149diff -urNp linux-2.6.38.2/drivers/ata/pata_atp867x.c linux-2.6.38.2/drivers/ata/pata_atp867x.c
21993--- linux-2.6.38.3/drivers/ata/pata_atp867x.c 2011-03-14 21:20:32.000000000 -0400 21150--- linux-2.6.38.2/drivers/ata/pata_atp867x.c 2011-03-14 21:20:32.000000000 -0400
21994+++ linux-2.6.38.3/drivers/ata/pata_atp867x.c 2011-04-17 15:57:32.000000000 -0400 21151+++ linux-2.6.38.2/drivers/ata/pata_atp867x.c 2011-03-21 18:31:35.000000000 -0400
21995@@ -275,7 +275,7 @@ static struct scsi_host_template atp867x 21152@@ -275,7 +275,7 @@ static struct scsi_host_template atp867x
21996 ATA_BMDMA_SHT(DRV_NAME), 21153 ATA_BMDMA_SHT(DRV_NAME),
21997 }; 21154 };
@@ -22001,9 +21158,9 @@ diff -urNp linux-2.6.38.3/drivers/ata/pata_atp867x.c linux-2.6.38.3/drivers/ata/
22001 .inherits = &ata_bmdma_port_ops, 21158 .inherits = &ata_bmdma_port_ops,
22002 .cable_detect = atp867x_cable_detect, 21159 .cable_detect = atp867x_cable_detect,
22003 .set_piomode = atp867x_set_piomode, 21160 .set_piomode = atp867x_set_piomode,
22004diff -urNp linux-2.6.38.3/drivers/ata/pata_bf54x.c linux-2.6.38.3/drivers/ata/pata_bf54x.c 21161diff -urNp linux-2.6.38.2/drivers/ata/pata_bf54x.c linux-2.6.38.2/drivers/ata/pata_bf54x.c
22005--- linux-2.6.38.3/drivers/ata/pata_bf54x.c 2011-03-14 21:20:32.000000000 -0400 21162--- linux-2.6.38.2/drivers/ata/pata_bf54x.c 2011-03-14 21:20:32.000000000 -0400
22006+++ linux-2.6.38.3/drivers/ata/pata_bf54x.c 2011-04-17 15:57:32.000000000 -0400 21163+++ linux-2.6.38.2/drivers/ata/pata_bf54x.c 2011-03-21 18:31:35.000000000 -0400
22007@@ -1420,7 +1420,7 @@ static struct scsi_host_template bfin_sh 21164@@ -1420,7 +1420,7 @@ static struct scsi_host_template bfin_sh
22008 .dma_boundary = ATA_DMA_BOUNDARY, 21165 .dma_boundary = ATA_DMA_BOUNDARY,
22009 }; 21166 };
@@ -22013,9 +21170,9 @@ diff -urNp linux-2.6.38.3/drivers/ata/pata_bf54x.c linux-2.6.38.3/drivers/ata/pa
22013 .inherits = &ata_bmdma_port_ops, 21170 .inherits = &ata_bmdma_port_ops,
22014 21171
22015 .set_piomode = bfin_set_piomode, 21172 .set_piomode = bfin_set_piomode,
22016diff -urNp linux-2.6.38.3/drivers/ata/pata_cmd640.c linux-2.6.38.3/drivers/ata/pata_cmd640.c 21173diff -urNp linux-2.6.38.2/drivers/ata/pata_cmd640.c linux-2.6.38.2/drivers/ata/pata_cmd640.c
22017--- linux-2.6.38.3/drivers/ata/pata_cmd640.c 2011-03-14 21:20:32.000000000 -0400 21174--- linux-2.6.38.2/drivers/ata/pata_cmd640.c 2011-03-14 21:20:32.000000000 -0400
22018+++ linux-2.6.38.3/drivers/ata/pata_cmd640.c 2011-04-17 15:57:32.000000000 -0400 21175+++ linux-2.6.38.2/drivers/ata/pata_cmd640.c 2011-03-21 18:31:35.000000000 -0400
22019@@ -176,7 +176,7 @@ static struct scsi_host_template cmd640_ 21176@@ -176,7 +176,7 @@ static struct scsi_host_template cmd640_
22020 ATA_PIO_SHT(DRV_NAME), 21177 ATA_PIO_SHT(DRV_NAME),
22021 }; 21178 };
@@ -22025,9 +21182,9 @@ diff -urNp linux-2.6.38.3/drivers/ata/pata_cmd640.c linux-2.6.38.3/drivers/ata/p
22025 .inherits = &ata_sff_port_ops, 21182 .inherits = &ata_sff_port_ops,
22026 /* In theory xfer_noirq is not needed once we kill the prefetcher */ 21183 /* In theory xfer_noirq is not needed once we kill the prefetcher */
22027 .sff_data_xfer = ata_sff_data_xfer_noirq, 21184 .sff_data_xfer = ata_sff_data_xfer_noirq,
22028diff -urNp linux-2.6.38.3/drivers/ata/pata_cmd64x.c linux-2.6.38.3/drivers/ata/pata_cmd64x.c 21185diff -urNp linux-2.6.38.2/drivers/ata/pata_cmd64x.c linux-2.6.38.2/drivers/ata/pata_cmd64x.c
22029--- linux-2.6.38.3/drivers/ata/pata_cmd64x.c 2011-03-14 21:20:32.000000000 -0400 21186--- linux-2.6.38.2/drivers/ata/pata_cmd64x.c 2011-03-14 21:20:32.000000000 -0400
22030+++ linux-2.6.38.3/drivers/ata/pata_cmd64x.c 2011-04-17 15:57:32.000000000 -0400 21187+++ linux-2.6.38.2/drivers/ata/pata_cmd64x.c 2011-03-21 18:31:35.000000000 -0400
22031@@ -268,18 +268,18 @@ static const struct ata_port_operations 21188@@ -268,18 +268,18 @@ static const struct ata_port_operations
22032 .set_dmamode = cmd64x_set_dmamode, 21189 .set_dmamode = cmd64x_set_dmamode,
22033 }; 21190 };
@@ -22050,9 +21207,9 @@ diff -urNp linux-2.6.38.3/drivers/ata/pata_cmd64x.c linux-2.6.38.3/drivers/ata/p
22050 .inherits = &cmd64x_base_ops, 21207 .inherits = &cmd64x_base_ops,
22051 .bmdma_stop = cmd648_bmdma_stop, 21208 .bmdma_stop = cmd648_bmdma_stop,
22052 .cable_detect = cmd648_cable_detect, 21209 .cable_detect = cmd648_cable_detect,
22053diff -urNp linux-2.6.38.3/drivers/ata/pata_cs5520.c linux-2.6.38.3/drivers/ata/pata_cs5520.c 21210diff -urNp linux-2.6.38.2/drivers/ata/pata_cs5520.c linux-2.6.38.2/drivers/ata/pata_cs5520.c
22054--- linux-2.6.38.3/drivers/ata/pata_cs5520.c 2011-03-14 21:20:32.000000000 -0400 21211--- linux-2.6.38.2/drivers/ata/pata_cs5520.c 2011-03-14 21:20:32.000000000 -0400
22055+++ linux-2.6.38.3/drivers/ata/pata_cs5520.c 2011-04-17 15:57:32.000000000 -0400 21212+++ linux-2.6.38.2/drivers/ata/pata_cs5520.c 2011-03-21 18:31:35.000000000 -0400
22056@@ -108,7 +108,7 @@ static struct scsi_host_template cs5520_ 21213@@ -108,7 +108,7 @@ static struct scsi_host_template cs5520_
22057 .sg_tablesize = LIBATA_DUMB_MAX_PRD, 21214 .sg_tablesize = LIBATA_DUMB_MAX_PRD,
22058 }; 21215 };
@@ -22062,9 +21219,9 @@ diff -urNp linux-2.6.38.3/drivers/ata/pata_cs5520.c linux-2.6.38.3/drivers/ata/p
22062 .inherits = &ata_bmdma_port_ops, 21219 .inherits = &ata_bmdma_port_ops,
22063 .qc_prep = ata_bmdma_dumb_qc_prep, 21220 .qc_prep = ata_bmdma_dumb_qc_prep,
22064 .cable_detect = ata_cable_40wire, 21221 .cable_detect = ata_cable_40wire,
22065diff -urNp linux-2.6.38.3/drivers/ata/pata_cs5530.c linux-2.6.38.3/drivers/ata/pata_cs5530.c 21222diff -urNp linux-2.6.38.2/drivers/ata/pata_cs5530.c linux-2.6.38.2/drivers/ata/pata_cs5530.c
22066--- linux-2.6.38.3/drivers/ata/pata_cs5530.c 2011-03-14 21:20:32.000000000 -0400 21223--- linux-2.6.38.2/drivers/ata/pata_cs5530.c 2011-03-14 21:20:32.000000000 -0400
22067+++ linux-2.6.38.3/drivers/ata/pata_cs5530.c 2011-04-17 15:57:32.000000000 -0400 21224+++ linux-2.6.38.2/drivers/ata/pata_cs5530.c 2011-03-21 18:31:35.000000000 -0400
22068@@ -164,7 +164,7 @@ static struct scsi_host_template cs5530_ 21225@@ -164,7 +164,7 @@ static struct scsi_host_template cs5530_
22069 .sg_tablesize = LIBATA_DUMB_MAX_PRD, 21226 .sg_tablesize = LIBATA_DUMB_MAX_PRD,
22070 }; 21227 };
@@ -22074,9 +21231,9 @@ diff -urNp linux-2.6.38.3/drivers/ata/pata_cs5530.c linux-2.6.38.3/drivers/ata/p
22074 .inherits = &ata_bmdma_port_ops, 21231 .inherits = &ata_bmdma_port_ops,
22075 21232
22076 .qc_prep = ata_bmdma_dumb_qc_prep, 21233 .qc_prep = ata_bmdma_dumb_qc_prep,
22077diff -urNp linux-2.6.38.3/drivers/ata/pata_cs5535.c linux-2.6.38.3/drivers/ata/pata_cs5535.c 21234diff -urNp linux-2.6.38.2/drivers/ata/pata_cs5535.c linux-2.6.38.2/drivers/ata/pata_cs5535.c
22078--- linux-2.6.38.3/drivers/ata/pata_cs5535.c 2011-03-14 21:20:32.000000000 -0400 21235--- linux-2.6.38.2/drivers/ata/pata_cs5535.c 2011-03-14 21:20:32.000000000 -0400
22079+++ linux-2.6.38.3/drivers/ata/pata_cs5535.c 2011-04-17 15:57:32.000000000 -0400 21236+++ linux-2.6.38.2/drivers/ata/pata_cs5535.c 2011-03-21 18:31:35.000000000 -0400
22080@@ -160,7 +160,7 @@ static struct scsi_host_template cs5535_ 21237@@ -160,7 +160,7 @@ static struct scsi_host_template cs5535_
22081 ATA_BMDMA_SHT(DRV_NAME), 21238 ATA_BMDMA_SHT(DRV_NAME),
22082 }; 21239 };
@@ -22086,9 +21243,9 @@ diff -urNp linux-2.6.38.3/drivers/ata/pata_cs5535.c linux-2.6.38.3/drivers/ata/p
22086 .inherits = &ata_bmdma_port_ops, 21243 .inherits = &ata_bmdma_port_ops,
22087 .cable_detect = cs5535_cable_detect, 21244 .cable_detect = cs5535_cable_detect,
22088 .set_piomode = cs5535_set_piomode, 21245 .set_piomode = cs5535_set_piomode,
22089diff -urNp linux-2.6.38.3/drivers/ata/pata_cs5536.c linux-2.6.38.3/drivers/ata/pata_cs5536.c 21246diff -urNp linux-2.6.38.2/drivers/ata/pata_cs5536.c linux-2.6.38.2/drivers/ata/pata_cs5536.c
22090--- linux-2.6.38.3/drivers/ata/pata_cs5536.c 2011-03-14 21:20:32.000000000 -0400 21247--- linux-2.6.38.2/drivers/ata/pata_cs5536.c 2011-03-14 21:20:32.000000000 -0400
22091+++ linux-2.6.38.3/drivers/ata/pata_cs5536.c 2011-04-17 15:57:32.000000000 -0400 21248+++ linux-2.6.38.2/drivers/ata/pata_cs5536.c 2011-03-21 18:31:35.000000000 -0400
22092@@ -233,7 +233,7 @@ static struct scsi_host_template cs5536_ 21249@@ -233,7 +233,7 @@ static struct scsi_host_template cs5536_
22093 ATA_BMDMA_SHT(DRV_NAME), 21250 ATA_BMDMA_SHT(DRV_NAME),
22094 }; 21251 };
@@ -22098,9 +21255,9 @@ diff -urNp linux-2.6.38.3/drivers/ata/pata_cs5536.c linux-2.6.38.3/drivers/ata/p
22098 .inherits = &ata_bmdma32_port_ops, 21255 .inherits = &ata_bmdma32_port_ops,
22099 .cable_detect = cs5536_cable_detect, 21256 .cable_detect = cs5536_cable_detect,
22100 .set_piomode = cs5536_set_piomode, 21257 .set_piomode = cs5536_set_piomode,
22101diff -urNp linux-2.6.38.3/drivers/ata/pata_cypress.c linux-2.6.38.3/drivers/ata/pata_cypress.c 21258diff -urNp linux-2.6.38.2/drivers/ata/pata_cypress.c linux-2.6.38.2/drivers/ata/pata_cypress.c
22102--- linux-2.6.38.3/drivers/ata/pata_cypress.c 2011-03-14 21:20:32.000000000 -0400 21259--- linux-2.6.38.2/drivers/ata/pata_cypress.c 2011-03-14 21:20:32.000000000 -0400
22103+++ linux-2.6.38.3/drivers/ata/pata_cypress.c 2011-04-17 15:57:32.000000000 -0400 21260+++ linux-2.6.38.2/drivers/ata/pata_cypress.c 2011-03-21 18:31:35.000000000 -0400
22104@@ -115,7 +115,7 @@ static struct scsi_host_template cy82c69 21261@@ -115,7 +115,7 @@ static struct scsi_host_template cy82c69
22105 ATA_BMDMA_SHT(DRV_NAME), 21262 ATA_BMDMA_SHT(DRV_NAME),
22106 }; 21263 };
@@ -22110,9 +21267,9 @@ diff -urNp linux-2.6.38.3/drivers/ata/pata_cypress.c linux-2.6.38.3/drivers/ata/
22110 .inherits = &ata_bmdma_port_ops, 21267 .inherits = &ata_bmdma_port_ops,
22111 .cable_detect = ata_cable_40wire, 21268 .cable_detect = ata_cable_40wire,
22112 .set_piomode = cy82c693_set_piomode, 21269 .set_piomode = cy82c693_set_piomode,
22113diff -urNp linux-2.6.38.3/drivers/ata/pata_efar.c linux-2.6.38.3/drivers/ata/pata_efar.c 21270diff -urNp linux-2.6.38.2/drivers/ata/pata_efar.c linux-2.6.38.2/drivers/ata/pata_efar.c
22114--- linux-2.6.38.3/drivers/ata/pata_efar.c 2011-03-14 21:20:32.000000000 -0400 21271--- linux-2.6.38.2/drivers/ata/pata_efar.c 2011-03-14 21:20:32.000000000 -0400
22115+++ linux-2.6.38.3/drivers/ata/pata_efar.c 2011-04-17 15:57:32.000000000 -0400 21272+++ linux-2.6.38.2/drivers/ata/pata_efar.c 2011-03-21 18:31:35.000000000 -0400
22116@@ -238,7 +238,7 @@ static struct scsi_host_template efar_sh 21273@@ -238,7 +238,7 @@ static struct scsi_host_template efar_sh
22117 ATA_BMDMA_SHT(DRV_NAME), 21274 ATA_BMDMA_SHT(DRV_NAME),
22118 }; 21275 };
@@ -22122,9 +21279,9 @@ diff -urNp linux-2.6.38.3/drivers/ata/pata_efar.c linux-2.6.38.3/drivers/ata/pat
22122 .inherits = &ata_bmdma_port_ops, 21279 .inherits = &ata_bmdma_port_ops,
22123 .cable_detect = efar_cable_detect, 21280 .cable_detect = efar_cable_detect,
22124 .set_piomode = efar_set_piomode, 21281 .set_piomode = efar_set_piomode,
22125diff -urNp linux-2.6.38.3/drivers/ata/pata_hpt366.c linux-2.6.38.3/drivers/ata/pata_hpt366.c 21282diff -urNp linux-2.6.38.2/drivers/ata/pata_hpt366.c linux-2.6.38.2/drivers/ata/pata_hpt366.c
22126--- linux-2.6.38.3/drivers/ata/pata_hpt366.c 2011-03-14 21:20:32.000000000 -0400 21283--- linux-2.6.38.2/drivers/ata/pata_hpt366.c 2011-03-14 21:20:32.000000000 -0400
22127+++ linux-2.6.38.3/drivers/ata/pata_hpt366.c 2011-04-17 15:57:32.000000000 -0400 21284+++ linux-2.6.38.2/drivers/ata/pata_hpt366.c 2011-03-21 18:31:35.000000000 -0400
22128@@ -275,7 +275,7 @@ static struct scsi_host_template hpt36x_ 21285@@ -275,7 +275,7 @@ static struct scsi_host_template hpt36x_
22129 * Configuration for HPT366/68 21286 * Configuration for HPT366/68
22130 */ 21287 */
@@ -22134,9 +21291,9 @@ diff -urNp linux-2.6.38.3/drivers/ata/pata_hpt366.c linux-2.6.38.3/drivers/ata/p
22134 .inherits = &ata_bmdma_port_ops, 21291 .inherits = &ata_bmdma_port_ops,
22135 .cable_detect = hpt36x_cable_detect, 21292 .cable_detect = hpt36x_cable_detect,
22136 .mode_filter = hpt366_filter, 21293 .mode_filter = hpt366_filter,
22137diff -urNp linux-2.6.38.3/drivers/ata/pata_hpt37x.c linux-2.6.38.3/drivers/ata/pata_hpt37x.c 21294diff -urNp linux-2.6.38.2/drivers/ata/pata_hpt37x.c linux-2.6.38.2/drivers/ata/pata_hpt37x.c
22138--- linux-2.6.38.3/drivers/ata/pata_hpt37x.c 2011-03-14 21:20:32.000000000 -0400 21295--- linux-2.6.38.2/drivers/ata/pata_hpt37x.c 2011-03-14 21:20:32.000000000 -0400
22139+++ linux-2.6.38.3/drivers/ata/pata_hpt37x.c 2011-04-17 15:57:32.000000000 -0400 21296+++ linux-2.6.38.2/drivers/ata/pata_hpt37x.c 2011-03-21 18:31:35.000000000 -0400
22140@@ -587,7 +587,7 @@ static struct scsi_host_template hpt37x_ 21297@@ -587,7 +587,7 @@ static struct scsi_host_template hpt37x_
22141 * Configuration for HPT370 21298 * Configuration for HPT370
22142 */ 21299 */
@@ -22182,9 +21339,9 @@ diff -urNp linux-2.6.38.3/drivers/ata/pata_hpt37x.c linux-2.6.38.3/drivers/ata/p
22182 .inherits = &hpt372_port_ops, 21339 .inherits = &hpt372_port_ops,
22183 .cable_detect = hpt374_fn1_cable_detect, 21340 .cable_detect = hpt374_fn1_cable_detect,
22184 }; 21341 };
22185diff -urNp linux-2.6.38.3/drivers/ata/pata_hpt3x2n.c linux-2.6.38.3/drivers/ata/pata_hpt3x2n.c 21342diff -urNp linux-2.6.38.2/drivers/ata/pata_hpt3x2n.c linux-2.6.38.2/drivers/ata/pata_hpt3x2n.c
22186--- linux-2.6.38.3/drivers/ata/pata_hpt3x2n.c 2011-03-14 21:20:32.000000000 -0400 21343--- linux-2.6.38.2/drivers/ata/pata_hpt3x2n.c 2011-03-14 21:20:32.000000000 -0400
22187+++ linux-2.6.38.3/drivers/ata/pata_hpt3x2n.c 2011-04-17 15:57:32.000000000 -0400 21344+++ linux-2.6.38.2/drivers/ata/pata_hpt3x2n.c 2011-03-21 18:31:35.000000000 -0400
22188@@ -348,7 +348,7 @@ static struct scsi_host_template hpt3x2n 21345@@ -348,7 +348,7 @@ static struct scsi_host_template hpt3x2n
22189 * Configuration for HPT302N/371N. 21346 * Configuration for HPT302N/371N.
22190 */ 21347 */
@@ -22203,9 +21360,9 @@ diff -urNp linux-2.6.38.3/drivers/ata/pata_hpt3x2n.c linux-2.6.38.3/drivers/ata/
22203 .inherits = &hpt3xxn_port_ops, 21360 .inherits = &hpt3xxn_port_ops,
22204 .mode_filter = &hpt372n_filter, 21361 .mode_filter = &hpt372n_filter,
22205 }; 21362 };
22206diff -urNp linux-2.6.38.3/drivers/ata/pata_hpt3x3.c linux-2.6.38.3/drivers/ata/pata_hpt3x3.c 21363diff -urNp linux-2.6.38.2/drivers/ata/pata_hpt3x3.c linux-2.6.38.2/drivers/ata/pata_hpt3x3.c
22207--- linux-2.6.38.3/drivers/ata/pata_hpt3x3.c 2011-03-14 21:20:32.000000000 -0400 21364--- linux-2.6.38.2/drivers/ata/pata_hpt3x3.c 2011-03-14 21:20:32.000000000 -0400
22208+++ linux-2.6.38.3/drivers/ata/pata_hpt3x3.c 2011-04-17 15:57:32.000000000 -0400 21365+++ linux-2.6.38.2/drivers/ata/pata_hpt3x3.c 2011-03-21 18:31:35.000000000 -0400
22209@@ -141,7 +141,7 @@ static struct scsi_host_template hpt3x3_ 21366@@ -141,7 +141,7 @@ static struct scsi_host_template hpt3x3_
22210 ATA_BMDMA_SHT(DRV_NAME), 21367 ATA_BMDMA_SHT(DRV_NAME),
22211 }; 21368 };
@@ -22215,9 +21372,9 @@ diff -urNp linux-2.6.38.3/drivers/ata/pata_hpt3x3.c linux-2.6.38.3/drivers/ata/p
22215 .inherits = &ata_bmdma_port_ops, 21372 .inherits = &ata_bmdma_port_ops,
22216 .cable_detect = ata_cable_40wire, 21373 .cable_detect = ata_cable_40wire,
22217 .set_piomode = hpt3x3_set_piomode, 21374 .set_piomode = hpt3x3_set_piomode,
22218diff -urNp linux-2.6.38.3/drivers/ata/pata_icside.c linux-2.6.38.3/drivers/ata/pata_icside.c 21375diff -urNp linux-2.6.38.2/drivers/ata/pata_icside.c linux-2.6.38.2/drivers/ata/pata_icside.c
22219--- linux-2.6.38.3/drivers/ata/pata_icside.c 2011-03-14 21:20:32.000000000 -0400 21376--- linux-2.6.38.2/drivers/ata/pata_icside.c 2011-03-14 21:20:32.000000000 -0400
22220+++ linux-2.6.38.3/drivers/ata/pata_icside.c 2011-04-17 15:57:32.000000000 -0400 21377+++ linux-2.6.38.2/drivers/ata/pata_icside.c 2011-03-21 18:31:35.000000000 -0400
22221@@ -320,7 +320,7 @@ static void pata_icside_postreset(struct 21378@@ -320,7 +320,7 @@ static void pata_icside_postreset(struct
22222 } 21379 }
22223 } 21380 }
@@ -22227,9 +21384,9 @@ diff -urNp linux-2.6.38.3/drivers/ata/pata_icside.c linux-2.6.38.3/drivers/ata/p
22227 .inherits = &ata_bmdma_port_ops, 21384 .inherits = &ata_bmdma_port_ops,
22228 /* no need to build any PRD tables for DMA */ 21385 /* no need to build any PRD tables for DMA */
22229 .qc_prep = ata_noop_qc_prep, 21386 .qc_prep = ata_noop_qc_prep,
22230diff -urNp linux-2.6.38.3/drivers/ata/pata_isapnp.c linux-2.6.38.3/drivers/ata/pata_isapnp.c 21387diff -urNp linux-2.6.38.2/drivers/ata/pata_isapnp.c linux-2.6.38.2/drivers/ata/pata_isapnp.c
22231--- linux-2.6.38.3/drivers/ata/pata_isapnp.c 2011-03-14 21:20:32.000000000 -0400 21388--- linux-2.6.38.2/drivers/ata/pata_isapnp.c 2011-03-14 21:20:32.000000000 -0400
22232+++ linux-2.6.38.3/drivers/ata/pata_isapnp.c 2011-04-17 15:57:32.000000000 -0400 21389+++ linux-2.6.38.2/drivers/ata/pata_isapnp.c 2011-03-21 18:31:35.000000000 -0400
22233@@ -23,12 +23,12 @@ static struct scsi_host_template isapnp_ 21390@@ -23,12 +23,12 @@ static struct scsi_host_template isapnp_
22234 ATA_PIO_SHT(DRV_NAME), 21391 ATA_PIO_SHT(DRV_NAME),
22235 }; 21392 };
@@ -22245,9 +21402,9 @@ diff -urNp linux-2.6.38.3/drivers/ata/pata_isapnp.c linux-2.6.38.3/drivers/ata/p
22245 .inherits = &ata_sff_port_ops, 21402 .inherits = &ata_sff_port_ops,
22246 .cable_detect = ata_cable_40wire, 21403 .cable_detect = ata_cable_40wire,
22247 /* No altstatus so we don't want to use the lost interrupt poll */ 21404 /* No altstatus so we don't want to use the lost interrupt poll */
22248diff -urNp linux-2.6.38.3/drivers/ata/pata_it8213.c linux-2.6.38.3/drivers/ata/pata_it8213.c 21405diff -urNp linux-2.6.38.2/drivers/ata/pata_it8213.c linux-2.6.38.2/drivers/ata/pata_it8213.c
22249--- linux-2.6.38.3/drivers/ata/pata_it8213.c 2011-03-14 21:20:32.000000000 -0400 21406--- linux-2.6.38.2/drivers/ata/pata_it8213.c 2011-03-14 21:20:32.000000000 -0400
22250+++ linux-2.6.38.3/drivers/ata/pata_it8213.c 2011-04-17 15:57:32.000000000 -0400 21407+++ linux-2.6.38.2/drivers/ata/pata_it8213.c 2011-03-21 18:31:35.000000000 -0400
22251@@ -233,7 +233,7 @@ static struct scsi_host_template it8213_ 21408@@ -233,7 +233,7 @@ static struct scsi_host_template it8213_
22252 }; 21409 };
22253 21410
@@ -22257,9 +21414,9 @@ diff -urNp linux-2.6.38.3/drivers/ata/pata_it8213.c linux-2.6.38.3/drivers/ata/p
22257 .inherits = &ata_bmdma_port_ops, 21414 .inherits = &ata_bmdma_port_ops,
22258 .cable_detect = it8213_cable_detect, 21415 .cable_detect = it8213_cable_detect,
22259 .set_piomode = it8213_set_piomode, 21416 .set_piomode = it8213_set_piomode,
22260diff -urNp linux-2.6.38.3/drivers/ata/pata_it821x.c linux-2.6.38.3/drivers/ata/pata_it821x.c 21417diff -urNp linux-2.6.38.2/drivers/ata/pata_it821x.c linux-2.6.38.2/drivers/ata/pata_it821x.c
22261--- linux-2.6.38.3/drivers/ata/pata_it821x.c 2011-03-14 21:20:32.000000000 -0400 21418--- linux-2.6.38.2/drivers/ata/pata_it821x.c 2011-03-14 21:20:32.000000000 -0400
22262+++ linux-2.6.38.3/drivers/ata/pata_it821x.c 2011-04-17 15:57:32.000000000 -0400 21419+++ linux-2.6.38.2/drivers/ata/pata_it821x.c 2011-03-21 18:31:35.000000000 -0400
22263@@ -801,7 +801,7 @@ static struct scsi_host_template it821x_ 21420@@ -801,7 +801,7 @@ static struct scsi_host_template it821x_
22264 ATA_BMDMA_SHT(DRV_NAME), 21421 ATA_BMDMA_SHT(DRV_NAME),
22265 }; 21422 };
@@ -22287,9 +21444,9 @@ diff -urNp linux-2.6.38.3/drivers/ata/pata_it821x.c linux-2.6.38.3/drivers/ata/p
22287 .inherits = &ata_bmdma_port_ops, 21444 .inherits = &ata_bmdma_port_ops,
22288 21445
22289 .check_atapi_dma= it821x_check_atapi_dma, 21446 .check_atapi_dma= it821x_check_atapi_dma,
22290diff -urNp linux-2.6.38.3/drivers/ata/pata_ixp4xx_cf.c linux-2.6.38.3/drivers/ata/pata_ixp4xx_cf.c 21447diff -urNp linux-2.6.38.2/drivers/ata/pata_ixp4xx_cf.c linux-2.6.38.2/drivers/ata/pata_ixp4xx_cf.c
22291--- linux-2.6.38.3/drivers/ata/pata_ixp4xx_cf.c 2011-03-14 21:20:32.000000000 -0400 21448--- linux-2.6.38.2/drivers/ata/pata_ixp4xx_cf.c 2011-03-14 21:20:32.000000000 -0400
22292+++ linux-2.6.38.3/drivers/ata/pata_ixp4xx_cf.c 2011-04-17 15:57:32.000000000 -0400 21449+++ linux-2.6.38.2/drivers/ata/pata_ixp4xx_cf.c 2011-03-21 18:31:35.000000000 -0400
22293@@ -89,7 +89,7 @@ static struct scsi_host_template ixp4xx_ 21450@@ -89,7 +89,7 @@ static struct scsi_host_template ixp4xx_
22294 ATA_PIO_SHT(DRV_NAME), 21451 ATA_PIO_SHT(DRV_NAME),
22295 }; 21452 };
@@ -22299,9 +21456,9 @@ diff -urNp linux-2.6.38.3/drivers/ata/pata_ixp4xx_cf.c linux-2.6.38.3/drivers/at
22299 .inherits = &ata_sff_port_ops, 21456 .inherits = &ata_sff_port_ops,
22300 .sff_data_xfer = ixp4xx_mmio_data_xfer, 21457 .sff_data_xfer = ixp4xx_mmio_data_xfer,
22301 .cable_detect = ata_cable_40wire, 21458 .cable_detect = ata_cable_40wire,
22302diff -urNp linux-2.6.38.3/drivers/ata/pata_jmicron.c linux-2.6.38.3/drivers/ata/pata_jmicron.c 21459diff -urNp linux-2.6.38.2/drivers/ata/pata_jmicron.c linux-2.6.38.2/drivers/ata/pata_jmicron.c
22303--- linux-2.6.38.3/drivers/ata/pata_jmicron.c 2011-03-14 21:20:32.000000000 -0400 21460--- linux-2.6.38.2/drivers/ata/pata_jmicron.c 2011-03-14 21:20:32.000000000 -0400
22304+++ linux-2.6.38.3/drivers/ata/pata_jmicron.c 2011-04-17 15:57:32.000000000 -0400 21461+++ linux-2.6.38.2/drivers/ata/pata_jmicron.c 2011-03-21 18:31:35.000000000 -0400
22305@@ -111,7 +111,7 @@ static struct scsi_host_template jmicron 21462@@ -111,7 +111,7 @@ static struct scsi_host_template jmicron
22306 ATA_BMDMA_SHT(DRV_NAME), 21463 ATA_BMDMA_SHT(DRV_NAME),
22307 }; 21464 };
@@ -22311,9 +21468,9 @@ diff -urNp linux-2.6.38.3/drivers/ata/pata_jmicron.c linux-2.6.38.3/drivers/ata/
22311 .inherits = &ata_bmdma_port_ops, 21468 .inherits = &ata_bmdma_port_ops,
22312 .prereset = jmicron_pre_reset, 21469 .prereset = jmicron_pre_reset,
22313 }; 21470 };
22314diff -urNp linux-2.6.38.3/drivers/ata/pata_legacy.c linux-2.6.38.3/drivers/ata/pata_legacy.c 21471diff -urNp linux-2.6.38.2/drivers/ata/pata_legacy.c linux-2.6.38.2/drivers/ata/pata_legacy.c
22315--- linux-2.6.38.3/drivers/ata/pata_legacy.c 2011-03-14 21:20:32.000000000 -0400 21472--- linux-2.6.38.2/drivers/ata/pata_legacy.c 2011-03-14 21:20:32.000000000 -0400
22316+++ linux-2.6.38.3/drivers/ata/pata_legacy.c 2011-04-17 15:57:32.000000000 -0400 21473+++ linux-2.6.38.2/drivers/ata/pata_legacy.c 2011-03-21 18:31:35.000000000 -0400
22317@@ -116,7 +116,7 @@ struct legacy_probe { 21474@@ -116,7 +116,7 @@ struct legacy_probe {
22318 21475
22319 struct legacy_controller { 21476 struct legacy_controller {
@@ -22425,9 +21582,9 @@ diff -urNp linux-2.6.38.3/drivers/ata/pata_legacy.c linux-2.6.38.3/drivers/ata/p
22425 struct legacy_data *ld = &legacy_data[probe->slot]; 21582 struct legacy_data *ld = &legacy_data[probe->slot];
22426 struct ata_host *host = NULL; 21583 struct ata_host *host = NULL;
22427 struct ata_port *ap; 21584 struct ata_port *ap;
22428diff -urNp linux-2.6.38.3/drivers/ata/pata_macio.c linux-2.6.38.3/drivers/ata/pata_macio.c 21585diff -urNp linux-2.6.38.2/drivers/ata/pata_macio.c linux-2.6.38.2/drivers/ata/pata_macio.c
22429--- linux-2.6.38.3/drivers/ata/pata_macio.c 2011-03-14 21:20:32.000000000 -0400 21586--- linux-2.6.38.2/drivers/ata/pata_macio.c 2011-03-14 21:20:32.000000000 -0400
22430+++ linux-2.6.38.3/drivers/ata/pata_macio.c 2011-04-17 15:57:32.000000000 -0400 21587+++ linux-2.6.38.2/drivers/ata/pata_macio.c 2011-03-21 18:31:35.000000000 -0400
22431@@ -918,9 +918,8 @@ static struct scsi_host_template pata_ma 21588@@ -918,9 +918,8 @@ static struct scsi_host_template pata_ma
22432 .slave_configure = pata_macio_slave_config, 21589 .slave_configure = pata_macio_slave_config,
22433 }; 21590 };
@@ -22439,9 +21596,9 @@ diff -urNp linux-2.6.38.3/drivers/ata/pata_macio.c linux-2.6.38.3/drivers/ata/pa
22439 .freeze = pata_macio_freeze, 21596 .freeze = pata_macio_freeze,
22440 .set_piomode = pata_macio_set_timings, 21597 .set_piomode = pata_macio_set_timings,
22441 .set_dmamode = pata_macio_set_timings, 21598 .set_dmamode = pata_macio_set_timings,
22442diff -urNp linux-2.6.38.3/drivers/ata/pata_marvell.c linux-2.6.38.3/drivers/ata/pata_marvell.c 21599diff -urNp linux-2.6.38.2/drivers/ata/pata_marvell.c linux-2.6.38.2/drivers/ata/pata_marvell.c
22443--- linux-2.6.38.3/drivers/ata/pata_marvell.c 2011-03-14 21:20:32.000000000 -0400 21600--- linux-2.6.38.2/drivers/ata/pata_marvell.c 2011-03-14 21:20:32.000000000 -0400
22444+++ linux-2.6.38.3/drivers/ata/pata_marvell.c 2011-04-17 15:57:32.000000000 -0400 21601+++ linux-2.6.38.2/drivers/ata/pata_marvell.c 2011-03-21 18:31:35.000000000 -0400
22445@@ -100,7 +100,7 @@ static struct scsi_host_template marvell 21602@@ -100,7 +100,7 @@ static struct scsi_host_template marvell
22446 ATA_BMDMA_SHT(DRV_NAME), 21603 ATA_BMDMA_SHT(DRV_NAME),
22447 }; 21604 };
@@ -22451,9 +21608,9 @@ diff -urNp linux-2.6.38.3/drivers/ata/pata_marvell.c linux-2.6.38.3/drivers/ata/
22451 .inherits = &ata_bmdma_port_ops, 21608 .inherits = &ata_bmdma_port_ops,
22452 .cable_detect = marvell_cable_detect, 21609 .cable_detect = marvell_cable_detect,
22453 .prereset = marvell_pre_reset, 21610 .prereset = marvell_pre_reset,
22454diff -urNp linux-2.6.38.3/drivers/ata/pata_mpc52xx.c linux-2.6.38.3/drivers/ata/pata_mpc52xx.c 21611diff -urNp linux-2.6.38.2/drivers/ata/pata_mpc52xx.c linux-2.6.38.2/drivers/ata/pata_mpc52xx.c
22455--- linux-2.6.38.3/drivers/ata/pata_mpc52xx.c 2011-03-14 21:20:32.000000000 -0400 21612--- linux-2.6.38.2/drivers/ata/pata_mpc52xx.c 2011-03-14 21:20:32.000000000 -0400
22456+++ linux-2.6.38.3/drivers/ata/pata_mpc52xx.c 2011-04-17 15:57:32.000000000 -0400 21613+++ linux-2.6.38.2/drivers/ata/pata_mpc52xx.c 2011-03-21 18:31:35.000000000 -0400
22457@@ -609,7 +609,7 @@ static struct scsi_host_template mpc52xx 21614@@ -609,7 +609,7 @@ static struct scsi_host_template mpc52xx
22458 ATA_PIO_SHT(DRV_NAME), 21615 ATA_PIO_SHT(DRV_NAME),
22459 }; 21616 };
@@ -22463,9 +21620,9 @@ diff -urNp linux-2.6.38.3/drivers/ata/pata_mpc52xx.c linux-2.6.38.3/drivers/ata/
22463 .inherits = &ata_bmdma_port_ops, 21620 .inherits = &ata_bmdma_port_ops,
22464 .sff_dev_select = mpc52xx_ata_dev_select, 21621 .sff_dev_select = mpc52xx_ata_dev_select,
22465 .set_piomode = mpc52xx_ata_set_piomode, 21622 .set_piomode = mpc52xx_ata_set_piomode,
22466diff -urNp linux-2.6.38.3/drivers/ata/pata_mpiix.c linux-2.6.38.3/drivers/ata/pata_mpiix.c 21623diff -urNp linux-2.6.38.2/drivers/ata/pata_mpiix.c linux-2.6.38.2/drivers/ata/pata_mpiix.c
22467--- linux-2.6.38.3/drivers/ata/pata_mpiix.c 2011-03-14 21:20:32.000000000 -0400 21624--- linux-2.6.38.2/drivers/ata/pata_mpiix.c 2011-03-14 21:20:32.000000000 -0400
22468+++ linux-2.6.38.3/drivers/ata/pata_mpiix.c 2011-04-17 15:57:32.000000000 -0400 21625+++ linux-2.6.38.2/drivers/ata/pata_mpiix.c 2011-03-21 18:31:35.000000000 -0400
22469@@ -140,7 +140,7 @@ static struct scsi_host_template mpiix_s 21626@@ -140,7 +140,7 @@ static struct scsi_host_template mpiix_s
22470 ATA_PIO_SHT(DRV_NAME), 21627 ATA_PIO_SHT(DRV_NAME),
22471 }; 21628 };
@@ -22475,9 +21632,9 @@ diff -urNp linux-2.6.38.3/drivers/ata/pata_mpiix.c linux-2.6.38.3/drivers/ata/pa
22475 .inherits = &ata_sff_port_ops, 21632 .inherits = &ata_sff_port_ops,
22476 .qc_issue = mpiix_qc_issue, 21633 .qc_issue = mpiix_qc_issue,
22477 .cable_detect = ata_cable_40wire, 21634 .cable_detect = ata_cable_40wire,
22478diff -urNp linux-2.6.38.3/drivers/ata/pata_netcell.c linux-2.6.38.3/drivers/ata/pata_netcell.c 21635diff -urNp linux-2.6.38.2/drivers/ata/pata_netcell.c linux-2.6.38.2/drivers/ata/pata_netcell.c
22479--- linux-2.6.38.3/drivers/ata/pata_netcell.c 2011-03-14 21:20:32.000000000 -0400 21636--- linux-2.6.38.2/drivers/ata/pata_netcell.c 2011-03-14 21:20:32.000000000 -0400
22480+++ linux-2.6.38.3/drivers/ata/pata_netcell.c 2011-04-17 15:57:32.000000000 -0400 21637+++ linux-2.6.38.2/drivers/ata/pata_netcell.c 2011-03-21 18:31:35.000000000 -0400
22481@@ -34,7 +34,7 @@ static struct scsi_host_template netcell 21638@@ -34,7 +34,7 @@ static struct scsi_host_template netcell
22482 ATA_BMDMA_SHT(DRV_NAME), 21639 ATA_BMDMA_SHT(DRV_NAME),
22483 }; 21640 };
@@ -22487,9 +21644,9 @@ diff -urNp linux-2.6.38.3/drivers/ata/pata_netcell.c linux-2.6.38.3/drivers/ata/
22487 .inherits = &ata_bmdma_port_ops, 21644 .inherits = &ata_bmdma_port_ops,
22488 .cable_detect = ata_cable_80wire, 21645 .cable_detect = ata_cable_80wire,
22489 .read_id = netcell_read_id, 21646 .read_id = netcell_read_id,
22490diff -urNp linux-2.6.38.3/drivers/ata/pata_ninja32.c linux-2.6.38.3/drivers/ata/pata_ninja32.c 21647diff -urNp linux-2.6.38.2/drivers/ata/pata_ninja32.c linux-2.6.38.2/drivers/ata/pata_ninja32.c
22491--- linux-2.6.38.3/drivers/ata/pata_ninja32.c 2011-03-14 21:20:32.000000000 -0400 21648--- linux-2.6.38.2/drivers/ata/pata_ninja32.c 2011-03-14 21:20:32.000000000 -0400
22492+++ linux-2.6.38.3/drivers/ata/pata_ninja32.c 2011-04-17 15:57:32.000000000 -0400 21649+++ linux-2.6.38.2/drivers/ata/pata_ninja32.c 2011-03-21 18:31:35.000000000 -0400
22493@@ -81,7 +81,7 @@ static struct scsi_host_template ninja32 21650@@ -81,7 +81,7 @@ static struct scsi_host_template ninja32
22494 ATA_BMDMA_SHT(DRV_NAME), 21651 ATA_BMDMA_SHT(DRV_NAME),
22495 }; 21652 };
@@ -22499,9 +21656,9 @@ diff -urNp linux-2.6.38.3/drivers/ata/pata_ninja32.c linux-2.6.38.3/drivers/ata/
22499 .inherits = &ata_bmdma_port_ops, 21656 .inherits = &ata_bmdma_port_ops,
22500 .sff_dev_select = ninja32_dev_select, 21657 .sff_dev_select = ninja32_dev_select,
22501 .cable_detect = ata_cable_40wire, 21658 .cable_detect = ata_cable_40wire,
22502diff -urNp linux-2.6.38.3/drivers/ata/pata_ns87410.c linux-2.6.38.3/drivers/ata/pata_ns87410.c 21659diff -urNp linux-2.6.38.2/drivers/ata/pata_ns87410.c linux-2.6.38.2/drivers/ata/pata_ns87410.c
22503--- linux-2.6.38.3/drivers/ata/pata_ns87410.c 2011-03-14 21:20:32.000000000 -0400 21660--- linux-2.6.38.2/drivers/ata/pata_ns87410.c 2011-03-14 21:20:32.000000000 -0400
22504+++ linux-2.6.38.3/drivers/ata/pata_ns87410.c 2011-04-17 15:57:32.000000000 -0400 21661+++ linux-2.6.38.2/drivers/ata/pata_ns87410.c 2011-03-21 18:31:35.000000000 -0400
22505@@ -132,7 +132,7 @@ static struct scsi_host_template ns87410 21662@@ -132,7 +132,7 @@ static struct scsi_host_template ns87410
22506 ATA_PIO_SHT(DRV_NAME), 21663 ATA_PIO_SHT(DRV_NAME),
22507 }; 21664 };
@@ -22511,9 +21668,9 @@ diff -urNp linux-2.6.38.3/drivers/ata/pata_ns87410.c linux-2.6.38.3/drivers/ata/
22511 .inherits = &ata_sff_port_ops, 21668 .inherits = &ata_sff_port_ops,
22512 .qc_issue = ns87410_qc_issue, 21669 .qc_issue = ns87410_qc_issue,
22513 .cable_detect = ata_cable_40wire, 21670 .cable_detect = ata_cable_40wire,
22514diff -urNp linux-2.6.38.3/drivers/ata/pata_ns87415.c linux-2.6.38.3/drivers/ata/pata_ns87415.c 21671diff -urNp linux-2.6.38.2/drivers/ata/pata_ns87415.c linux-2.6.38.2/drivers/ata/pata_ns87415.c
22515--- linux-2.6.38.3/drivers/ata/pata_ns87415.c 2011-03-14 21:20:32.000000000 -0400 21672--- linux-2.6.38.2/drivers/ata/pata_ns87415.c 2011-03-14 21:20:32.000000000 -0400
22516+++ linux-2.6.38.3/drivers/ata/pata_ns87415.c 2011-04-17 15:57:32.000000000 -0400 21673+++ linux-2.6.38.2/drivers/ata/pata_ns87415.c 2011-03-21 18:31:35.000000000 -0400
22517@@ -299,7 +299,7 @@ static u8 ns87560_bmdma_status(struct at 21674@@ -299,7 +299,7 @@ static u8 ns87560_bmdma_status(struct at
22518 } 21675 }
22519 #endif /* 87560 SuperIO Support */ 21676 #endif /* 87560 SuperIO Support */
@@ -22532,9 +21689,9 @@ diff -urNp linux-2.6.38.3/drivers/ata/pata_ns87415.c linux-2.6.38.3/drivers/ata/
22532 .inherits = &ns87415_pata_ops, 21689 .inherits = &ns87415_pata_ops,
22533 .sff_tf_read = ns87560_tf_read, 21690 .sff_tf_read = ns87560_tf_read,
22534 .sff_check_status = ns87560_check_status, 21691 .sff_check_status = ns87560_check_status,
22535diff -urNp linux-2.6.38.3/drivers/ata/pata_octeon_cf.c linux-2.6.38.3/drivers/ata/pata_octeon_cf.c 21692diff -urNp linux-2.6.38.2/drivers/ata/pata_octeon_cf.c linux-2.6.38.2/drivers/ata/pata_octeon_cf.c
22536--- linux-2.6.38.3/drivers/ata/pata_octeon_cf.c 2011-03-14 21:20:32.000000000 -0400 21693--- linux-2.6.38.2/drivers/ata/pata_octeon_cf.c 2011-03-14 21:20:32.000000000 -0400
22537+++ linux-2.6.38.3/drivers/ata/pata_octeon_cf.c 2011-04-17 15:57:32.000000000 -0400 21694+++ linux-2.6.38.2/drivers/ata/pata_octeon_cf.c 2011-03-21 18:31:35.000000000 -0400
22538@@ -780,7 +780,7 @@ static unsigned int octeon_cf_qc_issue(s 21695@@ -780,7 +780,7 @@ static unsigned int octeon_cf_qc_issue(s
22539 return 0; 21696 return 0;
22540 } 21697 }
@@ -22544,9 +21701,9 @@ diff -urNp linux-2.6.38.3/drivers/ata/pata_octeon_cf.c linux-2.6.38.3/drivers/at
22544 .inherits = &ata_sff_port_ops, 21701 .inherits = &ata_sff_port_ops,
22545 .check_atapi_dma = octeon_cf_check_atapi_dma, 21702 .check_atapi_dma = octeon_cf_check_atapi_dma,
22546 .qc_prep = ata_noop_qc_prep, 21703 .qc_prep = ata_noop_qc_prep,
22547diff -urNp linux-2.6.38.3/drivers/ata/pata_oldpiix.c linux-2.6.38.3/drivers/ata/pata_oldpiix.c 21704diff -urNp linux-2.6.38.2/drivers/ata/pata_oldpiix.c linux-2.6.38.2/drivers/ata/pata_oldpiix.c
22548--- linux-2.6.38.3/drivers/ata/pata_oldpiix.c 2011-03-14 21:20:32.000000000 -0400 21705--- linux-2.6.38.2/drivers/ata/pata_oldpiix.c 2011-03-14 21:20:32.000000000 -0400
22549+++ linux-2.6.38.3/drivers/ata/pata_oldpiix.c 2011-04-17 15:57:32.000000000 -0400 21706+++ linux-2.6.38.2/drivers/ata/pata_oldpiix.c 2011-03-21 18:31:35.000000000 -0400
22550@@ -208,7 +208,7 @@ static struct scsi_host_template oldpiix 21707@@ -208,7 +208,7 @@ static struct scsi_host_template oldpiix
22551 ATA_BMDMA_SHT(DRV_NAME), 21708 ATA_BMDMA_SHT(DRV_NAME),
22552 }; 21709 };
@@ -22556,9 +21713,9 @@ diff -urNp linux-2.6.38.3/drivers/ata/pata_oldpiix.c linux-2.6.38.3/drivers/ata/
22556 .inherits = &ata_bmdma_port_ops, 21713 .inherits = &ata_bmdma_port_ops,
22557 .qc_issue = oldpiix_qc_issue, 21714 .qc_issue = oldpiix_qc_issue,
22558 .cable_detect = ata_cable_40wire, 21715 .cable_detect = ata_cable_40wire,
22559diff -urNp linux-2.6.38.3/drivers/ata/pata_opti.c linux-2.6.38.3/drivers/ata/pata_opti.c 21716diff -urNp linux-2.6.38.2/drivers/ata/pata_opti.c linux-2.6.38.2/drivers/ata/pata_opti.c
22560--- linux-2.6.38.3/drivers/ata/pata_opti.c 2011-03-14 21:20:32.000000000 -0400 21717--- linux-2.6.38.2/drivers/ata/pata_opti.c 2011-03-14 21:20:32.000000000 -0400
22561+++ linux-2.6.38.3/drivers/ata/pata_opti.c 2011-04-17 15:57:32.000000000 -0400 21718+++ linux-2.6.38.2/drivers/ata/pata_opti.c 2011-03-21 18:31:35.000000000 -0400
22562@@ -152,7 +152,7 @@ static struct scsi_host_template opti_sh 21719@@ -152,7 +152,7 @@ static struct scsi_host_template opti_sh
22563 ATA_PIO_SHT(DRV_NAME), 21720 ATA_PIO_SHT(DRV_NAME),
22564 }; 21721 };
@@ -22568,9 +21725,9 @@ diff -urNp linux-2.6.38.3/drivers/ata/pata_opti.c linux-2.6.38.3/drivers/ata/pat
22568 .inherits = &ata_sff_port_ops, 21725 .inherits = &ata_sff_port_ops,
22569 .cable_detect = ata_cable_40wire, 21726 .cable_detect = ata_cable_40wire,
22570 .set_piomode = opti_set_piomode, 21727 .set_piomode = opti_set_piomode,
22571diff -urNp linux-2.6.38.3/drivers/ata/pata_optidma.c linux-2.6.38.3/drivers/ata/pata_optidma.c 21728diff -urNp linux-2.6.38.2/drivers/ata/pata_optidma.c linux-2.6.38.2/drivers/ata/pata_optidma.c
22572--- linux-2.6.38.3/drivers/ata/pata_optidma.c 2011-03-14 21:20:32.000000000 -0400 21729--- linux-2.6.38.2/drivers/ata/pata_optidma.c 2011-03-14 21:20:32.000000000 -0400
22573+++ linux-2.6.38.3/drivers/ata/pata_optidma.c 2011-04-17 15:57:32.000000000 -0400 21730+++ linux-2.6.38.2/drivers/ata/pata_optidma.c 2011-03-21 18:31:35.000000000 -0400
22574@@ -337,7 +337,7 @@ static struct scsi_host_template optidma 21731@@ -337,7 +337,7 @@ static struct scsi_host_template optidma
22575 ATA_BMDMA_SHT(DRV_NAME), 21732 ATA_BMDMA_SHT(DRV_NAME),
22576 }; 21733 };
@@ -22589,9 +21746,9 @@ diff -urNp linux-2.6.38.3/drivers/ata/pata_optidma.c linux-2.6.38.3/drivers/ata/
22589 .inherits = &optidma_port_ops, 21746 .inherits = &optidma_port_ops,
22590 .set_piomode = optiplus_set_pio_mode, 21747 .set_piomode = optiplus_set_pio_mode,
22591 .set_dmamode = optiplus_set_dma_mode, 21748 .set_dmamode = optiplus_set_dma_mode,
22592diff -urNp linux-2.6.38.3/drivers/ata/pata_palmld.c linux-2.6.38.3/drivers/ata/pata_palmld.c 21749diff -urNp linux-2.6.38.2/drivers/ata/pata_palmld.c linux-2.6.38.2/drivers/ata/pata_palmld.c
22593--- linux-2.6.38.3/drivers/ata/pata_palmld.c 2011-03-14 21:20:32.000000000 -0400 21750--- linux-2.6.38.2/drivers/ata/pata_palmld.c 2011-03-14 21:20:32.000000000 -0400
22594+++ linux-2.6.38.3/drivers/ata/pata_palmld.c 2011-04-17 15:57:32.000000000 -0400 21751+++ linux-2.6.38.2/drivers/ata/pata_palmld.c 2011-03-21 18:31:35.000000000 -0400
22595@@ -37,7 +37,7 @@ static struct scsi_host_template palmld_ 21752@@ -37,7 +37,7 @@ static struct scsi_host_template palmld_
22596 ATA_PIO_SHT(DRV_NAME), 21753 ATA_PIO_SHT(DRV_NAME),
22597 }; 21754 };
@@ -22601,9 +21758,9 @@ diff -urNp linux-2.6.38.3/drivers/ata/pata_palmld.c linux-2.6.38.3/drivers/ata/p
22601 .inherits = &ata_sff_port_ops, 21758 .inherits = &ata_sff_port_ops,
22602 .sff_data_xfer = ata_sff_data_xfer_noirq, 21759 .sff_data_xfer = ata_sff_data_xfer_noirq,
22603 .cable_detect = ata_cable_40wire, 21760 .cable_detect = ata_cable_40wire,
22604diff -urNp linux-2.6.38.3/drivers/ata/pata_pcmcia.c linux-2.6.38.3/drivers/ata/pata_pcmcia.c 21761diff -urNp linux-2.6.38.2/drivers/ata/pata_pcmcia.c linux-2.6.38.2/drivers/ata/pata_pcmcia.c
22605--- linux-2.6.38.3/drivers/ata/pata_pcmcia.c 2011-03-14 21:20:32.000000000 -0400 21762--- linux-2.6.38.2/drivers/ata/pata_pcmcia.c 2011-03-14 21:20:32.000000000 -0400
22606+++ linux-2.6.38.3/drivers/ata/pata_pcmcia.c 2011-04-17 15:57:32.000000000 -0400 21763+++ linux-2.6.38.2/drivers/ata/pata_pcmcia.c 2011-03-21 18:31:35.000000000 -0400
22607@@ -151,14 +151,14 @@ static struct scsi_host_template pcmcia_ 21764@@ -151,14 +151,14 @@ static struct scsi_host_template pcmcia_
22608 ATA_PIO_SHT(DRV_NAME), 21765 ATA_PIO_SHT(DRV_NAME),
22609 }; 21766 };
@@ -22630,9 +21787,9 @@ diff -urNp linux-2.6.38.3/drivers/ata/pata_pcmcia.c linux-2.6.38.3/drivers/ata/p
22630 21787
22631 /* Set up attributes in order to probe card and get resources */ 21788 /* Set up attributes in order to probe card and get resources */
22632 pdev->config_flags |= CONF_ENABLE_IRQ | CONF_AUTO_SET_IO | 21789 pdev->config_flags |= CONF_ENABLE_IRQ | CONF_AUTO_SET_IO |
22633diff -urNp linux-2.6.38.3/drivers/ata/pata_pdc2027x.c linux-2.6.38.3/drivers/ata/pata_pdc2027x.c 21790diff -urNp linux-2.6.38.2/drivers/ata/pata_pdc2027x.c linux-2.6.38.2/drivers/ata/pata_pdc2027x.c
22634--- linux-2.6.38.3/drivers/ata/pata_pdc2027x.c 2011-03-14 21:20:32.000000000 -0400 21791--- linux-2.6.38.2/drivers/ata/pata_pdc2027x.c 2011-03-14 21:20:32.000000000 -0400
22635+++ linux-2.6.38.3/drivers/ata/pata_pdc2027x.c 2011-04-17 15:57:32.000000000 -0400 21792+++ linux-2.6.38.2/drivers/ata/pata_pdc2027x.c 2011-03-21 18:31:35.000000000 -0400
22636@@ -132,14 +132,14 @@ static struct scsi_host_template pdc2027 21793@@ -132,14 +132,14 @@ static struct scsi_host_template pdc2027
22637 ATA_BMDMA_SHT(DRV_NAME), 21794 ATA_BMDMA_SHT(DRV_NAME),
22638 }; 21795 };
@@ -22650,9 +21807,9 @@ diff -urNp linux-2.6.38.3/drivers/ata/pata_pdc2027x.c linux-2.6.38.3/drivers/ata
22650 .inherits = &pdc2027x_pata100_ops, 21807 .inherits = &pdc2027x_pata100_ops,
22651 .mode_filter = pdc2027x_mode_filter, 21808 .mode_filter = pdc2027x_mode_filter,
22652 .set_piomode = pdc2027x_set_piomode, 21809 .set_piomode = pdc2027x_set_piomode,
22653diff -urNp linux-2.6.38.3/drivers/ata/pata_pdc202xx_old.c linux-2.6.38.3/drivers/ata/pata_pdc202xx_old.c 21810diff -urNp linux-2.6.38.2/drivers/ata/pata_pdc202xx_old.c linux-2.6.38.2/drivers/ata/pata_pdc202xx_old.c
22654--- linux-2.6.38.3/drivers/ata/pata_pdc202xx_old.c 2011-03-14 21:20:32.000000000 -0400 21811--- linux-2.6.38.2/drivers/ata/pata_pdc202xx_old.c 2011-03-14 21:20:32.000000000 -0400
22655+++ linux-2.6.38.3/drivers/ata/pata_pdc202xx_old.c 2011-04-17 15:57:32.000000000 -0400 21812+++ linux-2.6.38.2/drivers/ata/pata_pdc202xx_old.c 2011-03-21 18:31:35.000000000 -0400
22656@@ -295,7 +295,7 @@ static struct scsi_host_template pdc202x 21813@@ -295,7 +295,7 @@ static struct scsi_host_template pdc202x
22657 ATA_BMDMA_SHT(DRV_NAME), 21814 ATA_BMDMA_SHT(DRV_NAME),
22658 }; 21815 };
@@ -22671,9 +21828,9 @@ diff -urNp linux-2.6.38.3/drivers/ata/pata_pdc202xx_old.c linux-2.6.38.3/drivers
22671 .inherits = &pdc2024x_port_ops, 21828 .inherits = &pdc2024x_port_ops,
22672 21829
22673 .check_atapi_dma = pdc2026x_check_atapi_dma, 21830 .check_atapi_dma = pdc2026x_check_atapi_dma,
22674diff -urNp linux-2.6.38.3/drivers/ata/pata_piccolo.c linux-2.6.38.3/drivers/ata/pata_piccolo.c 21831diff -urNp linux-2.6.38.2/drivers/ata/pata_piccolo.c linux-2.6.38.2/drivers/ata/pata_piccolo.c
22675--- linux-2.6.38.3/drivers/ata/pata_piccolo.c 2011-03-14 21:20:32.000000000 -0400 21832--- linux-2.6.38.2/drivers/ata/pata_piccolo.c 2011-03-14 21:20:32.000000000 -0400
22676+++ linux-2.6.38.3/drivers/ata/pata_piccolo.c 2011-04-17 15:57:32.000000000 -0400 21833+++ linux-2.6.38.2/drivers/ata/pata_piccolo.c 2011-03-21 18:31:35.000000000 -0400
22677@@ -67,7 +67,7 @@ static struct scsi_host_template tosh_sh 21834@@ -67,7 +67,7 @@ static struct scsi_host_template tosh_sh
22678 ATA_BMDMA_SHT(DRV_NAME), 21835 ATA_BMDMA_SHT(DRV_NAME),
22679 }; 21836 };
@@ -22683,9 +21840,9 @@ diff -urNp linux-2.6.38.3/drivers/ata/pata_piccolo.c linux-2.6.38.3/drivers/ata/
22683 .inherits = &ata_bmdma_port_ops, 21840 .inherits = &ata_bmdma_port_ops,
22684 .cable_detect = ata_cable_unknown, 21841 .cable_detect = ata_cable_unknown,
22685 .set_piomode = tosh_set_piomode, 21842 .set_piomode = tosh_set_piomode,
22686diff -urNp linux-2.6.38.3/drivers/ata/pata_platform.c linux-2.6.38.3/drivers/ata/pata_platform.c 21843diff -urNp linux-2.6.38.2/drivers/ata/pata_platform.c linux-2.6.38.2/drivers/ata/pata_platform.c
22687--- linux-2.6.38.3/drivers/ata/pata_platform.c 2011-03-14 21:20:32.000000000 -0400 21844--- linux-2.6.38.2/drivers/ata/pata_platform.c 2011-03-14 21:20:32.000000000 -0400
22688+++ linux-2.6.38.3/drivers/ata/pata_platform.c 2011-04-17 15:57:32.000000000 -0400 21845+++ linux-2.6.38.2/drivers/ata/pata_platform.c 2011-03-21 18:31:35.000000000 -0400
22689@@ -48,7 +48,7 @@ static struct scsi_host_template pata_pl 21846@@ -48,7 +48,7 @@ static struct scsi_host_template pata_pl
22690 ATA_PIO_SHT(DRV_NAME), 21847 ATA_PIO_SHT(DRV_NAME),
22691 }; 21848 };
@@ -22695,9 +21852,9 @@ diff -urNp linux-2.6.38.3/drivers/ata/pata_platform.c linux-2.6.38.3/drivers/ata
22695 .inherits = &ata_sff_port_ops, 21852 .inherits = &ata_sff_port_ops,
22696 .sff_data_xfer = ata_sff_data_xfer_noirq, 21853 .sff_data_xfer = ata_sff_data_xfer_noirq,
22697 .cable_detect = ata_cable_unknown, 21854 .cable_detect = ata_cable_unknown,
22698diff -urNp linux-2.6.38.3/drivers/ata/pata_pxa.c linux-2.6.38.3/drivers/ata/pata_pxa.c 21855diff -urNp linux-2.6.38.2/drivers/ata/pata_pxa.c linux-2.6.38.2/drivers/ata/pata_pxa.c
22699--- linux-2.6.38.3/drivers/ata/pata_pxa.c 2011-03-14 21:20:32.000000000 -0400 21856--- linux-2.6.38.2/drivers/ata/pata_pxa.c 2011-03-14 21:20:32.000000000 -0400
22700+++ linux-2.6.38.3/drivers/ata/pata_pxa.c 2011-04-17 15:57:32.000000000 -0400 21857+++ linux-2.6.38.2/drivers/ata/pata_pxa.c 2011-03-21 18:31:35.000000000 -0400
22701@@ -198,7 +198,7 @@ static struct scsi_host_template pxa_ata 21858@@ -198,7 +198,7 @@ static struct scsi_host_template pxa_ata
22702 ATA_BMDMA_SHT(DRV_NAME), 21859 ATA_BMDMA_SHT(DRV_NAME),
22703 }; 21860 };
@@ -22707,9 +21864,9 @@ diff -urNp linux-2.6.38.3/drivers/ata/pata_pxa.c linux-2.6.38.3/drivers/ata/pata
22707 .inherits = &ata_bmdma_port_ops, 21864 .inherits = &ata_bmdma_port_ops,
22708 .cable_detect = ata_cable_40wire, 21865 .cable_detect = ata_cable_40wire,
22709 21866
22710diff -urNp linux-2.6.38.3/drivers/ata/pata_qdi.c linux-2.6.38.3/drivers/ata/pata_qdi.c 21867diff -urNp linux-2.6.38.2/drivers/ata/pata_qdi.c linux-2.6.38.2/drivers/ata/pata_qdi.c
22711--- linux-2.6.38.3/drivers/ata/pata_qdi.c 2011-03-14 21:20:32.000000000 -0400 21868--- linux-2.6.38.2/drivers/ata/pata_qdi.c 2011-03-14 21:20:32.000000000 -0400
22712+++ linux-2.6.38.3/drivers/ata/pata_qdi.c 2011-04-17 15:57:32.000000000 -0400 21869+++ linux-2.6.38.2/drivers/ata/pata_qdi.c 2011-03-21 18:31:35.000000000 -0400
22713@@ -157,7 +157,7 @@ static struct scsi_host_template qdi_sht 21870@@ -157,7 +157,7 @@ static struct scsi_host_template qdi_sht
22714 ATA_PIO_SHT(DRV_NAME), 21871 ATA_PIO_SHT(DRV_NAME),
22715 }; 21872 };
@@ -22728,9 +21885,9 @@ diff -urNp linux-2.6.38.3/drivers/ata/pata_qdi.c linux-2.6.38.3/drivers/ata/pata
22728 .inherits = &qdi6500_port_ops, 21885 .inherits = &qdi6500_port_ops,
22729 .set_piomode = qdi6580_set_piomode, 21886 .set_piomode = qdi6580_set_piomode,
22730 }; 21887 };
22731diff -urNp linux-2.6.38.3/drivers/ata/pata_radisys.c linux-2.6.38.3/drivers/ata/pata_radisys.c 21888diff -urNp linux-2.6.38.2/drivers/ata/pata_radisys.c linux-2.6.38.2/drivers/ata/pata_radisys.c
22732--- linux-2.6.38.3/drivers/ata/pata_radisys.c 2011-03-14 21:20:32.000000000 -0400 21889--- linux-2.6.38.2/drivers/ata/pata_radisys.c 2011-03-14 21:20:32.000000000 -0400
22733+++ linux-2.6.38.3/drivers/ata/pata_radisys.c 2011-04-17 15:57:32.000000000 -0400 21890+++ linux-2.6.38.2/drivers/ata/pata_radisys.c 2011-03-21 18:31:35.000000000 -0400
22734@@ -187,7 +187,7 @@ static struct scsi_host_template radisys 21891@@ -187,7 +187,7 @@ static struct scsi_host_template radisys
22735 ATA_BMDMA_SHT(DRV_NAME), 21892 ATA_BMDMA_SHT(DRV_NAME),
22736 }; 21893 };
@@ -22740,9 +21897,9 @@ diff -urNp linux-2.6.38.3/drivers/ata/pata_radisys.c linux-2.6.38.3/drivers/ata/
22740 .inherits = &ata_bmdma_port_ops, 21897 .inherits = &ata_bmdma_port_ops,
22741 .qc_issue = radisys_qc_issue, 21898 .qc_issue = radisys_qc_issue,
22742 .cable_detect = ata_cable_unknown, 21899 .cable_detect = ata_cable_unknown,
22743diff -urNp linux-2.6.38.3/drivers/ata/pata_rb532_cf.c linux-2.6.38.3/drivers/ata/pata_rb532_cf.c 21900diff -urNp linux-2.6.38.2/drivers/ata/pata_rb532_cf.c linux-2.6.38.2/drivers/ata/pata_rb532_cf.c
22744--- linux-2.6.38.3/drivers/ata/pata_rb532_cf.c 2011-03-14 21:20:32.000000000 -0400 21901--- linux-2.6.38.2/drivers/ata/pata_rb532_cf.c 2011-03-14 21:20:32.000000000 -0400
22745+++ linux-2.6.38.3/drivers/ata/pata_rb532_cf.c 2011-04-17 15:57:32.000000000 -0400 21902+++ linux-2.6.38.2/drivers/ata/pata_rb532_cf.c 2011-03-21 18:31:35.000000000 -0400
22746@@ -69,7 +69,7 @@ static irqreturn_t rb532_pata_irq_handle 21903@@ -69,7 +69,7 @@ static irqreturn_t rb532_pata_irq_handle
22747 return IRQ_HANDLED; 21904 return IRQ_HANDLED;
22748 } 21905 }
@@ -22752,9 +21909,9 @@ diff -urNp linux-2.6.38.3/drivers/ata/pata_rb532_cf.c linux-2.6.38.3/drivers/ata
22752 .inherits = &ata_sff_port_ops, 21909 .inherits = &ata_sff_port_ops,
22753 .sff_data_xfer = ata_sff_data_xfer32, 21910 .sff_data_xfer = ata_sff_data_xfer32,
22754 }; 21911 };
22755diff -urNp linux-2.6.38.3/drivers/ata/pata_rdc.c linux-2.6.38.3/drivers/ata/pata_rdc.c 21912diff -urNp linux-2.6.38.2/drivers/ata/pata_rdc.c linux-2.6.38.2/drivers/ata/pata_rdc.c
22756--- linux-2.6.38.3/drivers/ata/pata_rdc.c 2011-03-14 21:20:32.000000000 -0400 21913--- linux-2.6.38.2/drivers/ata/pata_rdc.c 2011-03-14 21:20:32.000000000 -0400
22757+++ linux-2.6.38.3/drivers/ata/pata_rdc.c 2011-04-17 15:57:32.000000000 -0400 21914+++ linux-2.6.38.2/drivers/ata/pata_rdc.c 2011-03-21 18:31:35.000000000 -0400
22758@@ -273,7 +273,7 @@ static void rdc_set_dmamode(struct ata_p 21915@@ -273,7 +273,7 @@ static void rdc_set_dmamode(struct ata_p
22759 pci_write_config_byte(dev, 0x48, udma_enable); 21916 pci_write_config_byte(dev, 0x48, udma_enable);
22760 } 21917 }
@@ -22764,9 +21921,9 @@ diff -urNp linux-2.6.38.3/drivers/ata/pata_rdc.c linux-2.6.38.3/drivers/ata/pata
22764 .inherits = &ata_bmdma32_port_ops, 21921 .inherits = &ata_bmdma32_port_ops,
22765 .cable_detect = rdc_pata_cable_detect, 21922 .cable_detect = rdc_pata_cable_detect,
22766 .set_piomode = rdc_set_piomode, 21923 .set_piomode = rdc_set_piomode,
22767diff -urNp linux-2.6.38.3/drivers/ata/pata_rz1000.c linux-2.6.38.3/drivers/ata/pata_rz1000.c 21924diff -urNp linux-2.6.38.2/drivers/ata/pata_rz1000.c linux-2.6.38.2/drivers/ata/pata_rz1000.c
22768--- linux-2.6.38.3/drivers/ata/pata_rz1000.c 2011-03-14 21:20:32.000000000 -0400 21925--- linux-2.6.38.2/drivers/ata/pata_rz1000.c 2011-03-14 21:20:32.000000000 -0400
22769+++ linux-2.6.38.3/drivers/ata/pata_rz1000.c 2011-04-17 15:57:32.000000000 -0400 21926+++ linux-2.6.38.2/drivers/ata/pata_rz1000.c 2011-03-21 18:31:35.000000000 -0400
22770@@ -54,7 +54,7 @@ static struct scsi_host_template rz1000_ 21927@@ -54,7 +54,7 @@ static struct scsi_host_template rz1000_
22771 ATA_PIO_SHT(DRV_NAME), 21928 ATA_PIO_SHT(DRV_NAME),
22772 }; 21929 };
@@ -22776,9 +21933,9 @@ diff -urNp linux-2.6.38.3/drivers/ata/pata_rz1000.c linux-2.6.38.3/drivers/ata/p
22776 .inherits = &ata_sff_port_ops, 21933 .inherits = &ata_sff_port_ops,
22777 .cable_detect = ata_cable_40wire, 21934 .cable_detect = ata_cable_40wire,
22778 .set_mode = rz1000_set_mode, 21935 .set_mode = rz1000_set_mode,
22779diff -urNp linux-2.6.38.3/drivers/ata/pata_samsung_cf.c linux-2.6.38.3/drivers/ata/pata_samsung_cf.c 21936diff -urNp linux-2.6.38.2/drivers/ata/pata_samsung_cf.c linux-2.6.38.2/drivers/ata/pata_samsung_cf.c
22780--- linux-2.6.38.3/drivers/ata/pata_samsung_cf.c 2011-03-14 21:20:32.000000000 -0400 21937--- linux-2.6.38.2/drivers/ata/pata_samsung_cf.c 2011-03-14 21:20:32.000000000 -0400
22781+++ linux-2.6.38.3/drivers/ata/pata_samsung_cf.c 2011-04-17 15:57:32.000000000 -0400 21938+++ linux-2.6.38.2/drivers/ata/pata_samsung_cf.c 2011-03-21 18:31:35.000000000 -0400
22782@@ -399,7 +399,7 @@ static struct scsi_host_template pata_s3 21939@@ -399,7 +399,7 @@ static struct scsi_host_template pata_s3
22783 ATA_PIO_SHT(DRV_NAME), 21940 ATA_PIO_SHT(DRV_NAME),
22784 }; 21941 };
@@ -22797,9 +21954,9 @@ diff -urNp linux-2.6.38.3/drivers/ata/pata_samsung_cf.c linux-2.6.38.3/drivers/a
22797 .inherits = &ata_sff_port_ops, 21954 .inherits = &ata_sff_port_ops,
22798 .set_piomode = pata_s3c_set_piomode, 21955 .set_piomode = pata_s3c_set_piomode,
22799 }; 21956 };
22800diff -urNp linux-2.6.38.3/drivers/ata/pata_sc1200.c linux-2.6.38.3/drivers/ata/pata_sc1200.c 21957diff -urNp linux-2.6.38.2/drivers/ata/pata_sc1200.c linux-2.6.38.2/drivers/ata/pata_sc1200.c
22801--- linux-2.6.38.3/drivers/ata/pata_sc1200.c 2011-03-14 21:20:32.000000000 -0400 21958--- linux-2.6.38.2/drivers/ata/pata_sc1200.c 2011-03-14 21:20:32.000000000 -0400
22802+++ linux-2.6.38.3/drivers/ata/pata_sc1200.c 2011-04-17 15:57:32.000000000 -0400 21959+++ linux-2.6.38.2/drivers/ata/pata_sc1200.c 2011-03-21 18:31:35.000000000 -0400
22803@@ -207,7 +207,7 @@ static struct scsi_host_template sc1200_ 21960@@ -207,7 +207,7 @@ static struct scsi_host_template sc1200_
22804 .sg_tablesize = LIBATA_DUMB_MAX_PRD, 21961 .sg_tablesize = LIBATA_DUMB_MAX_PRD,
22805 }; 21962 };
@@ -22809,9 +21966,9 @@ diff -urNp linux-2.6.38.3/drivers/ata/pata_sc1200.c linux-2.6.38.3/drivers/ata/p
22809 .inherits = &ata_bmdma_port_ops, 21966 .inherits = &ata_bmdma_port_ops,
22810 .qc_prep = ata_bmdma_dumb_qc_prep, 21967 .qc_prep = ata_bmdma_dumb_qc_prep,
22811 .qc_issue = sc1200_qc_issue, 21968 .qc_issue = sc1200_qc_issue,
22812diff -urNp linux-2.6.38.3/drivers/ata/pata_scc.c linux-2.6.38.3/drivers/ata/pata_scc.c 21969diff -urNp linux-2.6.38.2/drivers/ata/pata_scc.c linux-2.6.38.2/drivers/ata/pata_scc.c
22813--- linux-2.6.38.3/drivers/ata/pata_scc.c 2011-03-14 21:20:32.000000000 -0400 21970--- linux-2.6.38.2/drivers/ata/pata_scc.c 2011-03-14 21:20:32.000000000 -0400
22814+++ linux-2.6.38.3/drivers/ata/pata_scc.c 2011-04-17 15:57:32.000000000 -0400 21971+++ linux-2.6.38.2/drivers/ata/pata_scc.c 2011-03-21 18:31:35.000000000 -0400
22815@@ -926,7 +926,7 @@ static struct scsi_host_template scc_sht 21972@@ -926,7 +926,7 @@ static struct scsi_host_template scc_sht
22816 ATA_BMDMA_SHT(DRV_NAME), 21973 ATA_BMDMA_SHT(DRV_NAME),
22817 }; 21974 };
@@ -22821,9 +21978,9 @@ diff -urNp linux-2.6.38.3/drivers/ata/pata_scc.c linux-2.6.38.3/drivers/ata/pata
22821 .inherits = &ata_bmdma_port_ops, 21978 .inherits = &ata_bmdma_port_ops,
22822 21979
22823 .set_piomode = scc_set_piomode, 21980 .set_piomode = scc_set_piomode,
22824diff -urNp linux-2.6.38.3/drivers/ata/pata_sch.c linux-2.6.38.3/drivers/ata/pata_sch.c 21981diff -urNp linux-2.6.38.2/drivers/ata/pata_sch.c linux-2.6.38.2/drivers/ata/pata_sch.c
22825--- linux-2.6.38.3/drivers/ata/pata_sch.c 2011-03-14 21:20:32.000000000 -0400 21982--- linux-2.6.38.2/drivers/ata/pata_sch.c 2011-03-14 21:20:32.000000000 -0400
22826+++ linux-2.6.38.3/drivers/ata/pata_sch.c 2011-04-17 15:57:32.000000000 -0400 21983+++ linux-2.6.38.2/drivers/ata/pata_sch.c 2011-03-21 18:31:35.000000000 -0400
22827@@ -75,7 +75,7 @@ static struct scsi_host_template sch_sht 21984@@ -75,7 +75,7 @@ static struct scsi_host_template sch_sht
22828 ATA_BMDMA_SHT(DRV_NAME), 21985 ATA_BMDMA_SHT(DRV_NAME),
22829 }; 21986 };
@@ -22833,9 +21990,9 @@ diff -urNp linux-2.6.38.3/drivers/ata/pata_sch.c linux-2.6.38.3/drivers/ata/pata
22833 .inherits = &ata_bmdma_port_ops, 21990 .inherits = &ata_bmdma_port_ops,
22834 .cable_detect = ata_cable_unknown, 21991 .cable_detect = ata_cable_unknown,
22835 .set_piomode = sch_set_piomode, 21992 .set_piomode = sch_set_piomode,
22836diff -urNp linux-2.6.38.3/drivers/ata/pata_serverworks.c linux-2.6.38.3/drivers/ata/pata_serverworks.c 21993diff -urNp linux-2.6.38.2/drivers/ata/pata_serverworks.c linux-2.6.38.2/drivers/ata/pata_serverworks.c
22837--- linux-2.6.38.3/drivers/ata/pata_serverworks.c 2011-03-14 21:20:32.000000000 -0400 21994--- linux-2.6.38.2/drivers/ata/pata_serverworks.c 2011-03-14 21:20:32.000000000 -0400
22838+++ linux-2.6.38.3/drivers/ata/pata_serverworks.c 2011-04-17 15:57:32.000000000 -0400 21995+++ linux-2.6.38.2/drivers/ata/pata_serverworks.c 2011-03-21 18:31:35.000000000 -0400
22839@@ -300,7 +300,7 @@ static struct scsi_host_template serverw 21996@@ -300,7 +300,7 @@ static struct scsi_host_template serverw
22840 ATA_BMDMA_SHT(DRV_NAME), 21997 ATA_BMDMA_SHT(DRV_NAME),
22841 }; 21998 };
@@ -22854,9 +22011,9 @@ diff -urNp linux-2.6.38.3/drivers/ata/pata_serverworks.c linux-2.6.38.3/drivers/
22854 .inherits = &serverworks_osb4_port_ops, 22011 .inherits = &serverworks_osb4_port_ops,
22855 .mode_filter = serverworks_csb_filter, 22012 .mode_filter = serverworks_csb_filter,
22856 }; 22013 };
22857diff -urNp linux-2.6.38.3/drivers/ata/pata_sil680.c linux-2.6.38.3/drivers/ata/pata_sil680.c 22014diff -urNp linux-2.6.38.2/drivers/ata/pata_sil680.c linux-2.6.38.2/drivers/ata/pata_sil680.c
22858--- linux-2.6.38.3/drivers/ata/pata_sil680.c 2011-03-14 21:20:32.000000000 -0400 22015--- linux-2.6.38.2/drivers/ata/pata_sil680.c 2011-03-14 21:20:32.000000000 -0400
22859+++ linux-2.6.38.3/drivers/ata/pata_sil680.c 2011-04-17 15:57:32.000000000 -0400 22016+++ linux-2.6.38.2/drivers/ata/pata_sil680.c 2011-03-21 18:31:35.000000000 -0400
22860@@ -225,8 +225,7 @@ static struct scsi_host_template sil680_ 22017@@ -225,8 +225,7 @@ static struct scsi_host_template sil680_
22861 ATA_BMDMA_SHT(DRV_NAME), 22018 ATA_BMDMA_SHT(DRV_NAME),
22862 }; 22019 };
@@ -22867,9 +22024,9 @@ diff -urNp linux-2.6.38.3/drivers/ata/pata_sil680.c linux-2.6.38.3/drivers/ata/p
22867 .inherits = &ata_bmdma32_port_ops, 22024 .inherits = &ata_bmdma32_port_ops,
22868 .sff_exec_command = sil680_sff_exec_command, 22025 .sff_exec_command = sil680_sff_exec_command,
22869 .sff_irq_check = sil680_sff_irq_check, 22026 .sff_irq_check = sil680_sff_irq_check,
22870diff -urNp linux-2.6.38.3/drivers/ata/pata_sis.c linux-2.6.38.3/drivers/ata/pata_sis.c 22027diff -urNp linux-2.6.38.2/drivers/ata/pata_sis.c linux-2.6.38.2/drivers/ata/pata_sis.c
22871--- linux-2.6.38.3/drivers/ata/pata_sis.c 2011-03-14 21:20:32.000000000 -0400 22028--- linux-2.6.38.2/drivers/ata/pata_sis.c 2011-03-14 21:20:32.000000000 -0400
22872+++ linux-2.6.38.3/drivers/ata/pata_sis.c 2011-04-17 15:57:32.000000000 -0400 22029+++ linux-2.6.38.2/drivers/ata/pata_sis.c 2011-03-21 18:31:35.000000000 -0400
22873@@ -503,47 +503,47 @@ static struct scsi_host_template sis_sht 22030@@ -503,47 +503,47 @@ static struct scsi_host_template sis_sht
22874 ATA_BMDMA_SHT(DRV_NAME), 22031 ATA_BMDMA_SHT(DRV_NAME),
22875 }; 22032 };
@@ -22925,9 +22082,9 @@ diff -urNp linux-2.6.38.3/drivers/ata/pata_sis.c linux-2.6.38.3/drivers/ata/pata
22925 .inherits = &sis_base_ops, 22082 .inherits = &sis_base_ops,
22926 .set_piomode = sis_old_set_piomode, 22083 .set_piomode = sis_old_set_piomode,
22927 .set_dmamode = sis_old_set_dmamode, 22084 .set_dmamode = sis_old_set_dmamode,
22928diff -urNp linux-2.6.38.3/drivers/ata/pata_sl82c105.c linux-2.6.38.3/drivers/ata/pata_sl82c105.c 22085diff -urNp linux-2.6.38.2/drivers/ata/pata_sl82c105.c linux-2.6.38.2/drivers/ata/pata_sl82c105.c
22929--- linux-2.6.38.3/drivers/ata/pata_sl82c105.c 2011-03-14 21:20:32.000000000 -0400 22086--- linux-2.6.38.2/drivers/ata/pata_sl82c105.c 2011-03-14 21:20:32.000000000 -0400
22930+++ linux-2.6.38.3/drivers/ata/pata_sl82c105.c 2011-04-17 15:57:32.000000000 -0400 22087+++ linux-2.6.38.2/drivers/ata/pata_sl82c105.c 2011-03-21 18:31:35.000000000 -0400
22931@@ -241,7 +241,7 @@ static struct scsi_host_template sl82c10 22088@@ -241,7 +241,7 @@ static struct scsi_host_template sl82c10
22932 ATA_BMDMA_SHT(DRV_NAME), 22089 ATA_BMDMA_SHT(DRV_NAME),
22933 }; 22090 };
@@ -22937,9 +22094,9 @@ diff -urNp linux-2.6.38.3/drivers/ata/pata_sl82c105.c linux-2.6.38.3/drivers/ata
22937 .inherits = &ata_bmdma_port_ops, 22094 .inherits = &ata_bmdma_port_ops,
22938 .qc_defer = sl82c105_qc_defer, 22095 .qc_defer = sl82c105_qc_defer,
22939 .bmdma_start = sl82c105_bmdma_start, 22096 .bmdma_start = sl82c105_bmdma_start,
22940diff -urNp linux-2.6.38.3/drivers/ata/pata_triflex.c linux-2.6.38.3/drivers/ata/pata_triflex.c 22097diff -urNp linux-2.6.38.2/drivers/ata/pata_triflex.c linux-2.6.38.2/drivers/ata/pata_triflex.c
22941--- linux-2.6.38.3/drivers/ata/pata_triflex.c 2011-03-14 21:20:32.000000000 -0400 22098--- linux-2.6.38.2/drivers/ata/pata_triflex.c 2011-03-14 21:20:32.000000000 -0400
22942+++ linux-2.6.38.3/drivers/ata/pata_triflex.c 2011-04-17 15:57:32.000000000 -0400 22099+++ linux-2.6.38.2/drivers/ata/pata_triflex.c 2011-03-21 18:31:35.000000000 -0400
22943@@ -178,7 +178,7 @@ static struct scsi_host_template triflex 22100@@ -178,7 +178,7 @@ static struct scsi_host_template triflex
22944 ATA_BMDMA_SHT(DRV_NAME), 22101 ATA_BMDMA_SHT(DRV_NAME),
22945 }; 22102 };
@@ -22949,9 +22106,9 @@ diff -urNp linux-2.6.38.3/drivers/ata/pata_triflex.c linux-2.6.38.3/drivers/ata/
22949 .inherits = &ata_bmdma_port_ops, 22106 .inherits = &ata_bmdma_port_ops,
22950 .bmdma_start = triflex_bmdma_start, 22107 .bmdma_start = triflex_bmdma_start,
22951 .bmdma_stop = triflex_bmdma_stop, 22108 .bmdma_stop = triflex_bmdma_stop,
22952diff -urNp linux-2.6.38.3/drivers/ata/pata_via.c linux-2.6.38.3/drivers/ata/pata_via.c 22109diff -urNp linux-2.6.38.2/drivers/ata/pata_via.c linux-2.6.38.2/drivers/ata/pata_via.c
22953--- linux-2.6.38.3/drivers/ata/pata_via.c 2011-03-14 21:20:32.000000000 -0400 22110--- linux-2.6.38.2/drivers/ata/pata_via.c 2011-03-14 21:20:32.000000000 -0400
22954+++ linux-2.6.38.3/drivers/ata/pata_via.c 2011-04-17 15:57:32.000000000 -0400 22111+++ linux-2.6.38.2/drivers/ata/pata_via.c 2011-03-21 18:31:35.000000000 -0400
22955@@ -441,7 +441,7 @@ static struct scsi_host_template via_sht 22112@@ -441,7 +441,7 @@ static struct scsi_host_template via_sht
22956 ATA_BMDMA_SHT(DRV_NAME), 22113 ATA_BMDMA_SHT(DRV_NAME),
22957 }; 22114 };
@@ -22970,9 +22127,9 @@ diff -urNp linux-2.6.38.3/drivers/ata/pata_via.c linux-2.6.38.3/drivers/ata/pata
22970 .inherits = &via_port_ops, 22127 .inherits = &via_port_ops,
22971 .sff_data_xfer = ata_sff_data_xfer_noirq, 22128 .sff_data_xfer = ata_sff_data_xfer_noirq,
22972 }; 22129 };
22973diff -urNp linux-2.6.38.3/drivers/ata/pdc_adma.c linux-2.6.38.3/drivers/ata/pdc_adma.c 22130diff -urNp linux-2.6.38.2/drivers/ata/pdc_adma.c linux-2.6.38.2/drivers/ata/pdc_adma.c
22974--- linux-2.6.38.3/drivers/ata/pdc_adma.c 2011-03-14 21:20:32.000000000 -0400 22131--- linux-2.6.38.2/drivers/ata/pdc_adma.c 2011-03-14 21:20:32.000000000 -0400
22975+++ linux-2.6.38.3/drivers/ata/pdc_adma.c 2011-04-17 15:57:32.000000000 -0400 22132+++ linux-2.6.38.2/drivers/ata/pdc_adma.c 2011-03-21 18:31:35.000000000 -0400
22976@@ -146,7 +146,7 @@ static struct scsi_host_template adma_at 22133@@ -146,7 +146,7 @@ static struct scsi_host_template adma_at
22977 .dma_boundary = ADMA_DMA_BOUNDARY, 22134 .dma_boundary = ADMA_DMA_BOUNDARY,
22978 }; 22135 };
@@ -22982,9 +22139,9 @@ diff -urNp linux-2.6.38.3/drivers/ata/pdc_adma.c linux-2.6.38.3/drivers/ata/pdc_
22982 .inherits = &ata_sff_port_ops, 22139 .inherits = &ata_sff_port_ops,
22983 22140
22984 .lost_interrupt = ATA_OP_NULL, 22141 .lost_interrupt = ATA_OP_NULL,
22985diff -urNp linux-2.6.38.3/drivers/ata/sata_dwc_460ex.c linux-2.6.38.3/drivers/ata/sata_dwc_460ex.c 22142diff -urNp linux-2.6.38.2/drivers/ata/sata_dwc_460ex.c linux-2.6.38.2/drivers/ata/sata_dwc_460ex.c
22986--- linux-2.6.38.3/drivers/ata/sata_dwc_460ex.c 2011-03-14 21:20:32.000000000 -0400 22143--- linux-2.6.38.2/drivers/ata/sata_dwc_460ex.c 2011-03-14 21:20:32.000000000 -0400
22987+++ linux-2.6.38.3/drivers/ata/sata_dwc_460ex.c 2011-04-17 15:57:32.000000000 -0400 22144+++ linux-2.6.38.2/drivers/ata/sata_dwc_460ex.c 2011-03-21 18:31:35.000000000 -0400
22988@@ -1560,7 +1560,7 @@ static struct scsi_host_template sata_dw 22145@@ -1560,7 +1560,7 @@ static struct scsi_host_template sata_dw
22989 .dma_boundary = ATA_DMA_BOUNDARY, 22146 .dma_boundary = ATA_DMA_BOUNDARY,
22990 }; 22147 };
@@ -22994,9 +22151,9 @@ diff -urNp linux-2.6.38.3/drivers/ata/sata_dwc_460ex.c linux-2.6.38.3/drivers/at
22994 .inherits = &ata_sff_port_ops, 22151 .inherits = &ata_sff_port_ops,
22995 22152
22996 .error_handler = sata_dwc_error_handler, 22153 .error_handler = sata_dwc_error_handler,
22997diff -urNp linux-2.6.38.3/drivers/ata/sata_fsl.c linux-2.6.38.3/drivers/ata/sata_fsl.c 22154diff -urNp linux-2.6.38.2/drivers/ata/sata_fsl.c linux-2.6.38.2/drivers/ata/sata_fsl.c
22998--- linux-2.6.38.3/drivers/ata/sata_fsl.c 2011-03-14 21:20:32.000000000 -0400 22155--- linux-2.6.38.2/drivers/ata/sata_fsl.c 2011-03-14 21:20:32.000000000 -0400
22999+++ linux-2.6.38.3/drivers/ata/sata_fsl.c 2011-04-17 15:57:32.000000000 -0400 22156+++ linux-2.6.38.2/drivers/ata/sata_fsl.c 2011-03-21 18:31:35.000000000 -0400
23000@@ -1258,7 +1258,7 @@ static struct scsi_host_template sata_fs 22157@@ -1258,7 +1258,7 @@ static struct scsi_host_template sata_fs
23001 .dma_boundary = ATA_DMA_BOUNDARY, 22158 .dma_boundary = ATA_DMA_BOUNDARY,
23002 }; 22159 };
@@ -23006,9 +22163,9 @@ diff -urNp linux-2.6.38.3/drivers/ata/sata_fsl.c linux-2.6.38.3/drivers/ata/sata
23006 .inherits = &sata_pmp_port_ops, 22163 .inherits = &sata_pmp_port_ops,
23007 22164
23008 .qc_defer = ata_std_qc_defer, 22165 .qc_defer = ata_std_qc_defer,
23009diff -urNp linux-2.6.38.3/drivers/ata/sata_inic162x.c linux-2.6.38.3/drivers/ata/sata_inic162x.c 22166diff -urNp linux-2.6.38.2/drivers/ata/sata_inic162x.c linux-2.6.38.2/drivers/ata/sata_inic162x.c
23010--- linux-2.6.38.3/drivers/ata/sata_inic162x.c 2011-03-14 21:20:32.000000000 -0400 22167--- linux-2.6.38.2/drivers/ata/sata_inic162x.c 2011-03-14 21:20:32.000000000 -0400
23011+++ linux-2.6.38.3/drivers/ata/sata_inic162x.c 2011-04-17 15:57:32.000000000 -0400 22168+++ linux-2.6.38.2/drivers/ata/sata_inic162x.c 2011-03-21 18:31:35.000000000 -0400
23012@@ -705,7 +705,7 @@ static int inic_port_start(struct ata_po 22169@@ -705,7 +705,7 @@ static int inic_port_start(struct ata_po
23013 return 0; 22170 return 0;
23014 } 22171 }
@@ -23018,9 +22175,9 @@ diff -urNp linux-2.6.38.3/drivers/ata/sata_inic162x.c linux-2.6.38.3/drivers/ata
23018 .inherits = &sata_port_ops, 22175 .inherits = &sata_port_ops,
23019 22176
23020 .check_atapi_dma = inic_check_atapi_dma, 22177 .check_atapi_dma = inic_check_atapi_dma,
23021diff -urNp linux-2.6.38.3/drivers/ata/sata_mv.c linux-2.6.38.3/drivers/ata/sata_mv.c 22178diff -urNp linux-2.6.38.2/drivers/ata/sata_mv.c linux-2.6.38.2/drivers/ata/sata_mv.c
23022--- linux-2.6.38.3/drivers/ata/sata_mv.c 2011-03-14 21:20:32.000000000 -0400 22179--- linux-2.6.38.2/drivers/ata/sata_mv.c 2011-03-14 21:20:32.000000000 -0400
23023+++ linux-2.6.38.3/drivers/ata/sata_mv.c 2011-04-17 15:57:32.000000000 -0400 22180+++ linux-2.6.38.2/drivers/ata/sata_mv.c 2011-03-21 18:31:35.000000000 -0400
23024@@ -663,7 +663,7 @@ static struct scsi_host_template mv6_sht 22181@@ -663,7 +663,7 @@ static struct scsi_host_template mv6_sht
23025 .dma_boundary = MV_DMA_BOUNDARY, 22182 .dma_boundary = MV_DMA_BOUNDARY,
23026 }; 22183 };
@@ -23048,9 +22205,9 @@ diff -urNp linux-2.6.38.3/drivers/ata/sata_mv.c linux-2.6.38.3/drivers/ata/sata_
23048 .inherits = &mv6_ops, 22205 .inherits = &mv6_ops,
23049 .dev_config = ATA_OP_NULL, 22206 .dev_config = ATA_OP_NULL,
23050 .qc_prep = mv_qc_prep_iie, 22207 .qc_prep = mv_qc_prep_iie,
23051diff -urNp linux-2.6.38.3/drivers/ata/sata_nv.c linux-2.6.38.3/drivers/ata/sata_nv.c 22208diff -urNp linux-2.6.38.2/drivers/ata/sata_nv.c linux-2.6.38.2/drivers/ata/sata_nv.c
23052--- linux-2.6.38.3/drivers/ata/sata_nv.c 2011-03-14 21:20:32.000000000 -0400 22209--- linux-2.6.38.2/drivers/ata/sata_nv.c 2011-03-14 21:20:32.000000000 -0400
23053+++ linux-2.6.38.3/drivers/ata/sata_nv.c 2011-04-17 15:57:32.000000000 -0400 22210+++ linux-2.6.38.2/drivers/ata/sata_nv.c 2011-03-21 18:31:35.000000000 -0400
23054@@ -465,7 +465,7 @@ static struct scsi_host_template nv_swnc 22211@@ -465,7 +465,7 @@ static struct scsi_host_template nv_swnc
23055 * cases. Define nv_hardreset() which only kicks in for post-boot 22212 * cases. Define nv_hardreset() which only kicks in for post-boot
23056 * probing and use it for all variants. 22213 * probing and use it for all variants.
@@ -23093,9 +22250,9 @@ diff -urNp linux-2.6.38.3/drivers/ata/sata_nv.c linux-2.6.38.3/drivers/ata/sata_
23093 .inherits = &nv_generic_ops, 22250 .inherits = &nv_generic_ops,
23094 22251
23095 .qc_defer = ata_std_qc_defer, 22252 .qc_defer = ata_std_qc_defer,
23096diff -urNp linux-2.6.38.3/drivers/ata/sata_promise.c linux-2.6.38.3/drivers/ata/sata_promise.c 22253diff -urNp linux-2.6.38.2/drivers/ata/sata_promise.c linux-2.6.38.2/drivers/ata/sata_promise.c
23097--- linux-2.6.38.3/drivers/ata/sata_promise.c 2011-03-14 21:20:32.000000000 -0400 22254--- linux-2.6.38.2/drivers/ata/sata_promise.c 2011-03-14 21:20:32.000000000 -0400
23098+++ linux-2.6.38.3/drivers/ata/sata_promise.c 2011-04-17 15:57:32.000000000 -0400 22255+++ linux-2.6.38.2/drivers/ata/sata_promise.c 2011-03-21 18:31:35.000000000 -0400
23099@@ -196,7 +196,7 @@ static const struct ata_port_operations 22256@@ -196,7 +196,7 @@ static const struct ata_port_operations
23100 .error_handler = pdc_error_handler, 22257 .error_handler = pdc_error_handler,
23101 }; 22258 };
@@ -23122,9 +22279,9 @@ diff -urNp linux-2.6.38.3/drivers/ata/sata_promise.c linux-2.6.38.3/drivers/ata/
23122 .inherits = &pdc_common_ops, 22279 .inherits = &pdc_common_ops,
23123 .cable_detect = pdc_pata_cable_detect, 22280 .cable_detect = pdc_pata_cable_detect,
23124 .freeze = pdc_freeze, 22281 .freeze = pdc_freeze,
23125diff -urNp linux-2.6.38.3/drivers/ata/sata_qstor.c linux-2.6.38.3/drivers/ata/sata_qstor.c 22282diff -urNp linux-2.6.38.2/drivers/ata/sata_qstor.c linux-2.6.38.2/drivers/ata/sata_qstor.c
23126--- linux-2.6.38.3/drivers/ata/sata_qstor.c 2011-03-14 21:20:32.000000000 -0400 22283--- linux-2.6.38.2/drivers/ata/sata_qstor.c 2011-03-14 21:20:32.000000000 -0400
23127+++ linux-2.6.38.3/drivers/ata/sata_qstor.c 2011-04-17 15:57:32.000000000 -0400 22284+++ linux-2.6.38.2/drivers/ata/sata_qstor.c 2011-03-21 18:31:35.000000000 -0400
23128@@ -131,7 +131,7 @@ static struct scsi_host_template qs_ata_ 22285@@ -131,7 +131,7 @@ static struct scsi_host_template qs_ata_
23129 .dma_boundary = QS_DMA_BOUNDARY, 22286 .dma_boundary = QS_DMA_BOUNDARY,
23130 }; 22287 };
@@ -23134,9 +22291,9 @@ diff -urNp linux-2.6.38.3/drivers/ata/sata_qstor.c linux-2.6.38.3/drivers/ata/sa
23134 .inherits = &ata_sff_port_ops, 22291 .inherits = &ata_sff_port_ops,
23135 22292
23136 .check_atapi_dma = qs_check_atapi_dma, 22293 .check_atapi_dma = qs_check_atapi_dma,
23137diff -urNp linux-2.6.38.3/drivers/ata/sata_sil24.c linux-2.6.38.3/drivers/ata/sata_sil24.c 22294diff -urNp linux-2.6.38.2/drivers/ata/sata_sil24.c linux-2.6.38.2/drivers/ata/sata_sil24.c
23138--- linux-2.6.38.3/drivers/ata/sata_sil24.c 2011-03-14 21:20:32.000000000 -0400 22295--- linux-2.6.38.2/drivers/ata/sata_sil24.c 2011-03-14 21:20:32.000000000 -0400
23139+++ linux-2.6.38.3/drivers/ata/sata_sil24.c 2011-04-17 15:57:32.000000000 -0400 22296+++ linux-2.6.38.2/drivers/ata/sata_sil24.c 2011-03-21 18:31:35.000000000 -0400
23140@@ -389,7 +389,7 @@ static struct scsi_host_template sil24_s 22297@@ -389,7 +389,7 @@ static struct scsi_host_template sil24_s
23141 .dma_boundary = ATA_DMA_BOUNDARY, 22298 .dma_boundary = ATA_DMA_BOUNDARY,
23142 }; 22299 };
@@ -23146,9 +22303,9 @@ diff -urNp linux-2.6.38.3/drivers/ata/sata_sil24.c linux-2.6.38.3/drivers/ata/sa
23146 .inherits = &sata_pmp_port_ops, 22303 .inherits = &sata_pmp_port_ops,
23147 22304
23148 .qc_defer = sil24_qc_defer, 22305 .qc_defer = sil24_qc_defer,
23149diff -urNp linux-2.6.38.3/drivers/ata/sata_sil.c linux-2.6.38.3/drivers/ata/sata_sil.c 22306diff -urNp linux-2.6.38.2/drivers/ata/sata_sil.c linux-2.6.38.2/drivers/ata/sata_sil.c
23150--- linux-2.6.38.3/drivers/ata/sata_sil.c 2011-03-14 21:20:32.000000000 -0400 22307--- linux-2.6.38.2/drivers/ata/sata_sil.c 2011-03-14 21:20:32.000000000 -0400
23151+++ linux-2.6.38.3/drivers/ata/sata_sil.c 2011-04-17 15:57:32.000000000 -0400 22308+++ linux-2.6.38.2/drivers/ata/sata_sil.c 2011-03-21 18:31:35.000000000 -0400
23152@@ -182,7 +182,7 @@ static struct scsi_host_template sil_sht 22309@@ -182,7 +182,7 @@ static struct scsi_host_template sil_sht
23153 .sg_tablesize = ATA_MAX_PRD 22310 .sg_tablesize = ATA_MAX_PRD
23154 }; 22311 };
@@ -23158,9 +22315,9 @@ diff -urNp linux-2.6.38.3/drivers/ata/sata_sil.c linux-2.6.38.3/drivers/ata/sata
23158 .inherits = &ata_bmdma32_port_ops, 22315 .inherits = &ata_bmdma32_port_ops,
23159 .dev_config = sil_dev_config, 22316 .dev_config = sil_dev_config,
23160 .set_mode = sil_set_mode, 22317 .set_mode = sil_set_mode,
23161diff -urNp linux-2.6.38.3/drivers/ata/sata_sis.c linux-2.6.38.3/drivers/ata/sata_sis.c 22318diff -urNp linux-2.6.38.2/drivers/ata/sata_sis.c linux-2.6.38.2/drivers/ata/sata_sis.c
23162--- linux-2.6.38.3/drivers/ata/sata_sis.c 2011-03-14 21:20:32.000000000 -0400 22319--- linux-2.6.38.2/drivers/ata/sata_sis.c 2011-03-14 21:20:32.000000000 -0400
23163+++ linux-2.6.38.3/drivers/ata/sata_sis.c 2011-04-17 15:57:32.000000000 -0400 22320+++ linux-2.6.38.2/drivers/ata/sata_sis.c 2011-03-21 18:31:35.000000000 -0400
23164@@ -89,7 +89,7 @@ static struct scsi_host_template sis_sht 22321@@ -89,7 +89,7 @@ static struct scsi_host_template sis_sht
23165 ATA_BMDMA_SHT(DRV_NAME), 22322 ATA_BMDMA_SHT(DRV_NAME),
23166 }; 22323 };
@@ -23170,9 +22327,9 @@ diff -urNp linux-2.6.38.3/drivers/ata/sata_sis.c linux-2.6.38.3/drivers/ata/sata
23170 .inherits = &ata_bmdma_port_ops, 22327 .inherits = &ata_bmdma_port_ops,
23171 .scr_read = sis_scr_read, 22328 .scr_read = sis_scr_read,
23172 .scr_write = sis_scr_write, 22329 .scr_write = sis_scr_write,
23173diff -urNp linux-2.6.38.3/drivers/ata/sata_svw.c linux-2.6.38.3/drivers/ata/sata_svw.c 22330diff -urNp linux-2.6.38.2/drivers/ata/sata_svw.c linux-2.6.38.2/drivers/ata/sata_svw.c
23174--- linux-2.6.38.3/drivers/ata/sata_svw.c 2011-03-14 21:20:32.000000000 -0400 22331--- linux-2.6.38.2/drivers/ata/sata_svw.c 2011-03-14 21:20:32.000000000 -0400
23175+++ linux-2.6.38.3/drivers/ata/sata_svw.c 2011-04-17 15:57:32.000000000 -0400 22332+++ linux-2.6.38.2/drivers/ata/sata_svw.c 2011-03-21 18:31:35.000000000 -0400
23176@@ -344,7 +344,7 @@ static struct scsi_host_template k2_sata 22333@@ -344,7 +344,7 @@ static struct scsi_host_template k2_sata
23177 }; 22334 };
23178 22335
@@ -23182,9 +22339,9 @@ diff -urNp linux-2.6.38.3/drivers/ata/sata_svw.c linux-2.6.38.3/drivers/ata/sata
23182 .inherits = &ata_bmdma_port_ops, 22339 .inherits = &ata_bmdma_port_ops,
23183 .sff_tf_load = k2_sata_tf_load, 22340 .sff_tf_load = k2_sata_tf_load,
23184 .sff_tf_read = k2_sata_tf_read, 22341 .sff_tf_read = k2_sata_tf_read,
23185diff -urNp linux-2.6.38.3/drivers/ata/sata_sx4.c linux-2.6.38.3/drivers/ata/sata_sx4.c 22342diff -urNp linux-2.6.38.2/drivers/ata/sata_sx4.c linux-2.6.38.2/drivers/ata/sata_sx4.c
23186--- linux-2.6.38.3/drivers/ata/sata_sx4.c 2011-03-14 21:20:32.000000000 -0400 22343--- linux-2.6.38.2/drivers/ata/sata_sx4.c 2011-03-14 21:20:32.000000000 -0400
23187+++ linux-2.6.38.3/drivers/ata/sata_sx4.c 2011-04-17 15:57:32.000000000 -0400 22344+++ linux-2.6.38.2/drivers/ata/sata_sx4.c 2011-03-21 18:31:35.000000000 -0400
23188@@ -249,7 +249,7 @@ static struct scsi_host_template pdc_sat 22345@@ -249,7 +249,7 @@ static struct scsi_host_template pdc_sat
23189 }; 22346 };
23190 22347
@@ -23194,9 +22351,9 @@ diff -urNp linux-2.6.38.3/drivers/ata/sata_sx4.c linux-2.6.38.3/drivers/ata/sata
23194 .inherits = &ata_sff_port_ops, 22351 .inherits = &ata_sff_port_ops,
23195 22352
23196 .check_atapi_dma = pdc_check_atapi_dma, 22353 .check_atapi_dma = pdc_check_atapi_dma,
23197diff -urNp linux-2.6.38.3/drivers/ata/sata_uli.c linux-2.6.38.3/drivers/ata/sata_uli.c 22354diff -urNp linux-2.6.38.2/drivers/ata/sata_uli.c linux-2.6.38.2/drivers/ata/sata_uli.c
23198--- linux-2.6.38.3/drivers/ata/sata_uli.c 2011-03-14 21:20:32.000000000 -0400 22355--- linux-2.6.38.2/drivers/ata/sata_uli.c 2011-03-14 21:20:32.000000000 -0400
23199+++ linux-2.6.38.3/drivers/ata/sata_uli.c 2011-04-17 15:57:32.000000000 -0400 22356+++ linux-2.6.38.2/drivers/ata/sata_uli.c 2011-03-21 18:31:35.000000000 -0400
23200@@ -80,7 +80,7 @@ static struct scsi_host_template uli_sht 22357@@ -80,7 +80,7 @@ static struct scsi_host_template uli_sht
23201 ATA_BMDMA_SHT(DRV_NAME), 22358 ATA_BMDMA_SHT(DRV_NAME),
23202 }; 22359 };
@@ -23206,9 +22363,9 @@ diff -urNp linux-2.6.38.3/drivers/ata/sata_uli.c linux-2.6.38.3/drivers/ata/sata
23206 .inherits = &ata_bmdma_port_ops, 22363 .inherits = &ata_bmdma_port_ops,
23207 .scr_read = uli_scr_read, 22364 .scr_read = uli_scr_read,
23208 .scr_write = uli_scr_write, 22365 .scr_write = uli_scr_write,
23209diff -urNp linux-2.6.38.3/drivers/ata/sata_via.c linux-2.6.38.3/drivers/ata/sata_via.c 22366diff -urNp linux-2.6.38.2/drivers/ata/sata_via.c linux-2.6.38.2/drivers/ata/sata_via.c
23210--- linux-2.6.38.3/drivers/ata/sata_via.c 2011-03-14 21:20:32.000000000 -0400 22367--- linux-2.6.38.2/drivers/ata/sata_via.c 2011-03-14 21:20:32.000000000 -0400
23211+++ linux-2.6.38.3/drivers/ata/sata_via.c 2011-04-17 15:57:32.000000000 -0400 22368+++ linux-2.6.38.2/drivers/ata/sata_via.c 2011-03-21 18:31:35.000000000 -0400
23212@@ -115,32 +115,32 @@ static struct scsi_host_template svia_sh 22369@@ -115,32 +115,32 @@ static struct scsi_host_template svia_sh
23213 ATA_BMDMA_SHT(DRV_NAME), 22370 ATA_BMDMA_SHT(DRV_NAME),
23214 }; 22371 };
@@ -23247,9 +22404,9 @@ diff -urNp linux-2.6.38.3/drivers/ata/sata_via.c linux-2.6.38.3/drivers/ata/sata
23247 .inherits = &svia_base_ops, 22404 .inherits = &svia_base_ops,
23248 .hardreset = sata_std_hardreset, 22405 .hardreset = sata_std_hardreset,
23249 .scr_read = vt8251_scr_read, 22406 .scr_read = vt8251_scr_read,
23250diff -urNp linux-2.6.38.3/drivers/ata/sata_vsc.c linux-2.6.38.3/drivers/ata/sata_vsc.c 22407diff -urNp linux-2.6.38.2/drivers/ata/sata_vsc.c linux-2.6.38.2/drivers/ata/sata_vsc.c
23251--- linux-2.6.38.3/drivers/ata/sata_vsc.c 2011-03-14 21:20:32.000000000 -0400 22408--- linux-2.6.38.2/drivers/ata/sata_vsc.c 2011-03-14 21:20:32.000000000 -0400
23252+++ linux-2.6.38.3/drivers/ata/sata_vsc.c 2011-04-17 15:57:32.000000000 -0400 22409+++ linux-2.6.38.2/drivers/ata/sata_vsc.c 2011-03-21 18:31:35.000000000 -0400
23253@@ -300,7 +300,7 @@ static struct scsi_host_template vsc_sat 22410@@ -300,7 +300,7 @@ static struct scsi_host_template vsc_sat
23254 }; 22411 };
23255 22412
@@ -23259,9 +22416,9 @@ diff -urNp linux-2.6.38.3/drivers/ata/sata_vsc.c linux-2.6.38.3/drivers/ata/sata
23259 .inherits = &ata_bmdma_port_ops, 22416 .inherits = &ata_bmdma_port_ops,
23260 /* The IRQ handling is not quite standard SFF behaviour so we 22417 /* The IRQ handling is not quite standard SFF behaviour so we
23261 cannot use the default lost interrupt handler */ 22418 cannot use the default lost interrupt handler */
23262diff -urNp linux-2.6.38.3/drivers/atm/adummy.c linux-2.6.38.3/drivers/atm/adummy.c 22419diff -urNp linux-2.6.38.2/drivers/atm/adummy.c linux-2.6.38.2/drivers/atm/adummy.c
23263--- linux-2.6.38.3/drivers/atm/adummy.c 2011-03-14 21:20:32.000000000 -0400 22420--- linux-2.6.38.2/drivers/atm/adummy.c 2011-03-14 21:20:32.000000000 -0400
23264+++ linux-2.6.38.3/drivers/atm/adummy.c 2011-04-17 15:57:32.000000000 -0400 22421+++ linux-2.6.38.2/drivers/atm/adummy.c 2011-03-21 18:31:35.000000000 -0400
23265@@ -114,7 +114,7 @@ adummy_send(struct atm_vcc *vcc, struct 22422@@ -114,7 +114,7 @@ adummy_send(struct atm_vcc *vcc, struct
23266 vcc->pop(vcc, skb); 22423 vcc->pop(vcc, skb);
23267 else 22424 else
@@ -23271,9 +22428,9 @@ diff -urNp linux-2.6.38.3/drivers/atm/adummy.c linux-2.6.38.3/drivers/atm/adummy
23271 22428
23272 return 0; 22429 return 0;
23273 } 22430 }
23274diff -urNp linux-2.6.38.3/drivers/atm/ambassador.c linux-2.6.38.3/drivers/atm/ambassador.c 22431diff -urNp linux-2.6.38.2/drivers/atm/ambassador.c linux-2.6.38.2/drivers/atm/ambassador.c
23275--- linux-2.6.38.3/drivers/atm/ambassador.c 2011-03-14 21:20:32.000000000 -0400 22432--- linux-2.6.38.2/drivers/atm/ambassador.c 2011-03-14 21:20:32.000000000 -0400
23276+++ linux-2.6.38.3/drivers/atm/ambassador.c 2011-04-17 15:57:32.000000000 -0400 22433+++ linux-2.6.38.2/drivers/atm/ambassador.c 2011-03-21 18:31:35.000000000 -0400
23277@@ -454,7 +454,7 @@ static void tx_complete (amb_dev * dev, 22434@@ -454,7 +454,7 @@ static void tx_complete (amb_dev * dev,
23278 PRINTD (DBG_FLOW|DBG_TX, "tx_complete %p %p", dev, tx); 22435 PRINTD (DBG_FLOW|DBG_TX, "tx_complete %p %p", dev, tx);
23279 22436
@@ -23310,9 +22467,9 @@ diff -urNp linux-2.6.38.3/drivers/atm/ambassador.c linux-2.6.38.3/drivers/atm/am
23310 return -ENOMEM; // ? 22467 return -ENOMEM; // ?
23311 } 22468 }
23312 22469
23313diff -urNp linux-2.6.38.3/drivers/atm/atmtcp.c linux-2.6.38.3/drivers/atm/atmtcp.c 22470diff -urNp linux-2.6.38.2/drivers/atm/atmtcp.c linux-2.6.38.2/drivers/atm/atmtcp.c
23314--- linux-2.6.38.3/drivers/atm/atmtcp.c 2011-03-14 21:20:32.000000000 -0400 22471--- linux-2.6.38.2/drivers/atm/atmtcp.c 2011-03-14 21:20:32.000000000 -0400
23315+++ linux-2.6.38.3/drivers/atm/atmtcp.c 2011-04-17 15:57:32.000000000 -0400 22472+++ linux-2.6.38.2/drivers/atm/atmtcp.c 2011-03-21 18:31:35.000000000 -0400
23316@@ -207,7 +207,7 @@ static int atmtcp_v_send(struct atm_vcc 22473@@ -207,7 +207,7 @@ static int atmtcp_v_send(struct atm_vcc
23317 if (vcc->pop) vcc->pop(vcc,skb); 22474 if (vcc->pop) vcc->pop(vcc,skb);
23318 else dev_kfree_skb(skb); 22475 else dev_kfree_skb(skb);
@@ -23362,9 +22519,9 @@ diff -urNp linux-2.6.38.3/drivers/atm/atmtcp.c linux-2.6.38.3/drivers/atm/atmtcp
23362 done: 22519 done:
23363 if (vcc->pop) vcc->pop(vcc,skb); 22520 if (vcc->pop) vcc->pop(vcc,skb);
23364 else dev_kfree_skb(skb); 22521 else dev_kfree_skb(skb);
23365diff -urNp linux-2.6.38.3/drivers/atm/eni.c linux-2.6.38.3/drivers/atm/eni.c 22522diff -urNp linux-2.6.38.2/drivers/atm/eni.c linux-2.6.38.2/drivers/atm/eni.c
23366--- linux-2.6.38.3/drivers/atm/eni.c 2011-03-14 21:20:32.000000000 -0400 22523--- linux-2.6.38.2/drivers/atm/eni.c 2011-03-14 21:20:32.000000000 -0400
23367+++ linux-2.6.38.3/drivers/atm/eni.c 2011-04-17 15:57:32.000000000 -0400 22524+++ linux-2.6.38.2/drivers/atm/eni.c 2011-03-21 18:31:35.000000000 -0400
23368@@ -526,7 +526,7 @@ static int rx_aal0(struct atm_vcc *vcc) 22525@@ -526,7 +526,7 @@ static int rx_aal0(struct atm_vcc *vcc)
23369 DPRINTK(DEV_LABEL "(itf %d): trashing empty cell\n", 22526 DPRINTK(DEV_LABEL "(itf %d): trashing empty cell\n",
23370 vcc->dev->number); 22527 vcc->dev->number);
@@ -23410,9 +22567,9 @@ diff -urNp linux-2.6.38.3/drivers/atm/eni.c linux-2.6.38.3/drivers/atm/eni.c
23410 wake_up(&eni_dev->tx_wait); 22567 wake_up(&eni_dev->tx_wait);
23411 dma_complete++; 22568 dma_complete++;
23412 } 22569 }
23413diff -urNp linux-2.6.38.3/drivers/atm/firestream.c linux-2.6.38.3/drivers/atm/firestream.c 22570diff -urNp linux-2.6.38.2/drivers/atm/firestream.c linux-2.6.38.2/drivers/atm/firestream.c
23414--- linux-2.6.38.3/drivers/atm/firestream.c 2011-03-14 21:20:32.000000000 -0400 22571--- linux-2.6.38.2/drivers/atm/firestream.c 2011-03-14 21:20:32.000000000 -0400
23415+++ linux-2.6.38.3/drivers/atm/firestream.c 2011-04-17 15:57:32.000000000 -0400 22572+++ linux-2.6.38.2/drivers/atm/firestream.c 2011-03-21 18:31:35.000000000 -0400
23416@@ -749,7 +749,7 @@ static void process_txdone_queue (struct 22573@@ -749,7 +749,7 @@ static void process_txdone_queue (struct
23417 } 22574 }
23418 } 22575 }
@@ -23446,9 +22603,9 @@ diff -urNp linux-2.6.38.3/drivers/atm/firestream.c linux-2.6.38.3/drivers/atm/fi
23446 break; 22603 break;
23447 default: /* Hmm. Haven't written the code to handle the others yet... -- REW */ 22604 default: /* Hmm. Haven't written the code to handle the others yet... -- REW */
23448 printk (KERN_WARNING "Don't know what to do with RX status %x: %s.\n", 22605 printk (KERN_WARNING "Don't know what to do with RX status %x: %s.\n",
23449diff -urNp linux-2.6.38.3/drivers/atm/fore200e.c linux-2.6.38.3/drivers/atm/fore200e.c 22606diff -urNp linux-2.6.38.2/drivers/atm/fore200e.c linux-2.6.38.2/drivers/atm/fore200e.c
23450--- linux-2.6.38.3/drivers/atm/fore200e.c 2011-03-14 21:20:32.000000000 -0400 22607--- linux-2.6.38.2/drivers/atm/fore200e.c 2011-03-14 21:20:32.000000000 -0400
23451+++ linux-2.6.38.3/drivers/atm/fore200e.c 2011-04-17 15:57:32.000000000 -0400 22608+++ linux-2.6.38.2/drivers/atm/fore200e.c 2011-03-21 18:31:35.000000000 -0400
23452@@ -933,9 +933,9 @@ fore200e_tx_irq(struct fore200e* fore200 22609@@ -933,9 +933,9 @@ fore200e_tx_irq(struct fore200e* fore200
23453 #endif 22610 #endif
23454 /* check error condition */ 22611 /* check error condition */
@@ -23505,9 +22662,9 @@ diff -urNp linux-2.6.38.3/drivers/atm/fore200e.c linux-2.6.38.3/drivers/atm/fore
23505 22662
23506 fore200e->tx_sat++; 22663 fore200e->tx_sat++;
23507 DPRINTK(2, "tx queue of device %s is saturated, PDU dropped - heartbeat is %08x\n", 22664 DPRINTK(2, "tx queue of device %s is saturated, PDU dropped - heartbeat is %08x\n",
23508diff -urNp linux-2.6.38.3/drivers/atm/he.c linux-2.6.38.3/drivers/atm/he.c 22665diff -urNp linux-2.6.38.2/drivers/atm/he.c linux-2.6.38.2/drivers/atm/he.c
23509--- linux-2.6.38.3/drivers/atm/he.c 2011-03-14 21:20:32.000000000 -0400 22666--- linux-2.6.38.2/drivers/atm/he.c 2011-03-14 21:20:32.000000000 -0400
23510+++ linux-2.6.38.3/drivers/atm/he.c 2011-04-17 15:57:32.000000000 -0400 22667+++ linux-2.6.38.2/drivers/atm/he.c 2011-03-21 18:31:35.000000000 -0400
23511@@ -1709,7 +1709,7 @@ he_service_rbrq(struct he_dev *he_dev, i 22668@@ -1709,7 +1709,7 @@ he_service_rbrq(struct he_dev *he_dev, i
23512 22669
23513 if (RBRQ_HBUF_ERR(he_dev->rbrq_head)) { 22670 if (RBRQ_HBUF_ERR(he_dev->rbrq_head)) {
@@ -23589,9 +22746,9 @@ diff -urNp linux-2.6.38.3/drivers/atm/he.c linux-2.6.38.3/drivers/atm/he.c
23589 22746
23590 return 0; 22747 return 0;
23591 } 22748 }
23592diff -urNp linux-2.6.38.3/drivers/atm/horizon.c linux-2.6.38.3/drivers/atm/horizon.c 22749diff -urNp linux-2.6.38.2/drivers/atm/horizon.c linux-2.6.38.2/drivers/atm/horizon.c
23593--- linux-2.6.38.3/drivers/atm/horizon.c 2011-03-14 21:20:32.000000000 -0400 22750--- linux-2.6.38.2/drivers/atm/horizon.c 2011-03-14 21:20:32.000000000 -0400
23594+++ linux-2.6.38.3/drivers/atm/horizon.c 2011-04-17 15:57:32.000000000 -0400 22751+++ linux-2.6.38.2/drivers/atm/horizon.c 2011-03-21 18:31:35.000000000 -0400
23595@@ -1034,7 +1034,7 @@ static void rx_schedule (hrz_dev * dev, 22752@@ -1034,7 +1034,7 @@ static void rx_schedule (hrz_dev * dev,
23596 { 22753 {
23597 struct atm_vcc * vcc = ATM_SKB(skb)->vcc; 22754 struct atm_vcc * vcc = ATM_SKB(skb)->vcc;
@@ -23610,9 +22767,9 @@ diff -urNp linux-2.6.38.3/drivers/atm/horizon.c linux-2.6.38.3/drivers/atm/horiz
23610 22767
23611 // free the skb 22768 // free the skb
23612 hrz_kfree_skb (skb); 22769 hrz_kfree_skb (skb);
23613diff -urNp linux-2.6.38.3/drivers/atm/idt77252.c linux-2.6.38.3/drivers/atm/idt77252.c 22770diff -urNp linux-2.6.38.2/drivers/atm/idt77252.c linux-2.6.38.2/drivers/atm/idt77252.c
23614--- linux-2.6.38.3/drivers/atm/idt77252.c 2011-03-14 21:20:32.000000000 -0400 22771--- linux-2.6.38.2/drivers/atm/idt77252.c 2011-03-14 21:20:32.000000000 -0400
23615+++ linux-2.6.38.3/drivers/atm/idt77252.c 2011-04-17 15:57:32.000000000 -0400 22772+++ linux-2.6.38.2/drivers/atm/idt77252.c 2011-03-21 18:31:35.000000000 -0400
23616@@ -811,7 +811,7 @@ drain_scq(struct idt77252_dev *card, str 22773@@ -811,7 +811,7 @@ drain_scq(struct idt77252_dev *card, str
23617 else 22774 else
23618 dev_kfree_skb(skb); 22775 dev_kfree_skb(skb);
@@ -23767,9 +22924,9 @@ diff -urNp linux-2.6.38.3/drivers/atm/idt77252.c linux-2.6.38.3/drivers/atm/idt7
23767 return -ENOMEM; 22924 return -ENOMEM;
23768 } 22925 }
23769 atomic_add(skb->truesize, &sk_atm(vcc)->sk_wmem_alloc); 22926 atomic_add(skb->truesize, &sk_atm(vcc)->sk_wmem_alloc);
23770diff -urNp linux-2.6.38.3/drivers/atm/iphase.c linux-2.6.38.3/drivers/atm/iphase.c 22927diff -urNp linux-2.6.38.2/drivers/atm/iphase.c linux-2.6.38.2/drivers/atm/iphase.c
23771--- linux-2.6.38.3/drivers/atm/iphase.c 2011-03-14 21:20:32.000000000 -0400 22928--- linux-2.6.38.2/drivers/atm/iphase.c 2011-03-14 21:20:32.000000000 -0400
23772+++ linux-2.6.38.3/drivers/atm/iphase.c 2011-04-17 15:57:32.000000000 -0400 22929+++ linux-2.6.38.2/drivers/atm/iphase.c 2011-03-21 18:31:35.000000000 -0400
23773@@ -1124,7 +1124,7 @@ static int rx_pkt(struct atm_dev *dev) 22930@@ -1124,7 +1124,7 @@ static int rx_pkt(struct atm_dev *dev)
23774 status = (u_short) (buf_desc_ptr->desc_mode); 22931 status = (u_short) (buf_desc_ptr->desc_mode);
23775 if (status & (RX_CER | RX_PTE | RX_OFL)) 22932 if (status & (RX_CER | RX_PTE | RX_OFL))
@@ -23866,9 +23023,9 @@ diff -urNp linux-2.6.38.3/drivers/atm/iphase.c linux-2.6.38.3/drivers/atm/iphase
23866 if (iavcc->vc_desc_cnt > 10) { 23023 if (iavcc->vc_desc_cnt > 10) {
23867 vcc->tx_quota = vcc->tx_quota * 3 / 4; 23024 vcc->tx_quota = vcc->tx_quota * 3 / 4;
23868 printk("Tx1: vcc->tx_quota = %d \n", (u32)vcc->tx_quota ); 23025 printk("Tx1: vcc->tx_quota = %d \n", (u32)vcc->tx_quota );
23869diff -urNp linux-2.6.38.3/drivers/atm/lanai.c linux-2.6.38.3/drivers/atm/lanai.c 23026diff -urNp linux-2.6.38.2/drivers/atm/lanai.c linux-2.6.38.2/drivers/atm/lanai.c
23870--- linux-2.6.38.3/drivers/atm/lanai.c 2011-03-14 21:20:32.000000000 -0400 23027--- linux-2.6.38.2/drivers/atm/lanai.c 2011-03-14 21:20:32.000000000 -0400
23871+++ linux-2.6.38.3/drivers/atm/lanai.c 2011-04-17 15:57:32.000000000 -0400 23028+++ linux-2.6.38.2/drivers/atm/lanai.c 2011-03-21 18:31:35.000000000 -0400
23872@@ -1303,7 +1303,7 @@ static void lanai_send_one_aal5(struct l 23029@@ -1303,7 +1303,7 @@ static void lanai_send_one_aal5(struct l
23873 vcc_tx_add_aal5_trailer(lvcc, skb->len, 0, 0); 23030 vcc_tx_add_aal5_trailer(lvcc, skb->len, 0, 0);
23874 lanai_endtx(lanai, lvcc); 23031 lanai_endtx(lanai, lvcc);
@@ -23923,9 +23080,9 @@ diff -urNp linux-2.6.38.3/drivers/atm/lanai.c linux-2.6.38.3/drivers/atm/lanai.c
23923 lvcc->stats.x.aal5.service_rxcrc++; 23080 lvcc->stats.x.aal5.service_rxcrc++;
23924 lvcc->rx.buf.ptr = &lvcc->rx.buf.start[SERVICE_GET_END(s) * 4]; 23081 lvcc->rx.buf.ptr = &lvcc->rx.buf.start[SERVICE_GET_END(s) * 4];
23925 cardvcc_write(lvcc, SERVICE_GET_END(s), vcc_rxreadptr); 23082 cardvcc_write(lvcc, SERVICE_GET_END(s), vcc_rxreadptr);
23926diff -urNp linux-2.6.38.3/drivers/atm/nicstar.c linux-2.6.38.3/drivers/atm/nicstar.c 23083diff -urNp linux-2.6.38.2/drivers/atm/nicstar.c linux-2.6.38.2/drivers/atm/nicstar.c
23927--- linux-2.6.38.3/drivers/atm/nicstar.c 2011-03-14 21:20:32.000000000 -0400 23084--- linux-2.6.38.2/drivers/atm/nicstar.c 2011-03-14 21:20:32.000000000 -0400
23928+++ linux-2.6.38.3/drivers/atm/nicstar.c 2011-04-17 15:57:32.000000000 -0400 23085+++ linux-2.6.38.2/drivers/atm/nicstar.c 2011-03-21 18:31:35.000000000 -0400
23929@@ -1654,7 +1654,7 @@ static int ns_send(struct atm_vcc *vcc, 23086@@ -1654,7 +1654,7 @@ static int ns_send(struct atm_vcc *vcc,
23930 if ((vc = (vc_map *) vcc->dev_data) == NULL) { 23087 if ((vc = (vc_map *) vcc->dev_data) == NULL) {
23931 printk("nicstar%d: vcc->dev_data == NULL on ns_send().\n", 23088 printk("nicstar%d: vcc->dev_data == NULL on ns_send().\n",
@@ -24127,10 +23284,10 @@ diff -urNp linux-2.6.38.3/drivers/atm/nicstar.c linux-2.6.38.3/drivers/atm/nicst
24127 } 23284 }
24128 } 23285 }
24129 23286
24130diff -urNp linux-2.6.38.3/drivers/atm/solos-pci.c linux-2.6.38.3/drivers/atm/solos-pci.c 23287diff -urNp linux-2.6.38.2/drivers/atm/solos-pci.c linux-2.6.38.2/drivers/atm/solos-pci.c
24131--- linux-2.6.38.3/drivers/atm/solos-pci.c 2011-04-18 17:27:18.000000000 -0400 23288--- linux-2.6.38.2/drivers/atm/solos-pci.c 2011-03-14 21:20:32.000000000 -0400
24132+++ linux-2.6.38.3/drivers/atm/solos-pci.c 2011-04-17 16:53:16.000000000 -0400 23289+++ linux-2.6.38.2/drivers/atm/solos-pci.c 2011-03-21 18:31:35.000000000 -0400
24133@@ -715,7 +715,7 @@ void solos_bh(unsigned long card_arg) 23290@@ -717,7 +717,7 @@ void solos_bh(unsigned long card_arg)
24134 } 23291 }
24135 atm_charge(vcc, skb->truesize); 23292 atm_charge(vcc, skb->truesize);
24136 vcc->push(vcc, skb); 23293 vcc->push(vcc, skb);
@@ -24139,7 +23296,7 @@ diff -urNp linux-2.6.38.3/drivers/atm/solos-pci.c linux-2.6.38.3/drivers/atm/sol
24139 break; 23296 break;
24140 23297
24141 case PKT_STATUS: 23298 case PKT_STATUS:
24142@@ -1009,7 +1009,7 @@ static uint32_t fpga_tx(struct solos_car 23299@@ -1026,7 +1026,7 @@ static uint32_t fpga_tx(struct solos_car
24143 vcc = SKB_CB(oldskb)->vcc; 23300 vcc = SKB_CB(oldskb)->vcc;
24144 23301
24145 if (vcc) { 23302 if (vcc) {
@@ -24148,9 +23305,9 @@ diff -urNp linux-2.6.38.3/drivers/atm/solos-pci.c linux-2.6.38.3/drivers/atm/sol
24148 solos_pop(vcc, oldskb); 23305 solos_pop(vcc, oldskb);
24149 } else 23306 } else
24150 dev_kfree_skb_irq(oldskb); 23307 dev_kfree_skb_irq(oldskb);
24151diff -urNp linux-2.6.38.3/drivers/atm/suni.c linux-2.6.38.3/drivers/atm/suni.c 23308diff -urNp linux-2.6.38.2/drivers/atm/suni.c linux-2.6.38.2/drivers/atm/suni.c
24152--- linux-2.6.38.3/drivers/atm/suni.c 2011-03-14 21:20:32.000000000 -0400 23309--- linux-2.6.38.2/drivers/atm/suni.c 2011-03-14 21:20:32.000000000 -0400
24153+++ linux-2.6.38.3/drivers/atm/suni.c 2011-04-17 15:57:32.000000000 -0400 23310+++ linux-2.6.38.2/drivers/atm/suni.c 2011-03-21 18:31:35.000000000 -0400
24154@@ -50,8 +50,8 @@ static DEFINE_SPINLOCK(sunis_lock); 23311@@ -50,8 +50,8 @@ static DEFINE_SPINLOCK(sunis_lock);
24155 23312
24156 23313
@@ -24162,9 +23319,9 @@ diff -urNp linux-2.6.38.3/drivers/atm/suni.c linux-2.6.38.3/drivers/atm/suni.c
24162 23319
24163 23320
24164 static void suni_hz(unsigned long from_timer) 23321 static void suni_hz(unsigned long from_timer)
24165diff -urNp linux-2.6.38.3/drivers/atm/uPD98402.c linux-2.6.38.3/drivers/atm/uPD98402.c 23322diff -urNp linux-2.6.38.2/drivers/atm/uPD98402.c linux-2.6.38.2/drivers/atm/uPD98402.c
24166--- linux-2.6.38.3/drivers/atm/uPD98402.c 2011-03-14 21:20:32.000000000 -0400 23323--- linux-2.6.38.2/drivers/atm/uPD98402.c 2011-03-14 21:20:32.000000000 -0400
24167+++ linux-2.6.38.3/drivers/atm/uPD98402.c 2011-04-17 15:57:32.000000000 -0400 23324+++ linux-2.6.38.2/drivers/atm/uPD98402.c 2011-03-21 18:31:35.000000000 -0400
24168@@ -42,7 +42,7 @@ static int fetch_stats(struct atm_dev *d 23325@@ -42,7 +42,7 @@ static int fetch_stats(struct atm_dev *d
24169 struct sonet_stats tmp; 23326 struct sonet_stats tmp;
24170 int error = 0; 23327 int error = 0;
@@ -24209,9 +23366,9 @@ diff -urNp linux-2.6.38.3/drivers/atm/uPD98402.c linux-2.6.38.3/drivers/atm/uPD9
24209 return 0; 23366 return 0;
24210 } 23367 }
24211 23368
24212diff -urNp linux-2.6.38.3/drivers/atm/zatm.c linux-2.6.38.3/drivers/atm/zatm.c 23369diff -urNp linux-2.6.38.2/drivers/atm/zatm.c linux-2.6.38.2/drivers/atm/zatm.c
24213--- linux-2.6.38.3/drivers/atm/zatm.c 2011-03-14 21:20:32.000000000 -0400 23370--- linux-2.6.38.2/drivers/atm/zatm.c 2011-03-14 21:20:32.000000000 -0400
24214+++ linux-2.6.38.3/drivers/atm/zatm.c 2011-04-17 15:57:32.000000000 -0400 23371+++ linux-2.6.38.2/drivers/atm/zatm.c 2011-03-21 18:31:35.000000000 -0400
24215@@ -459,7 +459,7 @@ printk("dummy: 0x%08lx, 0x%08lx\n",dummy 23372@@ -459,7 +459,7 @@ printk("dummy: 0x%08lx, 0x%08lx\n",dummy
24216 } 23373 }
24217 if (!size) { 23374 if (!size) {
@@ -24239,9 +23396,9 @@ diff -urNp linux-2.6.38.3/drivers/atm/zatm.c linux-2.6.38.3/drivers/atm/zatm.c
24239 wake_up(&zatm_vcc->tx_wait); 23396 wake_up(&zatm_vcc->tx_wait);
24240 } 23397 }
24241 23398
24242diff -urNp linux-2.6.38.3/drivers/block/cciss.c linux-2.6.38.3/drivers/block/cciss.c 23399diff -urNp linux-2.6.38.2/drivers/block/cciss.c linux-2.6.38.2/drivers/block/cciss.c
24243--- linux-2.6.38.3/drivers/block/cciss.c 2011-03-14 21:20:32.000000000 -0400 23400--- linux-2.6.38.2/drivers/block/cciss.c 2011-03-14 21:20:32.000000000 -0400
24244+++ linux-2.6.38.3/drivers/block/cciss.c 2011-04-17 15:57:32.000000000 -0400 23401+++ linux-2.6.38.2/drivers/block/cciss.c 2011-03-21 18:31:35.000000000 -0400
24245@@ -1112,6 +1112,8 @@ static int cciss_ioctl32_passthru(struct 23402@@ -1112,6 +1112,8 @@ static int cciss_ioctl32_passthru(struct
24246 int err; 23403 int err;
24247 u32 cp; 23404 u32 cp;
@@ -24251,9 +23408,9 @@ diff -urNp linux-2.6.38.3/drivers/block/cciss.c linux-2.6.38.3/drivers/block/cci
24251 err = 0; 23408 err = 0;
24252 err |= 23409 err |=
24253 copy_from_user(&arg64.LUN_info, &arg32->LUN_info, 23410 copy_from_user(&arg64.LUN_info, &arg32->LUN_info,
24254diff -urNp linux-2.6.38.3/drivers/char/agp/frontend.c linux-2.6.38.3/drivers/char/agp/frontend.c 23411diff -urNp linux-2.6.38.2/drivers/char/agp/frontend.c linux-2.6.38.2/drivers/char/agp/frontend.c
24255--- linux-2.6.38.3/drivers/char/agp/frontend.c 2011-03-14 21:20:32.000000000 -0400 23412--- linux-2.6.38.2/drivers/char/agp/frontend.c 2011-03-14 21:20:32.000000000 -0400
24256+++ linux-2.6.38.3/drivers/char/agp/frontend.c 2011-04-17 15:57:32.000000000 -0400 23413+++ linux-2.6.38.2/drivers/char/agp/frontend.c 2011-03-21 18:31:35.000000000 -0400
24257@@ -817,7 +817,7 @@ static int agpioc_reserve_wrap(struct ag 23414@@ -817,7 +817,7 @@ static int agpioc_reserve_wrap(struct ag
24258 if (copy_from_user(&reserve, arg, sizeof(struct agp_region))) 23415 if (copy_from_user(&reserve, arg, sizeof(struct agp_region)))
24259 return -EFAULT; 23416 return -EFAULT;
@@ -24263,9 +23420,9 @@ diff -urNp linux-2.6.38.3/drivers/char/agp/frontend.c linux-2.6.38.3/drivers/cha
24263 return -EFAULT; 23420 return -EFAULT;
24264 23421
24265 client = agp_find_client_by_pid(reserve.pid); 23422 client = agp_find_client_by_pid(reserve.pid);
24266diff -urNp linux-2.6.38.3/drivers/char/agp/intel-agp.c linux-2.6.38.3/drivers/char/agp/intel-agp.c 23423diff -urNp linux-2.6.38.2/drivers/char/agp/intel-agp.c linux-2.6.38.2/drivers/char/agp/intel-agp.c
24267--- linux-2.6.38.3/drivers/char/agp/intel-agp.c 2011-03-14 21:20:32.000000000 -0400 23424--- linux-2.6.38.2/drivers/char/agp/intel-agp.c 2011-03-14 21:20:32.000000000 -0400
24268+++ linux-2.6.38.3/drivers/char/agp/intel-agp.c 2011-04-17 15:57:32.000000000 -0400 23425+++ linux-2.6.38.2/drivers/char/agp/intel-agp.c 2011-03-21 18:31:35.000000000 -0400
24269@@ -903,7 +903,7 @@ static struct pci_device_id agp_intel_pc 23426@@ -903,7 +903,7 @@ static struct pci_device_id agp_intel_pc
24270 ID(PCI_DEVICE_ID_INTEL_SANDYBRIDGE_HB), 23427 ID(PCI_DEVICE_ID_INTEL_SANDYBRIDGE_HB),
24271 ID(PCI_DEVICE_ID_INTEL_SANDYBRIDGE_M_HB), 23428 ID(PCI_DEVICE_ID_INTEL_SANDYBRIDGE_M_HB),
@@ -24275,64 +23432,9 @@ diff -urNp linux-2.6.38.3/drivers/char/agp/intel-agp.c linux-2.6.38.3/drivers/ch
24275 }; 23432 };
24276 23433
24277 MODULE_DEVICE_TABLE(pci, agp_intel_pci_table); 23434 MODULE_DEVICE_TABLE(pci, agp_intel_pci_table);
24278diff -urNp linux-2.6.38.3/drivers/char/briq_panel.c linux-2.6.38.3/drivers/char/briq_panel.c 23435diff -urNp linux-2.6.38.2/drivers/char/hpet.c linux-2.6.38.2/drivers/char/hpet.c
24279--- linux-2.6.38.3/drivers/char/briq_panel.c 2011-03-14 21:20:32.000000000 -0400 23436--- linux-2.6.38.2/drivers/char/hpet.c 2011-03-14 21:20:32.000000000 -0400
24280+++ linux-2.6.38.3/drivers/char/briq_panel.c 2011-04-18 19:47:43.000000000 -0400 23437+++ linux-2.6.38.2/drivers/char/hpet.c 2011-03-21 18:31:35.000000000 -0400
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
24336@@ -553,7 +553,7 @@ static inline unsigned long hpet_time_di 23438@@ -553,7 +553,7 @@ static inline unsigned long hpet_time_di
24337 } 23439 }
24338 23440
@@ -24351,9 +23453,9 @@ diff -urNp linux-2.6.38.3/drivers/char/hpet.c linux-2.6.38.3/drivers/char/hpet.c
24351 23453
24352 static int __init hpet_init(void) 23454 static int __init hpet_init(void)
24353 { 23455 {
24354diff -urNp linux-2.6.38.3/drivers/char/ipmi/ipmi_msghandler.c linux-2.6.38.3/drivers/char/ipmi/ipmi_msghandler.c 23456diff -urNp linux-2.6.38.2/drivers/char/ipmi/ipmi_msghandler.c linux-2.6.38.2/drivers/char/ipmi/ipmi_msghandler.c
24355--- linux-2.6.38.3/drivers/char/ipmi/ipmi_msghandler.c 2011-03-14 21:20:32.000000000 -0400 23457--- linux-2.6.38.2/drivers/char/ipmi/ipmi_msghandler.c 2011-03-14 21:20:32.000000000 -0400
24356+++ linux-2.6.38.3/drivers/char/ipmi/ipmi_msghandler.c 2011-04-17 15:57:32.000000000 -0400 23458+++ linux-2.6.38.2/drivers/char/ipmi/ipmi_msghandler.c 2011-03-21 18:31:35.000000000 -0400
24357@@ -414,7 +414,7 @@ struct ipmi_smi { 23459@@ -414,7 +414,7 @@ struct ipmi_smi {
24358 struct proc_dir_entry *proc_dir; 23460 struct proc_dir_entry *proc_dir;
24359 char proc_dir_name[10]; 23461 char proc_dir_name[10];
@@ -24384,9 +23486,9 @@ diff -urNp linux-2.6.38.3/drivers/char/ipmi/ipmi_msghandler.c linux-2.6.38.3/dri
24384 23486
24385 intf->proc_dir = NULL; 23487 intf->proc_dir = NULL;
24386 23488
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 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
24388--- linux-2.6.38.3/drivers/char/ipmi/ipmi_si_intf.c 2011-03-14 21:20:32.000000000 -0400 23490--- linux-2.6.38.2/drivers/char/ipmi/ipmi_si_intf.c 2011-03-14 21:20:32.000000000 -0400
24389+++ linux-2.6.38.3/drivers/char/ipmi/ipmi_si_intf.c 2011-04-17 15:57:32.000000000 -0400 23491+++ linux-2.6.38.2/drivers/char/ipmi/ipmi_si_intf.c 2011-03-21 18:31:35.000000000 -0400
24390@@ -285,7 +285,7 @@ struct smi_info { 23492@@ -285,7 +285,7 @@ struct smi_info {
24391 unsigned char slave_addr; 23493 unsigned char slave_addr;
24392 23494
@@ -24417,49 +23519,9 @@ diff -urNp linux-2.6.38.3/drivers/char/ipmi/ipmi_si_intf.c linux-2.6.38.3/driver
24417 23519
24418 new_smi->interrupt_disabled = 1; 23520 new_smi->interrupt_disabled = 1;
24419 atomic_set(&new_smi->stop_operation, 0); 23521 atomic_set(&new_smi->stop_operation, 0);
24420diff -urNp linux-2.6.38.3/drivers/char/istallion.c linux-2.6.38.3/drivers/char/istallion.c 23522diff -urNp linux-2.6.38.2/drivers/char/mem.c linux-2.6.38.2/drivers/char/mem.c
24421--- linux-2.6.38.3/drivers/char/istallion.c 2011-03-14 21:20:32.000000000 -0400 23523--- linux-2.6.38.2/drivers/char/mem.c 2011-03-14 21:20:32.000000000 -0400
24422+++ linux-2.6.38.3/drivers/char/istallion.c 2011-04-18 19:42:25.000000000 -0400 23524+++ linux-2.6.38.2/drivers/char/mem.c 2011-03-21 18:31:35.000000000 -0400
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
24463@@ -18,6 +18,7 @@ 23525@@ -18,6 +18,7 @@
24464 #include <linux/raw.h> 23526 #include <linux/raw.h>
24465 #include <linux/tty.h> 23527 #include <linux/tty.h>
@@ -24479,33 +23541,7 @@ diff -urNp linux-2.6.38.3/drivers/char/mem.c linux-2.6.38.3/drivers/char/mem.c
24479 static inline unsigned long size_inside_page(unsigned long start, 23541 static inline unsigned long size_inside_page(unsigned long start,
24480 unsigned long size) 23542 unsigned long size)
24481 { 23543 {
24482@@ -68,9 +73,13 @@ static inline int range_is_allowed(unsig 23544@@ -120,6 +125,7 @@ static ssize_t read_mem(struct file *fil
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
24509 23545
24510 while (count > 0) { 23546 while (count > 0) {
24511 unsigned long remaining; 23547 unsigned long remaining;
@@ -24513,7 +23549,7 @@ diff -urNp linux-2.6.38.3/drivers/char/mem.c linux-2.6.38.3/drivers/char/mem.c
24513 23549
24514 sz = size_inside_page(p, count); 23550 sz = size_inside_page(p, count);
24515 23551
24516@@ -135,7 +150,23 @@ static ssize_t read_mem(struct file *fil 23552@@ -135,7 +141,23 @@ static ssize_t read_mem(struct file *fil
24517 if (!ptr) 23553 if (!ptr)
24518 return -EFAULT; 23554 return -EFAULT;
24519 23555
@@ -24538,7 +23574,31 @@ diff -urNp linux-2.6.38.3/drivers/char/mem.c linux-2.6.38.3/drivers/char/mem.c
24538 unxlate_dev_mem_ptr(p, ptr); 23574 unxlate_dev_mem_ptr(p, ptr);
24539 if (remaining) 23575 if (remaining)
24540 return -EFAULT; 23576 return -EFAULT;
24541@@ -398,9 +429,8 @@ static ssize_t read_kmem(struct file *fi 23577@@ -161,6 +183,11 @@ static ssize_t write_mem(struct file *fi
23578 if (!valid_phys_addr_range(p, count))
23579 return -EFAULT;
23580
23581+#ifdef CONFIG_GRKERNSEC_KMEM
23582+ gr_handle_mem_write();
23583+ return -EPERM;
23584+#endif
23585+
23586 written = 0;
23587
23588 #ifdef __ARCH_HAS_NO_PAGE_ZERO_MAPPED
23589@@ -316,6 +343,11 @@ static int mmap_mem(struct file *file, s
23590 &vma->vm_page_prot))
23591 return -EINVAL;
23592
23593+#ifdef CONFIG_GRKERNSEC_KMEM
23594+ if (gr_handle_mem_mmap(vma->vm_pgoff << PAGE_SHIFT, vma))
23595+ return -EPERM;
23596+#endif
23597+
23598 vma->vm_page_prot = phys_mem_access_prot(file, vma->vm_pgoff,
23599 size,
23600 vma->vm_page_prot);
23601@@ -398,9 +430,8 @@ static ssize_t read_kmem(struct file *fi
24542 size_t count, loff_t *ppos) 23602 size_t count, loff_t *ppos)
24543 { 23603 {
24544 unsigned long p = *ppos; 23604 unsigned long p = *ppos;
@@ -24549,7 +23609,7 @@ diff -urNp linux-2.6.38.3/drivers/char/mem.c linux-2.6.38.3/drivers/char/mem.c
24549 23609
24550 read = 0; 23610 read = 0;
24551 if (p < (unsigned long) high_memory) { 23611 if (p < (unsigned long) high_memory) {
24552@@ -422,6 +452,8 @@ static ssize_t read_kmem(struct file *fi 23612@@ -422,6 +453,8 @@ static ssize_t read_kmem(struct file *fi
24553 } 23613 }
24554 #endif 23614 #endif
24555 while (low_count > 0) { 23615 while (low_count > 0) {
@@ -24558,7 +23618,7 @@ diff -urNp linux-2.6.38.3/drivers/char/mem.c linux-2.6.38.3/drivers/char/mem.c
24558 sz = size_inside_page(p, low_count); 23618 sz = size_inside_page(p, low_count);
24559 23619
24560 /* 23620 /*
24561@@ -431,7 +463,22 @@ static ssize_t read_kmem(struct file *fi 23621@@ -431,7 +464,22 @@ static ssize_t read_kmem(struct file *fi
24562 */ 23622 */
24563 kbuf = xlate_dev_kmem_ptr((char *)p); 23623 kbuf = xlate_dev_kmem_ptr((char *)p);
24564 23624
@@ -24582,7 +23642,44 @@ diff -urNp linux-2.6.38.3/drivers/char/mem.c linux-2.6.38.3/drivers/char/mem.c
24582 return -EFAULT; 23642 return -EFAULT;
24583 buf += sz; 23643 buf += sz;
24584 p += sz; 23644 p += sz;
24585@@ -857,6 +904,9 @@ static const struct memdev { 23645@@ -530,6 +578,11 @@ static ssize_t write_kmem(struct file *f
23646 char * kbuf; /* k-addr because vwrite() takes vmlist_lock rwlock */
23647 int err = 0;
23648
23649+#ifdef CONFIG_GRKERNSEC_KMEM
23650+ gr_handle_kmem_write();
23651+ return -EPERM;
23652+#endif
23653+
23654 if (p < (unsigned long) high_memory) {
23655 unsigned long to_write = min_t(unsigned long, count,
23656 (unsigned long)high_memory - p);
23657@@ -731,6 +784,16 @@ static loff_t memory_lseek(struct file *
23658
23659 static int open_port(struct inode * inode, struct file * filp)
23660 {
23661+#ifdef CONFIG_GRKERNSEC_KMEM
23662+ gr_handle_open_port();
23663+ return -EPERM;
23664+#endif
23665+
23666+ return capable(CAP_SYS_RAWIO) ? 0 : -EPERM;
23667+}
23668+
23669+static int open_mem(struct inode * inode, struct file * filp)
23670+{
23671 return capable(CAP_SYS_RAWIO) ? 0 : -EPERM;
23672 }
23673
23674@@ -738,7 +801,6 @@ static int open_port(struct inode * inod
23675 #define full_lseek null_lseek
23676 #define write_zero write_null
23677 #define read_full read_zero
23678-#define open_mem open_port
23679 #define open_kmem open_mem
23680 #define open_oldmem open_mem
23681
23682@@ -857,6 +919,9 @@ static const struct memdev {
24586 #ifdef CONFIG_CRASH_DUMP 23683 #ifdef CONFIG_CRASH_DUMP
24587 [12] = { "oldmem", 0, &oldmem_fops, NULL }, 23684 [12] = { "oldmem", 0, &oldmem_fops, NULL },
24588 #endif 23685 #endif
@@ -24592,9 +23689,9 @@ diff -urNp linux-2.6.38.3/drivers/char/mem.c linux-2.6.38.3/drivers/char/mem.c
24592 }; 23689 };
24593 23690
24594 static int memory_open(struct inode *inode, struct file *filp) 23691 static int memory_open(struct inode *inode, struct file *filp)
24595diff -urNp linux-2.6.38.3/drivers/char/nvram.c linux-2.6.38.3/drivers/char/nvram.c 23692diff -urNp linux-2.6.38.2/drivers/char/nvram.c linux-2.6.38.2/drivers/char/nvram.c
24596--- linux-2.6.38.3/drivers/char/nvram.c 2011-03-14 21:20:32.000000000 -0400 23693--- linux-2.6.38.2/drivers/char/nvram.c 2011-03-14 21:20:32.000000000 -0400
24597+++ linux-2.6.38.3/drivers/char/nvram.c 2011-04-17 15:57:32.000000000 -0400 23694+++ linux-2.6.38.2/drivers/char/nvram.c 2011-03-21 18:31:35.000000000 -0400
24598@@ -246,7 +246,7 @@ static ssize_t nvram_read(struct file *f 23695@@ -246,7 +246,7 @@ static ssize_t nvram_read(struct file *f
24599 23696
24600 spin_unlock_irq(&rtc_lock); 23697 spin_unlock_irq(&rtc_lock);
@@ -24616,9 +23713,9 @@ diff -urNp linux-2.6.38.3/drivers/char/nvram.c linux-2.6.38.3/drivers/char/nvram
24616 }; 23713 };
24617 23714
24618 static int __init nvram_init(void) 23715 static int __init nvram_init(void)
24619diff -urNp linux-2.6.38.3/drivers/char/pcmcia/ipwireless/tty.c linux-2.6.38.3/drivers/char/pcmcia/ipwireless/tty.c 23716diff -urNp linux-2.6.38.2/drivers/char/pcmcia/ipwireless/tty.c linux-2.6.38.2/drivers/char/pcmcia/ipwireless/tty.c
24620--- linux-2.6.38.3/drivers/char/pcmcia/ipwireless/tty.c 2011-03-14 21:20:32.000000000 -0400 23717--- linux-2.6.38.2/drivers/char/pcmcia/ipwireless/tty.c 2011-03-14 21:20:32.000000000 -0400
24621+++ linux-2.6.38.3/drivers/char/pcmcia/ipwireless/tty.c 2011-04-17 15:57:32.000000000 -0400 23718+++ linux-2.6.38.2/drivers/char/pcmcia/ipwireless/tty.c 2011-03-21 18:31:35.000000000 -0400
24622@@ -29,6 +29,7 @@ 23719@@ -29,6 +29,7 @@
24623 #include <linux/tty_driver.h> 23720 #include <linux/tty_driver.h>
24624 #include <linux/tty_flip.h> 23721 #include <linux/tty_flip.h>
@@ -24741,9 +23838,9 @@ diff -urNp linux-2.6.38.3/drivers/char/pcmcia/ipwireless/tty.c linux-2.6.38.3/dr
24741 do_ipw_close(ttyj); 23838 do_ipw_close(ttyj);
24742 ipwireless_disassociate_network_ttys(network, 23839 ipwireless_disassociate_network_ttys(network,
24743 ttyj->channel_idx); 23840 ttyj->channel_idx);
24744diff -urNp linux-2.6.38.3/drivers/char/random.c linux-2.6.38.3/drivers/char/random.c 23841diff -urNp linux-2.6.38.2/drivers/char/random.c linux-2.6.38.2/drivers/char/random.c
24745--- linux-2.6.38.3/drivers/char/random.c 2011-03-14 21:20:32.000000000 -0400 23842--- linux-2.6.38.2/drivers/char/random.c 2011-03-14 21:20:32.000000000 -0400
24746+++ linux-2.6.38.3/drivers/char/random.c 2011-04-17 15:57:32.000000000 -0400 23843+++ linux-2.6.38.2/drivers/char/random.c 2011-03-21 18:31:35.000000000 -0400
24747@@ -254,8 +254,13 @@ 23844@@ -254,8 +254,13 @@
24748 /* 23845 /*
24749 * Configuration information 23846 * Configuration information
@@ -24794,9 +23891,9 @@ diff -urNp linux-2.6.38.3/drivers/char/random.c linux-2.6.38.3/drivers/char/rand
24794 static int max_write_thresh = INPUT_POOL_WORDS * 32; 23891 static int max_write_thresh = INPUT_POOL_WORDS * 32;
24795 static char sysctl_bootid[16]; 23892 static char sysctl_bootid[16];
24796 23893
24797diff -urNp linux-2.6.38.3/drivers/char/sonypi.c linux-2.6.38.3/drivers/char/sonypi.c 23894diff -urNp linux-2.6.38.2/drivers/char/sonypi.c linux-2.6.38.2/drivers/char/sonypi.c
24798--- linux-2.6.38.3/drivers/char/sonypi.c 2011-03-14 21:20:32.000000000 -0400 23895--- linux-2.6.38.2/drivers/char/sonypi.c 2011-03-14 21:20:32.000000000 -0400
24799+++ linux-2.6.38.3/drivers/char/sonypi.c 2011-04-17 15:57:32.000000000 -0400 23896+++ linux-2.6.38.2/drivers/char/sonypi.c 2011-03-21 18:31:35.000000000 -0400
24800@@ -55,6 +55,7 @@ 23897@@ -55,6 +55,7 @@
24801 #include <asm/uaccess.h> 23898 #include <asm/uaccess.h>
24802 #include <asm/io.h> 23899 #include <asm/io.h>
@@ -24835,9 +23932,9 @@ diff -urNp linux-2.6.38.3/drivers/char/sonypi.c linux-2.6.38.3/drivers/char/sony
24835 mutex_unlock(&sonypi_device.lock); 23932 mutex_unlock(&sonypi_device.lock);
24836 23933
24837 return 0; 23934 return 0;
24838diff -urNp linux-2.6.38.3/drivers/char/tpm/tpm_bios.c linux-2.6.38.3/drivers/char/tpm/tpm_bios.c 23935diff -urNp linux-2.6.38.2/drivers/char/tpm/tpm_bios.c linux-2.6.38.2/drivers/char/tpm/tpm_bios.c
24839--- linux-2.6.38.3/drivers/char/tpm/tpm_bios.c 2011-03-14 21:20:32.000000000 -0400 23936--- linux-2.6.38.2/drivers/char/tpm/tpm_bios.c 2011-03-14 21:20:32.000000000 -0400
24840+++ linux-2.6.38.3/drivers/char/tpm/tpm_bios.c 2011-04-17 15:57:32.000000000 -0400 23937+++ linux-2.6.38.2/drivers/char/tpm/tpm_bios.c 2011-03-21 18:31:35.000000000 -0400
24841@@ -173,7 +173,7 @@ static void *tpm_bios_measurements_start 23938@@ -173,7 +173,7 @@ static void *tpm_bios_measurements_start
24842 event = addr; 23939 event = addr;
24843 23940
@@ -24878,9 +23975,9 @@ diff -urNp linux-2.6.38.3/drivers/char/tpm/tpm_bios.c linux-2.6.38.3/drivers/cha
24878 23975
24879 memcpy(log->bios_event_log, virt, len); 23976 memcpy(log->bios_event_log, virt, len);
24880 23977
24881diff -urNp linux-2.6.38.3/drivers/char/tpm/tpm.c linux-2.6.38.3/drivers/char/tpm/tpm.c 23978diff -urNp linux-2.6.38.2/drivers/char/tpm/tpm.c linux-2.6.38.2/drivers/char/tpm/tpm.c
24882--- linux-2.6.38.3/drivers/char/tpm/tpm.c 2011-04-18 17:27:18.000000000 -0400 23979--- linux-2.6.38.2/drivers/char/tpm/tpm.c 2011-03-14 21:20:32.000000000 -0400
24883+++ linux-2.6.38.3/drivers/char/tpm/tpm.c 2011-04-17 16:53:16.000000000 -0400 23980+++ linux-2.6.38.2/drivers/char/tpm/tpm.c 2011-03-21 18:31:35.000000000 -0400
24884@@ -411,7 +411,7 @@ static ssize_t tpm_transmit(struct tpm_c 23981@@ -411,7 +411,7 @@ static ssize_t tpm_transmit(struct tpm_c
24885 chip->vendor.req_complete_val) 23982 chip->vendor.req_complete_val)
24886 goto out_recv; 23983 goto out_recv;
@@ -24890,9 +23987,9 @@ diff -urNp linux-2.6.38.3/drivers/char/tpm/tpm.c linux-2.6.38.3/drivers/char/tpm
24890 dev_err(chip->dev, "Operation Canceled\n"); 23987 dev_err(chip->dev, "Operation Canceled\n");
24891 rc = -ECANCELED; 23988 rc = -ECANCELED;
24892 goto out; 23989 goto out;
24893diff -urNp linux-2.6.38.3/drivers/cpuidle/sysfs.c linux-2.6.38.3/drivers/cpuidle/sysfs.c 23990diff -urNp linux-2.6.38.2/drivers/cpuidle/sysfs.c linux-2.6.38.2/drivers/cpuidle/sysfs.c
24894--- linux-2.6.38.3/drivers/cpuidle/sysfs.c 2011-03-14 21:20:32.000000000 -0400 23991--- linux-2.6.38.2/drivers/cpuidle/sysfs.c 2011-03-14 21:20:32.000000000 -0400
24895+++ linux-2.6.38.3/drivers/cpuidle/sysfs.c 2011-04-17 15:57:32.000000000 -0400 23992+++ linux-2.6.38.2/drivers/cpuidle/sysfs.c 2011-03-21 18:31:35.000000000 -0400
24896@@ -300,7 +300,7 @@ static struct kobj_type ktype_state_cpui 23993@@ -300,7 +300,7 @@ static struct kobj_type ktype_state_cpui
24897 .release = cpuidle_state_sysfs_release, 23994 .release = cpuidle_state_sysfs_release,
24898 }; 23995 };
@@ -24902,9 +23999,9 @@ diff -urNp linux-2.6.38.3/drivers/cpuidle/sysfs.c linux-2.6.38.3/drivers/cpuidle
24902 { 23999 {
24903 kobject_put(&device->kobjs[i]->kobj); 24000 kobject_put(&device->kobjs[i]->kobj);
24904 wait_for_completion(&device->kobjs[i]->kobj_unregister); 24001 wait_for_completion(&device->kobjs[i]->kobj_unregister);
24905diff -urNp linux-2.6.38.3/drivers/edac/edac_core.h linux-2.6.38.3/drivers/edac/edac_core.h 24002diff -urNp linux-2.6.38.2/drivers/edac/edac_core.h linux-2.6.38.2/drivers/edac/edac_core.h
24906--- linux-2.6.38.3/drivers/edac/edac_core.h 2011-03-14 21:20:32.000000000 -0400 24003--- linux-2.6.38.2/drivers/edac/edac_core.h 2011-03-14 21:20:32.000000000 -0400
24907+++ linux-2.6.38.3/drivers/edac/edac_core.h 2011-04-17 15:57:32.000000000 -0400 24004+++ linux-2.6.38.2/drivers/edac/edac_core.h 2011-03-21 18:31:35.000000000 -0400
24908@@ -88,11 +88,11 @@ extern int edac_debug_level; 24005@@ -88,11 +88,11 @@ extern int edac_debug_level;
24909 24006
24910 #else /* !CONFIG_EDAC_DEBUG */ 24007 #else /* !CONFIG_EDAC_DEBUG */
@@ -24922,9 +24019,9 @@ diff -urNp linux-2.6.38.3/drivers/edac/edac_core.h linux-2.6.38.3/drivers/edac/e
24922 24019
24923 #endif /* !CONFIG_EDAC_DEBUG */ 24020 #endif /* !CONFIG_EDAC_DEBUG */
24924 24021
24925diff -urNp linux-2.6.38.3/drivers/edac/edac_mc_sysfs.c linux-2.6.38.3/drivers/edac/edac_mc_sysfs.c 24022diff -urNp linux-2.6.38.2/drivers/edac/edac_mc_sysfs.c linux-2.6.38.2/drivers/edac/edac_mc_sysfs.c
24926--- linux-2.6.38.3/drivers/edac/edac_mc_sysfs.c 2011-03-14 21:20:32.000000000 -0400 24023--- linux-2.6.38.2/drivers/edac/edac_mc_sysfs.c 2011-03-14 21:20:32.000000000 -0400
24927+++ linux-2.6.38.3/drivers/edac/edac_mc_sysfs.c 2011-04-17 15:57:32.000000000 -0400 24024+++ linux-2.6.38.2/drivers/edac/edac_mc_sysfs.c 2011-03-21 18:31:35.000000000 -0400
24928@@ -761,7 +761,7 @@ static void edac_inst_grp_release(struct 24025@@ -761,7 +761,7 @@ static void edac_inst_grp_release(struct
24929 } 24026 }
24930 24027
@@ -24934,9 +24031,9 @@ diff -urNp linux-2.6.38.3/drivers/edac/edac_mc_sysfs.c linux-2.6.38.3/drivers/ed
24934 .show = inst_grp_show, 24031 .show = inst_grp_show,
24935 .store = inst_grp_store 24032 .store = inst_grp_store
24936 }; 24033 };
24937diff -urNp linux-2.6.38.3/drivers/firewire/core-cdev.c linux-2.6.38.3/drivers/firewire/core-cdev.c 24034diff -urNp linux-2.6.38.2/drivers/firewire/core-cdev.c linux-2.6.38.2/drivers/firewire/core-cdev.c
24938--- linux-2.6.38.3/drivers/firewire/core-cdev.c 2011-03-14 21:20:32.000000000 -0400 24035--- linux-2.6.38.2/drivers/firewire/core-cdev.c 2011-03-14 21:20:32.000000000 -0400
24939+++ linux-2.6.38.3/drivers/firewire/core-cdev.c 2011-04-17 15:57:32.000000000 -0400 24036+++ linux-2.6.38.2/drivers/firewire/core-cdev.c 2011-03-21 18:31:35.000000000 -0400
24940@@ -1329,8 +1329,7 @@ static int init_iso_resource(struct clie 24037@@ -1329,8 +1329,7 @@ static int init_iso_resource(struct clie
24941 int ret; 24038 int ret;
24942 24039
@@ -24947,9 +24044,9 @@ diff -urNp linux-2.6.38.3/drivers/firewire/core-cdev.c linux-2.6.38.3/drivers/fi
24947 return -EINVAL; 24044 return -EINVAL;
24948 24045
24949 r = kmalloc(sizeof(*r), GFP_KERNEL); 24046 r = kmalloc(sizeof(*r), GFP_KERNEL);
24950diff -urNp linux-2.6.38.3/drivers/firmware/dmi_scan.c linux-2.6.38.3/drivers/firmware/dmi_scan.c 24047diff -urNp linux-2.6.38.2/drivers/firmware/dmi_scan.c linux-2.6.38.2/drivers/firmware/dmi_scan.c
24951--- linux-2.6.38.3/drivers/firmware/dmi_scan.c 2011-03-14 21:20:32.000000000 -0400 24048--- linux-2.6.38.2/drivers/firmware/dmi_scan.c 2011-03-14 21:20:32.000000000 -0400
24952+++ linux-2.6.38.3/drivers/firmware/dmi_scan.c 2011-04-17 15:57:32.000000000 -0400 24049+++ linux-2.6.38.2/drivers/firmware/dmi_scan.c 2011-03-21 18:31:35.000000000 -0400
24953@@ -449,11 +449,6 @@ void __init dmi_scan_machine(void) 24050@@ -449,11 +449,6 @@ void __init dmi_scan_machine(void)
24954 } 24051 }
24955 } 24052 }
@@ -24962,9 +24059,9 @@ diff -urNp linux-2.6.38.3/drivers/firmware/dmi_scan.c linux-2.6.38.3/drivers/fir
24962 p = dmi_ioremap(0xF0000, 0x10000); 24059 p = dmi_ioremap(0xF0000, 0x10000);
24963 if (p == NULL) 24060 if (p == NULL)
24964 goto error; 24061 goto error;
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 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
24966--- linux-2.6.38.3/drivers/gpu/drm/drm_crtc_helper.c 2011-03-14 21:20:32.000000000 -0400 24063--- linux-2.6.38.2/drivers/gpu/drm/drm_crtc_helper.c 2011-03-14 21:20:32.000000000 -0400
24967+++ linux-2.6.38.3/drivers/gpu/drm/drm_crtc_helper.c 2011-04-17 15:57:32.000000000 -0400 24064+++ linux-2.6.38.2/drivers/gpu/drm/drm_crtc_helper.c 2011-03-21 18:31:35.000000000 -0400
24968@@ -276,7 +276,7 @@ static bool drm_encoder_crtc_ok(struct d 24065@@ -276,7 +276,7 @@ static bool drm_encoder_crtc_ok(struct d
24969 struct drm_crtc *tmp; 24066 struct drm_crtc *tmp;
24970 int crtc_mask = 1; 24067 int crtc_mask = 1;
@@ -24974,9 +24071,9 @@ diff -urNp linux-2.6.38.3/drivers/gpu/drm/drm_crtc_helper.c linux-2.6.38.3/drive
24974 24071
24975 dev = crtc->dev; 24072 dev = crtc->dev;
24976 24073
24977diff -urNp linux-2.6.38.3/drivers/gpu/drm/drm_drv.c linux-2.6.38.3/drivers/gpu/drm/drm_drv.c 24074diff -urNp linux-2.6.38.2/drivers/gpu/drm/drm_drv.c linux-2.6.38.2/drivers/gpu/drm/drm_drv.c
24978--- linux-2.6.38.3/drivers/gpu/drm/drm_drv.c 2011-03-14 21:20:32.000000000 -0400 24075--- linux-2.6.38.2/drivers/gpu/drm/drm_drv.c 2011-03-14 21:20:32.000000000 -0400
24979+++ linux-2.6.38.3/drivers/gpu/drm/drm_drv.c 2011-04-17 15:57:32.000000000 -0400 24076+++ linux-2.6.38.2/drivers/gpu/drm/drm_drv.c 2011-03-21 18:31:35.000000000 -0400
24980@@ -425,7 +425,7 @@ long drm_ioctl(struct file *filp, 24077@@ -425,7 +425,7 @@ long drm_ioctl(struct file *filp,
24981 24078
24982 dev = file_priv->minor->dev; 24079 dev = file_priv->minor->dev;
@@ -24986,9 +24083,9 @@ diff -urNp linux-2.6.38.3/drivers/gpu/drm/drm_drv.c linux-2.6.38.3/drivers/gpu/d
24986 ++file_priv->ioctl_count; 24083 ++file_priv->ioctl_count;
24987 24084
24988 DRM_DEBUG("pid=%d, cmd=0x%02x, nr=0x%02x, dev 0x%lx, auth=%d\n", 24085 DRM_DEBUG("pid=%d, cmd=0x%02x, nr=0x%02x, dev 0x%lx, auth=%d\n",
24989diff -urNp linux-2.6.38.3/drivers/gpu/drm/drm_fops.c linux-2.6.38.3/drivers/gpu/drm/drm_fops.c 24086diff -urNp linux-2.6.38.2/drivers/gpu/drm/drm_fops.c linux-2.6.38.2/drivers/gpu/drm/drm_fops.c
24990--- linux-2.6.38.3/drivers/gpu/drm/drm_fops.c 2011-03-14 21:20:32.000000000 -0400 24087--- linux-2.6.38.2/drivers/gpu/drm/drm_fops.c 2011-03-14 21:20:32.000000000 -0400
24991+++ linux-2.6.38.3/drivers/gpu/drm/drm_fops.c 2011-04-17 15:57:32.000000000 -0400 24088+++ linux-2.6.38.2/drivers/gpu/drm/drm_fops.c 2011-03-21 18:31:35.000000000 -0400
24992@@ -70,7 +70,7 @@ static int drm_setup(struct drm_device * 24089@@ -70,7 +70,7 @@ static int drm_setup(struct drm_device *
24993 } 24090 }
24994 24091
@@ -25038,9 +24135,9 @@ diff -urNp linux-2.6.38.3/drivers/gpu/drm/drm_fops.c linux-2.6.38.3/drivers/gpu/
25038 if (atomic_read(&dev->ioctl_count)) { 24135 if (atomic_read(&dev->ioctl_count)) {
25039 DRM_ERROR("Device busy: %d\n", 24136 DRM_ERROR("Device busy: %d\n",
25040 atomic_read(&dev->ioctl_count)); 24137 atomic_read(&dev->ioctl_count));
25041diff -urNp linux-2.6.38.3/drivers/gpu/drm/drm_global.c linux-2.6.38.3/drivers/gpu/drm/drm_global.c 24138diff -urNp linux-2.6.38.2/drivers/gpu/drm/drm_global.c linux-2.6.38.2/drivers/gpu/drm/drm_global.c
25042--- linux-2.6.38.3/drivers/gpu/drm/drm_global.c 2011-03-14 21:20:32.000000000 -0400 24139--- linux-2.6.38.2/drivers/gpu/drm/drm_global.c 2011-03-14 21:20:32.000000000 -0400
25043+++ linux-2.6.38.3/drivers/gpu/drm/drm_global.c 2011-04-17 15:57:32.000000000 -0400 24140+++ linux-2.6.38.2/drivers/gpu/drm/drm_global.c 2011-03-21 18:31:35.000000000 -0400
25044@@ -36,7 +36,7 @@ 24141@@ -36,7 +36,7 @@
25045 struct drm_global_item { 24142 struct drm_global_item {
25046 struct mutex mutex; 24143 struct mutex mutex;
@@ -25098,9 +24195,9 @@ diff -urNp linux-2.6.38.3/drivers/gpu/drm/drm_global.c linux-2.6.38.3/drivers/gp
25098 ref->release(ref); 24195 ref->release(ref);
25099 item->object = NULL; 24196 item->object = NULL;
25100 } 24197 }
25101diff -urNp linux-2.6.38.3/drivers/gpu/drm/drm_info.c linux-2.6.38.3/drivers/gpu/drm/drm_info.c 24198diff -urNp linux-2.6.38.2/drivers/gpu/drm/drm_info.c linux-2.6.38.2/drivers/gpu/drm/drm_info.c
25102--- linux-2.6.38.3/drivers/gpu/drm/drm_info.c 2011-03-14 21:20:32.000000000 -0400 24199--- linux-2.6.38.2/drivers/gpu/drm/drm_info.c 2011-03-14 21:20:32.000000000 -0400
25103+++ linux-2.6.38.3/drivers/gpu/drm/drm_info.c 2011-04-17 15:57:32.000000000 -0400 24200+++ linux-2.6.38.2/drivers/gpu/drm/drm_info.c 2011-03-21 18:31:35.000000000 -0400
25104@@ -86,10 +86,14 @@ int drm_vm_info(struct seq_file *m, void 24201@@ -86,10 +86,14 @@ int drm_vm_info(struct seq_file *m, void
25105 struct drm_local_map *map; 24202 struct drm_local_map *map;
25106 struct drm_map_list *r_list; 24203 struct drm_map_list *r_list;
@@ -25141,9 +24238,9 @@ diff -urNp linux-2.6.38.3/drivers/gpu/drm/drm_info.c linux-2.6.38.3/drivers/gpu/
25141 24238
25142 #if defined(__i386__) 24239 #if defined(__i386__)
25143 pgprot = pgprot_val(vma->vm_page_prot); 24240 pgprot = pgprot_val(vma->vm_page_prot);
25144diff -urNp linux-2.6.38.3/drivers/gpu/drm/drm_ioctl.c linux-2.6.38.3/drivers/gpu/drm/drm_ioctl.c 24241diff -urNp linux-2.6.38.2/drivers/gpu/drm/drm_ioctl.c linux-2.6.38.2/drivers/gpu/drm/drm_ioctl.c
25145--- linux-2.6.38.3/drivers/gpu/drm/drm_ioctl.c 2011-03-14 21:20:32.000000000 -0400 24242--- linux-2.6.38.2/drivers/gpu/drm/drm_ioctl.c 2011-03-14 21:20:32.000000000 -0400
25146+++ linux-2.6.38.3/drivers/gpu/drm/drm_ioctl.c 2011-04-17 15:57:32.000000000 -0400 24243+++ linux-2.6.38.2/drivers/gpu/drm/drm_ioctl.c 2011-03-21 18:31:35.000000000 -0400
25147@@ -353,7 +353,7 @@ int drm_getstats(struct drm_device *dev, 24244@@ -353,7 +353,7 @@ int drm_getstats(struct drm_device *dev,
25148 stats->data[i].value = 24245 stats->data[i].value =
25149 (file_priv->master->lock.hw_lock ? file_priv->master->lock.hw_lock->lock : 0); 24246 (file_priv->master->lock.hw_lock ? file_priv->master->lock.hw_lock->lock : 0);
@@ -25153,9 +24250,9 @@ diff -urNp linux-2.6.38.3/drivers/gpu/drm/drm_ioctl.c linux-2.6.38.3/drivers/gpu
25153 stats->data[i].type = dev->types[i]; 24250 stats->data[i].type = dev->types[i];
25154 } 24251 }
25155 24252
25156diff -urNp linux-2.6.38.3/drivers/gpu/drm/drm_lock.c linux-2.6.38.3/drivers/gpu/drm/drm_lock.c 24253diff -urNp linux-2.6.38.2/drivers/gpu/drm/drm_lock.c linux-2.6.38.2/drivers/gpu/drm/drm_lock.c
25157--- linux-2.6.38.3/drivers/gpu/drm/drm_lock.c 2011-03-14 21:20:32.000000000 -0400 24254--- linux-2.6.38.2/drivers/gpu/drm/drm_lock.c 2011-03-14 21:20:32.000000000 -0400
25158+++ linux-2.6.38.3/drivers/gpu/drm/drm_lock.c 2011-04-17 15:57:32.000000000 -0400 24255+++ linux-2.6.38.2/drivers/gpu/drm/drm_lock.c 2011-03-21 18:31:35.000000000 -0400
25159@@ -89,7 +89,7 @@ int drm_lock(struct drm_device *dev, voi 24256@@ -89,7 +89,7 @@ int drm_lock(struct drm_device *dev, voi
25160 if (drm_lock_take(&master->lock, lock->context)) { 24257 if (drm_lock_take(&master->lock, lock->context)) {
25161 master->lock.file_priv = file_priv; 24258 master->lock.file_priv = file_priv;
@@ -25174,9 +24271,9 @@ diff -urNp linux-2.6.38.3/drivers/gpu/drm/drm_lock.c linux-2.6.38.3/drivers/gpu/
25174 24271
25175 if (drm_lock_free(&master->lock, lock->context)) { 24272 if (drm_lock_free(&master->lock, lock->context)) {
25176 /* FIXME: Should really bail out here. */ 24273 /* FIXME: Should really bail out here. */
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 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
25178--- linux-2.6.38.3/drivers/gpu/drm/i810/i810_dma.c 2011-03-14 21:20:32.000000000 -0400 24275--- linux-2.6.38.2/drivers/gpu/drm/i810/i810_dma.c 2011-03-14 21:20:32.000000000 -0400
25179+++ linux-2.6.38.3/drivers/gpu/drm/i810/i810_dma.c 2011-04-17 15:57:32.000000000 -0400 24276+++ linux-2.6.38.2/drivers/gpu/drm/i810/i810_dma.c 2011-03-21 18:31:35.000000000 -0400
25180@@ -953,8 +953,8 @@ static int i810_dma_vertex(struct drm_de 24277@@ -953,8 +953,8 @@ static int i810_dma_vertex(struct drm_de
25181 dma->buflist[vertex->idx], 24278 dma->buflist[vertex->idx],
25182 vertex->discard, vertex->used); 24279 vertex->discard, vertex->used);
@@ -25199,9 +24296,9 @@ diff -urNp linux-2.6.38.3/drivers/gpu/drm/i810/i810_dma.c linux-2.6.38.3/drivers
25199 sarea_priv->last_enqueue = dev_priv->counter - 1; 24296 sarea_priv->last_enqueue = dev_priv->counter - 1;
25200 sarea_priv->last_dispatch = (int)hw_status[5]; 24297 sarea_priv->last_dispatch = (int)hw_status[5];
25201 24298
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 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
25203--- linux-2.6.38.3/drivers/gpu/drm/i915/dvo_ch7017.c 2011-03-14 21:20:32.000000000 -0400 24300--- linux-2.6.38.2/drivers/gpu/drm/i915/dvo_ch7017.c 2011-03-14 21:20:32.000000000 -0400
25204+++ linux-2.6.38.3/drivers/gpu/drm/i915/dvo_ch7017.c 2011-04-17 15:57:32.000000000 -0400 24301+++ linux-2.6.38.2/drivers/gpu/drm/i915/dvo_ch7017.c 2011-03-21 18:31:35.000000000 -0400
25205@@ -390,7 +390,7 @@ static void ch7017_destroy(struct intel_ 24302@@ -390,7 +390,7 @@ static void ch7017_destroy(struct intel_
25206 } 24303 }
25207 } 24304 }
@@ -25211,9 +24308,9 @@ diff -urNp linux-2.6.38.3/drivers/gpu/drm/i915/dvo_ch7017.c linux-2.6.38.3/drive
25211 .init = ch7017_init, 24308 .init = ch7017_init,
25212 .detect = ch7017_detect, 24309 .detect = ch7017_detect,
25213 .mode_valid = ch7017_mode_valid, 24310 .mode_valid = ch7017_mode_valid,
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 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
25215--- linux-2.6.38.3/drivers/gpu/drm/i915/dvo_ch7xxx.c 2011-03-14 21:20:32.000000000 -0400 24312--- linux-2.6.38.2/drivers/gpu/drm/i915/dvo_ch7xxx.c 2011-03-14 21:20:32.000000000 -0400
25216+++ linux-2.6.38.3/drivers/gpu/drm/i915/dvo_ch7xxx.c 2011-04-17 15:57:32.000000000 -0400 24313+++ linux-2.6.38.2/drivers/gpu/drm/i915/dvo_ch7xxx.c 2011-03-21 18:31:35.000000000 -0400
25217@@ -320,7 +320,7 @@ static void ch7xxx_destroy(struct intel_ 24314@@ -320,7 +320,7 @@ static void ch7xxx_destroy(struct intel_
25218 } 24315 }
25219 } 24316 }
@@ -25223,9 +24320,9 @@ diff -urNp linux-2.6.38.3/drivers/gpu/drm/i915/dvo_ch7xxx.c linux-2.6.38.3/drive
25223 .init = ch7xxx_init, 24320 .init = ch7xxx_init,
25224 .detect = ch7xxx_detect, 24321 .detect = ch7xxx_detect,
25225 .mode_valid = ch7xxx_mode_valid, 24322 .mode_valid = ch7xxx_mode_valid,
25226diff -urNp linux-2.6.38.3/drivers/gpu/drm/i915/dvo.h linux-2.6.38.3/drivers/gpu/drm/i915/dvo.h 24323diff -urNp linux-2.6.38.2/drivers/gpu/drm/i915/dvo.h linux-2.6.38.2/drivers/gpu/drm/i915/dvo.h
25227--- linux-2.6.38.3/drivers/gpu/drm/i915/dvo.h 2011-03-14 21:20:32.000000000 -0400 24324--- linux-2.6.38.2/drivers/gpu/drm/i915/dvo.h 2011-03-14 21:20:32.000000000 -0400
25228+++ linux-2.6.38.3/drivers/gpu/drm/i915/dvo.h 2011-04-17 15:57:32.000000000 -0400 24325+++ linux-2.6.38.2/drivers/gpu/drm/i915/dvo.h 2011-03-21 18:31:35.000000000 -0400
25229@@ -122,23 +122,23 @@ struct intel_dvo_dev_ops { 24326@@ -122,23 +122,23 @@ struct intel_dvo_dev_ops {
25230 * 24327 *
25231 * \return singly-linked list of modes or NULL if no modes found. 24328 * \return singly-linked list of modes or NULL if no modes found.
@@ -25258,9 +24355,9 @@ diff -urNp linux-2.6.38.3/drivers/gpu/drm/i915/dvo.h linux-2.6.38.3/drivers/gpu/
25258+extern const struct intel_dvo_dev_ops ch7017_ops; 24355+extern const struct intel_dvo_dev_ops ch7017_ops;
25259 24356
25260 #endif /* _INTEL_DVO_H */ 24357 #endif /* _INTEL_DVO_H */
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 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
25262--- linux-2.6.38.3/drivers/gpu/drm/i915/dvo_ivch.c 2011-03-14 21:20:32.000000000 -0400 24359--- linux-2.6.38.2/drivers/gpu/drm/i915/dvo_ivch.c 2011-03-14 21:20:32.000000000 -0400
25263+++ linux-2.6.38.3/drivers/gpu/drm/i915/dvo_ivch.c 2011-04-17 15:57:32.000000000 -0400 24360+++ linux-2.6.38.2/drivers/gpu/drm/i915/dvo_ivch.c 2011-03-21 18:31:35.000000000 -0400
25264@@ -410,7 +410,7 @@ static void ivch_destroy(struct intel_dv 24361@@ -410,7 +410,7 @@ static void ivch_destroy(struct intel_dv
25265 } 24362 }
25266 } 24363 }
@@ -25270,9 +24367,9 @@ diff -urNp linux-2.6.38.3/drivers/gpu/drm/i915/dvo_ivch.c linux-2.6.38.3/drivers
25270 .init = ivch_init, 24367 .init = ivch_init,
25271 .dpms = ivch_dpms, 24368 .dpms = ivch_dpms,
25272 .mode_valid = ivch_mode_valid, 24369 .mode_valid = ivch_mode_valid,
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 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
25274--- linux-2.6.38.3/drivers/gpu/drm/i915/dvo_sil164.c 2011-03-14 21:20:32.000000000 -0400 24371--- linux-2.6.38.2/drivers/gpu/drm/i915/dvo_sil164.c 2011-03-14 21:20:32.000000000 -0400
25275+++ linux-2.6.38.3/drivers/gpu/drm/i915/dvo_sil164.c 2011-04-17 15:57:32.000000000 -0400 24372+++ linux-2.6.38.2/drivers/gpu/drm/i915/dvo_sil164.c 2011-03-21 18:31:35.000000000 -0400
25276@@ -252,7 +252,7 @@ static void sil164_destroy(struct intel_ 24373@@ -252,7 +252,7 @@ static void sil164_destroy(struct intel_
25277 } 24374 }
25278 } 24375 }
@@ -25282,9 +24379,9 @@ diff -urNp linux-2.6.38.3/drivers/gpu/drm/i915/dvo_sil164.c linux-2.6.38.3/drive
25282 .init = sil164_init, 24379 .init = sil164_init,
25283 .detect = sil164_detect, 24380 .detect = sil164_detect,
25284 .mode_valid = sil164_mode_valid, 24381 .mode_valid = sil164_mode_valid,
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 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
25286--- linux-2.6.38.3/drivers/gpu/drm/i915/dvo_tfp410.c 2011-03-14 21:20:32.000000000 -0400 24383--- linux-2.6.38.2/drivers/gpu/drm/i915/dvo_tfp410.c 2011-03-14 21:20:32.000000000 -0400
25287+++ linux-2.6.38.3/drivers/gpu/drm/i915/dvo_tfp410.c 2011-04-17 15:57:32.000000000 -0400 24384+++ linux-2.6.38.2/drivers/gpu/drm/i915/dvo_tfp410.c 2011-03-21 18:31:35.000000000 -0400
25288@@ -293,7 +293,7 @@ static void tfp410_destroy(struct intel_ 24385@@ -293,7 +293,7 @@ static void tfp410_destroy(struct intel_
25289 } 24386 }
25290 } 24387 }
@@ -25294,9 +24391,9 @@ diff -urNp linux-2.6.38.3/drivers/gpu/drm/i915/dvo_tfp410.c linux-2.6.38.3/drive
25294 .init = tfp410_init, 24391 .init = tfp410_init,
25295 .detect = tfp410_detect, 24392 .detect = tfp410_detect,
25296 .mode_valid = tfp410_mode_valid, 24393 .mode_valid = tfp410_mode_valid,
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 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
25298--- linux-2.6.38.3/drivers/gpu/drm/i915/i915_dma.c 2011-03-14 21:20:32.000000000 -0400 24395--- linux-2.6.38.2/drivers/gpu/drm/i915/i915_dma.c 2011-03-14 21:20:32.000000000 -0400
25299+++ linux-2.6.38.3/drivers/gpu/drm/i915/i915_dma.c 2011-04-17 15:57:32.000000000 -0400 24396+++ linux-2.6.38.2/drivers/gpu/drm/i915/i915_dma.c 2011-03-21 18:31:35.000000000 -0400
25300@@ -1159,7 +1159,7 @@ static bool i915_switcheroo_can_switch(s 24397@@ -1159,7 +1159,7 @@ static bool i915_switcheroo_can_switch(s
25301 bool can_switch; 24398 bool can_switch;
25302 24399
@@ -25306,9 +24403,9 @@ diff -urNp linux-2.6.38.3/drivers/gpu/drm/i915/i915_dma.c linux-2.6.38.3/drivers
25306 spin_unlock(&dev->count_lock); 24403 spin_unlock(&dev->count_lock);
25307 return can_switch; 24404 return can_switch;
25308 } 24405 }
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 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
25310--- linux-2.6.38.3/drivers/gpu/drm/i915/i915_drv.c 2011-03-14 21:20:32.000000000 -0400 24407--- linux-2.6.38.2/drivers/gpu/drm/i915/i915_drv.c 2011-03-14 21:20:32.000000000 -0400
25311+++ linux-2.6.38.3/drivers/gpu/drm/i915/i915_drv.c 2011-04-17 15:57:32.000000000 -0400 24408+++ linux-2.6.38.2/drivers/gpu/drm/i915/i915_drv.c 2011-03-21 18:31:35.000000000 -0400
25312@@ -673,7 +673,7 @@ static const struct dev_pm_ops i915_pm_o 24409@@ -673,7 +673,7 @@ static const struct dev_pm_ops i915_pm_o
25313 .restore = i915_pm_resume, 24410 .restore = i915_pm_resume,
25314 }; 24411 };
@@ -25318,21 +24415,9 @@ diff -urNp linux-2.6.38.3/drivers/gpu/drm/i915/i915_drv.c linux-2.6.38.3/drivers
25318 .fault = i915_gem_fault, 24415 .fault = i915_gem_fault,
25319 .open = drm_gem_vm_open, 24416 .open = drm_gem_vm_open,
25320 .close = drm_gem_vm_close, 24417 .close = drm_gem_vm_close,
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 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
25322--- linux-2.6.38.3/drivers/gpu/drm/i915/i915_drv.h 2011-03-14 21:20:32.000000000 -0400 24419--- linux-2.6.38.2/drivers/gpu/drm/nouveau/nouveau_state.c 2011-03-14 21:20:32.000000000 -0400
25323+++ linux-2.6.38.3/drivers/gpu/drm/i915/i915_drv.h 2011-04-17 15:57:32.000000000 -0400 24420+++ linux-2.6.38.2/drivers/gpu/drm/nouveau/nouveau_state.c 2011-03-21 18:31:35.000000000 -0400
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
25336@@ -621,7 +621,7 @@ static bool nouveau_switcheroo_can_switc 24421@@ -621,7 +621,7 @@ static bool nouveau_switcheroo_can_switc
25337 bool can_switch; 24422 bool can_switch;
25338 24423
@@ -25342,9 +24427,9 @@ diff -urNp linux-2.6.38.3/drivers/gpu/drm/nouveau/nouveau_state.c linux-2.6.38.3
25342 spin_unlock(&dev->count_lock); 24427 spin_unlock(&dev->count_lock);
25343 return can_switch; 24428 return can_switch;
25344 } 24429 }
25345diff -urNp linux-2.6.38.3/drivers/gpu/drm/radeon/mkregtable.c linux-2.6.38.3/drivers/gpu/drm/radeon/mkregtable.c 24430diff -urNp linux-2.6.38.2/drivers/gpu/drm/radeon/mkregtable.c linux-2.6.38.2/drivers/gpu/drm/radeon/mkregtable.c
25346--- linux-2.6.38.3/drivers/gpu/drm/radeon/mkregtable.c 2011-03-14 21:20:32.000000000 -0400 24431--- linux-2.6.38.2/drivers/gpu/drm/radeon/mkregtable.c 2011-03-14 21:20:32.000000000 -0400
25347+++ linux-2.6.38.3/drivers/gpu/drm/radeon/mkregtable.c 2011-04-17 15:57:32.000000000 -0400 24432+++ linux-2.6.38.2/drivers/gpu/drm/radeon/mkregtable.c 2011-03-21 18:31:35.000000000 -0400
25348@@ -637,14 +637,14 @@ static int parser_auth(struct table *t, 24433@@ -637,14 +637,14 @@ static int parser_auth(struct table *t,
25349 regex_t mask_rex; 24434 regex_t mask_rex;
25350 regmatch_t match[4]; 24435 regmatch_t match[4];
@@ -25362,9 +24447,9 @@ diff -urNp linux-2.6.38.3/drivers/gpu/drm/radeon/mkregtable.c linux-2.6.38.3/dri
25362 24447
25363 if (regcomp 24448 if (regcomp
25364 (&mask_rex, "(0x[0-9a-fA-F]*) *([_a-zA-Z0-9]*)", REG_EXTENDED)) { 24449 (&mask_rex, "(0x[0-9a-fA-F]*) *([_a-zA-Z0-9]*)", REG_EXTENDED)) {
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 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
25366--- linux-2.6.38.3/drivers/gpu/drm/radeon/radeon_device.c 2011-03-14 21:20:32.000000000 -0400 24451--- linux-2.6.38.2/drivers/gpu/drm/radeon/radeon_device.c 2011-03-14 21:20:32.000000000 -0400
25367+++ linux-2.6.38.3/drivers/gpu/drm/radeon/radeon_device.c 2011-04-17 15:57:32.000000000 -0400 24452+++ linux-2.6.38.2/drivers/gpu/drm/radeon/radeon_device.c 2011-03-21 18:31:35.000000000 -0400
25368@@ -673,7 +673,7 @@ static bool radeon_switcheroo_can_switch 24453@@ -673,7 +673,7 @@ static bool radeon_switcheroo_can_switch
25369 bool can_switch; 24454 bool can_switch;
25370 24455
@@ -25374,21 +24459,9 @@ diff -urNp linux-2.6.38.3/drivers/gpu/drm/radeon/radeon_device.c linux-2.6.38.3/
25374 spin_unlock(&dev->count_lock); 24459 spin_unlock(&dev->count_lock);
25375 return can_switch; 24460 return can_switch;
25376 } 24461 }
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 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
25378--- linux-2.6.38.3/drivers/gpu/drm/radeon/radeon_ioc32.c 2011-03-14 21:20:32.000000000 -0400 24463--- linux-2.6.38.2/drivers/gpu/drm/radeon/radeon_state.c 2011-03-14 21:20:32.000000000 -0400
25379+++ linux-2.6.38.3/drivers/gpu/drm/radeon/radeon_ioc32.c 2011-04-17 15:57:32.000000000 -0400 24464+++ linux-2.6.38.2/drivers/gpu/drm/radeon/radeon_state.c 2011-03-21 18:31:35.000000000 -0400
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
25392@@ -2168,7 +2168,7 @@ static int radeon_cp_clear(struct drm_de 24465@@ -2168,7 +2168,7 @@ static int radeon_cp_clear(struct drm_de
25393 if (sarea_priv->nbox > RADEON_NR_SAREA_CLIPRECTS) 24466 if (sarea_priv->nbox > RADEON_NR_SAREA_CLIPRECTS)
25394 sarea_priv->nbox = RADEON_NR_SAREA_CLIPRECTS; 24467 sarea_priv->nbox = RADEON_NR_SAREA_CLIPRECTS;
@@ -25407,9 +24480,9 @@ diff -urNp linux-2.6.38.3/drivers/gpu/drm/radeon/radeon_state.c linux-2.6.38.3/d
25407 24480
25408 DRM_DEBUG("pid=%d\n", DRM_CURRENTPID); 24481 DRM_DEBUG("pid=%d\n", DRM_CURRENTPID);
25409 24482
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 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
25411--- linux-2.6.38.3/drivers/gpu/drm/radeon/radeon_ttm.c 2011-03-14 21:20:32.000000000 -0400 24484--- linux-2.6.38.2/drivers/gpu/drm/radeon/radeon_ttm.c 2011-03-14 21:20:32.000000000 -0400
25412+++ linux-2.6.38.3/drivers/gpu/drm/radeon/radeon_ttm.c 2011-04-17 15:57:32.000000000 -0400 24485+++ linux-2.6.38.2/drivers/gpu/drm/radeon/radeon_ttm.c 2011-03-21 18:31:35.000000000 -0400
25413@@ -603,8 +603,9 @@ void radeon_ttm_set_active_vram_size(str 24486@@ -603,8 +603,9 @@ void radeon_ttm_set_active_vram_size(str
25414 man->size = size >> PAGE_SHIFT; 24487 man->size = size >> PAGE_SHIFT;
25415 } 24488 }
@@ -25470,25 +24543,9 @@ diff -urNp linux-2.6.38.3/drivers/gpu/drm/radeon/radeon_ttm.c linux-2.6.38.3/dri
25470 vma->vm_ops = &radeon_ttm_vm_ops; 24543 vma->vm_ops = &radeon_ttm_vm_ops;
25471 return 0; 24544 return 0;
25472 } 24545 }
25473diff -urNp linux-2.6.38.3/drivers/gpu/drm/radeon/rs690.c linux-2.6.38.3/drivers/gpu/drm/radeon/rs690.c 24546diff -urNp linux-2.6.38.2/drivers/gpu/drm/ttm/ttm_bo.c linux-2.6.38.2/drivers/gpu/drm/ttm/ttm_bo.c
25474--- linux-2.6.38.3/drivers/gpu/drm/radeon/rs690.c 2011-03-14 21:20:32.000000000 -0400 24547--- linux-2.6.38.2/drivers/gpu/drm/ttm/ttm_bo.c 2011-03-14 21:20:32.000000000 -0400
25475+++ linux-2.6.38.3/drivers/gpu/drm/radeon/rs690.c 2011-04-17 15:57:32.000000000 -0400 24548+++ linux-2.6.38.2/drivers/gpu/drm/ttm/ttm_bo.c 2011-03-21 18:31:35.000000000 -0400
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
25492@@ -40,7 +40,7 @@ 24549@@ -40,7 +40,7 @@
25493 #include <asm/atomic.h> 24550 #include <asm/atomic.h>
25494 24551
@@ -25498,9 +24555,9 @@ diff -urNp linux-2.6.38.3/drivers/gpu/drm/ttm/ttm_bo.c linux-2.6.38.3/drivers/gp
25498 #define TTM_BO_HASH_ORDER 13 24555 #define TTM_BO_HASH_ORDER 13
25499 24556
25500 static int ttm_bo_setup_vm(struct ttm_buffer_object *bo); 24557 static int ttm_bo_setup_vm(struct ttm_buffer_object *bo);
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 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
25502--- linux-2.6.38.3/drivers/gpu/drm/ttm/ttm_bo_vm.c 2011-03-14 21:20:32.000000000 -0400 24559--- linux-2.6.38.2/drivers/gpu/drm/ttm/ttm_bo_vm.c 2011-03-14 21:20:32.000000000 -0400
25503+++ linux-2.6.38.3/drivers/gpu/drm/ttm/ttm_bo_vm.c 2011-04-17 15:57:32.000000000 -0400 24560+++ linux-2.6.38.2/drivers/gpu/drm/ttm/ttm_bo_vm.c 2011-03-21 18:31:35.000000000 -0400
25504@@ -69,11 +69,11 @@ static struct ttm_buffer_object *ttm_bo_ 24561@@ -69,11 +69,11 @@ static struct ttm_buffer_object *ttm_bo_
25505 return best_bo; 24562 return best_bo;
25506 } 24563 }
@@ -25558,21 +24615,9 @@ diff -urNp linux-2.6.38.3/drivers/gpu/drm/ttm/ttm_bo_vm.c linux-2.6.38.3/drivers
25558 24615
25559 static const struct vm_operations_struct ttm_bo_vm_ops = { 24616 static const struct vm_operations_struct ttm_bo_vm_ops = {
25560 .fault = ttm_bo_vm_fault, 24617 .fault = ttm_bo_vm_fault,
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 24618diff -urNp linux-2.6.38.2/drivers/hid/usbhid/hiddev.c linux-2.6.38.2/drivers/hid/usbhid/hiddev.c
25562--- linux-2.6.38.3/drivers/gpu/drm/vmwgfx/vmwgfx_fifo.c 2011-03-14 21:20:32.000000000 -0400 24619--- linux-2.6.38.2/drivers/hid/usbhid/hiddev.c 2011-03-14 21:20:32.000000000 -0400
25563+++ linux-2.6.38.3/drivers/gpu/drm/vmwgfx/vmwgfx_fifo.c 2011-04-17 15:57:32.000000000 -0400 24620+++ linux-2.6.38.2/drivers/hid/usbhid/hiddev.c 2011-03-21 18:31:35.000000000 -0400
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
25576@@ -613,7 +613,7 @@ static long hiddev_ioctl(struct file *fi 24621@@ -613,7 +613,7 @@ static long hiddev_ioctl(struct file *fi
25577 break; 24622 break;
25578 24623
@@ -25582,9 +24627,9 @@ diff -urNp linux-2.6.38.3/drivers/hid/usbhid/hiddev.c linux-2.6.38.3/drivers/hid
25582 break; 24627 break;
25583 24628
25584 for (i = 0; i < hid->maxcollection; i++) 24629 for (i = 0; i < hid->maxcollection; i++)
25585diff -urNp linux-2.6.38.3/drivers/hwmon/k8temp.c linux-2.6.38.3/drivers/hwmon/k8temp.c 24630diff -urNp linux-2.6.38.2/drivers/hwmon/k8temp.c linux-2.6.38.2/drivers/hwmon/k8temp.c
25586--- linux-2.6.38.3/drivers/hwmon/k8temp.c 2011-03-14 21:20:32.000000000 -0400 24631--- linux-2.6.38.2/drivers/hwmon/k8temp.c 2011-03-14 21:20:32.000000000 -0400
25587+++ linux-2.6.38.3/drivers/hwmon/k8temp.c 2011-04-17 15:57:32.000000000 -0400 24632+++ linux-2.6.38.2/drivers/hwmon/k8temp.c 2011-03-21 18:31:35.000000000 -0400
25588@@ -138,7 +138,7 @@ static DEVICE_ATTR(name, S_IRUGO, show_n 24633@@ -138,7 +138,7 @@ static DEVICE_ATTR(name, S_IRUGO, show_n
25589 24634
25590 static const struct pci_device_id k8temp_ids[] = { 24635 static const struct pci_device_id k8temp_ids[] = {
@@ -25594,9 +24639,9 @@ diff -urNp linux-2.6.38.3/drivers/hwmon/k8temp.c linux-2.6.38.3/drivers/hwmon/k8
25594 }; 24639 };
25595 24640
25596 MODULE_DEVICE_TABLE(pci, k8temp_ids); 24641 MODULE_DEVICE_TABLE(pci, k8temp_ids);
25597diff -urNp linux-2.6.38.3/drivers/hwmon/sis5595.c linux-2.6.38.3/drivers/hwmon/sis5595.c 24642diff -urNp linux-2.6.38.2/drivers/hwmon/sis5595.c linux-2.6.38.2/drivers/hwmon/sis5595.c
25598--- linux-2.6.38.3/drivers/hwmon/sis5595.c 2011-03-14 21:20:32.000000000 -0400 24643--- linux-2.6.38.2/drivers/hwmon/sis5595.c 2011-03-14 21:20:32.000000000 -0400
25599+++ linux-2.6.38.3/drivers/hwmon/sis5595.c 2011-04-17 15:57:32.000000000 -0400 24644+++ linux-2.6.38.2/drivers/hwmon/sis5595.c 2011-03-21 18:31:35.000000000 -0400
25600@@ -701,7 +701,7 @@ static struct sis5595_data *sis5595_upda 24645@@ -701,7 +701,7 @@ static struct sis5595_data *sis5595_upda
25601 24646
25602 static const struct pci_device_id sis5595_pci_ids[] = { 24647 static const struct pci_device_id sis5595_pci_ids[] = {
@@ -25606,9 +24651,9 @@ diff -urNp linux-2.6.38.3/drivers/hwmon/sis5595.c linux-2.6.38.3/drivers/hwmon/s
25606 }; 24651 };
25607 24652
25608 MODULE_DEVICE_TABLE(pci, sis5595_pci_ids); 24653 MODULE_DEVICE_TABLE(pci, sis5595_pci_ids);
25609diff -urNp linux-2.6.38.3/drivers/hwmon/via686a.c linux-2.6.38.3/drivers/hwmon/via686a.c 24654diff -urNp linux-2.6.38.2/drivers/hwmon/via686a.c linux-2.6.38.2/drivers/hwmon/via686a.c
25610--- linux-2.6.38.3/drivers/hwmon/via686a.c 2011-03-14 21:20:32.000000000 -0400 24655--- linux-2.6.38.2/drivers/hwmon/via686a.c 2011-03-14 21:20:32.000000000 -0400
25611+++ linux-2.6.38.3/drivers/hwmon/via686a.c 2011-04-17 15:57:32.000000000 -0400 24656+++ linux-2.6.38.2/drivers/hwmon/via686a.c 2011-03-21 18:31:35.000000000 -0400
25612@@ -779,7 +779,7 @@ static struct via686a_data *via686a_upda 24657@@ -779,7 +779,7 @@ static struct via686a_data *via686a_upda
25613 24658
25614 static const struct pci_device_id via686a_pci_ids[] = { 24659 static const struct pci_device_id via686a_pci_ids[] = {
@@ -25618,9 +24663,9 @@ diff -urNp linux-2.6.38.3/drivers/hwmon/via686a.c linux-2.6.38.3/drivers/hwmon/v
25618 }; 24663 };
25619 24664
25620 MODULE_DEVICE_TABLE(pci, via686a_pci_ids); 24665 MODULE_DEVICE_TABLE(pci, via686a_pci_ids);
25621diff -urNp linux-2.6.38.3/drivers/hwmon/vt8231.c linux-2.6.38.3/drivers/hwmon/vt8231.c 24666diff -urNp linux-2.6.38.2/drivers/hwmon/vt8231.c linux-2.6.38.2/drivers/hwmon/vt8231.c
25622--- linux-2.6.38.3/drivers/hwmon/vt8231.c 2011-03-14 21:20:32.000000000 -0400 24667--- linux-2.6.38.2/drivers/hwmon/vt8231.c 2011-03-14 21:20:32.000000000 -0400
25623+++ linux-2.6.38.3/drivers/hwmon/vt8231.c 2011-04-17 15:57:32.000000000 -0400 24668+++ linux-2.6.38.2/drivers/hwmon/vt8231.c 2011-03-21 18:31:35.000000000 -0400
25624@@ -701,7 +701,7 @@ static struct platform_driver vt8231_dri 24669@@ -701,7 +701,7 @@ static struct platform_driver vt8231_dri
25625 24670
25626 static const struct pci_device_id vt8231_pci_ids[] = { 24671 static const struct pci_device_id vt8231_pci_ids[] = {
@@ -25630,9 +24675,9 @@ diff -urNp linux-2.6.38.3/drivers/hwmon/vt8231.c linux-2.6.38.3/drivers/hwmon/vt
25630 }; 24675 };
25631 24676
25632 MODULE_DEVICE_TABLE(pci, vt8231_pci_ids); 24677 MODULE_DEVICE_TABLE(pci, vt8231_pci_ids);
25633diff -urNp linux-2.6.38.3/drivers/hwmon/w83791d.c linux-2.6.38.3/drivers/hwmon/w83791d.c 24678diff -urNp linux-2.6.38.2/drivers/hwmon/w83791d.c linux-2.6.38.2/drivers/hwmon/w83791d.c
25634--- linux-2.6.38.3/drivers/hwmon/w83791d.c 2011-03-14 21:20:32.000000000 -0400 24679--- linux-2.6.38.2/drivers/hwmon/w83791d.c 2011-03-14 21:20:32.000000000 -0400
25635+++ linux-2.6.38.3/drivers/hwmon/w83791d.c 2011-04-17 15:57:32.000000000 -0400 24680+++ linux-2.6.38.2/drivers/hwmon/w83791d.c 2011-03-21 18:31:35.000000000 -0400
25636@@ -329,8 +329,8 @@ static int w83791d_detect(struct i2c_cli 24681@@ -329,8 +329,8 @@ static int w83791d_detect(struct i2c_cli
25637 struct i2c_board_info *info); 24682 struct i2c_board_info *info);
25638 static int w83791d_remove(struct i2c_client *client); 24683 static int w83791d_remove(struct i2c_client *client);
@@ -25644,9 +24689,9 @@ diff -urNp linux-2.6.38.3/drivers/hwmon/w83791d.c linux-2.6.38.3/drivers/hwmon/w
25644 static struct w83791d_data *w83791d_update_device(struct device *dev); 24689 static struct w83791d_data *w83791d_update_device(struct device *dev);
25645 24690
25646 #ifdef DEBUG 24691 #ifdef DEBUG
25647diff -urNp linux-2.6.38.3/drivers/i2c/busses/i2c-i801.c linux-2.6.38.3/drivers/i2c/busses/i2c-i801.c 24692diff -urNp linux-2.6.38.2/drivers/i2c/busses/i2c-i801.c linux-2.6.38.2/drivers/i2c/busses/i2c-i801.c
25648--- linux-2.6.38.3/drivers/i2c/busses/i2c-i801.c 2011-03-14 21:20:32.000000000 -0400 24693--- linux-2.6.38.2/drivers/i2c/busses/i2c-i801.c 2011-03-14 21:20:32.000000000 -0400
25649+++ linux-2.6.38.3/drivers/i2c/busses/i2c-i801.c 2011-04-17 15:57:32.000000000 -0400 24694+++ linux-2.6.38.2/drivers/i2c/busses/i2c-i801.c 2011-03-21 18:31:35.000000000 -0400
25650@@ -621,7 +621,7 @@ static const struct pci_device_id i801_i 24695@@ -621,7 +621,7 @@ static const struct pci_device_id i801_i
25651 { PCI_DEVICE(PCI_VENDOR_ID_INTEL, PCI_DEVICE_ID_INTEL_PATSBURG_SMBUS_IDF0) }, 24696 { PCI_DEVICE(PCI_VENDOR_ID_INTEL, PCI_DEVICE_ID_INTEL_PATSBURG_SMBUS_IDF0) },
25652 { PCI_DEVICE(PCI_VENDOR_ID_INTEL, PCI_DEVICE_ID_INTEL_PATSBURG_SMBUS_IDF1) }, 24697 { PCI_DEVICE(PCI_VENDOR_ID_INTEL, PCI_DEVICE_ID_INTEL_PATSBURG_SMBUS_IDF1) },
@@ -25656,9 +24701,9 @@ diff -urNp linux-2.6.38.3/drivers/i2c/busses/i2c-i801.c linux-2.6.38.3/drivers/i
25656 }; 24701 };
25657 24702
25658 MODULE_DEVICE_TABLE(pci, i801_ids); 24703 MODULE_DEVICE_TABLE(pci, i801_ids);
25659diff -urNp linux-2.6.38.3/drivers/i2c/busses/i2c-piix4.c linux-2.6.38.3/drivers/i2c/busses/i2c-piix4.c 24704diff -urNp linux-2.6.38.2/drivers/i2c/busses/i2c-piix4.c linux-2.6.38.2/drivers/i2c/busses/i2c-piix4.c
25660--- linux-2.6.38.3/drivers/i2c/busses/i2c-piix4.c 2011-03-14 21:20:32.000000000 -0400 24705--- linux-2.6.38.2/drivers/i2c/busses/i2c-piix4.c 2011-03-14 21:20:32.000000000 -0400
25661+++ linux-2.6.38.3/drivers/i2c/busses/i2c-piix4.c 2011-04-17 15:57:32.000000000 -0400 24706+++ linux-2.6.38.2/drivers/i2c/busses/i2c-piix4.c 2011-03-21 18:31:35.000000000 -0400
25662@@ -124,7 +124,7 @@ static struct dmi_system_id __devinitdat 24707@@ -124,7 +124,7 @@ static struct dmi_system_id __devinitdat
25663 .ident = "IBM", 24708 .ident = "IBM",
25664 .matches = { DMI_MATCH(DMI_SYS_VENDOR, "IBM"), }, 24709 .matches = { DMI_MATCH(DMI_SYS_VENDOR, "IBM"), },
@@ -25677,9 +24722,9 @@ diff -urNp linux-2.6.38.3/drivers/i2c/busses/i2c-piix4.c linux-2.6.38.3/drivers/
25677 }; 24722 };
25678 24723
25679 MODULE_DEVICE_TABLE (pci, piix4_ids); 24724 MODULE_DEVICE_TABLE (pci, piix4_ids);
25680diff -urNp linux-2.6.38.3/drivers/i2c/busses/i2c-sis630.c linux-2.6.38.3/drivers/i2c/busses/i2c-sis630.c 24725diff -urNp linux-2.6.38.2/drivers/i2c/busses/i2c-sis630.c linux-2.6.38.2/drivers/i2c/busses/i2c-sis630.c
25681--- linux-2.6.38.3/drivers/i2c/busses/i2c-sis630.c 2011-03-14 21:20:32.000000000 -0400 24726--- linux-2.6.38.2/drivers/i2c/busses/i2c-sis630.c 2011-03-14 21:20:32.000000000 -0400
25682+++ linux-2.6.38.3/drivers/i2c/busses/i2c-sis630.c 2011-04-17 15:57:32.000000000 -0400 24727+++ linux-2.6.38.2/drivers/i2c/busses/i2c-sis630.c 2011-03-21 18:31:35.000000000 -0400
25683@@ -471,7 +471,7 @@ static struct i2c_adapter sis630_adapter 24728@@ -471,7 +471,7 @@ static struct i2c_adapter sis630_adapter
25684 static const struct pci_device_id sis630_ids[] __devinitconst = { 24729 static const struct pci_device_id sis630_ids[] __devinitconst = {
25685 { PCI_DEVICE(PCI_VENDOR_ID_SI, PCI_DEVICE_ID_SI_503) }, 24730 { PCI_DEVICE(PCI_VENDOR_ID_SI, PCI_DEVICE_ID_SI_503) },
@@ -25689,9 +24734,9 @@ diff -urNp linux-2.6.38.3/drivers/i2c/busses/i2c-sis630.c linux-2.6.38.3/drivers
25689 }; 24734 };
25690 24735
25691 MODULE_DEVICE_TABLE (pci, sis630_ids); 24736 MODULE_DEVICE_TABLE (pci, sis630_ids);
25692diff -urNp linux-2.6.38.3/drivers/i2c/busses/i2c-sis96x.c linux-2.6.38.3/drivers/i2c/busses/i2c-sis96x.c 24737diff -urNp linux-2.6.38.2/drivers/i2c/busses/i2c-sis96x.c linux-2.6.38.2/drivers/i2c/busses/i2c-sis96x.c
25693--- linux-2.6.38.3/drivers/i2c/busses/i2c-sis96x.c 2011-03-14 21:20:32.000000000 -0400 24738--- linux-2.6.38.2/drivers/i2c/busses/i2c-sis96x.c 2011-03-14 21:20:32.000000000 -0400
25694+++ linux-2.6.38.3/drivers/i2c/busses/i2c-sis96x.c 2011-04-17 15:57:32.000000000 -0400 24739+++ linux-2.6.38.2/drivers/i2c/busses/i2c-sis96x.c 2011-03-21 18:31:35.000000000 -0400
25695@@ -247,7 +247,7 @@ static struct i2c_adapter sis96x_adapter 24740@@ -247,7 +247,7 @@ static struct i2c_adapter sis96x_adapter
25696 24741
25697 static const struct pci_device_id sis96x_ids[] = { 24742 static const struct pci_device_id sis96x_ids[] = {
@@ -25701,9 +24746,9 @@ diff -urNp linux-2.6.38.3/drivers/i2c/busses/i2c-sis96x.c linux-2.6.38.3/drivers
25701 }; 24746 };
25702 24747
25703 MODULE_DEVICE_TABLE (pci, sis96x_ids); 24748 MODULE_DEVICE_TABLE (pci, sis96x_ids);
25704diff -urNp linux-2.6.38.3/drivers/ide/ide-cd.c linux-2.6.38.3/drivers/ide/ide-cd.c 24749diff -urNp linux-2.6.38.2/drivers/ide/ide-cd.c linux-2.6.38.2/drivers/ide/ide-cd.c
25705--- linux-2.6.38.3/drivers/ide/ide-cd.c 2011-03-14 21:20:32.000000000 -0400 24750--- linux-2.6.38.2/drivers/ide/ide-cd.c 2011-03-14 21:20:32.000000000 -0400
25706+++ linux-2.6.38.3/drivers/ide/ide-cd.c 2011-04-17 15:57:32.000000000 -0400 24751+++ linux-2.6.38.2/drivers/ide/ide-cd.c 2011-03-21 18:31:35.000000000 -0400
25707@@ -776,7 +776,7 @@ static void cdrom_do_block_pc(ide_drive_ 24752@@ -776,7 +776,7 @@ static void cdrom_do_block_pc(ide_drive_
25708 alignment = queue_dma_alignment(q) | q->dma_pad_mask; 24753 alignment = queue_dma_alignment(q) | q->dma_pad_mask;
25709 if ((unsigned long)buf & alignment 24754 if ((unsigned long)buf & alignment
@@ -25713,9 +24758,9 @@ diff -urNp linux-2.6.38.3/drivers/ide/ide-cd.c linux-2.6.38.3/drivers/ide/ide-cd
25713 drive->dma = 0; 24758 drive->dma = 0;
25714 } 24759 }
25715 } 24760 }
25716diff -urNp linux-2.6.38.3/drivers/infiniband/core/cm.c linux-2.6.38.3/drivers/infiniband/core/cm.c 24761diff -urNp linux-2.6.38.2/drivers/infiniband/core/cm.c linux-2.6.38.2/drivers/infiniband/core/cm.c
25717--- linux-2.6.38.3/drivers/infiniband/core/cm.c 2011-04-18 17:27:14.000000000 -0400 24762--- linux-2.6.38.2/drivers/infiniband/core/cm.c 2011-03-23 17:20:07.000000000 -0400
25718+++ linux-2.6.38.3/drivers/infiniband/core/cm.c 2011-04-17 15:57:32.000000000 -0400 24763+++ linux-2.6.38.2/drivers/infiniband/core/cm.c 2011-03-23 17:21:50.000000000 -0400
25719@@ -113,7 +113,7 @@ static char const counter_group_names[CM 24764@@ -113,7 +113,7 @@ static char const counter_group_names[CM
25720 24765
25721 struct cm_counter_group { 24766 struct cm_counter_group {
@@ -25855,9 +24900,9 @@ diff -urNp linux-2.6.38.3/drivers/infiniband/core/cm.c linux-2.6.38.3/drivers/in
25855 } 24900 }
25856 24901
25857 static const struct sysfs_ops cm_counter_ops = { 24902 static const struct sysfs_ops cm_counter_ops = {
25858diff -urNp linux-2.6.38.3/drivers/infiniband/hw/qib/qib.h linux-2.6.38.3/drivers/infiniband/hw/qib/qib.h 24903diff -urNp linux-2.6.38.2/drivers/infiniband/hw/qib/qib.h linux-2.6.38.2/drivers/infiniband/hw/qib/qib.h
25859--- linux-2.6.38.3/drivers/infiniband/hw/qib/qib.h 2011-03-14 21:20:32.000000000 -0400 24904--- linux-2.6.38.2/drivers/infiniband/hw/qib/qib.h 2011-03-14 21:20:32.000000000 -0400
25860+++ linux-2.6.38.3/drivers/infiniband/hw/qib/qib.h 2011-04-17 15:57:32.000000000 -0400 24905+++ linux-2.6.38.2/drivers/infiniband/hw/qib/qib.h 2011-03-21 18:31:35.000000000 -0400
25861@@ -51,6 +51,7 @@ 24906@@ -51,6 +51,7 @@
25862 #include <linux/completion.h> 24907 #include <linux/completion.h>
25863 #include <linux/kref.h> 24908 #include <linux/kref.h>
@@ -25866,9 +24911,9 @@ diff -urNp linux-2.6.38.3/drivers/infiniband/hw/qib/qib.h linux-2.6.38.3/drivers
25866 24911
25867 #include "qib_common.h" 24912 #include "qib_common.h"
25868 #include "qib_verbs.h" 24913 #include "qib_verbs.h"
25869diff -urNp linux-2.6.38.3/drivers/input/keyboard/atkbd.c linux-2.6.38.3/drivers/input/keyboard/atkbd.c 24914diff -urNp linux-2.6.38.2/drivers/input/keyboard/atkbd.c linux-2.6.38.2/drivers/input/keyboard/atkbd.c
25870--- linux-2.6.38.3/drivers/input/keyboard/atkbd.c 2011-03-14 21:20:32.000000000 -0400 24915--- linux-2.6.38.2/drivers/input/keyboard/atkbd.c 2011-03-14 21:20:32.000000000 -0400
25871+++ linux-2.6.38.3/drivers/input/keyboard/atkbd.c 2011-04-17 15:57:32.000000000 -0400 24916+++ linux-2.6.38.2/drivers/input/keyboard/atkbd.c 2011-03-21 18:31:35.000000000 -0400
25872@@ -1250,7 +1250,7 @@ static struct serio_device_id atkbd_seri 24917@@ -1250,7 +1250,7 @@ static struct serio_device_id atkbd_seri
25873 .id = SERIO_ANY, 24918 .id = SERIO_ANY,
25874 .extra = SERIO_ANY, 24919 .extra = SERIO_ANY,
@@ -25878,9 +24923,9 @@ diff -urNp linux-2.6.38.3/drivers/input/keyboard/atkbd.c linux-2.6.38.3/drivers/
25878 }; 24923 };
25879 24924
25880 MODULE_DEVICE_TABLE(serio, atkbd_serio_ids); 24925 MODULE_DEVICE_TABLE(serio, atkbd_serio_ids);
25881diff -urNp linux-2.6.38.3/drivers/input/mouse/lifebook.c linux-2.6.38.3/drivers/input/mouse/lifebook.c 24926diff -urNp linux-2.6.38.2/drivers/input/mouse/lifebook.c linux-2.6.38.2/drivers/input/mouse/lifebook.c
25882--- linux-2.6.38.3/drivers/input/mouse/lifebook.c 2011-03-14 21:20:32.000000000 -0400 24927--- linux-2.6.38.2/drivers/input/mouse/lifebook.c 2011-03-14 21:20:32.000000000 -0400
25883+++ linux-2.6.38.3/drivers/input/mouse/lifebook.c 2011-04-17 15:57:32.000000000 -0400 24928+++ linux-2.6.38.2/drivers/input/mouse/lifebook.c 2011-03-21 18:31:35.000000000 -0400
25884@@ -123,7 +123,7 @@ static const struct dmi_system_id __init 24929@@ -123,7 +123,7 @@ static const struct dmi_system_id __init
25885 DMI_MATCH(DMI_PRODUCT_NAME, "LifeBook B142"), 24930 DMI_MATCH(DMI_PRODUCT_NAME, "LifeBook B142"),
25886 }, 24931 },
@@ -25890,9 +24935,9 @@ diff -urNp linux-2.6.38.3/drivers/input/mouse/lifebook.c linux-2.6.38.3/drivers/
25890 }; 24935 };
25891 24936
25892 void __init lifebook_module_init(void) 24937 void __init lifebook_module_init(void)
25893diff -urNp linux-2.6.38.3/drivers/input/mouse/psmouse-base.c linux-2.6.38.3/drivers/input/mouse/psmouse-base.c 24938diff -urNp linux-2.6.38.2/drivers/input/mouse/psmouse-base.c linux-2.6.38.2/drivers/input/mouse/psmouse-base.c
25894--- linux-2.6.38.3/drivers/input/mouse/psmouse-base.c 2011-03-14 21:20:32.000000000 -0400 24939--- linux-2.6.38.2/drivers/input/mouse/psmouse-base.c 2011-03-14 21:20:32.000000000 -0400
25895+++ linux-2.6.38.3/drivers/input/mouse/psmouse-base.c 2011-04-17 15:57:32.000000000 -0400 24940+++ linux-2.6.38.2/drivers/input/mouse/psmouse-base.c 2011-03-21 18:31:35.000000000 -0400
25896@@ -1462,7 +1462,7 @@ static struct serio_device_id psmouse_se 24941@@ -1462,7 +1462,7 @@ static struct serio_device_id psmouse_se
25897 .id = SERIO_ANY, 24942 .id = SERIO_ANY,
25898 .extra = SERIO_ANY, 24943 .extra = SERIO_ANY,
@@ -25902,9 +24947,9 @@ diff -urNp linux-2.6.38.3/drivers/input/mouse/psmouse-base.c linux-2.6.38.3/driv
25902 }; 24947 };
25903 24948
25904 MODULE_DEVICE_TABLE(serio, psmouse_serio_ids); 24949 MODULE_DEVICE_TABLE(serio, psmouse_serio_ids);
25905diff -urNp linux-2.6.38.3/drivers/input/mouse/synaptics.c linux-2.6.38.3/drivers/input/mouse/synaptics.c 24950diff -urNp linux-2.6.38.2/drivers/input/mouse/synaptics.c linux-2.6.38.2/drivers/input/mouse/synaptics.c
25906--- linux-2.6.38.3/drivers/input/mouse/synaptics.c 2011-04-18 17:27:18.000000000 -0400 24951--- linux-2.6.38.2/drivers/input/mouse/synaptics.c 2011-03-14 21:20:32.000000000 -0400
25907+++ linux-2.6.38.3/drivers/input/mouse/synaptics.c 2011-04-17 16:53:16.000000000 -0400 24952+++ linux-2.6.38.2/drivers/input/mouse/synaptics.c 2011-03-21 18:31:35.000000000 -0400
25908@@ -559,7 +559,7 @@ static void synaptics_process_packet(str 24953@@ -559,7 +559,7 @@ static void synaptics_process_packet(str
25909 break; 24954 break;
25910 case 2: 24955 case 2:
@@ -25922,21 +24967,20 @@ diff -urNp linux-2.6.38.3/drivers/input/mouse/synaptics.c linux-2.6.38.3/drivers
25922 }, 24967 },
25923 { 24968 {
25924 /* Toshiba Portege M300 */ 24969 /* Toshiba Portege M300 */
25925@@ -834,10 +833,9 @@ static const struct dmi_system_id __init 24970@@ -834,9 +833,8 @@ static const struct dmi_system_id __init
25926 DMI_MATCH(DMI_PRODUCT_NAME, "Portable PC"), 24971 DMI_MATCH(DMI_PRODUCT_NAME, "Portable PC"),
25927 DMI_MATCH(DMI_PRODUCT_VERSION, "Version 1.0"), 24972 DMI_MATCH(DMI_PRODUCT_VERSION, "Version 1.0"),
25928 }, 24973 },
25929- 24974-
25930 }, 24975 },
24976- { }
25931+ { NULL, NULL, {DMI_MATCH(DMI_NONE, {0})}, NULL } 24977+ { NULL, NULL, {DMI_MATCH(DMI_NONE, {0})}, NULL }
25932 #endif 24978 #endif
25933- { }
25934 }; 24979 };
25935 24980
25936 static bool broken_olpc_ec; 24981diff -urNp linux-2.6.38.2/drivers/input/mousedev.c linux-2.6.38.2/drivers/input/mousedev.c
25937diff -urNp linux-2.6.38.3/drivers/input/mousedev.c linux-2.6.38.3/drivers/input/mousedev.c 24982--- linux-2.6.38.2/drivers/input/mousedev.c 2011-03-14 21:20:32.000000000 -0400
25938--- linux-2.6.38.3/drivers/input/mousedev.c 2011-03-14 21:20:32.000000000 -0400 24983+++ linux-2.6.38.2/drivers/input/mousedev.c 2011-03-21 18:31:35.000000000 -0400
25939+++ linux-2.6.38.3/drivers/input/mousedev.c 2011-04-17 15:57:32.000000000 -0400
25940@@ -764,7 +764,7 @@ static ssize_t mousedev_read(struct file 24984@@ -764,7 +764,7 @@ static ssize_t mousedev_read(struct file
25941 24985
25942 spin_unlock_irq(&client->packet_lock); 24986 spin_unlock_irq(&client->packet_lock);
@@ -25955,9 +24999,9 @@ diff -urNp linux-2.6.38.3/drivers/input/mousedev.c linux-2.6.38.3/drivers/input/
25955 }; 24999 };
25956 static int psaux_registered; 25000 static int psaux_registered;
25957 #endif 25001 #endif
25958diff -urNp linux-2.6.38.3/drivers/input/serio/i8042-x86ia64io.h linux-2.6.38.3/drivers/input/serio/i8042-x86ia64io.h 25002diff -urNp linux-2.6.38.2/drivers/input/serio/i8042-x86ia64io.h linux-2.6.38.2/drivers/input/serio/i8042-x86ia64io.h
25959--- linux-2.6.38.3/drivers/input/serio/i8042-x86ia64io.h 2011-03-14 21:20:32.000000000 -0400 25003--- linux-2.6.38.2/drivers/input/serio/i8042-x86ia64io.h 2011-03-14 21:20:32.000000000 -0400
25960+++ linux-2.6.38.3/drivers/input/serio/i8042-x86ia64io.h 2011-04-17 15:57:32.000000000 -0400 25004+++ linux-2.6.38.2/drivers/input/serio/i8042-x86ia64io.h 2011-03-21 18:31:35.000000000 -0400
25961@@ -183,7 +183,7 @@ static const struct dmi_system_id __init 25005@@ -183,7 +183,7 @@ static const struct dmi_system_id __init
25962 DMI_MATCH(DMI_PRODUCT_VERSION, "Rev 1"), 25006 DMI_MATCH(DMI_PRODUCT_VERSION, "Rev 1"),
25963 }, 25007 },
@@ -26012,9 +25056,9 @@ diff -urNp linux-2.6.38.3/drivers/input/serio/i8042-x86ia64io.h linux-2.6.38.3/d
26012 }; 25056 };
26013 25057
26014 #endif /* CONFIG_X86 */ 25058 #endif /* CONFIG_X86 */
26015diff -urNp linux-2.6.38.3/drivers/input/serio/serio_raw.c linux-2.6.38.3/drivers/input/serio/serio_raw.c 25059diff -urNp linux-2.6.38.2/drivers/input/serio/serio_raw.c linux-2.6.38.2/drivers/input/serio/serio_raw.c
26016--- linux-2.6.38.3/drivers/input/serio/serio_raw.c 2011-03-14 21:20:32.000000000 -0400 25060--- linux-2.6.38.2/drivers/input/serio/serio_raw.c 2011-03-14 21:20:32.000000000 -0400
26017+++ linux-2.6.38.3/drivers/input/serio/serio_raw.c 2011-04-17 15:57:32.000000000 -0400 25061+++ linux-2.6.38.2/drivers/input/serio/serio_raw.c 2011-03-21 18:31:35.000000000 -0400
26018@@ -376,7 +376,7 @@ static struct serio_device_id serio_raw_ 25062@@ -376,7 +376,7 @@ static struct serio_device_id serio_raw_
26019 .id = SERIO_ANY, 25063 .id = SERIO_ANY,
26020 .extra = SERIO_ANY, 25064 .extra = SERIO_ANY,
@@ -26024,9 +25068,9 @@ diff -urNp linux-2.6.38.3/drivers/input/serio/serio_raw.c linux-2.6.38.3/drivers
26024 }; 25068 };
26025 25069
26026 MODULE_DEVICE_TABLE(serio, serio_raw_serio_ids); 25070 MODULE_DEVICE_TABLE(serio, serio_raw_serio_ids);
26027diff -urNp linux-2.6.38.3/drivers/isdn/gigaset/common.c linux-2.6.38.3/drivers/isdn/gigaset/common.c 25071diff -urNp linux-2.6.38.2/drivers/isdn/gigaset/common.c linux-2.6.38.2/drivers/isdn/gigaset/common.c
26028--- linux-2.6.38.3/drivers/isdn/gigaset/common.c 2011-03-14 21:20:32.000000000 -0400 25072--- linux-2.6.38.2/drivers/isdn/gigaset/common.c 2011-03-14 21:20:32.000000000 -0400
26029+++ linux-2.6.38.3/drivers/isdn/gigaset/common.c 2011-04-17 15:57:32.000000000 -0400 25073+++ linux-2.6.38.2/drivers/isdn/gigaset/common.c 2011-03-21 18:31:35.000000000 -0400
26030@@ -723,7 +723,7 @@ struct cardstate *gigaset_initcs(struct 25074@@ -723,7 +723,7 @@ struct cardstate *gigaset_initcs(struct
26031 cs->commands_pending = 0; 25075 cs->commands_pending = 0;
26032 cs->cur_at_seq = 0; 25076 cs->cur_at_seq = 0;
@@ -26036,9 +25080,9 @@ diff -urNp linux-2.6.38.3/drivers/isdn/gigaset/common.c linux-2.6.38.3/drivers/i
26036 cs->dev = NULL; 25080 cs->dev = NULL;
26037 cs->tty = NULL; 25081 cs->tty = NULL;
26038 cs->tty_dev = NULL; 25082 cs->tty_dev = NULL;
26039diff -urNp linux-2.6.38.3/drivers/isdn/gigaset/gigaset.h linux-2.6.38.3/drivers/isdn/gigaset/gigaset.h 25083diff -urNp linux-2.6.38.2/drivers/isdn/gigaset/gigaset.h linux-2.6.38.2/drivers/isdn/gigaset/gigaset.h
26040--- linux-2.6.38.3/drivers/isdn/gigaset/gigaset.h 2011-03-14 21:20:32.000000000 -0400 25084--- linux-2.6.38.2/drivers/isdn/gigaset/gigaset.h 2011-03-14 21:20:32.000000000 -0400
26041+++ linux-2.6.38.3/drivers/isdn/gigaset/gigaset.h 2011-04-17 15:57:32.000000000 -0400 25085+++ linux-2.6.38.2/drivers/isdn/gigaset/gigaset.h 2011-03-21 18:31:35.000000000 -0400
26042@@ -35,6 +35,7 @@ 25086@@ -35,6 +35,7 @@
26043 #include <linux/tty_driver.h> 25087 #include <linux/tty_driver.h>
26044 #include <linux/list.h> 25088 #include <linux/list.h>
@@ -26056,9 +25100,9 @@ diff -urNp linux-2.6.38.3/drivers/isdn/gigaset/gigaset.h linux-2.6.38.3/drivers/
26056 struct tty_struct *tty; 25100 struct tty_struct *tty;
26057 struct tasklet_struct if_wake_tasklet; 25101 struct tasklet_struct if_wake_tasklet;
26058 unsigned control_state; 25102 unsigned control_state;
26059diff -urNp linux-2.6.38.3/drivers/isdn/gigaset/interface.c linux-2.6.38.3/drivers/isdn/gigaset/interface.c 25103diff -urNp linux-2.6.38.2/drivers/isdn/gigaset/interface.c linux-2.6.38.2/drivers/isdn/gigaset/interface.c
26060--- linux-2.6.38.3/drivers/isdn/gigaset/interface.c 2011-03-14 21:20:32.000000000 -0400 25104--- linux-2.6.38.2/drivers/isdn/gigaset/interface.c 2011-03-14 21:20:32.000000000 -0400
26061+++ linux-2.6.38.3/drivers/isdn/gigaset/interface.c 2011-04-17 15:57:32.000000000 -0400 25105+++ linux-2.6.38.2/drivers/isdn/gigaset/interface.c 2011-03-21 18:31:35.000000000 -0400
26062@@ -160,9 +160,7 @@ static int if_open(struct tty_struct *tt 25106@@ -160,9 +160,7 @@ static int if_open(struct tty_struct *tt
26063 return -ERESTARTSYS; 25107 return -ERESTARTSYS;
26064 tty->driver_data = cs; 25108 tty->driver_data = cs;
@@ -26146,9 +25190,9 @@ diff -urNp linux-2.6.38.3/drivers/isdn/gigaset/interface.c linux-2.6.38.3/driver
26146 dev_warn(cs->dev, "%s: device not opened\n", __func__); 25190 dev_warn(cs->dev, "%s: device not opened\n", __func__);
26147 goto out; 25191 goto out;
26148 } 25192 }
26149diff -urNp linux-2.6.38.3/drivers/isdn/hardware/avm/b1.c linux-2.6.38.3/drivers/isdn/hardware/avm/b1.c 25193diff -urNp linux-2.6.38.2/drivers/isdn/hardware/avm/b1.c linux-2.6.38.2/drivers/isdn/hardware/avm/b1.c
26150--- linux-2.6.38.3/drivers/isdn/hardware/avm/b1.c 2011-03-14 21:20:32.000000000 -0400 25194--- linux-2.6.38.2/drivers/isdn/hardware/avm/b1.c 2011-03-14 21:20:32.000000000 -0400
26151+++ linux-2.6.38.3/drivers/isdn/hardware/avm/b1.c 2011-04-17 15:57:32.000000000 -0400 25195+++ linux-2.6.38.2/drivers/isdn/hardware/avm/b1.c 2011-03-21 18:31:35.000000000 -0400
26152@@ -176,7 +176,7 @@ int b1_load_t4file(avmcard *card, capilo 25196@@ -176,7 +176,7 @@ int b1_load_t4file(avmcard *card, capilo
26153 } 25197 }
26154 if (left) { 25198 if (left) {
@@ -26167,9 +25211,9 @@ diff -urNp linux-2.6.38.3/drivers/isdn/hardware/avm/b1.c linux-2.6.38.3/drivers/
26167 return -EFAULT; 25211 return -EFAULT;
26168 } else { 25212 } else {
26169 memcpy(buf, dp, left); 25213 memcpy(buf, dp, left);
26170diff -urNp linux-2.6.38.3/drivers/isdn/icn/icn.c linux-2.6.38.3/drivers/isdn/icn/icn.c 25214diff -urNp linux-2.6.38.2/drivers/isdn/icn/icn.c linux-2.6.38.2/drivers/isdn/icn/icn.c
26171--- linux-2.6.38.3/drivers/isdn/icn/icn.c 2011-03-14 21:20:32.000000000 -0400 25215--- linux-2.6.38.2/drivers/isdn/icn/icn.c 2011-03-14 21:20:32.000000000 -0400
26172+++ linux-2.6.38.3/drivers/isdn/icn/icn.c 2011-04-17 15:57:32.000000000 -0400 25216+++ linux-2.6.38.2/drivers/isdn/icn/icn.c 2011-03-21 18:31:35.000000000 -0400
26173@@ -1045,7 +1045,7 @@ icn_writecmd(const u_char * buf, int len 25217@@ -1045,7 +1045,7 @@ icn_writecmd(const u_char * buf, int len
26174 if (count > len) 25218 if (count > len)
26175 count = len; 25219 count = len;
@@ -26179,9 +25223,86 @@ diff -urNp linux-2.6.38.3/drivers/isdn/icn/icn.c linux-2.6.38.3/drivers/isdn/icn
26179 return -EFAULT; 25223 return -EFAULT;
26180 } else 25224 } else
26181 memcpy(msg, buf, count); 25225 memcpy(msg, buf, count);
26182diff -urNp linux-2.6.38.3/drivers/lguest/core.c linux-2.6.38.3/drivers/lguest/core.c 25226diff -urNp linux-2.6.38.2/drivers/leds/leds-lp5521.c linux-2.6.38.2/drivers/leds/leds-lp5521.c
26183--- linux-2.6.38.3/drivers/lguest/core.c 2011-03-14 21:20:32.000000000 -0400 25227--- linux-2.6.38.2/drivers/leds/leds-lp5521.c 2011-03-14 21:20:32.000000000 -0400
26184+++ linux-2.6.38.3/drivers/lguest/core.c 2011-04-17 15:57:32.000000000 -0400 25228+++ linux-2.6.38.2/drivers/leds/leds-lp5521.c 2011-03-21 18:31:35.000000000 -0400
25229@@ -534,7 +534,7 @@ static ssize_t lp5521_selftest(struct de
25230 }
25231
25232 /* led class device attributes */
25233-static DEVICE_ATTR(led_current, S_IRUGO | S_IWUGO, show_current, store_current);
25234+static DEVICE_ATTR(led_current, S_IRUGO | S_IWUSR, show_current, store_current);
25235 static DEVICE_ATTR(max_current, S_IRUGO , show_max_current, NULL);
25236
25237 static struct attribute *lp5521_led_attributes[] = {
25238@@ -548,15 +548,15 @@ static struct attribute_group lp5521_led
25239 };
25240
25241 /* device attributes */
25242-static DEVICE_ATTR(engine1_mode, S_IRUGO | S_IWUGO,
25243+static DEVICE_ATTR(engine1_mode, S_IRUGO | S_IWUSR,
25244 show_engine1_mode, store_engine1_mode);
25245-static DEVICE_ATTR(engine2_mode, S_IRUGO | S_IWUGO,
25246+static DEVICE_ATTR(engine2_mode, S_IRUGO | S_IWUSR,
25247 show_engine2_mode, store_engine2_mode);
25248-static DEVICE_ATTR(engine3_mode, S_IRUGO | S_IWUGO,
25249+static DEVICE_ATTR(engine3_mode, S_IRUGO | S_IWUSR,
25250 show_engine3_mode, store_engine3_mode);
25251-static DEVICE_ATTR(engine1_load, S_IWUGO, NULL, store_engine1_load);
25252-static DEVICE_ATTR(engine2_load, S_IWUGO, NULL, store_engine2_load);
25253-static DEVICE_ATTR(engine3_load, S_IWUGO, NULL, store_engine3_load);
25254+static DEVICE_ATTR(engine1_load, S_IWUSR, NULL, store_engine1_load);
25255+static DEVICE_ATTR(engine2_load, S_IWUSR, NULL, store_engine2_load);
25256+static DEVICE_ATTR(engine3_load, S_IWUSR, NULL, store_engine3_load);
25257 static DEVICE_ATTR(selftest, S_IRUGO, lp5521_selftest, NULL);
25258
25259 static struct attribute *lp5521_attributes[] = {
25260diff -urNp linux-2.6.38.2/drivers/leds/leds-lp5523.c linux-2.6.38.2/drivers/leds/leds-lp5523.c
25261--- linux-2.6.38.2/drivers/leds/leds-lp5523.c 2011-03-14 21:20:32.000000000 -0400
25262+++ linux-2.6.38.2/drivers/leds/leds-lp5523.c 2011-03-21 18:31:35.000000000 -0400
25263@@ -713,7 +713,7 @@ static ssize_t store_current(struct devi
25264 }
25265
25266 /* led class device attributes */
25267-static DEVICE_ATTR(led_current, S_IRUGO | S_IWUGO, show_current, store_current);
25268+static DEVICE_ATTR(led_current, S_IRUGO | S_IWUSR, show_current, store_current);
25269 static DEVICE_ATTR(max_current, S_IRUGO , show_max_current, NULL);
25270
25271 static struct attribute *lp5523_led_attributes[] = {
25272@@ -727,21 +727,21 @@ static struct attribute_group lp5523_led
25273 };
25274
25275 /* device attributes */
25276-static DEVICE_ATTR(engine1_mode, S_IRUGO | S_IWUGO,
25277+static DEVICE_ATTR(engine1_mode, S_IRUGO | S_IWUSR,
25278 show_engine1_mode, store_engine1_mode);
25279-static DEVICE_ATTR(engine2_mode, S_IRUGO | S_IWUGO,
25280+static DEVICE_ATTR(engine2_mode, S_IRUGO | S_IWUSR,
25281 show_engine2_mode, store_engine2_mode);
25282-static DEVICE_ATTR(engine3_mode, S_IRUGO | S_IWUGO,
25283+static DEVICE_ATTR(engine3_mode, S_IRUGO | S_IWUSR,
25284 show_engine3_mode, store_engine3_mode);
25285-static DEVICE_ATTR(engine1_leds, S_IRUGO | S_IWUGO,
25286+static DEVICE_ATTR(engine1_leds, S_IRUGO | S_IWUSR,
25287 show_engine1_leds, store_engine1_leds);
25288-static DEVICE_ATTR(engine2_leds, S_IRUGO | S_IWUGO,
25289+static DEVICE_ATTR(engine2_leds, S_IRUGO | S_IWUSR,
25290 show_engine2_leds, store_engine2_leds);
25291-static DEVICE_ATTR(engine3_leds, S_IRUGO | S_IWUGO,
25292+static DEVICE_ATTR(engine3_leds, S_IRUGO | S_IWUSR,
25293 show_engine3_leds, store_engine3_leds);
25294-static DEVICE_ATTR(engine1_load, S_IWUGO, NULL, store_engine1_load);
25295-static DEVICE_ATTR(engine2_load, S_IWUGO, NULL, store_engine2_load);
25296-static DEVICE_ATTR(engine3_load, S_IWUGO, NULL, store_engine3_load);
25297+static DEVICE_ATTR(engine1_load, S_IWUSR, NULL, store_engine1_load);
25298+static DEVICE_ATTR(engine2_load, S_IWUSR, NULL, store_engine2_load);
25299+static DEVICE_ATTR(engine3_load, S_IWUSR, NULL, store_engine3_load);
25300 static DEVICE_ATTR(selftest, S_IRUGO, lp5523_selftest, NULL);
25301
25302 static struct attribute *lp5523_attributes[] = {
25303diff -urNp linux-2.6.38.2/drivers/lguest/core.c linux-2.6.38.2/drivers/lguest/core.c
25304--- linux-2.6.38.2/drivers/lguest/core.c 2011-03-14 21:20:32.000000000 -0400
25305+++ linux-2.6.38.2/drivers/lguest/core.c 2011-03-21 18:31:35.000000000 -0400
26185@@ -92,9 +92,17 @@ static __init int map_switcher(void) 25306@@ -92,9 +92,17 @@ static __init int map_switcher(void)
26186 * it's worked so far. The end address needs +1 because __get_vm_area 25307 * it's worked so far. The end address needs +1 because __get_vm_area
26187 * allocates an extra guard page, so we need space for that. 25308 * allocates an extra guard page, so we need space for that.
@@ -26209,9 +25330,9 @@ diff -urNp linux-2.6.38.3/drivers/lguest/core.c linux-2.6.38.3/drivers/lguest/co
26209 end_switcher_text - start_switcher_text); 25330 end_switcher_text - start_switcher_text);
26210 25331
26211 printk(KERN_INFO "lguest: mapped switcher at %p\n", 25332 printk(KERN_INFO "lguest: mapped switcher at %p\n",
26212diff -urNp linux-2.6.38.3/drivers/lguest/x86/core.c linux-2.6.38.3/drivers/lguest/x86/core.c 25333diff -urNp linux-2.6.38.2/drivers/lguest/x86/core.c linux-2.6.38.2/drivers/lguest/x86/core.c
26213--- linux-2.6.38.3/drivers/lguest/x86/core.c 2011-03-14 21:20:32.000000000 -0400 25334--- linux-2.6.38.2/drivers/lguest/x86/core.c 2011-03-14 21:20:32.000000000 -0400
26214+++ linux-2.6.38.3/drivers/lguest/x86/core.c 2011-04-17 15:57:32.000000000 -0400 25335+++ linux-2.6.38.2/drivers/lguest/x86/core.c 2011-03-21 18:31:35.000000000 -0400
26215@@ -59,7 +59,7 @@ static struct { 25336@@ -59,7 +59,7 @@ static struct {
26216 /* Offset from where switcher.S was compiled to where we've copied it */ 25337 /* Offset from where switcher.S was compiled to where we've copied it */
26217 static unsigned long switcher_offset(void) 25338 static unsigned long switcher_offset(void)
@@ -26253,9 +25374,9 @@ diff -urNp linux-2.6.38.3/drivers/lguest/x86/core.c linux-2.6.38.3/drivers/lgues
26253 lguest_entry.segment = LGUEST_CS; 25374 lguest_entry.segment = LGUEST_CS;
26254 25375
26255 /* 25376 /*
26256diff -urNp linux-2.6.38.3/drivers/lguest/x86/switcher_32.S linux-2.6.38.3/drivers/lguest/x86/switcher_32.S 25377diff -urNp linux-2.6.38.2/drivers/lguest/x86/switcher_32.S linux-2.6.38.2/drivers/lguest/x86/switcher_32.S
26257--- linux-2.6.38.3/drivers/lguest/x86/switcher_32.S 2011-03-14 21:20:32.000000000 -0400 25378--- linux-2.6.38.2/drivers/lguest/x86/switcher_32.S 2011-03-14 21:20:32.000000000 -0400
26258+++ linux-2.6.38.3/drivers/lguest/x86/switcher_32.S 2011-04-17 15:57:32.000000000 -0400 25379+++ linux-2.6.38.2/drivers/lguest/x86/switcher_32.S 2011-03-21 18:31:35.000000000 -0400
26259@@ -87,6 +87,7 @@ 25380@@ -87,6 +87,7 @@
26260 #include <asm/page.h> 25381 #include <asm/page.h>
26261 #include <asm/segment.h> 25382 #include <asm/segment.h>
@@ -26314,9 +25435,9 @@ diff -urNp linux-2.6.38.3/drivers/lguest/x86/switcher_32.S linux-2.6.38.3/driver
26314 25435
26315 // Every interrupt can come to us here 25436 // Every interrupt can come to us here
26316 // But we must truly tell each apart. 25437 // But we must truly tell each apart.
26317diff -urNp linux-2.6.38.3/drivers/md/bitmap.c linux-2.6.38.3/drivers/md/bitmap.c 25438diff -urNp linux-2.6.38.2/drivers/md/bitmap.c linux-2.6.38.2/drivers/md/bitmap.c
26318--- linux-2.6.38.3/drivers/md/bitmap.c 2011-03-14 21:20:32.000000000 -0400 25439--- linux-2.6.38.2/drivers/md/bitmap.c 2011-03-14 21:20:32.000000000 -0400
26319+++ linux-2.6.38.3/drivers/md/bitmap.c 2011-04-17 15:57:32.000000000 -0400 25440+++ linux-2.6.38.2/drivers/md/bitmap.c 2011-03-21 18:31:35.000000000 -0400
26320@@ -55,7 +55,7 @@ 25441@@ -55,7 +55,7 @@
26321 # if DEBUG > 0 25442 # if DEBUG > 0
26322 # define PRINTK(x...) printk(KERN_DEBUG x) 25443 # define PRINTK(x...) printk(KERN_DEBUG x)
@@ -26326,9 +25447,9 @@ diff -urNp linux-2.6.38.3/drivers/md/bitmap.c linux-2.6.38.3/drivers/md/bitmap.c
26326 # endif 25447 # endif
26327 #endif 25448 #endif
26328 25449
26329diff -urNp linux-2.6.38.3/drivers/md/dm-ioctl.c linux-2.6.38.3/drivers/md/dm-ioctl.c 25450diff -urNp linux-2.6.38.2/drivers/md/dm-ioctl.c linux-2.6.38.2/drivers/md/dm-ioctl.c
26330--- linux-2.6.38.3/drivers/md/dm-ioctl.c 2011-03-14 21:20:32.000000000 -0400 25451--- linux-2.6.38.2/drivers/md/dm-ioctl.c 2011-03-14 21:20:32.000000000 -0400
26331+++ linux-2.6.38.3/drivers/md/dm-ioctl.c 2011-04-17 15:57:32.000000000 -0400 25452+++ linux-2.6.38.2/drivers/md/dm-ioctl.c 2011-03-21 18:31:35.000000000 -0400
26332@@ -1541,7 +1541,7 @@ static int validate_params(uint cmd, str 25453@@ -1541,7 +1541,7 @@ static int validate_params(uint cmd, str
26333 cmd == DM_LIST_VERSIONS_CMD) 25454 cmd == DM_LIST_VERSIONS_CMD)
26334 return 0; 25455 return 0;
@@ -26338,9 +25459,9 @@ diff -urNp linux-2.6.38.3/drivers/md/dm-ioctl.c linux-2.6.38.3/drivers/md/dm-ioc
26338 if (!*param->name) { 25459 if (!*param->name) {
26339 DMWARN("name not supplied when creating device"); 25460 DMWARN("name not supplied when creating device");
26340 return -EINVAL; 25461 return -EINVAL;
26341diff -urNp linux-2.6.38.3/drivers/md/dm-table.c linux-2.6.38.3/drivers/md/dm-table.c 25462diff -urNp linux-2.6.38.2/drivers/md/dm-table.c linux-2.6.38.2/drivers/md/dm-table.c
26342--- linux-2.6.38.3/drivers/md/dm-table.c 2011-03-14 21:20:32.000000000 -0400 25463--- linux-2.6.38.2/drivers/md/dm-table.c 2011-03-14 21:20:32.000000000 -0400
26343+++ linux-2.6.38.3/drivers/md/dm-table.c 2011-04-17 15:57:32.000000000 -0400 25464+++ linux-2.6.38.2/drivers/md/dm-table.c 2011-03-21 18:31:35.000000000 -0400
26344@@ -372,7 +372,7 @@ static int device_area_is_invalid(struct 25465@@ -372,7 +372,7 @@ static int device_area_is_invalid(struct
26345 if (!dev_size) 25466 if (!dev_size)
26346 return 0; 25467 return 0;
@@ -26350,9 +25471,9 @@ diff -urNp linux-2.6.38.3/drivers/md/dm-table.c linux-2.6.38.3/drivers/md/dm-tab
26350 DMWARN("%s: %s too small for target: " 25471 DMWARN("%s: %s too small for target: "
26351 "start=%llu, len=%llu, dev_size=%llu", 25472 "start=%llu, len=%llu, dev_size=%llu",
26352 dm_device_name(ti->table->md), bdevname(bdev, b), 25473 dm_device_name(ti->table->md), bdevname(bdev, b),
26353diff -urNp linux-2.6.38.3/drivers/md/md.c linux-2.6.38.3/drivers/md/md.c 25474diff -urNp linux-2.6.38.2/drivers/md/md.c linux-2.6.38.2/drivers/md/md.c
26354--- linux-2.6.38.3/drivers/md/md.c 2011-03-14 21:20:32.000000000 -0400 25475--- linux-2.6.38.2/drivers/md/md.c 2011-03-14 21:20:32.000000000 -0400
26355+++ linux-2.6.38.3/drivers/md/md.c 2011-04-17 15:57:32.000000000 -0400 25476+++ linux-2.6.38.2/drivers/md/md.c 2011-03-21 18:31:35.000000000 -0400
26356@@ -1889,7 +1889,7 @@ static int bind_rdev_to_array(mdk_rdev_t 25477@@ -1889,7 +1889,7 @@ static int bind_rdev_to_array(mdk_rdev_t
26357 25478
26358 ko = &part_to_dev(rdev->bdev->bd_part)->kobj; 25479 ko = &part_to_dev(rdev->bdev->bd_part)->kobj;
@@ -26407,9 +25528,9 @@ diff -urNp linux-2.6.38.3/drivers/md/md.c linux-2.6.38.3/drivers/md/md.c
26407 spares++; 25528 spares++;
26408 md_new_event(mddev); 25529 md_new_event(mddev);
26409 set_bit(MD_CHANGE_DEVS, &mddev->flags); 25530 set_bit(MD_CHANGE_DEVS, &mddev->flags);
26410diff -urNp linux-2.6.38.3/drivers/md/md.h linux-2.6.38.3/drivers/md/md.h 25531diff -urNp linux-2.6.38.2/drivers/md/md.h linux-2.6.38.2/drivers/md/md.h
26411--- linux-2.6.38.3/drivers/md/md.h 2011-03-14 21:20:32.000000000 -0400 25532--- linux-2.6.38.2/drivers/md/md.h 2011-03-14 21:20:32.000000000 -0400
26412+++ linux-2.6.38.3/drivers/md/md.h 2011-04-17 15:57:32.000000000 -0400 25533+++ linux-2.6.38.2/drivers/md/md.h 2011-03-21 18:31:35.000000000 -0400
26413@@ -360,7 +360,7 @@ static inline void rdev_dec_pending(mdk_ 25534@@ -360,7 +360,7 @@ static inline void rdev_dec_pending(mdk_
26414 25535
26415 static inline void md_sync_acct(struct block_device *bdev, unsigned long nr_sectors) 25536 static inline void md_sync_acct(struct block_device *bdev, unsigned long nr_sectors)
@@ -26419,9 +25540,9 @@ diff -urNp linux-2.6.38.3/drivers/md/md.h linux-2.6.38.3/drivers/md/md.h
26419 } 25540 }
26420 25541
26421 struct mdk_personality 25542 struct mdk_personality
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 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
26423--- linux-2.6.38.3/drivers/media/dvb/dvb-core/dvbdev.c 2011-03-14 21:20:32.000000000 -0400 25544--- linux-2.6.38.2/drivers/media/dvb/dvb-core/dvbdev.c 2011-03-14 21:20:32.000000000 -0400
26424+++ linux-2.6.38.3/drivers/media/dvb/dvb-core/dvbdev.c 2011-04-17 15:57:32.000000000 -0400 25545+++ linux-2.6.38.2/drivers/media/dvb/dvb-core/dvbdev.c 2011-03-21 18:31:35.000000000 -0400
26425@@ -192,7 +192,7 @@ int dvb_register_device(struct dvb_adapt 25546@@ -192,7 +192,7 @@ int dvb_register_device(struct dvb_adapt
26426 const struct dvb_device *template, void *priv, int type) 25547 const struct dvb_device *template, void *priv, int type)
26427 { 25548 {
@@ -26431,9 +25552,9 @@ diff -urNp linux-2.6.38.3/drivers/media/dvb/dvb-core/dvbdev.c linux-2.6.38.3/dri
26431 struct device *clsdev; 25552 struct device *clsdev;
26432 int minor; 25553 int minor;
26433 int id; 25554 int id;
26434diff -urNp linux-2.6.38.3/drivers/media/radio/radio-cadet.c linux-2.6.38.3/drivers/media/radio/radio-cadet.c 25555diff -urNp linux-2.6.38.2/drivers/media/radio/radio-cadet.c linux-2.6.38.2/drivers/media/radio/radio-cadet.c
26435--- linux-2.6.38.3/drivers/media/radio/radio-cadet.c 2011-03-14 21:20:32.000000000 -0400 25556--- linux-2.6.38.2/drivers/media/radio/radio-cadet.c 2011-03-14 21:20:32.000000000 -0400
26436+++ linux-2.6.38.3/drivers/media/radio/radio-cadet.c 2011-04-17 15:57:32.000000000 -0400 25557+++ linux-2.6.38.2/drivers/media/radio/radio-cadet.c 2011-03-21 18:31:35.000000000 -0400
26437@@ -349,7 +349,7 @@ static ssize_t cadet_read(struct file *f 25558@@ -349,7 +349,7 @@ static ssize_t cadet_read(struct file *f
26438 readbuf[i++] = dev->rdsbuf[dev->rdsout++]; 25559 readbuf[i++] = dev->rdsbuf[dev->rdsout++];
26439 mutex_unlock(&dev->lock); 25560 mutex_unlock(&dev->lock);
@@ -26443,9 +25564,9 @@ diff -urNp linux-2.6.38.3/drivers/media/radio/radio-cadet.c linux-2.6.38.3/drive
26443 return -EFAULT; 25564 return -EFAULT;
26444 return i; 25565 return i;
26445 } 25566 }
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 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
26447--- linux-2.6.38.3/drivers/media/rc/ir-lirc-codec.c 2011-03-14 21:20:32.000000000 -0400 25568--- linux-2.6.38.2/drivers/media/rc/ir-lirc-codec.c 2011-03-14 21:20:32.000000000 -0400
26448+++ linux-2.6.38.3/drivers/media/rc/ir-lirc-codec.c 2011-04-17 15:57:32.000000000 -0400 25569+++ linux-2.6.38.2/drivers/media/rc/ir-lirc-codec.c 2011-03-21 18:31:35.000000000 -0400
26449@@ -277,7 +277,7 @@ static void ir_lirc_close(void *data) 25570@@ -277,7 +277,7 @@ static void ir_lirc_close(void *data)
26450 return; 25571 return;
26451 } 25572 }
@@ -26455,9 +25576,9 @@ diff -urNp linux-2.6.38.3/drivers/media/rc/ir-lirc-codec.c linux-2.6.38.3/driver
26455 .owner = THIS_MODULE, 25576 .owner = THIS_MODULE,
26456 .write = ir_lirc_transmit_ir, 25577 .write = ir_lirc_transmit_ir,
26457 .unlocked_ioctl = ir_lirc_ioctl, 25578 .unlocked_ioctl = ir_lirc_ioctl,
26458diff -urNp linux-2.6.38.3/drivers/media/rc/lirc_dev.c linux-2.6.38.3/drivers/media/rc/lirc_dev.c 25579diff -urNp linux-2.6.38.2/drivers/media/rc/lirc_dev.c linux-2.6.38.2/drivers/media/rc/lirc_dev.c
26459--- linux-2.6.38.3/drivers/media/rc/lirc_dev.c 2011-03-14 21:20:32.000000000 -0400 25580--- linux-2.6.38.2/drivers/media/rc/lirc_dev.c 2011-03-14 21:20:32.000000000 -0400
26460+++ linux-2.6.38.3/drivers/media/rc/lirc_dev.c 2011-04-17 15:57:32.000000000 -0400 25581+++ linux-2.6.38.2/drivers/media/rc/lirc_dev.c 2011-03-21 18:31:35.000000000 -0400
26461@@ -151,7 +151,7 @@ static int lirc_thread(void *irctl) 25582@@ -151,7 +151,7 @@ static int lirc_thread(void *irctl)
26462 } 25583 }
26463 25584
@@ -26467,9 +25588,9 @@ diff -urNp linux-2.6.38.3/drivers/media/rc/lirc_dev.c linux-2.6.38.3/drivers/med
26467 .owner = THIS_MODULE, 25588 .owner = THIS_MODULE,
26468 .read = lirc_dev_fop_read, 25589 .read = lirc_dev_fop_read,
26469 .write = lirc_dev_fop_write, 25590 .write = lirc_dev_fop_write,
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 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
26471--- linux-2.6.38.3/drivers/media/video/sn9c102/sn9c102_core.c 2011-03-14 21:20:32.000000000 -0400 25592--- linux-2.6.38.2/drivers/media/video/sn9c102/sn9c102_core.c 2011-03-14 21:20:32.000000000 -0400
26472+++ linux-2.6.38.3/drivers/media/video/sn9c102/sn9c102_core.c 2011-04-17 15:57:32.000000000 -0400 25593+++ linux-2.6.38.2/drivers/media/video/sn9c102/sn9c102_core.c 2011-03-21 18:31:35.000000000 -0400
26473@@ -1430,9 +1430,9 @@ static DEVICE_ATTR(i2c_reg, S_IRUGO | S_ 25594@@ -1430,9 +1430,9 @@ static DEVICE_ATTR(i2c_reg, S_IRUGO | S_
26474 sn9c102_show_i2c_reg, sn9c102_store_i2c_reg); 25595 sn9c102_show_i2c_reg, sn9c102_store_i2c_reg);
26475 static DEVICE_ATTR(i2c_val, S_IRUGO | S_IWUSR, 25596 static DEVICE_ATTR(i2c_val, S_IRUGO | S_IWUSR,
@@ -26483,9 +25604,9 @@ diff -urNp linux-2.6.38.3/drivers/media/video/sn9c102/sn9c102_core.c linux-2.6.3
26483 static DEVICE_ATTR(frame_header, S_IRUGO, sn9c102_show_frame_header, NULL); 25604 static DEVICE_ATTR(frame_header, S_IRUGO, sn9c102_show_frame_header, NULL);
26484 25605
26485 25606
26486diff -urNp linux-2.6.38.3/drivers/message/fusion/mptbase.c linux-2.6.38.3/drivers/message/fusion/mptbase.c 25607diff -urNp linux-2.6.38.2/drivers/message/fusion/mptbase.c linux-2.6.38.2/drivers/message/fusion/mptbase.c
26487--- linux-2.6.38.3/drivers/message/fusion/mptbase.c 2011-03-14 21:20:32.000000000 -0400 25608--- linux-2.6.38.2/drivers/message/fusion/mptbase.c 2011-03-14 21:20:32.000000000 -0400
26488+++ linux-2.6.38.3/drivers/message/fusion/mptbase.c 2011-04-17 15:57:32.000000000 -0400 25609+++ linux-2.6.38.2/drivers/message/fusion/mptbase.c 2011-03-21 18:31:35.000000000 -0400
26489@@ -6683,8 +6683,13 @@ static int mpt_iocinfo_proc_show(struct 25610@@ -6683,8 +6683,13 @@ static int mpt_iocinfo_proc_show(struct
26490 seq_printf(m, " MaxChainDepth = 0x%02x frames\n", ioc->facts.MaxChainDepth); 25611 seq_printf(m, " MaxChainDepth = 0x%02x frames\n", ioc->facts.MaxChainDepth);
26491 seq_printf(m, " MinBlockSize = 0x%02x bytes\n", 4*ioc->facts.BlockSize); 25612 seq_printf(m, " MinBlockSize = 0x%02x bytes\n", 4*ioc->facts.BlockSize);
@@ -26500,9 +25621,9 @@ diff -urNp linux-2.6.38.3/drivers/message/fusion/mptbase.c linux-2.6.38.3/driver
26500 /* 25621 /*
26501 * Rounding UP to nearest 4-kB boundary here... 25622 * Rounding UP to nearest 4-kB boundary here...
26502 */ 25623 */
26503diff -urNp linux-2.6.38.3/drivers/message/fusion/mptdebug.h linux-2.6.38.3/drivers/message/fusion/mptdebug.h 25624diff -urNp linux-2.6.38.2/drivers/message/fusion/mptdebug.h linux-2.6.38.2/drivers/message/fusion/mptdebug.h
26504--- linux-2.6.38.3/drivers/message/fusion/mptdebug.h 2011-03-14 21:20:32.000000000 -0400 25625--- linux-2.6.38.2/drivers/message/fusion/mptdebug.h 2011-03-14 21:20:32.000000000 -0400
26505+++ linux-2.6.38.3/drivers/message/fusion/mptdebug.h 2011-04-17 15:57:32.000000000 -0400 25626+++ linux-2.6.38.2/drivers/message/fusion/mptdebug.h 2011-03-21 18:31:35.000000000 -0400
26506@@ -71,7 +71,7 @@ 25627@@ -71,7 +71,7 @@
26507 CMD; \ 25628 CMD; \
26508 } 25629 }
@@ -26512,9 +25633,9 @@ diff -urNp linux-2.6.38.3/drivers/message/fusion/mptdebug.h linux-2.6.38.3/drive
26512 #endif 25633 #endif
26513 25634
26514 25635
26515diff -urNp linux-2.6.38.3/drivers/message/fusion/mptsas.c linux-2.6.38.3/drivers/message/fusion/mptsas.c 25636diff -urNp linux-2.6.38.2/drivers/message/fusion/mptsas.c linux-2.6.38.2/drivers/message/fusion/mptsas.c
26516--- linux-2.6.38.3/drivers/message/fusion/mptsas.c 2011-03-14 21:20:32.000000000 -0400 25637--- linux-2.6.38.2/drivers/message/fusion/mptsas.c 2011-03-14 21:20:32.000000000 -0400
26517+++ linux-2.6.38.3/drivers/message/fusion/mptsas.c 2011-04-17 15:57:32.000000000 -0400 25638+++ linux-2.6.38.2/drivers/message/fusion/mptsas.c 2011-03-21 18:31:35.000000000 -0400
26518@@ -439,6 +439,23 @@ mptsas_is_end_device(struct mptsas_devin 25639@@ -439,6 +439,23 @@ mptsas_is_end_device(struct mptsas_devin
26519 return 0; 25640 return 0;
26520 } 25641 }
@@ -26563,9 +25684,9 @@ diff -urNp linux-2.6.38.3/drivers/message/fusion/mptsas.c linux-2.6.38.3/drivers
26563 static inline struct sas_port * 25684 static inline struct sas_port *
26564 mptsas_get_port(struct mptsas_phyinfo *phy_info) 25685 mptsas_get_port(struct mptsas_phyinfo *phy_info)
26565 { 25686 {
26566diff -urNp linux-2.6.38.3/drivers/message/fusion/mptscsih.c linux-2.6.38.3/drivers/message/fusion/mptscsih.c 25687diff -urNp linux-2.6.38.2/drivers/message/fusion/mptscsih.c linux-2.6.38.2/drivers/message/fusion/mptscsih.c
26567--- linux-2.6.38.3/drivers/message/fusion/mptscsih.c 2011-03-14 21:20:32.000000000 -0400 25688--- linux-2.6.38.2/drivers/message/fusion/mptscsih.c 2011-03-14 21:20:32.000000000 -0400
26568+++ linux-2.6.38.3/drivers/message/fusion/mptscsih.c 2011-04-17 15:57:32.000000000 -0400 25689+++ linux-2.6.38.2/drivers/message/fusion/mptscsih.c 2011-03-21 18:31:35.000000000 -0400
26569@@ -1268,15 +1268,16 @@ mptscsih_info(struct Scsi_Host *SChost) 25690@@ -1268,15 +1268,16 @@ mptscsih_info(struct Scsi_Host *SChost)
26570 25691
26571 h = shost_priv(SChost); 25692 h = shost_priv(SChost);
@@ -26591,9 +25712,9 @@ diff -urNp linux-2.6.38.3/drivers/message/fusion/mptscsih.c linux-2.6.38.3/drive
26591 25712
26592 return h->info_kbuf; 25713 return h->info_kbuf;
26593 } 25714 }
26594diff -urNp linux-2.6.38.3/drivers/message/i2o/i2o_proc.c linux-2.6.38.3/drivers/message/i2o/i2o_proc.c 25715diff -urNp linux-2.6.38.2/drivers/message/i2o/i2o_proc.c linux-2.6.38.2/drivers/message/i2o/i2o_proc.c
26595--- linux-2.6.38.3/drivers/message/i2o/i2o_proc.c 2011-03-14 21:20:32.000000000 -0400 25716--- linux-2.6.38.2/drivers/message/i2o/i2o_proc.c 2011-03-14 21:20:32.000000000 -0400
26596+++ linux-2.6.38.3/drivers/message/i2o/i2o_proc.c 2011-04-17 15:57:32.000000000 -0400 25717+++ linux-2.6.38.2/drivers/message/i2o/i2o_proc.c 2011-03-21 18:31:35.000000000 -0400
26597@@ -255,13 +255,6 @@ static char *scsi_devices[] = { 25718@@ -255,13 +255,6 @@ static char *scsi_devices[] = {
26598 "Array Controller Device" 25719 "Array Controller Device"
26599 }; 25720 };
@@ -26680,9 +25801,79 @@ diff -urNp linux-2.6.38.3/drivers/message/i2o/i2o_proc.c linux-2.6.38.3/drivers/
26680 25801
26681 return 0; 25802 return 0;
26682 } 25803 }
26683diff -urNp linux-2.6.38.3/drivers/mfd/janz-cmodio.c linux-2.6.38.3/drivers/mfd/janz-cmodio.c 25804diff -urNp linux-2.6.38.2/drivers/mfd/ab3100-core.c linux-2.6.38.2/drivers/mfd/ab3100-core.c
26684--- linux-2.6.38.3/drivers/mfd/janz-cmodio.c 2011-03-14 21:20:32.000000000 -0400 25805--- linux-2.6.38.2/drivers/mfd/ab3100-core.c 2011-03-14 21:20:32.000000000 -0400
26685+++ linux-2.6.38.3/drivers/mfd/janz-cmodio.c 2011-04-17 15:57:32.000000000 -0400 25806+++ linux-2.6.38.2/drivers/mfd/ab3100-core.c 2011-03-21 18:31:35.000000000 -0400
25807@@ -613,7 +613,7 @@ static void ab3100_setup_debugfs(struct
25808 ab3100_get_priv.ab3100 = ab3100;
25809 ab3100_get_priv.mode = false;
25810 ab3100_get_reg_file = debugfs_create_file("get_reg",
25811- S_IWUGO, ab3100_dir, &ab3100_get_priv,
25812+ S_IWUSR, ab3100_dir, &ab3100_get_priv,
25813 &ab3100_get_set_reg_fops);
25814 if (!ab3100_get_reg_file) {
25815 err = -ENOMEM;
25816@@ -623,7 +623,7 @@ static void ab3100_setup_debugfs(struct
25817 ab3100_set_priv.ab3100 = ab3100;
25818 ab3100_set_priv.mode = true;
25819 ab3100_set_reg_file = debugfs_create_file("set_reg",
25820- S_IWUGO, ab3100_dir, &ab3100_set_priv,
25821+ S_IWUSR, ab3100_dir, &ab3100_set_priv,
25822 &ab3100_get_set_reg_fops);
25823 if (!ab3100_set_reg_file) {
25824 err = -ENOMEM;
25825diff -urNp linux-2.6.38.2/drivers/mfd/ab3550-core.c linux-2.6.38.2/drivers/mfd/ab3550-core.c
25826--- linux-2.6.38.2/drivers/mfd/ab3550-core.c 2011-03-14 21:20:32.000000000 -0400
25827+++ linux-2.6.38.2/drivers/mfd/ab3550-core.c 2011-03-21 18:31:35.000000000 -0400
25828@@ -1053,17 +1053,17 @@ static inline void ab3550_setup_debugfs(
25829 goto exit_destroy_dir;
25830
25831 ab3550_bank_file = debugfs_create_file("register-bank",
25832- (S_IRUGO | S_IWUGO), ab3550_dir, ab, &ab3550_bank_fops);
25833+ (S_IRUGO | S_IWUSR), ab3550_dir, ab, &ab3550_bank_fops);
25834 if (!ab3550_bank_file)
25835 goto exit_destroy_reg;
25836
25837 ab3550_address_file = debugfs_create_file("register-address",
25838- (S_IRUGO | S_IWUGO), ab3550_dir, ab, &ab3550_address_fops);
25839+ (S_IRUGO | S_IWUSR), ab3550_dir, ab, &ab3550_address_fops);
25840 if (!ab3550_address_file)
25841 goto exit_destroy_bank;
25842
25843 ab3550_val_file = debugfs_create_file("register-value",
25844- (S_IRUGO | S_IWUGO), ab3550_dir, ab, &ab3550_val_fops);
25845+ (S_IRUGO | S_IWUSR), ab3550_dir, ab, &ab3550_val_fops);
25846 if (!ab3550_val_file)
25847 goto exit_destroy_address;
25848
25849diff -urNp linux-2.6.38.2/drivers/mfd/ab8500-debugfs.c linux-2.6.38.2/drivers/mfd/ab8500-debugfs.c
25850--- linux-2.6.38.2/drivers/mfd/ab8500-debugfs.c 2011-03-14 21:20:32.000000000 -0400
25851+++ linux-2.6.38.2/drivers/mfd/ab8500-debugfs.c 2011-03-21 18:31:35.000000000 -0400
25852@@ -585,18 +585,18 @@ static int __devinit ab8500_debug_probe(
25853 goto exit_destroy_dir;
25854
25855 ab8500_bank_file = debugfs_create_file("register-bank",
25856- (S_IRUGO | S_IWUGO), ab8500_dir, &plf->dev, &ab8500_bank_fops);
25857+ (S_IRUGO | S_IWUSR), ab8500_dir, &plf->dev, &ab8500_bank_fops);
25858 if (!ab8500_bank_file)
25859 goto exit_destroy_reg;
25860
25861 ab8500_address_file = debugfs_create_file("register-address",
25862- (S_IRUGO | S_IWUGO), ab8500_dir, &plf->dev,
25863+ (S_IRUGO | S_IWUSR), ab8500_dir, &plf->dev,
25864 &ab8500_address_fops);
25865 if (!ab8500_address_file)
25866 goto exit_destroy_bank;
25867
25868 ab8500_val_file = debugfs_create_file("register-value",
25869- (S_IRUGO | S_IWUGO), ab8500_dir, &plf->dev, &ab8500_val_fops);
25870+ (S_IRUGO | S_IWUSR), ab8500_dir, &plf->dev, &ab8500_val_fops);
25871 if (!ab8500_val_file)
25872 goto exit_destroy_address;
25873
25874diff -urNp linux-2.6.38.2/drivers/mfd/janz-cmodio.c linux-2.6.38.2/drivers/mfd/janz-cmodio.c
25875--- linux-2.6.38.2/drivers/mfd/janz-cmodio.c 2011-03-14 21:20:32.000000000 -0400
25876+++ linux-2.6.38.2/drivers/mfd/janz-cmodio.c 2011-03-21 18:31:35.000000000 -0400
26686@@ -13,6 +13,7 @@ 25877@@ -13,6 +13,7 @@
26687 25878
26688 #include <linux/kernel.h> 25879 #include <linux/kernel.h>
@@ -26691,9 +25882,27 @@ diff -urNp linux-2.6.38.3/drivers/mfd/janz-cmodio.c linux-2.6.38.3/drivers/mfd/j
26691 #include <linux/init.h> 25882 #include <linux/init.h>
26692 #include <linux/pci.h> 25883 #include <linux/pci.h>
26693 #include <linux/interrupt.h> 25884 #include <linux/interrupt.h>
26694diff -urNp linux-2.6.38.3/drivers/misc/kgdbts.c linux-2.6.38.3/drivers/misc/kgdbts.c 25885diff -urNp linux-2.6.38.2/drivers/misc/ep93xx_pwm.c linux-2.6.38.2/drivers/misc/ep93xx_pwm.c
26695--- linux-2.6.38.3/drivers/misc/kgdbts.c 2011-03-14 21:20:32.000000000 -0400 25886--- linux-2.6.38.2/drivers/misc/ep93xx_pwm.c 2011-03-14 21:20:32.000000000 -0400
26696+++ linux-2.6.38.3/drivers/misc/kgdbts.c 2011-04-17 15:57:32.000000000 -0400 25887+++ linux-2.6.38.2/drivers/misc/ep93xx_pwm.c 2011-03-21 18:31:35.000000000 -0400
25888@@ -249,11 +249,11 @@ static ssize_t ep93xx_pwm_set_invert(str
25889
25890 static DEVICE_ATTR(min_freq, S_IRUGO, ep93xx_pwm_get_min_freq, NULL);
25891 static DEVICE_ATTR(max_freq, S_IRUGO, ep93xx_pwm_get_max_freq, NULL);
25892-static DEVICE_ATTR(freq, S_IWUGO | S_IRUGO,
25893+static DEVICE_ATTR(freq, S_IWUSR | S_IRUGO,
25894 ep93xx_pwm_get_freq, ep93xx_pwm_set_freq);
25895-static DEVICE_ATTR(duty_percent, S_IWUGO | S_IRUGO,
25896+static DEVICE_ATTR(duty_percent, S_IWUSR | S_IRUGO,
25897 ep93xx_pwm_get_duty_percent, ep93xx_pwm_set_duty_percent);
25898-static DEVICE_ATTR(invert, S_IWUGO | S_IRUGO,
25899+static DEVICE_ATTR(invert, S_IWUSR | S_IRUGO,
25900 ep93xx_pwm_get_invert, ep93xx_pwm_set_invert);
25901
25902 static struct attribute *ep93xx_pwm_attrs[] = {
25903diff -urNp linux-2.6.38.2/drivers/misc/kgdbts.c linux-2.6.38.2/drivers/misc/kgdbts.c
25904--- linux-2.6.38.2/drivers/misc/kgdbts.c 2011-03-14 21:20:32.000000000 -0400
25905+++ linux-2.6.38.2/drivers/misc/kgdbts.c 2011-03-21 18:31:35.000000000 -0400
26697@@ -118,7 +118,7 @@ 25906@@ -118,7 +118,7 @@
26698 } while (0) 25907 } while (0)
26699 #define MAX_CONFIG_LEN 40 25908 #define MAX_CONFIG_LEN 40
@@ -26712,9 +25921,9 @@ diff -urNp linux-2.6.38.3/drivers/misc/kgdbts.c linux-2.6.38.3/drivers/misc/kgdb
26712 .name = "kgdbts", 25921 .name = "kgdbts",
26713 .read_char = kgdbts_get_char, 25922 .read_char = kgdbts_get_char,
26714 .write_char = kgdbts_put_char, 25923 .write_char = kgdbts_put_char,
26715diff -urNp linux-2.6.38.3/drivers/misc/sgi-gru/gruhandles.c linux-2.6.38.3/drivers/misc/sgi-gru/gruhandles.c 25924diff -urNp linux-2.6.38.2/drivers/misc/sgi-gru/gruhandles.c linux-2.6.38.2/drivers/misc/sgi-gru/gruhandles.c
26716--- linux-2.6.38.3/drivers/misc/sgi-gru/gruhandles.c 2011-03-14 21:20:32.000000000 -0400 25925--- linux-2.6.38.2/drivers/misc/sgi-gru/gruhandles.c 2011-03-14 21:20:32.000000000 -0400
26717+++ linux-2.6.38.3/drivers/misc/sgi-gru/gruhandles.c 2011-04-17 15:57:32.000000000 -0400 25926+++ linux-2.6.38.2/drivers/misc/sgi-gru/gruhandles.c 2011-03-21 18:31:35.000000000 -0400
26718@@ -44,8 +44,8 @@ static void update_mcs_stats(enum mcs_op 25927@@ -44,8 +44,8 @@ static void update_mcs_stats(enum mcs_op
26719 unsigned long nsec; 25928 unsigned long nsec;
26720 25929
@@ -26726,9 +25935,9 @@ diff -urNp linux-2.6.38.3/drivers/misc/sgi-gru/gruhandles.c linux-2.6.38.3/drive
26726 if (mcs_op_statistics[op].max < nsec) 25935 if (mcs_op_statistics[op].max < nsec)
26727 mcs_op_statistics[op].max = nsec; 25936 mcs_op_statistics[op].max = nsec;
26728 } 25937 }
26729diff -urNp linux-2.6.38.3/drivers/misc/sgi-gru/gruprocfs.c linux-2.6.38.3/drivers/misc/sgi-gru/gruprocfs.c 25938diff -urNp linux-2.6.38.2/drivers/misc/sgi-gru/gruprocfs.c linux-2.6.38.2/drivers/misc/sgi-gru/gruprocfs.c
26730--- linux-2.6.38.3/drivers/misc/sgi-gru/gruprocfs.c 2011-03-14 21:20:32.000000000 -0400 25939--- linux-2.6.38.2/drivers/misc/sgi-gru/gruprocfs.c 2011-03-14 21:20:32.000000000 -0400
26731+++ linux-2.6.38.3/drivers/misc/sgi-gru/gruprocfs.c 2011-04-17 15:57:32.000000000 -0400 25940+++ linux-2.6.38.2/drivers/misc/sgi-gru/gruprocfs.c 2011-03-21 18:31:35.000000000 -0400
26732@@ -32,9 +32,9 @@ 25941@@ -32,9 +32,9 @@
26733 25942
26734 #define printstat(s, f) printstat_val(s, &gru_stats.f, #f) 25943 #define printstat(s, f) printstat_val(s, &gru_stats.f, #f)
@@ -26752,9 +25961,9 @@ diff -urNp linux-2.6.38.3/drivers/misc/sgi-gru/gruprocfs.c linux-2.6.38.3/driver
26752 max = mcs_op_statistics[op].max; 25961 max = mcs_op_statistics[op].max;
26753 seq_printf(s, "%-20s%12ld%12ld%12ld\n", id[op], count, 25962 seq_printf(s, "%-20s%12ld%12ld%12ld\n", id[op], count,
26754 count ? total / count : 0, max); 25963 count ? total / count : 0, max);
26755diff -urNp linux-2.6.38.3/drivers/misc/sgi-gru/grutables.h linux-2.6.38.3/drivers/misc/sgi-gru/grutables.h 25964diff -urNp linux-2.6.38.2/drivers/misc/sgi-gru/grutables.h linux-2.6.38.2/drivers/misc/sgi-gru/grutables.h
26756--- linux-2.6.38.3/drivers/misc/sgi-gru/grutables.h 2011-03-14 21:20:32.000000000 -0400 25965--- linux-2.6.38.2/drivers/misc/sgi-gru/grutables.h 2011-03-14 21:20:32.000000000 -0400
26757+++ linux-2.6.38.3/drivers/misc/sgi-gru/grutables.h 2011-04-17 15:57:32.000000000 -0400 25966+++ linux-2.6.38.2/drivers/misc/sgi-gru/grutables.h 2011-03-21 18:31:35.000000000 -0400
26758@@ -167,82 +167,82 @@ extern unsigned int gru_max_gids; 25967@@ -167,82 +167,82 @@ extern unsigned int gru_max_gids;
26759 * GRU statistics. 25968 * GRU statistics.
26760 */ 25969 */
@@ -26934,9 +26143,9 @@ diff -urNp linux-2.6.38.3/drivers/misc/sgi-gru/grutables.h linux-2.6.38.3/driver
26934 } while (0) 26143 } while (0)
26935 26144
26936 #ifdef CONFIG_SGI_GRU_DEBUG 26145 #ifdef CONFIG_SGI_GRU_DEBUG
26937diff -urNp linux-2.6.38.3/drivers/mtd/devices/doc2000.c linux-2.6.38.3/drivers/mtd/devices/doc2000.c 26146diff -urNp linux-2.6.38.2/drivers/mtd/devices/doc2000.c linux-2.6.38.2/drivers/mtd/devices/doc2000.c
26938--- linux-2.6.38.3/drivers/mtd/devices/doc2000.c 2011-03-14 21:20:32.000000000 -0400 26147--- linux-2.6.38.2/drivers/mtd/devices/doc2000.c 2011-03-14 21:20:32.000000000 -0400
26939+++ linux-2.6.38.3/drivers/mtd/devices/doc2000.c 2011-04-17 15:57:32.000000000 -0400 26148+++ linux-2.6.38.2/drivers/mtd/devices/doc2000.c 2011-03-21 18:31:35.000000000 -0400
26940@@ -776,7 +776,7 @@ static int doc_write(struct mtd_info *mt 26149@@ -776,7 +776,7 @@ static int doc_write(struct mtd_info *mt
26941 26150
26942 /* The ECC will not be calculated correctly if less than 512 is written */ 26151 /* The ECC will not be calculated correctly if less than 512 is written */
@@ -26946,9 +26155,9 @@ diff -urNp linux-2.6.38.3/drivers/mtd/devices/doc2000.c linux-2.6.38.3/drivers/m
26946 printk(KERN_WARNING 26155 printk(KERN_WARNING
26947 "ECC needs a full sector write (adr: %lx size %lx)\n", 26156 "ECC needs a full sector write (adr: %lx size %lx)\n",
26948 (long) to, (long) len); 26157 (long) to, (long) len);
26949diff -urNp linux-2.6.38.3/drivers/mtd/devices/doc2001.c linux-2.6.38.3/drivers/mtd/devices/doc2001.c 26158diff -urNp linux-2.6.38.2/drivers/mtd/devices/doc2001.c linux-2.6.38.2/drivers/mtd/devices/doc2001.c
26950--- linux-2.6.38.3/drivers/mtd/devices/doc2001.c 2011-03-14 21:20:32.000000000 -0400 26159--- linux-2.6.38.2/drivers/mtd/devices/doc2001.c 2011-03-14 21:20:32.000000000 -0400
26951+++ linux-2.6.38.3/drivers/mtd/devices/doc2001.c 2011-04-17 15:57:32.000000000 -0400 26160+++ linux-2.6.38.2/drivers/mtd/devices/doc2001.c 2011-03-21 18:31:35.000000000 -0400
26952@@ -393,7 +393,7 @@ static int doc_read (struct mtd_info *mt 26161@@ -393,7 +393,7 @@ static int doc_read (struct mtd_info *mt
26953 struct Nand *mychip = &this->chips[from >> (this->chipshift)]; 26162 struct Nand *mychip = &this->chips[from >> (this->chipshift)];
26954 26163
@@ -26958,9 +26167,9 @@ diff -urNp linux-2.6.38.3/drivers/mtd/devices/doc2001.c linux-2.6.38.3/drivers/m
26958 return -EINVAL; 26167 return -EINVAL;
26959 26168
26960 /* Don't allow a single read to cross a 512-byte block boundary */ 26169 /* Don't allow a single read to cross a 512-byte block boundary */
26961diff -urNp linux-2.6.38.3/drivers/mtd/nand/denali.c linux-2.6.38.3/drivers/mtd/nand/denali.c 26170diff -urNp linux-2.6.38.2/drivers/mtd/nand/denali.c linux-2.6.38.2/drivers/mtd/nand/denali.c
26962--- linux-2.6.38.3/drivers/mtd/nand/denali.c 2011-03-14 21:20:32.000000000 -0400 26171--- linux-2.6.38.2/drivers/mtd/nand/denali.c 2011-03-14 21:20:32.000000000 -0400
26963+++ linux-2.6.38.3/drivers/mtd/nand/denali.c 2011-04-17 15:57:32.000000000 -0400 26172+++ linux-2.6.38.2/drivers/mtd/nand/denali.c 2011-03-21 18:31:35.000000000 -0400
26964@@ -25,6 +25,7 @@ 26173@@ -25,6 +25,7 @@
26965 #include <linux/pci.h> 26174 #include <linux/pci.h>
26966 #include <linux/mtd/mtd.h> 26175 #include <linux/mtd/mtd.h>
@@ -26969,9 +26178,9 @@ diff -urNp linux-2.6.38.3/drivers/mtd/nand/denali.c linux-2.6.38.3/drivers/mtd/n
26969 26178
26970 #include "denali.h" 26179 #include "denali.h"
26971 26180
26972diff -urNp linux-2.6.38.3/drivers/mtd/ubi/build.c linux-2.6.38.3/drivers/mtd/ubi/build.c 26181diff -urNp linux-2.6.38.2/drivers/mtd/ubi/build.c linux-2.6.38.2/drivers/mtd/ubi/build.c
26973--- linux-2.6.38.3/drivers/mtd/ubi/build.c 2011-03-14 21:20:32.000000000 -0400 26182--- linux-2.6.38.2/drivers/mtd/ubi/build.c 2011-03-14 21:20:32.000000000 -0400
26974+++ linux-2.6.38.3/drivers/mtd/ubi/build.c 2011-04-17 15:57:32.000000000 -0400 26183+++ linux-2.6.38.2/drivers/mtd/ubi/build.c 2011-03-21 18:31:35.000000000 -0400
26975@@ -1285,7 +1285,7 @@ module_exit(ubi_exit); 26184@@ -1285,7 +1285,7 @@ module_exit(ubi_exit);
26976 static int __init bytes_str_to_int(const char *str) 26185 static int __init bytes_str_to_int(const char *str)
26977 { 26186 {
@@ -27011,9 +26220,9 @@ diff -urNp linux-2.6.38.3/drivers/mtd/ubi/build.c linux-2.6.38.3/drivers/mtd/ubi
27011 } 26220 }
27012 26221
27013 /** 26222 /**
27014diff -urNp linux-2.6.38.3/drivers/net/e1000e/82571.c linux-2.6.38.3/drivers/net/e1000e/82571.c 26223diff -urNp linux-2.6.38.2/drivers/net/e1000e/82571.c linux-2.6.38.2/drivers/net/e1000e/82571.c
27015--- linux-2.6.38.3/drivers/net/e1000e/82571.c 2011-03-14 21:20:32.000000000 -0400 26224--- linux-2.6.38.2/drivers/net/e1000e/82571.c 2011-03-14 21:20:32.000000000 -0400
27016+++ linux-2.6.38.3/drivers/net/e1000e/82571.c 2011-04-17 15:57:32.000000000 -0400 26225+++ linux-2.6.38.2/drivers/net/e1000e/82571.c 2011-03-21 18:31:35.000000000 -0400
27017@@ -239,7 +239,7 @@ static s32 e1000_init_mac_params_82571(s 26226@@ -239,7 +239,7 @@ static s32 e1000_init_mac_params_82571(s
27018 { 26227 {
27019 struct e1000_hw *hw = &adapter->hw; 26228 struct e1000_hw *hw = &adapter->hw;
@@ -27068,9 +26277,9 @@ diff -urNp linux-2.6.38.3/drivers/net/e1000e/82571.c linux-2.6.38.3/drivers/net/
27068 .acquire = e1000_acquire_nvm_82571, 26277 .acquire = e1000_acquire_nvm_82571,
27069 .read = e1000e_read_nvm_eerd, 26278 .read = e1000e_read_nvm_eerd,
27070 .release = e1000_release_nvm_82571, 26279 .release = e1000_release_nvm_82571,
27071diff -urNp linux-2.6.38.3/drivers/net/e1000e/e1000.h linux-2.6.38.3/drivers/net/e1000e/e1000.h 26280diff -urNp linux-2.6.38.2/drivers/net/e1000e/e1000.h linux-2.6.38.2/drivers/net/e1000e/e1000.h
27072--- linux-2.6.38.3/drivers/net/e1000e/e1000.h 2011-03-14 21:20:32.000000000 -0400 26281--- linux-2.6.38.2/drivers/net/e1000e/e1000.h 2011-03-14 21:20:32.000000000 -0400
27073+++ linux-2.6.38.3/drivers/net/e1000e/e1000.h 2011-04-17 15:57:32.000000000 -0400 26282+++ linux-2.6.38.2/drivers/net/e1000e/e1000.h 2011-03-21 18:31:35.000000000 -0400
27074@@ -408,9 +408,9 @@ struct e1000_info { 26283@@ -408,9 +408,9 @@ struct e1000_info {
27075 u32 pba; 26284 u32 pba;
27076 u32 max_hw_frame_size; 26285 u32 max_hw_frame_size;
@@ -27084,9 +26293,9 @@ diff -urNp linux-2.6.38.3/drivers/net/e1000e/e1000.h linux-2.6.38.3/drivers/net/
27084 }; 26293 };
27085 26294
27086 /* hardware capability, feature, and workaround flags */ 26295 /* hardware capability, feature, and workaround flags */
27087diff -urNp linux-2.6.38.3/drivers/net/e1000e/es2lan.c linux-2.6.38.3/drivers/net/e1000e/es2lan.c 26296diff -urNp linux-2.6.38.2/drivers/net/e1000e/es2lan.c linux-2.6.38.2/drivers/net/e1000e/es2lan.c
27088--- linux-2.6.38.3/drivers/net/e1000e/es2lan.c 2011-03-14 21:20:32.000000000 -0400 26297--- linux-2.6.38.2/drivers/net/e1000e/es2lan.c 2011-03-14 21:20:32.000000000 -0400
27089+++ linux-2.6.38.3/drivers/net/e1000e/es2lan.c 2011-04-17 15:57:32.000000000 -0400 26298+++ linux-2.6.38.2/drivers/net/e1000e/es2lan.c 2011-03-21 18:31:35.000000000 -0400
27090@@ -205,7 +205,7 @@ static s32 e1000_init_mac_params_80003es 26299@@ -205,7 +205,7 @@ static s32 e1000_init_mac_params_80003es
27091 { 26300 {
27092 struct e1000_hw *hw = &adapter->hw; 26301 struct e1000_hw *hw = &adapter->hw;
@@ -27123,9 +26332,9 @@ diff -urNp linux-2.6.38.3/drivers/net/e1000e/es2lan.c linux-2.6.38.3/drivers/net
27123 .acquire = e1000_acquire_nvm_80003es2lan, 26332 .acquire = e1000_acquire_nvm_80003es2lan,
27124 .read = e1000e_read_nvm_eerd, 26333 .read = e1000e_read_nvm_eerd,
27125 .release = e1000_release_nvm_80003es2lan, 26334 .release = e1000_release_nvm_80003es2lan,
27126diff -urNp linux-2.6.38.3/drivers/net/e1000e/hw.h linux-2.6.38.3/drivers/net/e1000e/hw.h 26335diff -urNp linux-2.6.38.2/drivers/net/e1000e/hw.h linux-2.6.38.2/drivers/net/e1000e/hw.h
27127--- linux-2.6.38.3/drivers/net/e1000e/hw.h 2011-03-14 21:20:32.000000000 -0400 26336--- linux-2.6.38.2/drivers/net/e1000e/hw.h 2011-03-14 21:20:32.000000000 -0400
27128+++ linux-2.6.38.3/drivers/net/e1000e/hw.h 2011-04-17 15:57:32.000000000 -0400 26337+++ linux-2.6.38.2/drivers/net/e1000e/hw.h 2011-03-21 18:31:35.000000000 -0400
27129@@ -801,16 +801,17 @@ struct e1000_phy_operations { 26338@@ -801,16 +801,17 @@ struct e1000_phy_operations {
27130 26339
27131 /* Function pointers for the NVM. */ 26340 /* Function pointers for the NVM. */
@@ -27167,9 +26376,9 @@ diff -urNp linux-2.6.38.3/drivers/net/e1000e/hw.h linux-2.6.38.3/drivers/net/e10
27167 struct e1000_nvm_operations ops; 26376 struct e1000_nvm_operations ops;
27168 26377
27169 enum e1000_nvm_type type; 26378 enum e1000_nvm_type type;
27170diff -urNp linux-2.6.38.3/drivers/net/e1000e/ich8lan.c linux-2.6.38.3/drivers/net/e1000e/ich8lan.c 26379diff -urNp linux-2.6.38.2/drivers/net/e1000e/ich8lan.c linux-2.6.38.2/drivers/net/e1000e/ich8lan.c
27171--- linux-2.6.38.3/drivers/net/e1000e/ich8lan.c 2011-03-14 21:20:32.000000000 -0400 26380--- linux-2.6.38.2/drivers/net/e1000e/ich8lan.c 2011-03-14 21:20:32.000000000 -0400
27172+++ linux-2.6.38.3/drivers/net/e1000e/ich8lan.c 2011-04-17 15:57:32.000000000 -0400 26381+++ linux-2.6.38.2/drivers/net/e1000e/ich8lan.c 2011-03-21 18:31:35.000000000 -0400
27173@@ -3840,7 +3840,7 @@ static void e1000_clear_hw_cntrs_ich8lan 26382@@ -3840,7 +3840,7 @@ static void e1000_clear_hw_cntrs_ich8lan
27174 } 26383 }
27175 } 26384 }
@@ -27197,9 +26406,9 @@ diff -urNp linux-2.6.38.3/drivers/net/e1000e/ich8lan.c linux-2.6.38.3/drivers/ne
27197 .acquire = e1000_acquire_nvm_ich8lan, 26406 .acquire = e1000_acquire_nvm_ich8lan,
27198 .read = e1000_read_nvm_ich8lan, 26407 .read = e1000_read_nvm_ich8lan,
27199 .release = e1000_release_nvm_ich8lan, 26408 .release = e1000_release_nvm_ich8lan,
27200diff -urNp linux-2.6.38.3/drivers/net/igb/e1000_82575.c linux-2.6.38.3/drivers/net/igb/e1000_82575.c 26409diff -urNp linux-2.6.38.2/drivers/net/igb/e1000_82575.c linux-2.6.38.2/drivers/net/igb/e1000_82575.c
27201--- linux-2.6.38.3/drivers/net/igb/e1000_82575.c 2011-03-14 21:20:32.000000000 -0400 26410--- linux-2.6.38.2/drivers/net/igb/e1000_82575.c 2011-03-14 21:20:32.000000000 -0400
27202+++ linux-2.6.38.3/drivers/net/igb/e1000_82575.c 2011-04-17 15:57:32.000000000 -0400 26411+++ linux-2.6.38.2/drivers/net/igb/e1000_82575.c 2011-03-21 18:31:35.000000000 -0400
27203@@ -1747,7 +1747,7 @@ u16 igb_rxpbs_adjust_82580(u32 data) 26412@@ -1747,7 +1747,7 @@ u16 igb_rxpbs_adjust_82580(u32 data)
27204 return ret_val; 26413 return ret_val;
27205 } 26414 }
@@ -27225,9 +26434,9 @@ diff -urNp linux-2.6.38.3/drivers/net/igb/e1000_82575.c linux-2.6.38.3/drivers/n
27225 .acquire = igb_acquire_nvm_82575, 26434 .acquire = igb_acquire_nvm_82575,
27226 .read = igb_read_nvm_eerd, 26435 .read = igb_read_nvm_eerd,
27227 .release = igb_release_nvm_82575, 26436 .release = igb_release_nvm_82575,
27228diff -urNp linux-2.6.38.3/drivers/net/igb/e1000_hw.h linux-2.6.38.3/drivers/net/igb/e1000_hw.h 26437diff -urNp linux-2.6.38.2/drivers/net/igb/e1000_hw.h linux-2.6.38.2/drivers/net/igb/e1000_hw.h
27229--- linux-2.6.38.3/drivers/net/igb/e1000_hw.h 2011-03-14 21:20:32.000000000 -0400 26438--- linux-2.6.38.2/drivers/net/igb/e1000_hw.h 2011-03-14 21:20:32.000000000 -0400
27230+++ linux-2.6.38.3/drivers/net/igb/e1000_hw.h 2011-04-17 15:57:32.000000000 -0400 26439+++ linux-2.6.38.2/drivers/net/igb/e1000_hw.h 2011-03-21 18:31:35.000000000 -0400
27231@@ -327,22 +327,23 @@ struct e1000_phy_operations { 26440@@ -327,22 +327,23 @@ struct e1000_phy_operations {
27232 }; 26441 };
27233 26442
@@ -27275,9 +26484,9 @@ diff -urNp linux-2.6.38.3/drivers/net/igb/e1000_hw.h linux-2.6.38.3/drivers/net/
27275 struct e1000_nvm_operations ops; 26484 struct e1000_nvm_operations ops;
27276 26485
27277 enum e1000_nvm_type type; 26486 enum e1000_nvm_type type;
27278diff -urNp linux-2.6.38.3/drivers/net/igbvf/vf.h linux-2.6.38.3/drivers/net/igbvf/vf.h 26487diff -urNp linux-2.6.38.2/drivers/net/igbvf/vf.h linux-2.6.38.2/drivers/net/igbvf/vf.h
27279--- linux-2.6.38.3/drivers/net/igbvf/vf.h 2011-03-14 21:20:32.000000000 -0400 26488--- linux-2.6.38.2/drivers/net/igbvf/vf.h 2011-03-14 21:20:32.000000000 -0400
27280+++ linux-2.6.38.3/drivers/net/igbvf/vf.h 2011-04-17 15:57:32.000000000 -0400 26489+++ linux-2.6.38.2/drivers/net/igbvf/vf.h 2011-03-21 18:31:35.000000000 -0400
27281@@ -191,6 +191,7 @@ struct e1000_mac_operations { 26490@@ -191,6 +191,7 @@ struct e1000_mac_operations {
27282 }; 26491 };
27283 26492
@@ -27286,9 +26495,9 @@ diff -urNp linux-2.6.38.3/drivers/net/igbvf/vf.h linux-2.6.38.3/drivers/net/igbv
27286 struct e1000_mac_operations ops; 26495 struct e1000_mac_operations ops;
27287 u8 addr[6]; 26496 u8 addr[6];
27288 u8 perm_addr[6]; 26497 u8 perm_addr[6];
27289diff -urNp linux-2.6.38.3/drivers/net/irda/vlsi_ir.c linux-2.6.38.3/drivers/net/irda/vlsi_ir.c 26498diff -urNp linux-2.6.38.2/drivers/net/irda/vlsi_ir.c linux-2.6.38.2/drivers/net/irda/vlsi_ir.c
27290--- linux-2.6.38.3/drivers/net/irda/vlsi_ir.c 2011-03-14 21:20:32.000000000 -0400 26499--- linux-2.6.38.2/drivers/net/irda/vlsi_ir.c 2011-03-14 21:20:32.000000000 -0400
27291+++ linux-2.6.38.3/drivers/net/irda/vlsi_ir.c 2011-04-17 15:57:32.000000000 -0400 26500+++ linux-2.6.38.2/drivers/net/irda/vlsi_ir.c 2011-03-21 18:31:35.000000000 -0400
27292@@ -907,13 +907,12 @@ static netdev_tx_t vlsi_hard_start_xmit( 26501@@ -907,13 +907,12 @@ static netdev_tx_t vlsi_hard_start_xmit(
27293 /* no race - tx-ring already empty */ 26502 /* no race - tx-ring already empty */
27294 vlsi_set_baud(idev, iobase); 26503 vlsi_set_baud(idev, iobase);
@@ -27305,9 +26514,9 @@ diff -urNp linux-2.6.38.3/drivers/net/irda/vlsi_ir.c linux-2.6.38.3/drivers/net/
27305 spin_unlock_irqrestore(&idev->lock, flags); 26514 spin_unlock_irqrestore(&idev->lock, flags);
27306 dev_kfree_skb_any(skb); 26515 dev_kfree_skb_any(skb);
27307 return NETDEV_TX_OK; 26516 return NETDEV_TX_OK;
27308diff -urNp linux-2.6.38.3/drivers/net/pcnet32.c linux-2.6.38.3/drivers/net/pcnet32.c 26517diff -urNp linux-2.6.38.2/drivers/net/pcnet32.c linux-2.6.38.2/drivers/net/pcnet32.c
27309--- linux-2.6.38.3/drivers/net/pcnet32.c 2011-03-14 21:20:32.000000000 -0400 26518--- linux-2.6.38.2/drivers/net/pcnet32.c 2011-03-14 21:20:32.000000000 -0400
27310+++ linux-2.6.38.3/drivers/net/pcnet32.c 2011-04-17 15:57:32.000000000 -0400 26519+++ linux-2.6.38.2/drivers/net/pcnet32.c 2011-03-21 18:31:35.000000000 -0400
27311@@ -82,7 +82,7 @@ static int cards_found; 26520@@ -82,7 +82,7 @@ static int cards_found;
27312 /* 26521 /*
27313 * VLB I/O addresses 26522 * VLB I/O addresses
@@ -27317,9 +26526,9 @@ diff -urNp linux-2.6.38.3/drivers/net/pcnet32.c linux-2.6.38.3/drivers/net/pcnet
27317 { 0x300, 0x320, 0x340, 0x360, 0 }; 26526 { 0x300, 0x320, 0x340, 0x360, 0 };
27318 26527
27319 static int pcnet32_debug; 26528 static int pcnet32_debug;
27320diff -urNp linux-2.6.38.3/drivers/net/ppp_generic.c linux-2.6.38.3/drivers/net/ppp_generic.c 26529diff -urNp linux-2.6.38.2/drivers/net/ppp_generic.c linux-2.6.38.2/drivers/net/ppp_generic.c
27321--- linux-2.6.38.3/drivers/net/ppp_generic.c 2011-03-14 21:20:32.000000000 -0400 26530--- linux-2.6.38.2/drivers/net/ppp_generic.c 2011-03-14 21:20:32.000000000 -0400
27322+++ linux-2.6.38.3/drivers/net/ppp_generic.c 2011-04-17 15:57:32.000000000 -0400 26531+++ linux-2.6.38.2/drivers/net/ppp_generic.c 2011-03-21 18:31:35.000000000 -0400
27323@@ -986,7 +986,6 @@ ppp_net_ioctl(struct net_device *dev, st 26532@@ -986,7 +986,6 @@ ppp_net_ioctl(struct net_device *dev, st
27324 void __user *addr = (void __user *) ifr->ifr_ifru.ifru_data; 26533 void __user *addr = (void __user *) ifr->ifr_ifru.ifru_data;
27325 struct ppp_stats stats; 26534 struct ppp_stats stats;
@@ -27338,9 +26547,9 @@ diff -urNp linux-2.6.38.3/drivers/net/ppp_generic.c linux-2.6.38.3/drivers/net/p
27338 break; 26547 break;
27339 err = 0; 26548 err = 0;
27340 break; 26549 break;
27341diff -urNp linux-2.6.38.3/drivers/net/tg3.h linux-2.6.38.3/drivers/net/tg3.h 26550diff -urNp linux-2.6.38.2/drivers/net/tg3.h linux-2.6.38.2/drivers/net/tg3.h
27342--- linux-2.6.38.3/drivers/net/tg3.h 2011-03-14 21:20:32.000000000 -0400 26551--- linux-2.6.38.2/drivers/net/tg3.h 2011-03-14 21:20:32.000000000 -0400
27343+++ linux-2.6.38.3/drivers/net/tg3.h 2011-04-17 15:57:32.000000000 -0400 26552+++ linux-2.6.38.2/drivers/net/tg3.h 2011-03-21 18:31:35.000000000 -0400
27344@@ -131,6 +131,7 @@ 26553@@ -131,6 +131,7 @@
27345 #define CHIPREV_ID_5750_A0 0x4000 26554 #define CHIPREV_ID_5750_A0 0x4000
27346 #define CHIPREV_ID_5750_A1 0x4001 26555 #define CHIPREV_ID_5750_A1 0x4001
@@ -27349,9 +26558,9 @@ diff -urNp linux-2.6.38.3/drivers/net/tg3.h linux-2.6.38.3/drivers/net/tg3.h
27349 #define CHIPREV_ID_5750_C2 0x4202 26558 #define CHIPREV_ID_5750_C2 0x4202
27350 #define CHIPREV_ID_5752_A0_HW 0x5000 26559 #define CHIPREV_ID_5752_A0_HW 0x5000
27351 #define CHIPREV_ID_5752_A0 0x6000 26560 #define CHIPREV_ID_5752_A0 0x6000
27352diff -urNp linux-2.6.38.3/drivers/net/tulip/de4x5.c linux-2.6.38.3/drivers/net/tulip/de4x5.c 26561diff -urNp linux-2.6.38.2/drivers/net/tulip/de4x5.c linux-2.6.38.2/drivers/net/tulip/de4x5.c
27353--- linux-2.6.38.3/drivers/net/tulip/de4x5.c 2011-03-14 21:20:32.000000000 -0400 26562--- linux-2.6.38.2/drivers/net/tulip/de4x5.c 2011-03-14 21:20:32.000000000 -0400
27354+++ linux-2.6.38.3/drivers/net/tulip/de4x5.c 2011-04-17 15:57:32.000000000 -0400 26563+++ linux-2.6.38.2/drivers/net/tulip/de4x5.c 2011-03-21 18:31:35.000000000 -0400
27355@@ -5401,7 +5401,7 @@ de4x5_ioctl(struct net_device *dev, stru 26564@@ -5401,7 +5401,7 @@ de4x5_ioctl(struct net_device *dev, stru
27356 for (i=0; i<ETH_ALEN; i++) { 26565 for (i=0; i<ETH_ALEN; i++) {
27357 tmp.addr[i] = dev->dev_addr[i]; 26566 tmp.addr[i] = dev->dev_addr[i];
@@ -27370,9 +26579,9 @@ diff -urNp linux-2.6.38.3/drivers/net/tulip/de4x5.c linux-2.6.38.3/drivers/net/t
27370 return -EFAULT; 26579 return -EFAULT;
27371 break; 26580 break;
27372 } 26581 }
27373diff -urNp linux-2.6.38.3/drivers/net/usb/hso.c linux-2.6.38.3/drivers/net/usb/hso.c 26582diff -urNp linux-2.6.38.2/drivers/net/usb/hso.c linux-2.6.38.2/drivers/net/usb/hso.c
27374--- linux-2.6.38.3/drivers/net/usb/hso.c 2011-03-14 21:20:32.000000000 -0400 26583--- linux-2.6.38.2/drivers/net/usb/hso.c 2011-03-14 21:20:32.000000000 -0400
27375+++ linux-2.6.38.3/drivers/net/usb/hso.c 2011-04-17 15:57:32.000000000 -0400 26584+++ linux-2.6.38.2/drivers/net/usb/hso.c 2011-03-21 18:31:35.000000000 -0400
27376@@ -71,7 +71,7 @@ 26585@@ -71,7 +71,7 @@
27377 #include <asm/byteorder.h> 26586 #include <asm/byteorder.h>
27378 #include <linux/serial_core.h> 26587 #include <linux/serial_core.h>
@@ -27469,22 +26678,9 @@ diff -urNp linux-2.6.38.3/drivers/net/usb/hso.c linux-2.6.38.3/drivers/net/usb/h
27469 result = 26678 result =
27470 hso_start_serial_device(serial_table[i], GFP_NOIO); 26679 hso_start_serial_device(serial_table[i], GFP_NOIO);
27471 hso_kick_transmit(dev2ser(serial_table[i])); 26680 hso_kick_transmit(dev2ser(serial_table[i]));
27472diff -urNp linux-2.6.38.3/drivers/net/vmxnet3/vmxnet3_ethtool.c linux-2.6.38.3/drivers/net/vmxnet3/vmxnet3_ethtool.c 26681diff -urNp linux-2.6.38.2/drivers/net/wireless/b43/debugfs.c linux-2.6.38.2/drivers/net/wireless/b43/debugfs.c
27473--- linux-2.6.38.3/drivers/net/vmxnet3/vmxnet3_ethtool.c 2011-04-18 17:27:18.000000000 -0400 26682--- linux-2.6.38.2/drivers/net/wireless/b43/debugfs.c 2011-03-14 21:20:32.000000000 -0400
27474+++ linux-2.6.38.3/drivers/net/vmxnet3/vmxnet3_ethtool.c 2011-04-17 16:53:41.000000000 -0400 26683+++ linux-2.6.38.2/drivers/net/wireless/b43/debugfs.c 2011-03-21 18:31:35.000000000 -0400
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
27488@@ -43,7 +43,7 @@ static struct dentry *rootdir; 26684@@ -43,7 +43,7 @@ static struct dentry *rootdir;
27489 struct b43_debugfs_fops { 26685 struct b43_debugfs_fops {
27490 ssize_t (*read)(struct b43_wldev *dev, char *buf, size_t bufsize); 26686 ssize_t (*read)(struct b43_wldev *dev, char *buf, size_t bufsize);
@@ -27494,9 +26690,9 @@ diff -urNp linux-2.6.38.3/drivers/net/wireless/b43/debugfs.c linux-2.6.38.3/driv
27494 /* Offset of struct b43_dfs_file in struct b43_dfsentry */ 26690 /* Offset of struct b43_dfs_file in struct b43_dfsentry */
27495 size_t file_struct_offset; 26691 size_t file_struct_offset;
27496 }; 26692 };
27497diff -urNp linux-2.6.38.3/drivers/net/wireless/b43legacy/debugfs.c linux-2.6.38.3/drivers/net/wireless/b43legacy/debugfs.c 26693diff -urNp linux-2.6.38.2/drivers/net/wireless/b43legacy/debugfs.c linux-2.6.38.2/drivers/net/wireless/b43legacy/debugfs.c
27498--- linux-2.6.38.3/drivers/net/wireless/b43legacy/debugfs.c 2011-03-14 21:20:32.000000000 -0400 26694--- linux-2.6.38.2/drivers/net/wireless/b43legacy/debugfs.c 2011-03-14 21:20:32.000000000 -0400
27499+++ linux-2.6.38.3/drivers/net/wireless/b43legacy/debugfs.c 2011-04-17 15:57:32.000000000 -0400 26695+++ linux-2.6.38.2/drivers/net/wireless/b43legacy/debugfs.c 2011-03-21 18:31:35.000000000 -0400
27500@@ -44,7 +44,7 @@ static struct dentry *rootdir; 26696@@ -44,7 +44,7 @@ static struct dentry *rootdir;
27501 struct b43legacy_debugfs_fops { 26697 struct b43legacy_debugfs_fops {
27502 ssize_t (*read)(struct b43legacy_wldev *dev, char *buf, size_t bufsize); 26698 ssize_t (*read)(struct b43legacy_wldev *dev, char *buf, size_t bufsize);
@@ -27506,9 +26702,9 @@ diff -urNp linux-2.6.38.3/drivers/net/wireless/b43legacy/debugfs.c linux-2.6.38.
27506 /* Offset of struct b43legacy_dfs_file in struct b43legacy_dfsentry */ 26702 /* Offset of struct b43legacy_dfs_file in struct b43legacy_dfsentry */
27507 size_t file_struct_offset; 26703 size_t file_struct_offset;
27508 /* Take wl->irq_lock before calling read/write? */ 26704 /* Take wl->irq_lock before calling read/write? */
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 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
27510--- linux-2.6.38.3/drivers/net/wireless/iwlwifi/iwl-debug.h 2011-03-14 21:20:32.000000000 -0400 26706--- linux-2.6.38.2/drivers/net/wireless/iwlwifi/iwl-debug.h 2011-03-14 21:20:32.000000000 -0400
27511+++ linux-2.6.38.3/drivers/net/wireless/iwlwifi/iwl-debug.h 2011-04-17 15:57:32.000000000 -0400 26707+++ linux-2.6.38.2/drivers/net/wireless/iwlwifi/iwl-debug.h 2011-03-21 18:31:35.000000000 -0400
27512@@ -68,8 +68,8 @@ do { 26708@@ -68,8 +68,8 @@ do {
27513 } while (0) 26709 } while (0)
27514 26710
@@ -27520,9 +26716,9 @@ diff -urNp linux-2.6.38.3/drivers/net/wireless/iwlwifi/iwl-debug.h linux-2.6.38.
27520 static inline void iwl_print_hex_dump(struct iwl_priv *priv, int level, 26716 static inline void iwl_print_hex_dump(struct iwl_priv *priv, int level,
27521 const void *p, u32 len) 26717 const void *p, u32 len)
27522 {} 26718 {}
27523diff -urNp linux-2.6.38.3/drivers/net/wireless/libertas/debugfs.c linux-2.6.38.3/drivers/net/wireless/libertas/debugfs.c 26719diff -urNp linux-2.6.38.2/drivers/net/wireless/libertas/debugfs.c linux-2.6.38.2/drivers/net/wireless/libertas/debugfs.c
27524--- linux-2.6.38.3/drivers/net/wireless/libertas/debugfs.c 2011-03-14 21:20:32.000000000 -0400 26720--- linux-2.6.38.2/drivers/net/wireless/libertas/debugfs.c 2011-03-14 21:20:32.000000000 -0400
27525+++ linux-2.6.38.3/drivers/net/wireless/libertas/debugfs.c 2011-04-17 15:57:32.000000000 -0400 26721+++ linux-2.6.38.2/drivers/net/wireless/libertas/debugfs.c 2011-03-21 18:31:35.000000000 -0400
27526@@ -702,7 +702,7 @@ out_unlock: 26722@@ -702,7 +702,7 @@ out_unlock:
27527 struct lbs_debugfs_files { 26723 struct lbs_debugfs_files {
27528 const char *name; 26724 const char *name;
@@ -27532,9 +26728,9 @@ diff -urNp linux-2.6.38.3/drivers/net/wireless/libertas/debugfs.c linux-2.6.38.3
27532 }; 26728 };
27533 26729
27534 static const struct lbs_debugfs_files debugfs_files[] = { 26730 static const struct lbs_debugfs_files debugfs_files[] = {
27535diff -urNp linux-2.6.38.3/drivers/net/wireless/rndis_wlan.c linux-2.6.38.3/drivers/net/wireless/rndis_wlan.c 26731diff -urNp linux-2.6.38.2/drivers/net/wireless/rndis_wlan.c linux-2.6.38.2/drivers/net/wireless/rndis_wlan.c
27536--- linux-2.6.38.3/drivers/net/wireless/rndis_wlan.c 2011-03-14 21:20:32.000000000 -0400 26732--- linux-2.6.38.2/drivers/net/wireless/rndis_wlan.c 2011-03-14 21:20:32.000000000 -0400
27537+++ linux-2.6.38.3/drivers/net/wireless/rndis_wlan.c 2011-04-17 15:57:32.000000000 -0400 26733+++ linux-2.6.38.2/drivers/net/wireless/rndis_wlan.c 2011-03-21 18:31:35.000000000 -0400
27538@@ -1277,7 +1277,7 @@ static int set_rts_threshold(struct usbn 26734@@ -1277,7 +1277,7 @@ static int set_rts_threshold(struct usbn
27539 26735
27540 netdev_dbg(usbdev->net, "%s(): %i\n", __func__, rts_threshold); 26736 netdev_dbg(usbdev->net, "%s(): %i\n", __func__, rts_threshold);
@@ -27544,9 +26740,9 @@ diff -urNp linux-2.6.38.3/drivers/net/wireless/rndis_wlan.c linux-2.6.38.3/drive
27544 rts_threshold = 2347; 26740 rts_threshold = 2347;
27545 26741
27546 tmp = cpu_to_le32(rts_threshold); 26742 tmp = cpu_to_le32(rts_threshold);
27547diff -urNp linux-2.6.38.3/drivers/oprofile/buffer_sync.c linux-2.6.38.3/drivers/oprofile/buffer_sync.c 26743diff -urNp linux-2.6.38.2/drivers/oprofile/buffer_sync.c linux-2.6.38.2/drivers/oprofile/buffer_sync.c
27548--- linux-2.6.38.3/drivers/oprofile/buffer_sync.c 2011-03-14 21:20:32.000000000 -0400 26744--- linux-2.6.38.2/drivers/oprofile/buffer_sync.c 2011-03-14 21:20:32.000000000 -0400
27549+++ linux-2.6.38.3/drivers/oprofile/buffer_sync.c 2011-04-17 15:57:32.000000000 -0400 26745+++ linux-2.6.38.2/drivers/oprofile/buffer_sync.c 2011-03-21 18:31:35.000000000 -0400
27550@@ -342,7 +342,7 @@ static void add_data(struct op_entry *en 26746@@ -342,7 +342,7 @@ static void add_data(struct op_entry *en
27551 if (cookie == NO_COOKIE) 26747 if (cookie == NO_COOKIE)
27552 offset = pc; 26748 offset = pc;
@@ -27582,9 +26778,9 @@ diff -urNp linux-2.6.38.3/drivers/oprofile/buffer_sync.c linux-2.6.38.3/drivers/
27582 } 26778 }
27583 } 26779 }
27584 release_mm(mm); 26780 release_mm(mm);
27585diff -urNp linux-2.6.38.3/drivers/oprofile/event_buffer.c linux-2.6.38.3/drivers/oprofile/event_buffer.c 26781diff -urNp linux-2.6.38.2/drivers/oprofile/event_buffer.c linux-2.6.38.2/drivers/oprofile/event_buffer.c
27586--- linux-2.6.38.3/drivers/oprofile/event_buffer.c 2011-03-14 21:20:32.000000000 -0400 26782--- linux-2.6.38.2/drivers/oprofile/event_buffer.c 2011-03-14 21:20:32.000000000 -0400
27587+++ linux-2.6.38.3/drivers/oprofile/event_buffer.c 2011-04-17 15:57:32.000000000 -0400 26783+++ linux-2.6.38.2/drivers/oprofile/event_buffer.c 2011-03-21 18:31:35.000000000 -0400
27588@@ -53,7 +53,7 @@ void add_event_entry(unsigned long value 26784@@ -53,7 +53,7 @@ void add_event_entry(unsigned long value
27589 } 26785 }
27590 26786
@@ -27594,9 +26790,9 @@ diff -urNp linux-2.6.38.3/drivers/oprofile/event_buffer.c linux-2.6.38.3/drivers
27594 return; 26790 return;
27595 } 26791 }
27596 26792
27597diff -urNp linux-2.6.38.3/drivers/oprofile/oprof.c linux-2.6.38.3/drivers/oprofile/oprof.c 26793diff -urNp linux-2.6.38.2/drivers/oprofile/oprof.c linux-2.6.38.2/drivers/oprofile/oprof.c
27598--- linux-2.6.38.3/drivers/oprofile/oprof.c 2011-03-14 21:20:32.000000000 -0400 26794--- linux-2.6.38.2/drivers/oprofile/oprof.c 2011-03-14 21:20:32.000000000 -0400
27599+++ linux-2.6.38.3/drivers/oprofile/oprof.c 2011-04-17 15:57:32.000000000 -0400 26795+++ linux-2.6.38.2/drivers/oprofile/oprof.c 2011-03-21 18:31:35.000000000 -0400
27600@@ -110,7 +110,7 @@ static void switch_worker(struct work_st 26796@@ -110,7 +110,7 @@ static void switch_worker(struct work_st
27601 if (oprofile_ops.switch_events()) 26797 if (oprofile_ops.switch_events())
27602 return; 26798 return;
@@ -27606,9 +26802,9 @@ diff -urNp linux-2.6.38.3/drivers/oprofile/oprof.c linux-2.6.38.3/drivers/oprofi
27606 start_switch_worker(); 26802 start_switch_worker();
27607 } 26803 }
27608 26804
27609diff -urNp linux-2.6.38.3/drivers/oprofile/oprofilefs.c linux-2.6.38.3/drivers/oprofile/oprofilefs.c 26805diff -urNp linux-2.6.38.2/drivers/oprofile/oprofilefs.c linux-2.6.38.2/drivers/oprofile/oprofilefs.c
27610--- linux-2.6.38.3/drivers/oprofile/oprofilefs.c 2011-03-14 21:20:32.000000000 -0400 26806--- linux-2.6.38.2/drivers/oprofile/oprofilefs.c 2011-03-14 21:20:32.000000000 -0400
27611+++ linux-2.6.38.3/drivers/oprofile/oprofilefs.c 2011-04-17 15:57:32.000000000 -0400 26807+++ linux-2.6.38.2/drivers/oprofile/oprofilefs.c 2011-03-21 18:31:35.000000000 -0400
27612@@ -186,7 +186,7 @@ static const struct file_operations atom 26808@@ -186,7 +186,7 @@ static const struct file_operations atom
27613 26809
27614 26810
@@ -27618,9 +26814,9 @@ diff -urNp linux-2.6.38.3/drivers/oprofile/oprofilefs.c linux-2.6.38.3/drivers/o
27618 { 26814 {
27619 return __oprofilefs_create_file(sb, root, name, 26815 return __oprofilefs_create_file(sb, root, name,
27620 &atomic_ro_fops, 0444, val); 26816 &atomic_ro_fops, 0444, val);
27621diff -urNp linux-2.6.38.3/drivers/oprofile/oprofile_stats.c linux-2.6.38.3/drivers/oprofile/oprofile_stats.c 26817diff -urNp linux-2.6.38.2/drivers/oprofile/oprofile_stats.c linux-2.6.38.2/drivers/oprofile/oprofile_stats.c
27622--- linux-2.6.38.3/drivers/oprofile/oprofile_stats.c 2011-03-14 21:20:32.000000000 -0400 26818--- linux-2.6.38.2/drivers/oprofile/oprofile_stats.c 2011-03-14 21:20:32.000000000 -0400
27623+++ linux-2.6.38.3/drivers/oprofile/oprofile_stats.c 2011-04-17 15:57:32.000000000 -0400 26819+++ linux-2.6.38.2/drivers/oprofile/oprofile_stats.c 2011-03-21 18:31:35.000000000 -0400
27624@@ -30,11 +30,11 @@ void oprofile_reset_stats(void) 26820@@ -30,11 +30,11 @@ void oprofile_reset_stats(void)
27625 cpu_buf->sample_invalid_eip = 0; 26821 cpu_buf->sample_invalid_eip = 0;
27626 } 26822 }
@@ -27638,9 +26834,9 @@ diff -urNp linux-2.6.38.3/drivers/oprofile/oprofile_stats.c linux-2.6.38.3/drive
27638 } 26834 }
27639 26835
27640 26836
27641diff -urNp linux-2.6.38.3/drivers/oprofile/oprofile_stats.h linux-2.6.38.3/drivers/oprofile/oprofile_stats.h 26837diff -urNp linux-2.6.38.2/drivers/oprofile/oprofile_stats.h linux-2.6.38.2/drivers/oprofile/oprofile_stats.h
27642--- linux-2.6.38.3/drivers/oprofile/oprofile_stats.h 2011-03-14 21:20:32.000000000 -0400 26838--- linux-2.6.38.2/drivers/oprofile/oprofile_stats.h 2011-03-14 21:20:32.000000000 -0400
27643+++ linux-2.6.38.3/drivers/oprofile/oprofile_stats.h 2011-04-17 15:57:32.000000000 -0400 26839+++ linux-2.6.38.2/drivers/oprofile/oprofile_stats.h 2011-03-21 18:31:35.000000000 -0400
27644@@ -13,11 +13,11 @@ 26840@@ -13,11 +13,11 @@
27645 #include <asm/atomic.h> 26841 #include <asm/atomic.h>
27646 26842
@@ -27658,9 +26854,9 @@ diff -urNp linux-2.6.38.3/drivers/oprofile/oprofile_stats.h linux-2.6.38.3/drive
27658 }; 26854 };
27659 26855
27660 extern struct oprofile_stat_struct oprofile_stats; 26856 extern struct oprofile_stat_struct oprofile_stats;
27661diff -urNp linux-2.6.38.3/drivers/parport/procfs.c linux-2.6.38.3/drivers/parport/procfs.c 26857diff -urNp linux-2.6.38.2/drivers/parport/procfs.c linux-2.6.38.2/drivers/parport/procfs.c
27662--- linux-2.6.38.3/drivers/parport/procfs.c 2011-03-14 21:20:32.000000000 -0400 26858--- linux-2.6.38.2/drivers/parport/procfs.c 2011-03-14 21:20:32.000000000 -0400
27663+++ linux-2.6.38.3/drivers/parport/procfs.c 2011-04-17 15:57:32.000000000 -0400 26859+++ linux-2.6.38.2/drivers/parport/procfs.c 2011-03-21 18:31:35.000000000 -0400
27664@@ -64,7 +64,7 @@ static int do_active_device(ctl_table *t 26860@@ -64,7 +64,7 @@ static int do_active_device(ctl_table *t
27665 26861
27666 *ppos += len; 26862 *ppos += len;
@@ -27679,9 +26875,9 @@ diff -urNp linux-2.6.38.3/drivers/parport/procfs.c linux-2.6.38.3/drivers/parpor
27679 } 26875 }
27680 #endif /* IEEE1284.3 support. */ 26876 #endif /* IEEE1284.3 support. */
27681 26877
27682diff -urNp linux-2.6.38.3/drivers/pci/hotplug/acpiphp_glue.c linux-2.6.38.3/drivers/pci/hotplug/acpiphp_glue.c 26878diff -urNp linux-2.6.38.2/drivers/pci/hotplug/acpiphp_glue.c linux-2.6.38.2/drivers/pci/hotplug/acpiphp_glue.c
27683--- linux-2.6.38.3/drivers/pci/hotplug/acpiphp_glue.c 2011-04-18 17:27:16.000000000 -0400 26879--- linux-2.6.38.2/drivers/pci/hotplug/acpiphp_glue.c 2011-03-28 17:42:40.000000000 -0400
27684+++ linux-2.6.38.3/drivers/pci/hotplug/acpiphp_glue.c 2011-04-17 15:57:32.000000000 -0400 26880+++ linux-2.6.38.2/drivers/pci/hotplug/acpiphp_glue.c 2011-03-28 17:42:53.000000000 -0400
27685@@ -110,7 +110,7 @@ static int post_dock_fixups(struct notif 26881@@ -110,7 +110,7 @@ static int post_dock_fixups(struct notif
27686 } 26882 }
27687 26883
@@ -27691,9 +26887,9 @@ diff -urNp linux-2.6.38.3/drivers/pci/hotplug/acpiphp_glue.c linux-2.6.38.3/driv
27691 .handler = handle_hotplug_event_func, 26887 .handler = handle_hotplug_event_func,
27692 }; 26888 };
27693 26889
27694diff -urNp linux-2.6.38.3/drivers/pci/hotplug/cpqphp_nvram.c linux-2.6.38.3/drivers/pci/hotplug/cpqphp_nvram.c 26890diff -urNp linux-2.6.38.2/drivers/pci/hotplug/cpqphp_nvram.c linux-2.6.38.2/drivers/pci/hotplug/cpqphp_nvram.c
27695--- linux-2.6.38.3/drivers/pci/hotplug/cpqphp_nvram.c 2011-03-14 21:20:32.000000000 -0400 26891--- linux-2.6.38.2/drivers/pci/hotplug/cpqphp_nvram.c 2011-03-14 21:20:32.000000000 -0400
27696+++ linux-2.6.38.3/drivers/pci/hotplug/cpqphp_nvram.c 2011-04-17 15:57:32.000000000 -0400 26892+++ linux-2.6.38.2/drivers/pci/hotplug/cpqphp_nvram.c 2011-03-21 18:31:35.000000000 -0400
27697@@ -428,9 +428,13 @@ static u32 store_HRT (void __iomem *rom_ 26893@@ -428,9 +428,13 @@ static u32 store_HRT (void __iomem *rom_
27698 26894
27699 void compaq_nvram_init (void __iomem *rom_start) 26895 void compaq_nvram_init (void __iomem *rom_start)
@@ -27708,9 +26904,9 @@ diff -urNp linux-2.6.38.3/drivers/pci/hotplug/cpqphp_nvram.c linux-2.6.38.3/driv
27708 dbg("int15 entry = %p\n", compaq_int15_entry_point); 26904 dbg("int15 entry = %p\n", compaq_int15_entry_point);
27709 26905
27710 /* initialize our int15 lock */ 26906 /* initialize our int15 lock */
27711diff -urNp linux-2.6.38.3/drivers/pci/intel-iommu.c linux-2.6.38.3/drivers/pci/intel-iommu.c 26907diff -urNp linux-2.6.38.2/drivers/pci/intel-iommu.c linux-2.6.38.2/drivers/pci/intel-iommu.c
27712--- linux-2.6.38.3/drivers/pci/intel-iommu.c 2011-03-14 21:20:32.000000000 -0400 26908--- linux-2.6.38.2/drivers/pci/intel-iommu.c 2011-03-14 21:20:32.000000000 -0400
27713+++ linux-2.6.38.3/drivers/pci/intel-iommu.c 2011-04-17 15:57:32.000000000 -0400 26909+++ linux-2.6.38.2/drivers/pci/intel-iommu.c 2011-03-21 18:31:35.000000000 -0400
27714@@ -2934,7 +2934,7 @@ static int intel_mapping_error(struct de 26910@@ -2934,7 +2934,7 @@ static int intel_mapping_error(struct de
27715 return !dma_addr; 26911 return !dma_addr;
27716 } 26912 }
@@ -27720,9 +26916,9 @@ diff -urNp linux-2.6.38.3/drivers/pci/intel-iommu.c linux-2.6.38.3/drivers/pci/i
27720 .alloc_coherent = intel_alloc_coherent, 26916 .alloc_coherent = intel_alloc_coherent,
27721 .free_coherent = intel_free_coherent, 26917 .free_coherent = intel_free_coherent,
27722 .map_sg = intel_map_sg, 26918 .map_sg = intel_map_sg,
27723diff -urNp linux-2.6.38.3/drivers/pci/pcie/aspm.c linux-2.6.38.3/drivers/pci/pcie/aspm.c 26919diff -urNp linux-2.6.38.2/drivers/pci/pcie/aspm.c linux-2.6.38.2/drivers/pci/pcie/aspm.c
27724--- linux-2.6.38.3/drivers/pci/pcie/aspm.c 2011-04-18 17:27:18.000000000 -0400 26920--- linux-2.6.38.2/drivers/pci/pcie/aspm.c 2011-03-14 21:20:32.000000000 -0400
27725+++ linux-2.6.38.3/drivers/pci/pcie/aspm.c 2011-04-17 16:53:41.000000000 -0400 26921+++ linux-2.6.38.2/drivers/pci/pcie/aspm.c 2011-03-21 18:31:35.000000000 -0400
27726@@ -27,9 +27,9 @@ 26922@@ -27,9 +27,9 @@
27727 #define MODULE_PARAM_PREFIX "pcie_aspm." 26923 #define MODULE_PARAM_PREFIX "pcie_aspm."
27728 26924
@@ -27736,9 +26932,9 @@ diff -urNp linux-2.6.38.3/drivers/pci/pcie/aspm.c linux-2.6.38.3/drivers/pci/pci
27736 #define ASPM_STATE_L0S (ASPM_STATE_L0S_UP | ASPM_STATE_L0S_DW) 26932 #define ASPM_STATE_L0S (ASPM_STATE_L0S_UP | ASPM_STATE_L0S_DW)
27737 #define ASPM_STATE_ALL (ASPM_STATE_L0S | ASPM_STATE_L1) 26933 #define ASPM_STATE_ALL (ASPM_STATE_L0S | ASPM_STATE_L1)
27738 26934
27739diff -urNp linux-2.6.38.3/drivers/pci/pcie/portdrv_pci.c linux-2.6.38.3/drivers/pci/pcie/portdrv_pci.c 26935diff -urNp linux-2.6.38.2/drivers/pci/pcie/portdrv_pci.c linux-2.6.38.2/drivers/pci/pcie/portdrv_pci.c
27740--- linux-2.6.38.3/drivers/pci/pcie/portdrv_pci.c 2011-03-14 21:20:32.000000000 -0400 26936--- linux-2.6.38.2/drivers/pci/pcie/portdrv_pci.c 2011-03-14 21:20:32.000000000 -0400
27741+++ linux-2.6.38.3/drivers/pci/pcie/portdrv_pci.c 2011-04-17 15:57:32.000000000 -0400 26937+++ linux-2.6.38.2/drivers/pci/pcie/portdrv_pci.c 2011-03-21 18:31:35.000000000 -0400
27742@@ -307,7 +307,7 @@ static void pcie_portdrv_err_resume(stru 26938@@ -307,7 +307,7 @@ static void pcie_portdrv_err_resume(stru
27743 static const struct pci_device_id port_pci_ids[] = { { 26939 static const struct pci_device_id port_pci_ids[] = { {
27744 /* handle any PCI-Express port */ 26940 /* handle any PCI-Express port */
@@ -27748,9 +26944,9 @@ diff -urNp linux-2.6.38.3/drivers/pci/pcie/portdrv_pci.c linux-2.6.38.3/drivers/
27748 }; 26944 };
27749 MODULE_DEVICE_TABLE(pci, port_pci_ids); 26945 MODULE_DEVICE_TABLE(pci, port_pci_ids);
27750 26946
27751diff -urNp linux-2.6.38.3/drivers/pci/probe.c linux-2.6.38.3/drivers/pci/probe.c 26947diff -urNp linux-2.6.38.2/drivers/pci/probe.c linux-2.6.38.2/drivers/pci/probe.c
27752--- linux-2.6.38.3/drivers/pci/probe.c 2011-03-14 21:20:32.000000000 -0400 26948--- linux-2.6.38.2/drivers/pci/probe.c 2011-03-14 21:20:32.000000000 -0400
27753+++ linux-2.6.38.3/drivers/pci/probe.c 2011-04-17 15:57:32.000000000 -0400 26949+++ linux-2.6.38.2/drivers/pci/probe.c 2011-03-21 18:31:35.000000000 -0400
27754@@ -62,14 +62,14 @@ static ssize_t pci_bus_show_cpuaffinity( 26950@@ -62,14 +62,14 @@ static ssize_t pci_bus_show_cpuaffinity(
27755 return ret; 26951 return ret;
27756 } 26952 }
@@ -27777,9 +26973,9 @@ diff -urNp linux-2.6.38.3/drivers/pci/probe.c linux-2.6.38.3/drivers/pci/probe.c
27777 26973
27778 if (!dev->mmio_always_on) { 26974 if (!dev->mmio_always_on) {
27779 pci_read_config_word(dev, PCI_COMMAND, &orig_cmd); 26975 pci_read_config_word(dev, PCI_COMMAND, &orig_cmd);
27780diff -urNp linux-2.6.38.3/drivers/pci/proc.c linux-2.6.38.3/drivers/pci/proc.c 26976diff -urNp linux-2.6.38.2/drivers/pci/proc.c linux-2.6.38.2/drivers/pci/proc.c
27781--- linux-2.6.38.3/drivers/pci/proc.c 2011-03-14 21:20:32.000000000 -0400 26977--- linux-2.6.38.2/drivers/pci/proc.c 2011-03-14 21:20:32.000000000 -0400
27782+++ linux-2.6.38.3/drivers/pci/proc.c 2011-04-17 15:57:32.000000000 -0400 26978+++ linux-2.6.38.2/drivers/pci/proc.c 2011-03-21 18:31:35.000000000 -0400
27783@@ -476,7 +476,16 @@ static const struct file_operations proc 26979@@ -476,7 +476,16 @@ static const struct file_operations proc
27784 static int __init pci_proc_init(void) 26980 static int __init pci_proc_init(void)
27785 { 26981 {
@@ -27797,9 +26993,9 @@ diff -urNp linux-2.6.38.3/drivers/pci/proc.c linux-2.6.38.3/drivers/pci/proc.c
27797 proc_create("devices", 0, proc_bus_pci_dir, 26993 proc_create("devices", 0, proc_bus_pci_dir,
27798 &proc_bus_pci_dev_operations); 26994 &proc_bus_pci_dev_operations);
27799 proc_initialized = 1; 26995 proc_initialized = 1;
27800diff -urNp linux-2.6.38.3/drivers/pcmcia/ti113x.h linux-2.6.38.3/drivers/pcmcia/ti113x.h 26996diff -urNp linux-2.6.38.2/drivers/pcmcia/ti113x.h linux-2.6.38.2/drivers/pcmcia/ti113x.h
27801--- linux-2.6.38.3/drivers/pcmcia/ti113x.h 2011-03-14 21:20:32.000000000 -0400 26997--- linux-2.6.38.2/drivers/pcmcia/ti113x.h 2011-03-14 21:20:32.000000000 -0400
27802+++ linux-2.6.38.3/drivers/pcmcia/ti113x.h 2011-04-17 15:57:32.000000000 -0400 26998+++ linux-2.6.38.2/drivers/pcmcia/ti113x.h 2011-03-21 18:31:35.000000000 -0400
27803@@ -936,7 +936,7 @@ static struct pci_device_id ene_tune_tbl 26999@@ -936,7 +936,7 @@ static struct pci_device_id ene_tune_tbl
27804 DEVID(PCI_VENDOR_ID_MOTOROLA, 0x3410, 0xECC0, PCI_ANY_ID, 27000 DEVID(PCI_VENDOR_ID_MOTOROLA, 0x3410, 0xECC0, PCI_ANY_ID,
27805 ENE_TEST_C9_TLTENABLE | ENE_TEST_C9_PFENABLE, ENE_TEST_C9_TLTENABLE), 27001 ENE_TEST_C9_TLTENABLE | ENE_TEST_C9_PFENABLE, ENE_TEST_C9_TLTENABLE),
@@ -27809,9 +27005,9 @@ diff -urNp linux-2.6.38.3/drivers/pcmcia/ti113x.h linux-2.6.38.3/drivers/pcmcia/
27809 }; 27005 };
27810 27006
27811 static void ene_tune_bridge(struct pcmcia_socket *sock, struct pci_bus *bus) 27007 static void ene_tune_bridge(struct pcmcia_socket *sock, struct pci_bus *bus)
27812diff -urNp linux-2.6.38.3/drivers/pcmcia/yenta_socket.c linux-2.6.38.3/drivers/pcmcia/yenta_socket.c 27008diff -urNp linux-2.6.38.2/drivers/pcmcia/yenta_socket.c linux-2.6.38.2/drivers/pcmcia/yenta_socket.c
27813--- linux-2.6.38.3/drivers/pcmcia/yenta_socket.c 2011-03-14 21:20:32.000000000 -0400 27009--- linux-2.6.38.2/drivers/pcmcia/yenta_socket.c 2011-03-14 21:20:32.000000000 -0400
27814+++ linux-2.6.38.3/drivers/pcmcia/yenta_socket.c 2011-04-17 15:57:32.000000000 -0400 27010+++ linux-2.6.38.2/drivers/pcmcia/yenta_socket.c 2011-03-21 18:31:35.000000000 -0400
27815@@ -1426,7 +1426,7 @@ static struct pci_device_id yenta_table[ 27011@@ -1426,7 +1426,7 @@ static struct pci_device_id yenta_table[
27816 27012
27817 /* match any cardbus bridge */ 27013 /* match any cardbus bridge */
@@ -27821,9 +27017,9 @@ diff -urNp linux-2.6.38.3/drivers/pcmcia/yenta_socket.c linux-2.6.38.3/drivers/p
27821 }; 27017 };
27822 MODULE_DEVICE_TABLE(pci, yenta_table); 27018 MODULE_DEVICE_TABLE(pci, yenta_table);
27823 27019
27824diff -urNp linux-2.6.38.3/drivers/platform/x86/asus-laptop.c linux-2.6.38.3/drivers/platform/x86/asus-laptop.c 27020diff -urNp linux-2.6.38.2/drivers/platform/x86/asus-laptop.c linux-2.6.38.2/drivers/platform/x86/asus-laptop.c
27825--- linux-2.6.38.3/drivers/platform/x86/asus-laptop.c 2011-03-14 21:20:32.000000000 -0400 27021--- linux-2.6.38.2/drivers/platform/x86/asus-laptop.c 2011-03-14 21:20:32.000000000 -0400
27826+++ linux-2.6.38.3/drivers/platform/x86/asus-laptop.c 2011-04-17 15:57:32.000000000 -0400 27022+++ linux-2.6.38.2/drivers/platform/x86/asus-laptop.c 2011-03-21 18:31:35.000000000 -0400
27827@@ -243,7 +243,6 @@ struct asus_laptop { 27023@@ -243,7 +243,6 @@ struct asus_laptop {
27828 struct asus_led gled; 27024 struct asus_led gled;
27829 struct asus_led kled; 27025 struct asus_led kled;
@@ -27832,9 +27028,9 @@ diff -urNp linux-2.6.38.3/drivers/platform/x86/asus-laptop.c linux-2.6.38.3/driv
27832 int wireless_status; 27028 int wireless_status;
27833 bool have_rsts; 27029 bool have_rsts;
27834 int lcd_state; 27030 int lcd_state;
27835diff -urNp linux-2.6.38.3/drivers/pnp/pnpbios/bioscalls.c linux-2.6.38.3/drivers/pnp/pnpbios/bioscalls.c 27031diff -urNp linux-2.6.38.2/drivers/pnp/pnpbios/bioscalls.c linux-2.6.38.2/drivers/pnp/pnpbios/bioscalls.c
27836--- linux-2.6.38.3/drivers/pnp/pnpbios/bioscalls.c 2011-03-14 21:20:32.000000000 -0400 27032--- linux-2.6.38.2/drivers/pnp/pnpbios/bioscalls.c 2011-03-14 21:20:32.000000000 -0400
27837+++ linux-2.6.38.3/drivers/pnp/pnpbios/bioscalls.c 2011-04-17 15:57:32.000000000 -0400 27033+++ linux-2.6.38.2/drivers/pnp/pnpbios/bioscalls.c 2011-03-21 18:31:35.000000000 -0400
27838@@ -59,7 +59,7 @@ do { \ 27034@@ -59,7 +59,7 @@ do { \
27839 set_desc_limit(&gdt[(selname) >> 3], (size) - 1); \ 27035 set_desc_limit(&gdt[(selname) >> 3], (size) - 1); \
27840 } while(0) 27036 } while(0)
@@ -27891,9 +27087,9 @@ diff -urNp linux-2.6.38.3/drivers/pnp/pnpbios/bioscalls.c linux-2.6.38.3/drivers
27891+ 27087+
27892+ pax_close_kernel(); 27088+ pax_close_kernel();
27893 } 27089 }
27894diff -urNp linux-2.6.38.3/drivers/pnp/quirks.c linux-2.6.38.3/drivers/pnp/quirks.c 27090diff -urNp linux-2.6.38.2/drivers/pnp/quirks.c linux-2.6.38.2/drivers/pnp/quirks.c
27895--- linux-2.6.38.3/drivers/pnp/quirks.c 2011-03-14 21:20:32.000000000 -0400 27091--- linux-2.6.38.2/drivers/pnp/quirks.c 2011-03-14 21:20:32.000000000 -0400
27896+++ linux-2.6.38.3/drivers/pnp/quirks.c 2011-04-17 15:57:32.000000000 -0400 27092+++ linux-2.6.38.2/drivers/pnp/quirks.c 2011-03-21 18:31:35.000000000 -0400
27897@@ -322,7 +322,7 @@ static struct pnp_fixup pnp_fixups[] = { 27093@@ -322,7 +322,7 @@ static struct pnp_fixup pnp_fixups[] = {
27898 /* PnP resources that might overlap PCI BARs */ 27094 /* PnP resources that might overlap PCI BARs */
27899 {"PNP0c01", quirk_system_pci_resources}, 27095 {"PNP0c01", quirk_system_pci_resources},
@@ -27903,9 +27099,9 @@ diff -urNp linux-2.6.38.3/drivers/pnp/quirks.c linux-2.6.38.3/drivers/pnp/quirks
27903 }; 27099 };
27904 27100
27905 void pnp_fixup_device(struct pnp_dev *dev) 27101 void pnp_fixup_device(struct pnp_dev *dev)
27906diff -urNp linux-2.6.38.3/drivers/pnp/resource.c linux-2.6.38.3/drivers/pnp/resource.c 27102diff -urNp linux-2.6.38.2/drivers/pnp/resource.c linux-2.6.38.2/drivers/pnp/resource.c
27907--- linux-2.6.38.3/drivers/pnp/resource.c 2011-03-14 21:20:32.000000000 -0400 27103--- linux-2.6.38.2/drivers/pnp/resource.c 2011-03-14 21:20:32.000000000 -0400
27908+++ linux-2.6.38.3/drivers/pnp/resource.c 2011-04-17 15:57:32.000000000 -0400 27104+++ linux-2.6.38.2/drivers/pnp/resource.c 2011-03-21 18:31:35.000000000 -0400
27909@@ -360,7 +360,7 @@ int pnp_check_irq(struct pnp_dev *dev, s 27105@@ -360,7 +360,7 @@ int pnp_check_irq(struct pnp_dev *dev, s
27910 return 1; 27106 return 1;
27911 27107
@@ -27924,9 +27120,9 @@ diff -urNp linux-2.6.38.3/drivers/pnp/resource.c linux-2.6.38.3/drivers/pnp/reso
27924 return 0; 27120 return 0;
27925 27121
27926 /* check if the resource is reserved */ 27122 /* check if the resource is reserved */
27927diff -urNp linux-2.6.38.3/drivers/rtc/rtc-dev.c linux-2.6.38.3/drivers/rtc/rtc-dev.c 27123diff -urNp linux-2.6.38.2/drivers/rtc/rtc-dev.c linux-2.6.38.2/drivers/rtc/rtc-dev.c
27928--- linux-2.6.38.3/drivers/rtc/rtc-dev.c 2011-03-14 21:20:32.000000000 -0400 27124--- linux-2.6.38.2/drivers/rtc/rtc-dev.c 2011-03-14 21:20:32.000000000 -0400
27929+++ linux-2.6.38.3/drivers/rtc/rtc-dev.c 2011-04-17 15:57:32.000000000 -0400 27125+++ linux-2.6.38.2/drivers/rtc/rtc-dev.c 2011-03-21 18:31:35.000000000 -0400
27930@@ -14,6 +14,7 @@ 27126@@ -14,6 +14,7 @@
27931 #include <linux/module.h> 27127 #include <linux/module.h>
27932 #include <linux/rtc.h> 27128 #include <linux/rtc.h>
@@ -27944,9 +27140,21 @@ diff -urNp linux-2.6.38.3/drivers/rtc/rtc-dev.c linux-2.6.38.3/drivers/rtc/rtc-d
27944 return rtc_set_time(rtc, &tm); 27140 return rtc_set_time(rtc, &tm);
27945 27141
27946 case RTC_PIE_ON: 27142 case RTC_PIE_ON:
27947diff -urNp linux-2.6.38.3/drivers/s390/cio/qdio_debug.c linux-2.6.38.3/drivers/s390/cio/qdio_debug.c 27143diff -urNp linux-2.6.38.2/drivers/rtc/rtc-ds1511.c linux-2.6.38.2/drivers/rtc/rtc-ds1511.c
27948--- linux-2.6.38.3/drivers/s390/cio/qdio_debug.c 2011-03-14 21:20:32.000000000 -0400 27144--- linux-2.6.38.2/drivers/rtc/rtc-ds1511.c 2011-03-14 21:20:32.000000000 -0400
27949+++ linux-2.6.38.3/drivers/s390/cio/qdio_debug.c 2011-04-17 15:57:32.000000000 -0400 27145+++ linux-2.6.38.2/drivers/rtc/rtc-ds1511.c 2011-03-21 18:31:35.000000000 -0400
27146@@ -485,7 +485,7 @@ ds1511_nvram_write(struct file *filp, st
27147 static struct bin_attribute ds1511_nvram_attr = {
27148 .attr = {
27149 .name = "nvram",
27150- .mode = S_IRUGO | S_IWUGO,
27151+ .mode = S_IRUGO | S_IWUSR,
27152 },
27153 .size = DS1511_RAM_MAX,
27154 .read = ds1511_nvram_read,
27155diff -urNp linux-2.6.38.2/drivers/s390/cio/qdio_debug.c linux-2.6.38.2/drivers/s390/cio/qdio_debug.c
27156--- linux-2.6.38.2/drivers/s390/cio/qdio_debug.c 2011-03-14 21:20:32.000000000 -0400
27157+++ linux-2.6.38.2/drivers/s390/cio/qdio_debug.c 2011-03-21 18:31:35.000000000 -0400
27950@@ -225,7 +225,7 @@ static int qperf_seq_open(struct inode * 27158@@ -225,7 +225,7 @@ static int qperf_seq_open(struct inode *
27951 filp->f_path.dentry->d_inode->i_private); 27159 filp->f_path.dentry->d_inode->i_private);
27952 } 27160 }
@@ -27956,9 +27164,9 @@ diff -urNp linux-2.6.38.3/drivers/s390/cio/qdio_debug.c linux-2.6.38.3/drivers/s
27956 .owner = THIS_MODULE, 27164 .owner = THIS_MODULE,
27957 .open = qperf_seq_open, 27165 .open = qperf_seq_open,
27958 .read = seq_read, 27166 .read = seq_read,
27959diff -urNp linux-2.6.38.3/drivers/scsi/aic94xx/aic94xx_init.c linux-2.6.38.3/drivers/scsi/aic94xx/aic94xx_init.c 27167diff -urNp linux-2.6.38.2/drivers/scsi/aic94xx/aic94xx_init.c linux-2.6.38.2/drivers/scsi/aic94xx/aic94xx_init.c
27960--- linux-2.6.38.3/drivers/scsi/aic94xx/aic94xx_init.c 2011-03-14 21:20:32.000000000 -0400 27168--- linux-2.6.38.2/drivers/scsi/aic94xx/aic94xx_init.c 2011-03-14 21:20:32.000000000 -0400
27961+++ linux-2.6.38.3/drivers/scsi/aic94xx/aic94xx_init.c 2011-04-17 15:57:32.000000000 -0400 27169+++ linux-2.6.38.2/drivers/scsi/aic94xx/aic94xx_init.c 2011-03-21 18:31:35.000000000 -0400
27962@@ -486,7 +486,7 @@ static ssize_t asd_show_update_bios(stru 27170@@ -486,7 +486,7 @@ static ssize_t asd_show_update_bios(stru
27963 flash_error_table[i].reason); 27171 flash_error_table[i].reason);
27964 } 27172 }
@@ -27968,9 +27176,9 @@ diff -urNp linux-2.6.38.3/drivers/scsi/aic94xx/aic94xx_init.c linux-2.6.38.3/dri
27968 asd_show_update_bios, asd_store_update_bios); 27176 asd_show_update_bios, asd_store_update_bios);
27969 27177
27970 static int asd_create_dev_attrs(struct asd_ha_struct *asd_ha) 27178 static int asd_create_dev_attrs(struct asd_ha_struct *asd_ha)
27971diff -urNp linux-2.6.38.3/drivers/scsi/hpsa.c linux-2.6.38.3/drivers/scsi/hpsa.c 27179diff -urNp linux-2.6.38.2/drivers/scsi/hpsa.c linux-2.6.38.2/drivers/scsi/hpsa.c
27972--- linux-2.6.38.3/drivers/scsi/hpsa.c 2011-03-14 21:20:32.000000000 -0400 27180--- linux-2.6.38.2/drivers/scsi/hpsa.c 2011-03-14 21:20:32.000000000 -0400
27973+++ linux-2.6.38.3/drivers/scsi/hpsa.c 2011-04-17 15:57:32.000000000 -0400 27181+++ linux-2.6.38.2/drivers/scsi/hpsa.c 2011-03-21 18:31:35.000000000 -0400
27974@@ -2281,6 +2281,8 @@ static int hpsa_ioctl32_passthru(struct 27182@@ -2281,6 +2281,8 @@ static int hpsa_ioctl32_passthru(struct
27975 int err; 27183 int err;
27976 u32 cp; 27184 u32 cp;
@@ -27980,9 +27188,9 @@ diff -urNp linux-2.6.38.3/drivers/scsi/hpsa.c linux-2.6.38.3/drivers/scsi/hpsa.c
27980 err = 0; 27188 err = 0;
27981 err |= copy_from_user(&arg64.LUN_info, &arg32->LUN_info, 27189 err |= copy_from_user(&arg64.LUN_info, &arg32->LUN_info,
27982 sizeof(arg64.LUN_info)); 27190 sizeof(arg64.LUN_info));
27983diff -urNp linux-2.6.38.3/drivers/scsi/ipr.c linux-2.6.38.3/drivers/scsi/ipr.c 27191diff -urNp linux-2.6.38.2/drivers/scsi/ipr.c linux-2.6.38.2/drivers/scsi/ipr.c
27984--- linux-2.6.38.3/drivers/scsi/ipr.c 2011-03-14 21:20:32.000000000 -0400 27192--- linux-2.6.38.2/drivers/scsi/ipr.c 2011-03-14 21:20:32.000000000 -0400
27985+++ linux-2.6.38.3/drivers/scsi/ipr.c 2011-04-17 15:57:32.000000000 -0400 27193+++ linux-2.6.38.2/drivers/scsi/ipr.c 2011-03-21 18:31:35.000000000 -0400
27986@@ -6207,7 +6207,7 @@ static bool ipr_qc_fill_rtf(struct ata_q 27194@@ -6207,7 +6207,7 @@ static bool ipr_qc_fill_rtf(struct ata_q
27987 return true; 27195 return true;
27988 } 27196 }
@@ -27992,9 +27200,9 @@ diff -urNp linux-2.6.38.3/drivers/scsi/ipr.c linux-2.6.38.3/drivers/scsi/ipr.c
27992 .phy_reset = ipr_ata_phy_reset, 27200 .phy_reset = ipr_ata_phy_reset,
27993 .hardreset = ipr_sata_reset, 27201 .hardreset = ipr_sata_reset,
27994 .post_internal_cmd = ipr_ata_post_internal, 27202 .post_internal_cmd = ipr_ata_post_internal,
27995diff -urNp linux-2.6.38.3/drivers/scsi/libfc/fc_exch.c linux-2.6.38.3/drivers/scsi/libfc/fc_exch.c 27203diff -urNp linux-2.6.38.2/drivers/scsi/libfc/fc_exch.c linux-2.6.38.2/drivers/scsi/libfc/fc_exch.c
27996--- linux-2.6.38.3/drivers/scsi/libfc/fc_exch.c 2011-03-14 21:20:32.000000000 -0400 27204--- linux-2.6.38.2/drivers/scsi/libfc/fc_exch.c 2011-03-14 21:20:32.000000000 -0400
27997+++ linux-2.6.38.3/drivers/scsi/libfc/fc_exch.c 2011-04-17 15:57:32.000000000 -0400 27205+++ linux-2.6.38.2/drivers/scsi/libfc/fc_exch.c 2011-03-21 18:31:35.000000000 -0400
27998@@ -105,12 +105,12 @@ struct fc_exch_mgr { 27206@@ -105,12 +105,12 @@ struct fc_exch_mgr {
27999 * all together if not used XXX 27207 * all together if not used XXX
28000 */ 27208 */
@@ -28116,9 +27324,9 @@ diff -urNp linux-2.6.38.3/drivers/scsi/libfc/fc_exch.c linux-2.6.38.3/drivers/sc
28116 27324
28117 fc_frame_free(fp); 27325 fc_frame_free(fp);
28118 } 27326 }
28119diff -urNp linux-2.6.38.3/drivers/scsi/libsas/sas_ata.c linux-2.6.38.3/drivers/scsi/libsas/sas_ata.c 27327diff -urNp linux-2.6.38.2/drivers/scsi/libsas/sas_ata.c linux-2.6.38.2/drivers/scsi/libsas/sas_ata.c
28120--- linux-2.6.38.3/drivers/scsi/libsas/sas_ata.c 2011-03-14 21:20:32.000000000 -0400 27328--- linux-2.6.38.2/drivers/scsi/libsas/sas_ata.c 2011-03-14 21:20:32.000000000 -0400
28121+++ linux-2.6.38.3/drivers/scsi/libsas/sas_ata.c 2011-04-17 15:57:32.000000000 -0400 27329+++ linux-2.6.38.2/drivers/scsi/libsas/sas_ata.c 2011-03-21 18:31:35.000000000 -0400
28122@@ -348,10 +348,10 @@ static int sas_ata_scr_read(struct ata_l 27330@@ -348,10 +348,10 @@ static int sas_ata_scr_read(struct ata_l
28123 } 27331 }
28124 } 27332 }
@@ -28132,9 +27340,9 @@ diff -urNp linux-2.6.38.3/drivers/scsi/libsas/sas_ata.c linux-2.6.38.3/drivers/s
28132 .qc_prep = ata_noop_qc_prep, 27340 .qc_prep = ata_noop_qc_prep,
28133 .qc_issue = sas_ata_qc_issue, 27341 .qc_issue = sas_ata_qc_issue,
28134 .qc_fill_rtf = sas_ata_qc_fill_rtf, 27342 .qc_fill_rtf = sas_ata_qc_fill_rtf,
28135diff -urNp linux-2.6.38.3/drivers/scsi/mpt2sas/mpt2sas_debug.h linux-2.6.38.3/drivers/scsi/mpt2sas/mpt2sas_debug.h 27343diff -urNp linux-2.6.38.2/drivers/scsi/mpt2sas/mpt2sas_debug.h linux-2.6.38.2/drivers/scsi/mpt2sas/mpt2sas_debug.h
28136--- linux-2.6.38.3/drivers/scsi/mpt2sas/mpt2sas_debug.h 2011-03-14 21:20:32.000000000 -0400 27344--- linux-2.6.38.2/drivers/scsi/mpt2sas/mpt2sas_debug.h 2011-03-14 21:20:32.000000000 -0400
28137+++ linux-2.6.38.3/drivers/scsi/mpt2sas/mpt2sas_debug.h 2011-04-17 15:57:32.000000000 -0400 27345+++ linux-2.6.38.2/drivers/scsi/mpt2sas/mpt2sas_debug.h 2011-03-21 18:31:35.000000000 -0400
28138@@ -79,7 +79,7 @@ 27346@@ -79,7 +79,7 @@
28139 CMD; \ 27347 CMD; \
28140 } 27348 }
@@ -28144,9 +27352,9 @@ diff -urNp linux-2.6.38.3/drivers/scsi/mpt2sas/mpt2sas_debug.h linux-2.6.38.3/dr
28144 #endif /* CONFIG_SCSI_MPT2SAS_LOGGING */ 27352 #endif /* CONFIG_SCSI_MPT2SAS_LOGGING */
28145 27353
28146 27354
28147diff -urNp linux-2.6.38.3/drivers/scsi/qla2xxx/qla_os.c linux-2.6.38.3/drivers/scsi/qla2xxx/qla_os.c 27355diff -urNp linux-2.6.38.2/drivers/scsi/qla2xxx/qla_os.c linux-2.6.38.2/drivers/scsi/qla2xxx/qla_os.c
28148--- linux-2.6.38.3/drivers/scsi/qla2xxx/qla_os.c 2011-03-14 21:20:32.000000000 -0400 27356--- linux-2.6.38.2/drivers/scsi/qla2xxx/qla_os.c 2011-03-14 21:20:32.000000000 -0400
28149+++ linux-2.6.38.3/drivers/scsi/qla2xxx/qla_os.c 2011-04-17 15:57:32.000000000 -0400 27357+++ linux-2.6.38.2/drivers/scsi/qla2xxx/qla_os.c 2011-03-21 18:31:35.000000000 -0400
28150@@ -4096,7 +4096,7 @@ static struct pci_driver qla2xxx_pci_dri 27358@@ -4096,7 +4096,7 @@ static struct pci_driver qla2xxx_pci_dri
28151 .err_handler = &qla2xxx_err_handler, 27359 .err_handler = &qla2xxx_err_handler,
28152 }; 27360 };
@@ -28156,9 +27364,9 @@ diff -urNp linux-2.6.38.3/drivers/scsi/qla2xxx/qla_os.c linux-2.6.38.3/drivers/s
28156 .owner = THIS_MODULE, 27364 .owner = THIS_MODULE,
28157 .llseek = noop_llseek, 27365 .llseek = noop_llseek,
28158 }; 27366 };
28159diff -urNp linux-2.6.38.3/drivers/scsi/scsi_logging.h linux-2.6.38.3/drivers/scsi/scsi_logging.h 27367diff -urNp linux-2.6.38.2/drivers/scsi/scsi_logging.h linux-2.6.38.2/drivers/scsi/scsi_logging.h
28160--- linux-2.6.38.3/drivers/scsi/scsi_logging.h 2011-03-14 21:20:32.000000000 -0400 27368--- linux-2.6.38.2/drivers/scsi/scsi_logging.h 2011-03-14 21:20:32.000000000 -0400
28161+++ linux-2.6.38.3/drivers/scsi/scsi_logging.h 2011-04-17 15:57:32.000000000 -0400 27369+++ linux-2.6.38.2/drivers/scsi/scsi_logging.h 2011-03-21 18:31:35.000000000 -0400
28162@@ -51,7 +51,7 @@ do { \ 27370@@ -51,7 +51,7 @@ do { \
28163 } while (0); \ 27371 } while (0); \
28164 } while (0) 27372 } while (0)
@@ -28168,21 +27376,21 @@ diff -urNp linux-2.6.38.3/drivers/scsi/scsi_logging.h linux-2.6.38.3/drivers/scs
28168 #endif /* CONFIG_SCSI_LOGGING */ 27376 #endif /* CONFIG_SCSI_LOGGING */
28169 27377
28170 /* 27378 /*
28171diff -urNp linux-2.6.38.3/drivers/scsi/scsi_transport_fc.c linux-2.6.38.3/drivers/scsi/scsi_transport_fc.c 27379diff -urNp linux-2.6.38.2/drivers/scsi/scsi_transport_iscsi.c linux-2.6.38.2/drivers/scsi/scsi_transport_iscsi.c
28172--- linux-2.6.38.3/drivers/scsi/scsi_transport_fc.c 2011-03-14 21:20:32.000000000 -0400 27380--- linux-2.6.38.2/drivers/scsi/scsi_transport_iscsi.c 2011-03-14 21:20:32.000000000 -0400
28173+++ linux-2.6.38.3/drivers/scsi/scsi_transport_fc.c 2011-04-17 15:57:32.000000000 -0400 27381+++ linux-2.6.38.2/drivers/scsi/scsi_transport_iscsi.c 2011-03-21 18:31:35.000000000 -0400
28174@@ -836,7 +836,7 @@ static int fc_str_to_dev_loss(const char 27382@@ -1847,7 +1847,7 @@ store_priv_session_##field(struct device
28175 char *cp; 27383 #define iscsi_priv_session_rw_attr(field, format) \
28176 27384 iscsi_priv_session_attr_show(field, format) \
28177 *val = simple_strtoul(buf, &cp, 0); 27385 iscsi_priv_session_attr_store(field) \
28178- if ((*cp && (*cp != '\n')) || (*val < 0)) 27386-static ISCSI_CLASS_ATTR(priv_sess, field, S_IRUGO | S_IWUGO, \
28179+ if (*cp && (*cp != '\n')) 27387+static ISCSI_CLASS_ATTR(priv_sess, field, S_IRUGO | S_IWUSR, \
28180 return -EINVAL; 27388 show_priv_session_##field, \
28181 /* 27389 store_priv_session_##field)
28182 * Check for overflow; dev_loss_tmo is u32 27390 iscsi_priv_session_rw_attr(recovery_tmo, "%d");
28183diff -urNp linux-2.6.38.3/drivers/scsi/sg.c linux-2.6.38.3/drivers/scsi/sg.c 27391diff -urNp linux-2.6.38.2/drivers/scsi/sg.c linux-2.6.38.2/drivers/scsi/sg.c
28184--- linux-2.6.38.3/drivers/scsi/sg.c 2011-03-14 21:20:32.000000000 -0400 27392--- linux-2.6.38.2/drivers/scsi/sg.c 2011-03-14 21:20:32.000000000 -0400
28185+++ linux-2.6.38.3/drivers/scsi/sg.c 2011-04-17 15:57:32.000000000 -0400 27393+++ linux-2.6.38.2/drivers/scsi/sg.c 2011-03-21 18:31:35.000000000 -0400
28186@@ -2310,7 +2310,7 @@ struct sg_proc_leaf { 27394@@ -2310,7 +2310,7 @@ struct sg_proc_leaf {
28187 const struct file_operations * fops; 27395 const struct file_operations * fops;
28188 }; 27396 };
@@ -28201,9 +27409,9 @@ diff -urNp linux-2.6.38.3/drivers/scsi/sg.c linux-2.6.38.3/drivers/scsi/sg.c
28201 27409
28202 sg_proc_sgp = proc_mkdir(sg_proc_sg_dirname, NULL); 27410 sg_proc_sgp = proc_mkdir(sg_proc_sg_dirname, NULL);
28203 if (!sg_proc_sgp) 27411 if (!sg_proc_sgp)
28204diff -urNp linux-2.6.38.3/drivers/staging/autofs/root.c linux-2.6.38.3/drivers/staging/autofs/root.c 27412diff -urNp linux-2.6.38.2/drivers/staging/autofs/root.c linux-2.6.38.2/drivers/staging/autofs/root.c
28205--- linux-2.6.38.3/drivers/staging/autofs/root.c 2011-03-14 21:20:32.000000000 -0400 27413--- linux-2.6.38.2/drivers/staging/autofs/root.c 2011-03-14 21:20:32.000000000 -0400
28206+++ linux-2.6.38.3/drivers/staging/autofs/root.c 2011-04-17 15:57:32.000000000 -0400 27414+++ linux-2.6.38.2/drivers/staging/autofs/root.c 2011-03-28 16:57:18.000000000 -0400
28207@@ -311,7 +311,8 @@ static int autofs_root_symlink(struct in 27415@@ -311,7 +311,8 @@ static int autofs_root_symlink(struct in
28208 set_bit(n,sbi->symlink_bitmap); 27416 set_bit(n,sbi->symlink_bitmap);
28209 sl = &sbi->symlink[n]; 27417 sl = &sbi->symlink[n];
@@ -28214,9 +27422,9 @@ diff -urNp linux-2.6.38.3/drivers/staging/autofs/root.c linux-2.6.38.3/drivers/s
28214 if (!sl->data) { 27422 if (!sl->data) {
28215 clear_bit(n,sbi->symlink_bitmap); 27423 clear_bit(n,sbi->symlink_bitmap);
28216 unlock_kernel(); 27424 unlock_kernel();
28217diff -urNp linux-2.6.38.3/drivers/staging/bcm/Bcmchar.c linux-2.6.38.3/drivers/staging/bcm/Bcmchar.c 27425diff -urNp linux-2.6.38.2/drivers/staging/bcm/Bcmchar.c linux-2.6.38.2/drivers/staging/bcm/Bcmchar.c
28218--- linux-2.6.38.3/drivers/staging/bcm/Bcmchar.c 2011-03-14 21:20:32.000000000 -0400 27426--- linux-2.6.38.2/drivers/staging/bcm/Bcmchar.c 2011-03-14 21:20:32.000000000 -0400
28219+++ linux-2.6.38.3/drivers/staging/bcm/Bcmchar.c 2011-04-17 15:57:32.000000000 -0400 27427+++ linux-2.6.38.2/drivers/staging/bcm/Bcmchar.c 2011-03-21 18:31:35.000000000 -0400
28220@@ -2093,7 +2093,7 @@ static long bcm_char_ioctl(struct file * 27428@@ -2093,7 +2093,7 @@ static long bcm_char_ioctl(struct file *
28221 } 27429 }
28222 27430
@@ -28226,9 +27434,9 @@ diff -urNp linux-2.6.38.3/drivers/staging/bcm/Bcmchar.c linux-2.6.38.3/drivers/s
28226 .owner = THIS_MODULE, 27434 .owner = THIS_MODULE,
28227 .open = bcm_char_open, 27435 .open = bcm_char_open,
28228 .release = bcm_char_release, 27436 .release = bcm_char_release,
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 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
28230--- linux-2.6.38.3/drivers/staging/brcm80211/brcmfmac/dhd_linux.c 2011-03-14 21:20:32.000000000 -0400 27438--- linux-2.6.38.2/drivers/staging/brcm80211/brcmfmac/dhd_linux.c 2011-03-14 21:20:32.000000000 -0400
28231+++ linux-2.6.38.3/drivers/staging/brcm80211/brcmfmac/dhd_linux.c 2011-04-17 15:57:32.000000000 -0400 27439+++ linux-2.6.38.2/drivers/staging/brcm80211/brcmfmac/dhd_linux.c 2011-03-21 18:31:35.000000000 -0400
28232@@ -863,14 +863,14 @@ static void dhd_op_if(dhd_if_t *ifp) 27440@@ -863,14 +863,14 @@ static void dhd_op_if(dhd_if_t *ifp)
28233 free_netdev(ifp->net); 27441 free_netdev(ifp->net);
28234 } 27442 }
@@ -28284,9 +27492,9 @@ diff -urNp linux-2.6.38.3/drivers/staging/brcm80211/brcmfmac/dhd_linux.c linux-2
28284 27492
28285 #if defined(CUSTOMER_HW2) && defined(CONFIG_WIFI_CONTROL_FUNC) 27493 #if defined(CUSTOMER_HW2) && defined(CONFIG_WIFI_CONTROL_FUNC)
28286 g_bus = bus; 27494 g_bus = bus;
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 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
28288--- linux-2.6.38.3/drivers/staging/brcm80211/brcmfmac/wl_iw.c 2011-03-14 21:20:32.000000000 -0400 27496--- linux-2.6.38.2/drivers/staging/brcm80211/brcmfmac/wl_iw.c 2011-03-14 21:20:32.000000000 -0400
28289+++ linux-2.6.38.3/drivers/staging/brcm80211/brcmfmac/wl_iw.c 2011-04-17 15:57:32.000000000 -0400 27497+++ linux-2.6.38.2/drivers/staging/brcm80211/brcmfmac/wl_iw.c 2011-03-21 18:31:35.000000000 -0400
28290@@ -513,7 +513,7 @@ wl_iw_get_range(struct net_device *dev, 27498@@ -513,7 +513,7 @@ wl_iw_get_range(struct net_device *dev,
28291 list = (wl_u32_list_t *) channels; 27499 list = (wl_u32_list_t *) channels;
28292 27500
@@ -28296,9 +27504,9 @@ diff -urNp linux-2.6.38.3/drivers/staging/brcm80211/brcmfmac/wl_iw.c linux-2.6.3
28296 27504
28297 range->min_nwid = range->max_nwid = 0; 27505 range->min_nwid = range->max_nwid = 0;
28298 27506
28299diff -urNp linux-2.6.38.3/drivers/staging/comedi/comedi_fops.c linux-2.6.38.3/drivers/staging/comedi/comedi_fops.c 27507diff -urNp linux-2.6.38.2/drivers/staging/comedi/comedi_fops.c linux-2.6.38.2/drivers/staging/comedi/comedi_fops.c
28300--- linux-2.6.38.3/drivers/staging/comedi/comedi_fops.c 2011-03-14 21:20:32.000000000 -0400 27508--- linux-2.6.38.2/drivers/staging/comedi/comedi_fops.c 2011-03-14 21:20:32.000000000 -0400
28301+++ linux-2.6.38.3/drivers/staging/comedi/comedi_fops.c 2011-04-17 15:57:32.000000000 -0400 27509+++ linux-2.6.38.2/drivers/staging/comedi/comedi_fops.c 2011-03-21 18:31:35.000000000 -0400
28302@@ -1426,7 +1426,7 @@ static void comedi_unmap(struct vm_area_ 27510@@ -1426,7 +1426,7 @@ static void comedi_unmap(struct vm_area_
28303 mutex_unlock(&dev->mutex); 27511 mutex_unlock(&dev->mutex);
28304 } 27512 }
@@ -28308,9 +27516,9 @@ diff -urNp linux-2.6.38.3/drivers/staging/comedi/comedi_fops.c linux-2.6.38.3/dr
28308 .close = comedi_unmap, 27516 .close = comedi_unmap,
28309 }; 27517 };
28310 27518
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 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
28312--- linux-2.6.38.3/drivers/staging/ft1000/ft1000-usb/ft1000_debug.c 2011-03-14 21:20:32.000000000 -0400 27520--- linux-2.6.38.2/drivers/staging/ft1000/ft1000-usb/ft1000_debug.c 2011-03-14 21:20:32.000000000 -0400
28313+++ linux-2.6.38.3/drivers/staging/ft1000/ft1000-usb/ft1000_debug.c 2011-04-17 15:57:32.000000000 -0400 27521+++ linux-2.6.38.2/drivers/staging/ft1000/ft1000-usb/ft1000_debug.c 2011-03-21 18:31:35.000000000 -0400
28314@@ -55,7 +55,7 @@ int numofmsgbuf = 0; 27522@@ -55,7 +55,7 @@ int numofmsgbuf = 0;
28315 // 27523 //
28316 // Table of entry-point routines for char device 27524 // Table of entry-point routines for char device
@@ -28320,9 +27528,9 @@ diff -urNp linux-2.6.38.3/drivers/staging/ft1000/ft1000-usb/ft1000_debug.c linux
28320 { 27528 {
28321 .unlocked_ioctl = ft1000_ioctl, 27529 .unlocked_ioctl = ft1000_ioctl,
28322 .poll = ft1000_poll_dev, 27530 .poll = ft1000_poll_dev,
28323diff -urNp linux-2.6.38.3/drivers/staging/go7007/go7007-v4l2.c linux-2.6.38.3/drivers/staging/go7007/go7007-v4l2.c 27531diff -urNp linux-2.6.38.2/drivers/staging/go7007/go7007-v4l2.c linux-2.6.38.2/drivers/staging/go7007/go7007-v4l2.c
28324--- linux-2.6.38.3/drivers/staging/go7007/go7007-v4l2.c 2011-03-14 21:20:32.000000000 -0400 27532--- linux-2.6.38.2/drivers/staging/go7007/go7007-v4l2.c 2011-03-14 21:20:32.000000000 -0400
28325+++ linux-2.6.38.3/drivers/staging/go7007/go7007-v4l2.c 2011-04-17 15:57:32.000000000 -0400 27533+++ linux-2.6.38.2/drivers/staging/go7007/go7007-v4l2.c 2011-03-21 18:31:35.000000000 -0400
28326@@ -1672,7 +1672,7 @@ static int go7007_vm_fault(struct vm_are 27534@@ -1672,7 +1672,7 @@ static int go7007_vm_fault(struct vm_are
28327 return 0; 27535 return 0;
28328 } 27536 }
@@ -28332,9 +27540,9 @@ diff -urNp linux-2.6.38.3/drivers/staging/go7007/go7007-v4l2.c linux-2.6.38.3/dr
28332 .open = go7007_vm_open, 27540 .open = go7007_vm_open,
28333 .close = go7007_vm_close, 27541 .close = go7007_vm_close,
28334 .fault = go7007_vm_fault, 27542 .fault = go7007_vm_fault,
28335diff -urNp linux-2.6.38.3/drivers/staging/hv/hv.c linux-2.6.38.3/drivers/staging/hv/hv.c 27543diff -urNp linux-2.6.38.2/drivers/staging/hv/hv.c linux-2.6.38.2/drivers/staging/hv/hv.c
28336--- linux-2.6.38.3/drivers/staging/hv/hv.c 2011-03-14 21:20:32.000000000 -0400 27544--- linux-2.6.38.2/drivers/staging/hv/hv.c 2011-03-14 21:20:32.000000000 -0400
28337+++ linux-2.6.38.3/drivers/staging/hv/hv.c 2011-04-17 15:57:32.000000000 -0400 27545+++ linux-2.6.38.2/drivers/staging/hv/hv.c 2011-03-21 18:31:35.000000000 -0400
28338@@ -163,7 +163,7 @@ static u64 do_hypercall(u64 control, voi 27546@@ -163,7 +163,7 @@ static u64 do_hypercall(u64 control, voi
28339 u64 output_address = (output) ? virt_to_phys(output) : 0; 27547 u64 output_address = (output) ? virt_to_phys(output) : 0;
28340 u32 output_address_hi = output_address >> 32; 27548 u32 output_address_hi = output_address >> 32;
@@ -28344,9 +27552,9 @@ diff -urNp linux-2.6.38.3/drivers/staging/hv/hv.c linux-2.6.38.3/drivers/staging
28344 27552
28345 DPRINT_DBG(VMBUS, "Hypercall <control %llx input %p output %p>", 27553 DPRINT_DBG(VMBUS, "Hypercall <control %llx input %p output %p>",
28346 control, input, output); 27554 control, input, output);
28347diff -urNp linux-2.6.38.3/drivers/staging/phison/phison.c linux-2.6.38.3/drivers/staging/phison/phison.c 27555diff -urNp linux-2.6.38.2/drivers/staging/phison/phison.c linux-2.6.38.2/drivers/staging/phison/phison.c
28348--- linux-2.6.38.3/drivers/staging/phison/phison.c 2011-03-14 21:20:32.000000000 -0400 27556--- linux-2.6.38.2/drivers/staging/phison/phison.c 2011-03-14 21:20:32.000000000 -0400
28349+++ linux-2.6.38.3/drivers/staging/phison/phison.c 2011-04-17 15:57:32.000000000 -0400 27557+++ linux-2.6.38.2/drivers/staging/phison/phison.c 2011-03-21 18:31:35.000000000 -0400
28350@@ -43,7 +43,7 @@ static struct scsi_host_template phison_ 27558@@ -43,7 +43,7 @@ static struct scsi_host_template phison_
28351 ATA_BMDMA_SHT(DRV_NAME), 27559 ATA_BMDMA_SHT(DRV_NAME),
28352 }; 27560 };
@@ -28356,9 +27564,9 @@ diff -urNp linux-2.6.38.3/drivers/staging/phison/phison.c linux-2.6.38.3/drivers
28356 .inherits = &ata_bmdma_port_ops, 27564 .inherits = &ata_bmdma_port_ops,
28357 .prereset = phison_pre_reset, 27565 .prereset = phison_pre_reset,
28358 }; 27566 };
28359diff -urNp linux-2.6.38.3/drivers/staging/pohmelfs/inode.c linux-2.6.38.3/drivers/staging/pohmelfs/inode.c 27567diff -urNp linux-2.6.38.2/drivers/staging/pohmelfs/inode.c linux-2.6.38.2/drivers/staging/pohmelfs/inode.c
28360--- linux-2.6.38.3/drivers/staging/pohmelfs/inode.c 2011-03-14 21:20:32.000000000 -0400 27568--- linux-2.6.38.2/drivers/staging/pohmelfs/inode.c 2011-03-14 21:20:32.000000000 -0400
28361+++ linux-2.6.38.3/drivers/staging/pohmelfs/inode.c 2011-04-17 15:57:32.000000000 -0400 27569+++ linux-2.6.38.2/drivers/staging/pohmelfs/inode.c 2011-03-21 18:31:35.000000000 -0400
28362@@ -1855,7 +1855,7 @@ static int pohmelfs_fill_super(struct su 27570@@ -1855,7 +1855,7 @@ static int pohmelfs_fill_super(struct su
28363 mutex_init(&psb->mcache_lock); 27571 mutex_init(&psb->mcache_lock);
28364 psb->mcache_root = RB_ROOT; 27572 psb->mcache_root = RB_ROOT;
@@ -28368,9 +27576,9 @@ diff -urNp linux-2.6.38.3/drivers/staging/pohmelfs/inode.c linux-2.6.38.3/driver
28368 27576
28369 psb->trans_max_pages = 100; 27577 psb->trans_max_pages = 100;
28370 27578
28371diff -urNp linux-2.6.38.3/drivers/staging/pohmelfs/mcache.c linux-2.6.38.3/drivers/staging/pohmelfs/mcache.c 27579diff -urNp linux-2.6.38.2/drivers/staging/pohmelfs/mcache.c linux-2.6.38.2/drivers/staging/pohmelfs/mcache.c
28372--- linux-2.6.38.3/drivers/staging/pohmelfs/mcache.c 2011-03-14 21:20:32.000000000 -0400 27580--- linux-2.6.38.2/drivers/staging/pohmelfs/mcache.c 2011-03-14 21:20:32.000000000 -0400
28373+++ linux-2.6.38.3/drivers/staging/pohmelfs/mcache.c 2011-04-17 15:57:32.000000000 -0400 27581+++ linux-2.6.38.2/drivers/staging/pohmelfs/mcache.c 2011-03-21 18:31:35.000000000 -0400
28374@@ -121,7 +121,7 @@ struct pohmelfs_mcache *pohmelfs_mcache_ 27582@@ -121,7 +121,7 @@ struct pohmelfs_mcache *pohmelfs_mcache_
28375 m->data = data; 27583 m->data = data;
28376 m->start = start; 27584 m->start = start;
@@ -28380,9 +27588,9 @@ diff -urNp linux-2.6.38.3/drivers/staging/pohmelfs/mcache.c linux-2.6.38.3/drive
28380 27588
28381 mutex_lock(&psb->mcache_lock); 27589 mutex_lock(&psb->mcache_lock);
28382 err = pohmelfs_mcache_insert(psb, m); 27590 err = pohmelfs_mcache_insert(psb, m);
28383diff -urNp linux-2.6.38.3/drivers/staging/pohmelfs/netfs.h linux-2.6.38.3/drivers/staging/pohmelfs/netfs.h 27591diff -urNp linux-2.6.38.2/drivers/staging/pohmelfs/netfs.h linux-2.6.38.2/drivers/staging/pohmelfs/netfs.h
28384--- linux-2.6.38.3/drivers/staging/pohmelfs/netfs.h 2011-03-14 21:20:32.000000000 -0400 27592--- linux-2.6.38.2/drivers/staging/pohmelfs/netfs.h 2011-03-14 21:20:32.000000000 -0400
28385+++ linux-2.6.38.3/drivers/staging/pohmelfs/netfs.h 2011-04-17 15:57:32.000000000 -0400 27593+++ linux-2.6.38.2/drivers/staging/pohmelfs/netfs.h 2011-03-21 18:31:35.000000000 -0400
28386@@ -571,7 +571,7 @@ struct pohmelfs_config; 27594@@ -571,7 +571,7 @@ struct pohmelfs_config;
28387 struct pohmelfs_sb { 27595 struct pohmelfs_sb {
28388 struct rb_root mcache_root; 27596 struct rb_root mcache_root;
@@ -28392,9 +27600,9 @@ diff -urNp linux-2.6.38.3/drivers/staging/pohmelfs/netfs.h linux-2.6.38.3/driver
28392 unsigned long mcache_timeout; 27600 unsigned long mcache_timeout;
28393 27601
28394 unsigned int idx; 27602 unsigned int idx;
28395diff -urNp linux-2.6.38.3/drivers/staging/rtl8192u/ieee80211/proc.c linux-2.6.38.3/drivers/staging/rtl8192u/ieee80211/proc.c 27603diff -urNp linux-2.6.38.2/drivers/staging/rtl8192u/ieee80211/proc.c linux-2.6.38.2/drivers/staging/rtl8192u/ieee80211/proc.c
28396--- linux-2.6.38.3/drivers/staging/rtl8192u/ieee80211/proc.c 2011-03-14 21:20:32.000000000 -0400 27604--- linux-2.6.38.2/drivers/staging/rtl8192u/ieee80211/proc.c 2011-03-14 21:20:32.000000000 -0400
28397+++ linux-2.6.38.3/drivers/staging/rtl8192u/ieee80211/proc.c 2011-04-17 15:57:32.000000000 -0400 27605+++ linux-2.6.38.2/drivers/staging/rtl8192u/ieee80211/proc.c 2011-03-21 18:31:35.000000000 -0400
28398@@ -99,7 +99,7 @@ static int crypto_info_open(struct inode 27606@@ -99,7 +99,7 @@ static int crypto_info_open(struct inode
28399 return seq_open(file, &crypto_seq_ops); 27607 return seq_open(file, &crypto_seq_ops);
28400 } 27608 }
@@ -28404,9 +27612,9 @@ diff -urNp linux-2.6.38.3/drivers/staging/rtl8192u/ieee80211/proc.c linux-2.6.38
28404 .open = crypto_info_open, 27612 .open = crypto_info_open,
28405 .read = seq_read, 27613 .read = seq_read,
28406 .llseek = seq_lseek, 27614 .llseek = seq_lseek,
28407diff -urNp linux-2.6.38.3/drivers/staging/spectra/ffsport.c linux-2.6.38.3/drivers/staging/spectra/ffsport.c 27615diff -urNp linux-2.6.38.2/drivers/staging/spectra/ffsport.c linux-2.6.38.2/drivers/staging/spectra/ffsport.c
28408--- linux-2.6.38.3/drivers/staging/spectra/ffsport.c 2011-03-14 21:20:32.000000000 -0400 27616--- linux-2.6.38.2/drivers/staging/spectra/ffsport.c 2011-03-14 21:20:32.000000000 -0400
28409+++ linux-2.6.38.3/drivers/staging/spectra/ffsport.c 2011-04-17 15:57:32.000000000 -0400 27617+++ linux-2.6.38.2/drivers/staging/spectra/ffsport.c 2011-03-21 18:31:35.000000000 -0400
28410@@ -604,7 +604,7 @@ int GLOB_SBD_unlocked_ioctl(struct block 27618@@ -604,7 +604,7 @@ int GLOB_SBD_unlocked_ioctl(struct block
28411 return ret; 27619 return ret;
28412 } 27620 }
@@ -28416,9 +27624,9 @@ diff -urNp linux-2.6.38.3/drivers/staging/spectra/ffsport.c linux-2.6.38.3/drive
28416 .owner = THIS_MODULE, 27624 .owner = THIS_MODULE,
28417 .open = GLOB_SBD_open, 27625 .open = GLOB_SBD_open,
28418 .release = GLOB_SBD_release, 27626 .release = GLOB_SBD_release,
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 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
28420--- linux-2.6.38.3/drivers/staging/vme/devices/vme_user.c 2011-03-14 21:20:32.000000000 -0400 27628--- linux-2.6.38.2/drivers/staging/vme/devices/vme_user.c 2011-03-14 21:20:32.000000000 -0400
28421+++ linux-2.6.38.3/drivers/staging/vme/devices/vme_user.c 2011-04-17 15:57:32.000000000 -0400 27629+++ linux-2.6.38.2/drivers/staging/vme/devices/vme_user.c 2011-03-21 18:31:35.000000000 -0400
28422@@ -138,7 +138,7 @@ static long vme_user_unlocked_ioctl(stru 27630@@ -138,7 +138,7 @@ static long vme_user_unlocked_ioctl(stru
28423 static int __devinit vme_user_probe(struct device *, int, int); 27631 static int __devinit vme_user_probe(struct device *, int, int);
28424 static int __devexit vme_user_remove(struct device *, int, int); 27632 static int __devexit vme_user_remove(struct device *, int, int);
@@ -28428,9 +27636,9 @@ diff -urNp linux-2.6.38.3/drivers/staging/vme/devices/vme_user.c linux-2.6.38.3/
28428 .open = vme_user_open, 27636 .open = vme_user_open,
28429 .release = vme_user_release, 27637 .release = vme_user_release,
28430 .read = vme_user_read, 27638 .read = vme_user_read,
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 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
28432--- linux-2.6.38.3/drivers/staging/westbridge/astoria/block/cyasblkdev_block.c 2011-03-14 21:20:32.000000000 -0400 27640--- linux-2.6.38.2/drivers/staging/westbridge/astoria/block/cyasblkdev_block.c 2011-03-14 21:20:32.000000000 -0400
28433+++ linux-2.6.38.3/drivers/staging/westbridge/astoria/block/cyasblkdev_block.c 2011-04-17 15:57:32.000000000 -0400 27641+++ linux-2.6.38.2/drivers/staging/westbridge/astoria/block/cyasblkdev_block.c 2011-03-21 18:31:35.000000000 -0400
28434@@ -426,7 +426,7 @@ int cyasblkdev_revalidate_disk(struct ge 27642@@ -426,7 +426,7 @@ int cyasblkdev_revalidate_disk(struct ge
28435 27643
28436 27644
@@ -28440,9 +27648,9 @@ diff -urNp linux-2.6.38.3/drivers/staging/westbridge/astoria/block/cyasblkdev_bl
28440 .open = cyasblkdev_blk_open, 27648 .open = cyasblkdev_blk_open,
28441 .release = cyasblkdev_blk_release, 27649 .release = cyasblkdev_blk_release,
28442 .ioctl = cyasblkdev_blk_ioctl, 27650 .ioctl = cyasblkdev_blk_ioctl,
28443diff -urNp linux-2.6.38.3/drivers/tty/hvc/hvc_console.h linux-2.6.38.3/drivers/tty/hvc/hvc_console.h 27651diff -urNp linux-2.6.38.2/drivers/tty/hvc/hvc_console.h linux-2.6.38.2/drivers/tty/hvc/hvc_console.h
28444--- linux-2.6.38.3/drivers/tty/hvc/hvc_console.h 2011-03-14 21:20:32.000000000 -0400 27652--- linux-2.6.38.2/drivers/tty/hvc/hvc_console.h 2011-03-14 21:20:32.000000000 -0400
28445+++ linux-2.6.38.3/drivers/tty/hvc/hvc_console.h 2011-04-17 15:57:32.000000000 -0400 27653+++ linux-2.6.38.2/drivers/tty/hvc/hvc_console.h 2011-03-21 18:31:35.000000000 -0400
28446@@ -82,6 +82,7 @@ extern int hvc_instantiate(uint32_t vter 27654@@ -82,6 +82,7 @@ extern int hvc_instantiate(uint32_t vter
28447 /* register a vterm for hvc tty operation (module_init or hotplug add) */ 27655 /* register a vterm for hvc tty operation (module_init or hotplug add) */
28448 extern struct hvc_struct * hvc_alloc(uint32_t vtermno, int data, 27656 extern struct hvc_struct * hvc_alloc(uint32_t vtermno, int data,
@@ -28451,9 +27659,9 @@ diff -urNp linux-2.6.38.3/drivers/tty/hvc/hvc_console.h linux-2.6.38.3/drivers/t
28451 /* remove a vterm from hvc tty operation (module_exit or hotplug remove) */ 27659 /* remove a vterm from hvc tty operation (module_exit or hotplug remove) */
28452 extern int hvc_remove(struct hvc_struct *hp); 27660 extern int hvc_remove(struct hvc_struct *hp);
28453 27661
28454diff -urNp linux-2.6.38.3/drivers/tty/hvc/hvcs.c linux-2.6.38.3/drivers/tty/hvc/hvcs.c 27662diff -urNp linux-2.6.38.2/drivers/tty/hvc/hvcs.c linux-2.6.38.2/drivers/tty/hvc/hvcs.c
28455--- linux-2.6.38.3/drivers/tty/hvc/hvcs.c 2011-03-14 21:20:32.000000000 -0400 27663--- linux-2.6.38.2/drivers/tty/hvc/hvcs.c 2011-03-14 21:20:32.000000000 -0400
28456+++ linux-2.6.38.3/drivers/tty/hvc/hvcs.c 2011-04-17 15:57:32.000000000 -0400 27664+++ linux-2.6.38.2/drivers/tty/hvc/hvcs.c 2011-03-21 18:31:35.000000000 -0400
28457@@ -83,6 +83,7 @@ 27665@@ -83,6 +83,7 @@
28458 #include <asm/hvcserver.h> 27666 #include <asm/hvcserver.h>
28459 #include <asm/uaccess.h> 27667 #include <asm/uaccess.h>
@@ -28556,9 +27764,9 @@ diff -urNp linux-2.6.38.3/drivers/tty/hvc/hvcs.c linux-2.6.38.3/drivers/tty/hvc/
28556 return 0; 27764 return 0;
28557 27765
28558 return HVCS_BUFF_LEN - hvcsd->chars_in_buffer; 27766 return HVCS_BUFF_LEN - hvcsd->chars_in_buffer;
28559diff -urNp linux-2.6.38.3/drivers/tty/hvc/hvc_xen.c linux-2.6.38.3/drivers/tty/hvc/hvc_xen.c 27767diff -urNp linux-2.6.38.2/drivers/tty/hvc/hvc_xen.c linux-2.6.38.2/drivers/tty/hvc/hvc_xen.c
28560--- linux-2.6.38.3/drivers/tty/hvc/hvc_xen.c 2011-03-14 21:20:32.000000000 -0400 27768--- linux-2.6.38.2/drivers/tty/hvc/hvc_xen.c 2011-03-14 21:20:32.000000000 -0400
28561+++ linux-2.6.38.3/drivers/tty/hvc/hvc_xen.c 2011-04-17 15:57:32.000000000 -0400 27769+++ linux-2.6.38.2/drivers/tty/hvc/hvc_xen.c 2011-03-21 18:31:35.000000000 -0400
28562@@ -123,7 +123,7 @@ static int domU_read_console(uint32_t vt 27770@@ -123,7 +123,7 @@ static int domU_read_console(uint32_t vt
28563 return recv; 27771 return recv;
28564 } 27772 }
@@ -28595,9 +27803,9 @@ diff -urNp linux-2.6.38.3/drivers/tty/hvc/hvc_xen.c linux-2.6.38.3/drivers/tty/h
28595 27803
28596 if (!xen_pv_domain()) 27804 if (!xen_pv_domain())
28597 return 0; 27805 return 0;
28598diff -urNp linux-2.6.38.3/drivers/tty/n_gsm.c linux-2.6.38.3/drivers/tty/n_gsm.c 27806diff -urNp linux-2.6.38.2/drivers/tty/n_gsm.c linux-2.6.38.2/drivers/tty/n_gsm.c
28599--- linux-2.6.38.3/drivers/tty/n_gsm.c 2011-03-14 21:20:32.000000000 -0400 27807--- linux-2.6.38.2/drivers/tty/n_gsm.c 2011-03-14 21:20:32.000000000 -0400
28600+++ linux-2.6.38.3/drivers/tty/n_gsm.c 2011-04-17 15:57:32.000000000 -0400 27808+++ linux-2.6.38.2/drivers/tty/n_gsm.c 2011-03-21 18:31:35.000000000 -0400
28601@@ -1589,7 +1589,7 @@ static struct gsm_dlci *gsm_dlci_alloc(s 27809@@ -1589,7 +1589,7 @@ static struct gsm_dlci *gsm_dlci_alloc(s
28602 return NULL; 27810 return NULL;
28603 spin_lock_init(&dlci->lock); 27811 spin_lock_init(&dlci->lock);
@@ -28607,9 +27815,9 @@ diff -urNp linux-2.6.38.3/drivers/tty/n_gsm.c linux-2.6.38.3/drivers/tty/n_gsm.c
28607 kfree(dlci); 27815 kfree(dlci);
28608 return NULL; 27816 return NULL;
28609 } 27817 }
28610diff -urNp linux-2.6.38.3/drivers/tty/n_tty.c linux-2.6.38.3/drivers/tty/n_tty.c 27818diff -urNp linux-2.6.38.2/drivers/tty/n_tty.c linux-2.6.38.2/drivers/tty/n_tty.c
28611--- linux-2.6.38.3/drivers/tty/n_tty.c 2011-03-14 21:20:32.000000000 -0400 27819--- linux-2.6.38.2/drivers/tty/n_tty.c 2011-03-14 21:20:32.000000000 -0400
28612+++ linux-2.6.38.3/drivers/tty/n_tty.c 2011-04-17 15:57:32.000000000 -0400 27820+++ linux-2.6.38.2/drivers/tty/n_tty.c 2011-03-21 18:31:35.000000000 -0400
28613@@ -2116,6 +2116,7 @@ void n_tty_inherit_ops(struct tty_ldisc_ 27821@@ -2116,6 +2116,7 @@ void n_tty_inherit_ops(struct tty_ldisc_
28614 { 27822 {
28615 *ops = tty_ldisc_N_TTY; 27823 *ops = tty_ldisc_N_TTY;
@@ -28619,9 +27827,9 @@ diff -urNp linux-2.6.38.3/drivers/tty/n_tty.c linux-2.6.38.3/drivers/tty/n_tty.c
28619+ ops->flags = 0; 27827+ ops->flags = 0;
28620 } 27828 }
28621 EXPORT_SYMBOL_GPL(n_tty_inherit_ops); 27829 EXPORT_SYMBOL_GPL(n_tty_inherit_ops);
28622diff -urNp linux-2.6.38.3/drivers/tty/pty.c linux-2.6.38.3/drivers/tty/pty.c 27830diff -urNp linux-2.6.38.2/drivers/tty/pty.c linux-2.6.38.2/drivers/tty/pty.c
28623--- linux-2.6.38.3/drivers/tty/pty.c 2011-03-14 21:20:32.000000000 -0400 27831--- linux-2.6.38.2/drivers/tty/pty.c 2011-03-14 21:20:32.000000000 -0400
28624+++ linux-2.6.38.3/drivers/tty/pty.c 2011-04-17 15:57:32.000000000 -0400 27832+++ linux-2.6.38.2/drivers/tty/pty.c 2011-03-21 18:31:35.000000000 -0400
28625@@ -700,7 +700,18 @@ out: 27833@@ -700,7 +700,18 @@ out:
28626 return retval; 27834 return retval;
28627 } 27835 }
@@ -28653,9 +27861,9 @@ diff -urNp linux-2.6.38.3/drivers/tty/pty.c linux-2.6.38.3/drivers/tty/pty.c
28653 cdev_init(&ptmx_cdev, &ptmx_fops); 27861 cdev_init(&ptmx_cdev, &ptmx_fops);
28654 if (cdev_add(&ptmx_cdev, MKDEV(TTYAUX_MAJOR, 2), 1) || 27862 if (cdev_add(&ptmx_cdev, MKDEV(TTYAUX_MAJOR, 2), 1) ||
28655 register_chrdev_region(MKDEV(TTYAUX_MAJOR, 2), 1, "/dev/ptmx") < 0) 27863 register_chrdev_region(MKDEV(TTYAUX_MAJOR, 2), 1, "/dev/ptmx") < 0)
28656diff -urNp linux-2.6.38.3/drivers/tty/serial/8250_pci.c linux-2.6.38.3/drivers/tty/serial/8250_pci.c 27864diff -urNp linux-2.6.38.2/drivers/tty/serial/8250_pci.c linux-2.6.38.2/drivers/tty/serial/8250_pci.c
28657--- linux-2.6.38.3/drivers/tty/serial/8250_pci.c 2011-03-14 21:20:32.000000000 -0400 27865--- linux-2.6.38.2/drivers/tty/serial/8250_pci.c 2011-03-14 21:20:32.000000000 -0400
28658+++ linux-2.6.38.3/drivers/tty/serial/8250_pci.c 2011-04-17 15:57:32.000000000 -0400 27866+++ linux-2.6.38.2/drivers/tty/serial/8250_pci.c 2011-03-21 18:31:35.000000000 -0400
28659@@ -3818,7 +3818,7 @@ static struct pci_device_id serial_pci_t 27867@@ -3818,7 +3818,7 @@ static struct pci_device_id serial_pci_t
28660 PCI_ANY_ID, PCI_ANY_ID, 27868 PCI_ANY_ID, PCI_ANY_ID,
28661 PCI_CLASS_COMMUNICATION_MULTISERIAL << 8, 27869 PCI_CLASS_COMMUNICATION_MULTISERIAL << 8,
@@ -28665,9 +27873,9 @@ diff -urNp linux-2.6.38.3/drivers/tty/serial/8250_pci.c linux-2.6.38.3/drivers/t
28665 }; 27873 };
28666 27874
28667 static struct pci_driver serial_pci_driver = { 27875 static struct pci_driver serial_pci_driver = {
28668diff -urNp linux-2.6.38.3/drivers/tty/serial/kgdboc.c linux-2.6.38.3/drivers/tty/serial/kgdboc.c 27876diff -urNp linux-2.6.38.2/drivers/tty/serial/kgdboc.c linux-2.6.38.2/drivers/tty/serial/kgdboc.c
28669--- linux-2.6.38.3/drivers/tty/serial/kgdboc.c 2011-03-14 21:20:32.000000000 -0400 27877--- linux-2.6.38.2/drivers/tty/serial/kgdboc.c 2011-03-14 21:20:32.000000000 -0400
28670+++ linux-2.6.38.3/drivers/tty/serial/kgdboc.c 2011-04-17 15:57:32.000000000 -0400 27878+++ linux-2.6.38.2/drivers/tty/serial/kgdboc.c 2011-03-21 18:31:35.000000000 -0400
28671@@ -22,7 +22,7 @@ 27879@@ -22,7 +22,7 @@
28672 27880
28673 #define MAX_CONFIG_LEN 40 27881 #define MAX_CONFIG_LEN 40
@@ -28686,9 +27894,9 @@ diff -urNp linux-2.6.38.3/drivers/tty/serial/kgdboc.c linux-2.6.38.3/drivers/tty
28686 .name = "kgdboc", 27894 .name = "kgdboc",
28687 .read_char = kgdboc_get_char, 27895 .read_char = kgdboc_get_char,
28688 .write_char = kgdboc_put_char, 27896 .write_char = kgdboc_put_char,
28689diff -urNp linux-2.6.38.3/drivers/tty/tty_io.c linux-2.6.38.3/drivers/tty/tty_io.c 27897diff -urNp linux-2.6.38.2/drivers/tty/tty_io.c linux-2.6.38.2/drivers/tty/tty_io.c
28690--- linux-2.6.38.3/drivers/tty/tty_io.c 2011-03-14 21:20:32.000000000 -0400 27898--- linux-2.6.38.2/drivers/tty/tty_io.c 2011-03-14 21:20:32.000000000 -0400
28691+++ linux-2.6.38.3/drivers/tty/tty_io.c 2011-04-17 15:57:32.000000000 -0400 27899+++ linux-2.6.38.2/drivers/tty/tty_io.c 2011-03-21 18:31:35.000000000 -0400
28692@@ -140,21 +140,11 @@ EXPORT_SYMBOL(tty_mutex); 27900@@ -140,21 +140,11 @@ EXPORT_SYMBOL(tty_mutex);
28693 /* Spinlock to protect the tty->tty_files list */ 27901 /* Spinlock to protect the tty->tty_files list */
28694 DEFINE_SPINLOCK(tty_files_lock); 27902 DEFINE_SPINLOCK(tty_files_lock);
@@ -28826,9 +28034,9 @@ diff -urNp linux-2.6.38.3/drivers/tty/tty_io.c linux-2.6.38.3/drivers/tty/tty_io
28826 /* 28034 /*
28827 * Initialize the console device. This is called *early*, so 28035 * Initialize the console device. This is called *early*, so
28828 * we can't necessarily depend on lots of kernel help here. 28036 * we can't necessarily depend on lots of kernel help here.
28829diff -urNp linux-2.6.38.3/drivers/tty/tty_ldisc.c linux-2.6.38.3/drivers/tty/tty_ldisc.c 28037diff -urNp linux-2.6.38.2/drivers/tty/tty_ldisc.c linux-2.6.38.2/drivers/tty/tty_ldisc.c
28830--- linux-2.6.38.3/drivers/tty/tty_ldisc.c 2011-03-14 21:20:32.000000000 -0400 28038--- linux-2.6.38.2/drivers/tty/tty_ldisc.c 2011-03-14 21:20:32.000000000 -0400
28831+++ linux-2.6.38.3/drivers/tty/tty_ldisc.c 2011-04-17 15:57:32.000000000 -0400 28039+++ linux-2.6.38.2/drivers/tty/tty_ldisc.c 2011-03-21 18:31:35.000000000 -0400
28832@@ -76,7 +76,7 @@ static void put_ldisc(struct tty_ldisc * 28040@@ -76,7 +76,7 @@ static void put_ldisc(struct tty_ldisc *
28833 if (atomic_dec_and_lock(&ld->users, &tty_ldisc_lock)) { 28041 if (atomic_dec_and_lock(&ld->users, &tty_ldisc_lock)) {
28834 struct tty_ldisc_ops *ldo = ld->ops; 28042 struct tty_ldisc_ops *ldo = ld->ops;
@@ -28874,9 +28082,9 @@ diff -urNp linux-2.6.38.3/drivers/tty/tty_ldisc.c linux-2.6.38.3/drivers/tty/tty
28874 module_put(ldops->owner); 28082 module_put(ldops->owner);
28875 spin_unlock_irqrestore(&tty_ldisc_lock, flags); 28083 spin_unlock_irqrestore(&tty_ldisc_lock, flags);
28876 } 28084 }
28877diff -urNp linux-2.6.38.3/drivers/tty/vt/keyboard.c linux-2.6.38.3/drivers/tty/vt/keyboard.c 28085diff -urNp linux-2.6.38.2/drivers/tty/vt/keyboard.c linux-2.6.38.2/drivers/tty/vt/keyboard.c
28878--- linux-2.6.38.3/drivers/tty/vt/keyboard.c 2011-03-14 21:20:32.000000000 -0400 28086--- linux-2.6.38.2/drivers/tty/vt/keyboard.c 2011-03-14 21:20:32.000000000 -0400
28879+++ linux-2.6.38.3/drivers/tty/vt/keyboard.c 2011-04-17 15:57:32.000000000 -0400 28087+++ linux-2.6.38.2/drivers/tty/vt/keyboard.c 2011-03-21 18:31:35.000000000 -0400
28880@@ -657,6 +657,16 @@ static void k_spec(struct vc_data *vc, u 28088@@ -657,6 +657,16 @@ static void k_spec(struct vc_data *vc, u
28881 kbd->kbdmode == VC_MEDIUMRAW) && 28089 kbd->kbdmode == VC_MEDIUMRAW) &&
28882 value != KVAL(K_SAK)) 28090 value != KVAL(K_SAK))
@@ -28903,9 +28111,9 @@ diff -urNp linux-2.6.38.3/drivers/tty/vt/keyboard.c linux-2.6.38.3/drivers/tty/v
28903 }; 28111 };
28904 28112
28905 MODULE_DEVICE_TABLE(input, kbd_ids); 28113 MODULE_DEVICE_TABLE(input, kbd_ids);
28906diff -urNp linux-2.6.38.3/drivers/tty/vt/vt.c linux-2.6.38.3/drivers/tty/vt/vt.c 28114diff -urNp linux-2.6.38.2/drivers/tty/vt/vt.c linux-2.6.38.2/drivers/tty/vt/vt.c
28907--- linux-2.6.38.3/drivers/tty/vt/vt.c 2011-03-14 21:20:32.000000000 -0400 28115--- linux-2.6.38.2/drivers/tty/vt/vt.c 2011-03-14 21:20:32.000000000 -0400
28908+++ linux-2.6.38.3/drivers/tty/vt/vt.c 2011-04-17 15:57:32.000000000 -0400 28116+++ linux-2.6.38.2/drivers/tty/vt/vt.c 2011-03-21 18:31:35.000000000 -0400
28909@@ -262,7 +262,7 @@ EXPORT_SYMBOL_GPL(unregister_vt_notifier 28117@@ -262,7 +262,7 @@ EXPORT_SYMBOL_GPL(unregister_vt_notifier
28910 28118
28911 static void notify_write(struct vc_data *vc, unsigned int unicode) 28119 static void notify_write(struct vc_data *vc, unsigned int unicode)
@@ -28915,9 +28123,9 @@ diff -urNp linux-2.6.38.3/drivers/tty/vt/vt.c linux-2.6.38.3/drivers/tty/vt/vt.c
28915 atomic_notifier_call_chain(&vt_notifier_list, VT_WRITE, &param); 28123 atomic_notifier_call_chain(&vt_notifier_list, VT_WRITE, &param);
28916 } 28124 }
28917 28125
28918diff -urNp linux-2.6.38.3/drivers/tty/vt/vt_ioctl.c linux-2.6.38.3/drivers/tty/vt/vt_ioctl.c 28126diff -urNp linux-2.6.38.2/drivers/tty/vt/vt_ioctl.c linux-2.6.38.2/drivers/tty/vt/vt_ioctl.c
28919--- linux-2.6.38.3/drivers/tty/vt/vt_ioctl.c 2011-03-14 21:20:32.000000000 -0400 28127--- linux-2.6.38.2/drivers/tty/vt/vt_ioctl.c 2011-03-14 21:20:32.000000000 -0400
28920+++ linux-2.6.38.3/drivers/tty/vt/vt_ioctl.c 2011-04-17 15:57:32.000000000 -0400 28128+++ linux-2.6.38.2/drivers/tty/vt/vt_ioctl.c 2011-03-21 18:31:35.000000000 -0400
28921@@ -210,9 +210,6 @@ do_kdsk_ioctl(int cmd, struct kbentry __ 28129@@ -210,9 +210,6 @@ do_kdsk_ioctl(int cmd, struct kbentry __
28922 if (copy_from_user(&tmp, user_kbe, sizeof(struct kbentry))) 28130 if (copy_from_user(&tmp, user_kbe, sizeof(struct kbentry)))
28923 return -EFAULT; 28131 return -EFAULT;
@@ -28958,9 +28166,9 @@ diff -urNp linux-2.6.38.3/drivers/tty/vt/vt_ioctl.c linux-2.6.38.3/drivers/tty/v
28958 if (!perm) { 28166 if (!perm) {
28959 ret = -EPERM; 28167 ret = -EPERM;
28960 goto reterr; 28168 goto reterr;
28961diff -urNp linux-2.6.38.3/drivers/uio/uio.c linux-2.6.38.3/drivers/uio/uio.c 28169diff -urNp linux-2.6.38.2/drivers/uio/uio.c linux-2.6.38.2/drivers/uio/uio.c
28962--- linux-2.6.38.3/drivers/uio/uio.c 2011-03-14 21:20:32.000000000 -0400 28170--- linux-2.6.38.2/drivers/uio/uio.c 2011-03-14 21:20:32.000000000 -0400
28963+++ linux-2.6.38.3/drivers/uio/uio.c 2011-04-17 15:57:32.000000000 -0400 28171+++ linux-2.6.38.2/drivers/uio/uio.c 2011-03-21 18:31:35.000000000 -0400
28964@@ -25,6 +25,7 @@ 28172@@ -25,6 +25,7 @@
28965 #include <linux/kobject.h> 28173 #include <linux/kobject.h>
28966 #include <linux/cdev.h> 28174 #include <linux/cdev.h>
@@ -28994,9 +28202,9 @@ diff -urNp linux-2.6.38.3/drivers/uio/uio.c linux-2.6.38.3/drivers/uio/uio.c
28994 } 28202 }
28995 28203
28996 static int uio_vma_fault(struct vm_area_struct *vma, struct vm_fault *vmf) 28204 static int uio_vma_fault(struct vm_area_struct *vma, struct vm_fault *vmf)
28997diff -urNp linux-2.6.38.3/drivers/usb/atm/cxacru.c linux-2.6.38.3/drivers/usb/atm/cxacru.c 28205diff -urNp linux-2.6.38.2/drivers/usb/atm/cxacru.c linux-2.6.38.2/drivers/usb/atm/cxacru.c
28998--- linux-2.6.38.3/drivers/usb/atm/cxacru.c 2011-03-14 21:20:32.000000000 -0400 28206--- linux-2.6.38.2/drivers/usb/atm/cxacru.c 2011-03-14 21:20:32.000000000 -0400
28999+++ linux-2.6.38.3/drivers/usb/atm/cxacru.c 2011-04-17 15:57:32.000000000 -0400 28207+++ linux-2.6.38.2/drivers/usb/atm/cxacru.c 2011-03-21 18:31:35.000000000 -0400
29000@@ -473,7 +473,7 @@ static ssize_t cxacru_sysfs_store_adsl_c 28208@@ -473,7 +473,7 @@ static ssize_t cxacru_sysfs_store_adsl_c
29001 ret = sscanf(buf + pos, "%x=%x%n", &index, &value, &tmp); 28209 ret = sscanf(buf + pos, "%x=%x%n", &index, &value, &tmp);
29002 if (ret < 2) 28210 if (ret < 2)
@@ -29006,9 +28214,9 @@ diff -urNp linux-2.6.38.3/drivers/usb/atm/cxacru.c linux-2.6.38.3/drivers/usb/at
29006 return -EINVAL; 28214 return -EINVAL;
29007 pos += tmp; 28215 pos += tmp;
29008 28216
29009diff -urNp linux-2.6.38.3/drivers/usb/atm/usbatm.c linux-2.6.38.3/drivers/usb/atm/usbatm.c 28217diff -urNp linux-2.6.38.2/drivers/usb/atm/usbatm.c linux-2.6.38.2/drivers/usb/atm/usbatm.c
29010--- linux-2.6.38.3/drivers/usb/atm/usbatm.c 2011-03-14 21:20:32.000000000 -0400 28218--- linux-2.6.38.2/drivers/usb/atm/usbatm.c 2011-03-14 21:20:32.000000000 -0400
29011+++ linux-2.6.38.3/drivers/usb/atm/usbatm.c 2011-04-17 15:57:32.000000000 -0400 28219+++ linux-2.6.38.2/drivers/usb/atm/usbatm.c 2011-03-21 18:31:35.000000000 -0400
29012@@ -332,7 +332,7 @@ static void usbatm_extract_one_cell(stru 28220@@ -332,7 +332,7 @@ static void usbatm_extract_one_cell(stru
29013 if (printk_ratelimit()) 28221 if (printk_ratelimit())
29014 atm_warn(instance, "%s: OAM not supported (vpi %d, vci %d)!\n", 28222 atm_warn(instance, "%s: OAM not supported (vpi %d, vci %d)!\n",
@@ -29088,9 +28296,9 @@ diff -urNp linux-2.6.38.3/drivers/usb/atm/usbatm.c linux-2.6.38.3/drivers/usb/at
29088 28296
29089 if (!left--) { 28297 if (!left--) {
29090 if (instance->disconnected) 28298 if (instance->disconnected)
29091diff -urNp linux-2.6.38.3/drivers/usb/class/cdc-acm.c linux-2.6.38.3/drivers/usb/class/cdc-acm.c 28299diff -urNp linux-2.6.38.2/drivers/usb/class/cdc-acm.c linux-2.6.38.2/drivers/usb/class/cdc-acm.c
29092--- linux-2.6.38.3/drivers/usb/class/cdc-acm.c 2011-04-18 17:27:16.000000000 -0400 28300--- linux-2.6.38.2/drivers/usb/class/cdc-acm.c 2011-03-28 17:42:40.000000000 -0400
29093+++ linux-2.6.38.3/drivers/usb/class/cdc-acm.c 2011-04-17 15:57:32.000000000 -0400 28301+++ linux-2.6.38.2/drivers/usb/class/cdc-acm.c 2011-03-28 17:42:53.000000000 -0400
29094@@ -1640,7 +1640,7 @@ static const struct usb_device_id acm_id 28302@@ -1640,7 +1640,7 @@ static const struct usb_device_id acm_id
29095 { USB_INTERFACE_INFO(USB_CLASS_COMM, USB_CDC_SUBCLASS_ACM, 28303 { USB_INTERFACE_INFO(USB_CLASS_COMM, USB_CDC_SUBCLASS_ACM,
29096 USB_CDC_ACM_PROTO_AT_CDMA) }, 28304 USB_CDC_ACM_PROTO_AT_CDMA) },
@@ -29100,9 +28308,9 @@ diff -urNp linux-2.6.38.3/drivers/usb/class/cdc-acm.c linux-2.6.38.3/drivers/usb
29100 }; 28308 };
29101 28309
29102 MODULE_DEVICE_TABLE(usb, acm_ids); 28310 MODULE_DEVICE_TABLE(usb, acm_ids);
29103diff -urNp linux-2.6.38.3/drivers/usb/class/usblp.c linux-2.6.38.3/drivers/usb/class/usblp.c 28311diff -urNp linux-2.6.38.2/drivers/usb/class/usblp.c linux-2.6.38.2/drivers/usb/class/usblp.c
29104--- linux-2.6.38.3/drivers/usb/class/usblp.c 2011-03-14 21:20:32.000000000 -0400 28312--- linux-2.6.38.2/drivers/usb/class/usblp.c 2011-03-14 21:20:32.000000000 -0400
29105+++ linux-2.6.38.3/drivers/usb/class/usblp.c 2011-04-17 15:57:32.000000000 -0400 28313+++ linux-2.6.38.2/drivers/usb/class/usblp.c 2011-03-21 18:31:35.000000000 -0400
29106@@ -227,7 +227,7 @@ static const struct quirk_printer_struct 28314@@ -227,7 +227,7 @@ static const struct quirk_printer_struct
29107 { 0x0482, 0x0010, USBLP_QUIRK_BIDIR }, /* Kyocera Mita FS 820, by zut <kernel@zut.de> */ 28315 { 0x0482, 0x0010, USBLP_QUIRK_BIDIR }, /* Kyocera Mita FS 820, by zut <kernel@zut.de> */
29108 { 0x04f9, 0x000d, USBLP_QUIRK_BIDIR }, /* Brother Industries, Ltd HL-1440 Laser Printer */ 28316 { 0x04f9, 0x000d, USBLP_QUIRK_BIDIR }, /* Brother Industries, Ltd HL-1440 Laser Printer */
@@ -29121,9 +28329,9 @@ diff -urNp linux-2.6.38.3/drivers/usb/class/usblp.c linux-2.6.38.3/drivers/usb/c
29121 }; 28329 };
29122 28330
29123 MODULE_DEVICE_TABLE(usb, usblp_ids); 28331 MODULE_DEVICE_TABLE(usb, usblp_ids);
29124diff -urNp linux-2.6.38.3/drivers/usb/core/hcd.c linux-2.6.38.3/drivers/usb/core/hcd.c 28332diff -urNp linux-2.6.38.2/drivers/usb/core/hcd.c linux-2.6.38.2/drivers/usb/core/hcd.c
29125--- linux-2.6.38.3/drivers/usb/core/hcd.c 2011-04-18 17:27:14.000000000 -0400 28333--- linux-2.6.38.2/drivers/usb/core/hcd.c 2011-03-23 17:20:07.000000000 -0400
29126+++ linux-2.6.38.3/drivers/usb/core/hcd.c 2011-04-17 15:57:32.000000000 -0400 28334+++ linux-2.6.38.2/drivers/usb/core/hcd.c 2011-03-26 20:49:43.000000000 -0400
29127@@ -2457,7 +2457,7 @@ EXPORT_SYMBOL_GPL(usb_hcd_platform_shutd 28335@@ -2457,7 +2457,7 @@ EXPORT_SYMBOL_GPL(usb_hcd_platform_shutd
29128 28336
29129 #if defined(CONFIG_USB_MON) || defined(CONFIG_USB_MON_MODULE) 28337 #if defined(CONFIG_USB_MON) || defined(CONFIG_USB_MON_MODULE)
@@ -29142,9 +28350,9 @@ diff -urNp linux-2.6.38.3/drivers/usb/core/hcd.c linux-2.6.38.3/drivers/usb/core
29142 { 28350 {
29143 28351
29144 if (mon_ops) 28352 if (mon_ops)
29145diff -urNp linux-2.6.38.3/drivers/usb/core/hub.c linux-2.6.38.3/drivers/usb/core/hub.c 28353diff -urNp linux-2.6.38.2/drivers/usb/core/hub.c linux-2.6.38.2/drivers/usb/core/hub.c
29146--- linux-2.6.38.3/drivers/usb/core/hub.c 2011-03-14 21:20:32.000000000 -0400 28354--- linux-2.6.38.2/drivers/usb/core/hub.c 2011-03-14 21:20:32.000000000 -0400
29147+++ linux-2.6.38.3/drivers/usb/core/hub.c 2011-04-17 15:57:32.000000000 -0400 28355+++ linux-2.6.38.2/drivers/usb/core/hub.c 2011-03-21 18:31:35.000000000 -0400
29148@@ -3492,7 +3492,7 @@ static const struct usb_device_id hub_id 28356@@ -3492,7 +3492,7 @@ static const struct usb_device_id hub_id
29149 .bDeviceClass = USB_CLASS_HUB}, 28357 .bDeviceClass = USB_CLASS_HUB},
29150 { .match_flags = USB_DEVICE_ID_MATCH_INT_CLASS, 28358 { .match_flags = USB_DEVICE_ID_MATCH_INT_CLASS,
@@ -29154,9 +28362,9 @@ diff -urNp linux-2.6.38.3/drivers/usb/core/hub.c linux-2.6.38.3/drivers/usb/core
29154 }; 28362 };
29155 28363
29156 MODULE_DEVICE_TABLE (usb, hub_id_table); 28364 MODULE_DEVICE_TABLE (usb, hub_id_table);
29157diff -urNp linux-2.6.38.3/drivers/usb/core/message.c linux-2.6.38.3/drivers/usb/core/message.c 28365diff -urNp linux-2.6.38.2/drivers/usb/core/message.c linux-2.6.38.2/drivers/usb/core/message.c
29158--- linux-2.6.38.3/drivers/usb/core/message.c 2011-03-14 21:20:32.000000000 -0400 28366--- linux-2.6.38.2/drivers/usb/core/message.c 2011-03-14 21:20:32.000000000 -0400
29159+++ linux-2.6.38.3/drivers/usb/core/message.c 2011-04-17 15:57:32.000000000 -0400 28367+++ linux-2.6.38.2/drivers/usb/core/message.c 2011-03-21 18:31:35.000000000 -0400
29160@@ -869,8 +869,8 @@ char *usb_cache_string(struct usb_device 28368@@ -869,8 +869,8 @@ char *usb_cache_string(struct usb_device
29161 buf = kmalloc(MAX_USB_STRING_SIZE, GFP_NOIO); 28369 buf = kmalloc(MAX_USB_STRING_SIZE, GFP_NOIO);
29162 if (buf) { 28370 if (buf) {
@@ -29168,9 +28376,9 @@ diff -urNp linux-2.6.38.3/drivers/usb/core/message.c linux-2.6.38.3/drivers/usb/
29168 if (!smallbuf) 28376 if (!smallbuf)
29169 return buf; 28377 return buf;
29170 memcpy(smallbuf, buf, len); 28378 memcpy(smallbuf, buf, len);
29171diff -urNp linux-2.6.38.3/drivers/usb/early/ehci-dbgp.c linux-2.6.38.3/drivers/usb/early/ehci-dbgp.c 28379diff -urNp linux-2.6.38.2/drivers/usb/early/ehci-dbgp.c linux-2.6.38.2/drivers/usb/early/ehci-dbgp.c
29172--- linux-2.6.38.3/drivers/usb/early/ehci-dbgp.c 2011-03-14 21:20:32.000000000 -0400 28380--- linux-2.6.38.2/drivers/usb/early/ehci-dbgp.c 2011-03-14 21:20:32.000000000 -0400
29173+++ linux-2.6.38.3/drivers/usb/early/ehci-dbgp.c 2011-04-17 15:57:32.000000000 -0400 28381+++ linux-2.6.38.2/drivers/usb/early/ehci-dbgp.c 2011-03-21 18:31:35.000000000 -0400
29174@@ -96,7 +96,7 @@ static inline u32 dbgp_len_update(u32 x, 28382@@ -96,7 +96,7 @@ static inline u32 dbgp_len_update(u32 x,
29175 } 28383 }
29176 28384
@@ -29189,9 +28397,9 @@ diff -urNp linux-2.6.38.3/drivers/usb/early/ehci-dbgp.c linux-2.6.38.3/drivers/u
29189 .name = "kgdbdbgp", 28397 .name = "kgdbdbgp",
29190 .read_char = kgdbdbgp_read_char, 28398 .read_char = kgdbdbgp_read_char,
29191 .write_char = kgdbdbgp_write_char, 28399 .write_char = kgdbdbgp_write_char,
29192diff -urNp linux-2.6.38.3/drivers/usb/host/ehci-pci.c linux-2.6.38.3/drivers/usb/host/ehci-pci.c 28400diff -urNp linux-2.6.38.2/drivers/usb/host/ehci-pci.c linux-2.6.38.2/drivers/usb/host/ehci-pci.c
29193--- linux-2.6.38.3/drivers/usb/host/ehci-pci.c 2011-03-14 21:20:32.000000000 -0400 28401--- linux-2.6.38.2/drivers/usb/host/ehci-pci.c 2011-03-14 21:20:32.000000000 -0400
29194+++ linux-2.6.38.3/drivers/usb/host/ehci-pci.c 2011-04-17 15:57:32.000000000 -0400 28402+++ linux-2.6.38.2/drivers/usb/host/ehci-pci.c 2011-03-21 18:31:35.000000000 -0400
29195@@ -516,7 +516,7 @@ static const struct pci_device_id pci_id 28403@@ -516,7 +516,7 @@ static const struct pci_device_id pci_id
29196 PCI_DEVICE_CLASS(PCI_CLASS_SERIAL_USB_EHCI, ~0), 28404 PCI_DEVICE_CLASS(PCI_CLASS_SERIAL_USB_EHCI, ~0),
29197 .driver_data = (unsigned long) &ehci_pci_hc_driver, 28405 .driver_data = (unsigned long) &ehci_pci_hc_driver,
@@ -29201,9 +28409,9 @@ diff -urNp linux-2.6.38.3/drivers/usb/host/ehci-pci.c linux-2.6.38.3/drivers/usb
29201 }; 28409 };
29202 MODULE_DEVICE_TABLE(pci, pci_ids); 28410 MODULE_DEVICE_TABLE(pci, pci_ids);
29203 28411
29204diff -urNp linux-2.6.38.3/drivers/usb/host/uhci-hcd.c linux-2.6.38.3/drivers/usb/host/uhci-hcd.c 28412diff -urNp linux-2.6.38.2/drivers/usb/host/uhci-hcd.c linux-2.6.38.2/drivers/usb/host/uhci-hcd.c
29205--- linux-2.6.38.3/drivers/usb/host/uhci-hcd.c 2011-03-14 21:20:32.000000000 -0400 28413--- linux-2.6.38.2/drivers/usb/host/uhci-hcd.c 2011-03-14 21:20:32.000000000 -0400
29206+++ linux-2.6.38.3/drivers/usb/host/uhci-hcd.c 2011-04-17 15:57:32.000000000 -0400 28414+++ linux-2.6.38.2/drivers/usb/host/uhci-hcd.c 2011-03-21 18:31:35.000000000 -0400
29207@@ -948,7 +948,7 @@ static const struct pci_device_id uhci_p 28415@@ -948,7 +948,7 @@ static const struct pci_device_id uhci_p
29208 /* handle any USB UHCI controller */ 28416 /* handle any USB UHCI controller */
29209 PCI_DEVICE_CLASS(PCI_CLASS_SERIAL_USB_UHCI, ~0), 28417 PCI_DEVICE_CLASS(PCI_CLASS_SERIAL_USB_UHCI, ~0),
@@ -29213,9 +28421,9 @@ diff -urNp linux-2.6.38.3/drivers/usb/host/uhci-hcd.c linux-2.6.38.3/drivers/usb
29213 }; 28421 };
29214 28422
29215 MODULE_DEVICE_TABLE(pci, uhci_pci_ids); 28423 MODULE_DEVICE_TABLE(pci, uhci_pci_ids);
29216diff -urNp linux-2.6.38.3/drivers/usb/mon/mon_main.c linux-2.6.38.3/drivers/usb/mon/mon_main.c 28424diff -urNp linux-2.6.38.2/drivers/usb/mon/mon_main.c linux-2.6.38.2/drivers/usb/mon/mon_main.c
29217--- linux-2.6.38.3/drivers/usb/mon/mon_main.c 2011-03-14 21:20:32.000000000 -0400 28425--- linux-2.6.38.2/drivers/usb/mon/mon_main.c 2011-03-14 21:20:32.000000000 -0400
29218+++ linux-2.6.38.3/drivers/usb/mon/mon_main.c 2011-04-17 15:57:32.000000000 -0400 28426+++ linux-2.6.38.2/drivers/usb/mon/mon_main.c 2011-03-21 18:31:35.000000000 -0400
29219@@ -238,7 +238,7 @@ static struct notifier_block mon_nb = { 28427@@ -238,7 +238,7 @@ static struct notifier_block mon_nb = {
29220 /* 28428 /*
29221 * Ops 28429 * Ops
@@ -29225,9 +28433,9 @@ diff -urNp linux-2.6.38.3/drivers/usb/mon/mon_main.c linux-2.6.38.3/drivers/usb/
29225 .urb_submit = mon_submit, 28433 .urb_submit = mon_submit,
29226 .urb_submit_error = mon_submit_error, 28434 .urb_submit_error = mon_submit_error,
29227 .urb_complete = mon_complete, 28435 .urb_complete = mon_complete,
29228diff -urNp linux-2.6.38.3/drivers/usb/storage/debug.h linux-2.6.38.3/drivers/usb/storage/debug.h 28436diff -urNp linux-2.6.38.2/drivers/usb/storage/debug.h linux-2.6.38.2/drivers/usb/storage/debug.h
29229--- linux-2.6.38.3/drivers/usb/storage/debug.h 2011-03-14 21:20:32.000000000 -0400 28437--- linux-2.6.38.2/drivers/usb/storage/debug.h 2011-03-14 21:20:32.000000000 -0400
29230+++ linux-2.6.38.3/drivers/usb/storage/debug.h 2011-04-17 15:57:32.000000000 -0400 28438+++ linux-2.6.38.2/drivers/usb/storage/debug.h 2011-03-21 18:31:35.000000000 -0400
29231@@ -54,9 +54,9 @@ void usb_stor_show_sense( unsigned char 28439@@ -54,9 +54,9 @@ void usb_stor_show_sense( unsigned char
29232 #define US_DEBUGPX(x...) printk( x ) 28440 #define US_DEBUGPX(x...) printk( x )
29233 #define US_DEBUG(x) x 28441 #define US_DEBUG(x) x
@@ -29241,9 +28449,9 @@ diff -urNp linux-2.6.38.3/drivers/usb/storage/debug.h linux-2.6.38.3/drivers/usb
29241 #endif 28449 #endif
29242 28450
29243 #endif 28451 #endif
29244diff -urNp linux-2.6.38.3/drivers/usb/storage/usb.c linux-2.6.38.3/drivers/usb/storage/usb.c 28452diff -urNp linux-2.6.38.2/drivers/usb/storage/usb.c linux-2.6.38.2/drivers/usb/storage/usb.c
29245--- linux-2.6.38.3/drivers/usb/storage/usb.c 2011-03-14 21:20:32.000000000 -0400 28453--- linux-2.6.38.2/drivers/usb/storage/usb.c 2011-03-14 21:20:32.000000000 -0400
29246+++ linux-2.6.38.3/drivers/usb/storage/usb.c 2011-04-17 15:57:32.000000000 -0400 28454+++ linux-2.6.38.2/drivers/usb/storage/usb.c 2011-03-21 18:31:35.000000000 -0400
29247@@ -122,7 +122,7 @@ MODULE_PARM_DESC(quirks, "supplemental l 28455@@ -122,7 +122,7 @@ MODULE_PARM_DESC(quirks, "supplemental l
29248 28456
29249 static struct us_unusual_dev us_unusual_dev_list[] = { 28457 static struct us_unusual_dev us_unusual_dev_list[] = {
@@ -29253,9 +28461,9 @@ diff -urNp linux-2.6.38.3/drivers/usb/storage/usb.c linux-2.6.38.3/drivers/usb/s
29253 }; 28461 };
29254 28462
29255 #undef UNUSUAL_DEV 28463 #undef UNUSUAL_DEV
29256diff -urNp linux-2.6.38.3/drivers/usb/storage/usual-tables.c linux-2.6.38.3/drivers/usb/storage/usual-tables.c 28464diff -urNp linux-2.6.38.2/drivers/usb/storage/usual-tables.c linux-2.6.38.2/drivers/usb/storage/usual-tables.c
29257--- linux-2.6.38.3/drivers/usb/storage/usual-tables.c 2011-03-14 21:20:32.000000000 -0400 28465--- linux-2.6.38.2/drivers/usb/storage/usual-tables.c 2011-03-14 21:20:32.000000000 -0400
29258+++ linux-2.6.38.3/drivers/usb/storage/usual-tables.c 2011-04-17 15:57:32.000000000 -0400 28466+++ linux-2.6.38.2/drivers/usb/storage/usual-tables.c 2011-03-21 18:31:35.000000000 -0400
29259@@ -48,7 +48,7 @@ 28467@@ -48,7 +48,7 @@
29260 28468
29261 struct usb_device_id usb_storage_usb_ids[] = { 28469 struct usb_device_id usb_storage_usb_ids[] = {
@@ -29265,9 +28473,9 @@ diff -urNp linux-2.6.38.3/drivers/usb/storage/usual-tables.c linux-2.6.38.3/driv
29265 }; 28473 };
29266 EXPORT_SYMBOL_GPL(usb_storage_usb_ids); 28474 EXPORT_SYMBOL_GPL(usb_storage_usb_ids);
29267 28475
29268diff -urNp linux-2.6.38.3/drivers/vhost/vhost.c linux-2.6.38.3/drivers/vhost/vhost.c 28476diff -urNp linux-2.6.38.2/drivers/vhost/vhost.c linux-2.6.38.2/drivers/vhost/vhost.c
29269--- linux-2.6.38.3/drivers/vhost/vhost.c 2011-03-14 21:20:32.000000000 -0400 28477--- linux-2.6.38.2/drivers/vhost/vhost.c 2011-03-14 21:20:32.000000000 -0400
29270+++ linux-2.6.38.3/drivers/vhost/vhost.c 2011-04-17 15:57:32.000000000 -0400 28478+++ linux-2.6.38.2/drivers/vhost/vhost.c 2011-03-21 18:31:35.000000000 -0400
29271@@ -565,7 +565,7 @@ static int init_used(struct vhost_virtqu 28479@@ -565,7 +565,7 @@ static int init_used(struct vhost_virtqu
29272 return get_user(vq->last_used_idx, &used->idx); 28480 return get_user(vq->last_used_idx, &used->idx);
29273 } 28481 }
@@ -29277,9 +28485,9 @@ diff -urNp linux-2.6.38.3/drivers/vhost/vhost.c linux-2.6.38.3/drivers/vhost/vho
29277 { 28485 {
29278 struct file *eventfp, *filep = NULL, 28486 struct file *eventfp, *filep = NULL,
29279 *pollstart = NULL, *pollstop = NULL; 28487 *pollstart = NULL, *pollstop = NULL;
29280diff -urNp linux-2.6.38.3/drivers/video/fbcmap.c linux-2.6.38.3/drivers/video/fbcmap.c 28488diff -urNp linux-2.6.38.2/drivers/video/fbcmap.c linux-2.6.38.2/drivers/video/fbcmap.c
29281--- linux-2.6.38.3/drivers/video/fbcmap.c 2011-03-14 21:20:32.000000000 -0400 28489--- linux-2.6.38.2/drivers/video/fbcmap.c 2011-03-14 21:20:32.000000000 -0400
29282+++ linux-2.6.38.3/drivers/video/fbcmap.c 2011-04-17 15:57:32.000000000 -0400 28490+++ linux-2.6.38.2/drivers/video/fbcmap.c 2011-03-21 18:31:35.000000000 -0400
29283@@ -285,8 +285,7 @@ int fb_set_user_cmap(struct fb_cmap_user 28491@@ -285,8 +285,7 @@ int fb_set_user_cmap(struct fb_cmap_user
29284 rc = -ENODEV; 28492 rc = -ENODEV;
29285 goto out; 28493 goto out;
@@ -29290,9 +28498,9 @@ diff -urNp linux-2.6.38.3/drivers/video/fbcmap.c linux-2.6.38.3/drivers/video/fb
29290 rc = -EINVAL; 28498 rc = -EINVAL;
29291 goto out1; 28499 goto out1;
29292 } 28500 }
29293diff -urNp linux-2.6.38.3/drivers/video/fbmem.c linux-2.6.38.3/drivers/video/fbmem.c 28501diff -urNp linux-2.6.38.2/drivers/video/fbmem.c linux-2.6.38.2/drivers/video/fbmem.c
29294--- linux-2.6.38.3/drivers/video/fbmem.c 2011-03-14 21:20:32.000000000 -0400 28502--- linux-2.6.38.2/drivers/video/fbmem.c 2011-03-14 21:20:32.000000000 -0400
29295+++ linux-2.6.38.3/drivers/video/fbmem.c 2011-04-17 15:57:32.000000000 -0400 28503+++ linux-2.6.38.2/drivers/video/fbmem.c 2011-03-21 18:31:35.000000000 -0400
29296@@ -403,7 +403,7 @@ static void fb_do_show_logo(struct fb_in 28504@@ -403,7 +403,7 @@ static void fb_do_show_logo(struct fb_in
29297 image->dx += image->width + 8; 28505 image->dx += image->width + 8;
29298 } 28506 }
@@ -29320,9 +28528,9 @@ diff -urNp linux-2.6.38.3/drivers/video/fbmem.c linux-2.6.38.3/drivers/video/fbm
29320 return -EINVAL; 28528 return -EINVAL;
29321 if (!registered_fb[con2fb.framebuffer]) 28529 if (!registered_fb[con2fb.framebuffer])
29322 request_module("fb%d", con2fb.framebuffer); 28530 request_module("fb%d", con2fb.framebuffer);
29323diff -urNp linux-2.6.38.3/drivers/video/fbmon.c linux-2.6.38.3/drivers/video/fbmon.c 28531diff -urNp linux-2.6.38.2/drivers/video/fbmon.c linux-2.6.38.2/drivers/video/fbmon.c
29324--- linux-2.6.38.3/drivers/video/fbmon.c 2011-03-14 21:20:32.000000000 -0400 28532--- linux-2.6.38.2/drivers/video/fbmon.c 2011-03-14 21:20:32.000000000 -0400
29325+++ linux-2.6.38.3/drivers/video/fbmon.c 2011-04-17 15:57:32.000000000 -0400 28533+++ linux-2.6.38.2/drivers/video/fbmon.c 2011-03-21 18:31:35.000000000 -0400
29326@@ -46,7 +46,7 @@ 28534@@ -46,7 +46,7 @@
29327 #ifdef DEBUG 28535 #ifdef DEBUG
29328 #define DPRINTK(fmt, args...) printk(fmt,## args) 28536 #define DPRINTK(fmt, args...) printk(fmt,## args)
@@ -29332,9 +28540,9 @@ diff -urNp linux-2.6.38.3/drivers/video/fbmon.c linux-2.6.38.3/drivers/video/fbm
29332 #endif 28540 #endif
29333 28541
29334 #define FBMON_FIX_HEADER 1 28542 #define FBMON_FIX_HEADER 1
29335diff -urNp linux-2.6.38.3/drivers/video/i810/i810_accel.c linux-2.6.38.3/drivers/video/i810/i810_accel.c 28543diff -urNp linux-2.6.38.2/drivers/video/i810/i810_accel.c linux-2.6.38.2/drivers/video/i810/i810_accel.c
29336--- linux-2.6.38.3/drivers/video/i810/i810_accel.c 2011-03-14 21:20:32.000000000 -0400 28544--- linux-2.6.38.2/drivers/video/i810/i810_accel.c 2011-03-14 21:20:32.000000000 -0400
29337+++ linux-2.6.38.3/drivers/video/i810/i810_accel.c 2011-04-17 15:57:32.000000000 -0400 28545+++ linux-2.6.38.2/drivers/video/i810/i810_accel.c 2011-03-21 18:31:35.000000000 -0400
29338@@ -73,6 +73,7 @@ static inline int wait_for_space(struct 28546@@ -73,6 +73,7 @@ static inline int wait_for_space(struct
29339 } 28547 }
29340 } 28548 }
@@ -29343,9 +28551,9 @@ diff -urNp linux-2.6.38.3/drivers/video/i810/i810_accel.c linux-2.6.38.3/drivers
29343 i810_report_error(mmio); 28551 i810_report_error(mmio);
29344 par->dev_flags |= LOCKUP; 28552 par->dev_flags |= LOCKUP;
29345 info->pixmap.scan_align = 1; 28553 info->pixmap.scan_align = 1;
29346diff -urNp linux-2.6.38.3/drivers/video/i810/i810_main.c linux-2.6.38.3/drivers/video/i810/i810_main.c 28554diff -urNp linux-2.6.38.2/drivers/video/i810/i810_main.c linux-2.6.38.2/drivers/video/i810/i810_main.c
29347--- linux-2.6.38.3/drivers/video/i810/i810_main.c 2011-03-14 21:20:32.000000000 -0400 28555--- linux-2.6.38.2/drivers/video/i810/i810_main.c 2011-03-14 21:20:32.000000000 -0400
29348+++ linux-2.6.38.3/drivers/video/i810/i810_main.c 2011-04-17 15:57:32.000000000 -0400 28556+++ linux-2.6.38.2/drivers/video/i810/i810_main.c 2011-03-21 18:31:35.000000000 -0400
29349@@ -120,7 +120,7 @@ static struct pci_device_id i810fb_pci_t 28557@@ -120,7 +120,7 @@ static struct pci_device_id i810fb_pci_t
29350 PCI_ANY_ID, PCI_ANY_ID, 0, 0, 4 }, 28558 PCI_ANY_ID, PCI_ANY_ID, 0, 0, 4 },
29351 { PCI_VENDOR_ID_INTEL, PCI_DEVICE_ID_INTEL_82815_CGC, 28559 { PCI_VENDOR_ID_INTEL, PCI_DEVICE_ID_INTEL_82815_CGC,
@@ -29355,9 +28563,9 @@ diff -urNp linux-2.6.38.3/drivers/video/i810/i810_main.c linux-2.6.38.3/drivers/
29355 }; 28563 };
29356 28564
29357 static struct pci_driver i810fb_driver = { 28565 static struct pci_driver i810fb_driver = {
29358diff -urNp linux-2.6.38.3/drivers/video/modedb.c linux-2.6.38.3/drivers/video/modedb.c 28566diff -urNp linux-2.6.38.2/drivers/video/modedb.c linux-2.6.38.2/drivers/video/modedb.c
29359--- linux-2.6.38.3/drivers/video/modedb.c 2011-03-14 21:20:32.000000000 -0400 28567--- linux-2.6.38.2/drivers/video/modedb.c 2011-03-14 21:20:32.000000000 -0400
29360+++ linux-2.6.38.3/drivers/video/modedb.c 2011-04-17 15:57:32.000000000 -0400 28568+++ linux-2.6.38.2/drivers/video/modedb.c 2011-03-21 18:31:35.000000000 -0400
29361@@ -40,255 +40,255 @@ static const struct fb_videomode modedb[ 28569@@ -40,255 +40,255 @@ static const struct fb_videomode modedb[
29362 28570
29363 /* 640x400 @ 70 Hz, 31.5 kHz hsync */ 28571 /* 640x400 @ 70 Hz, 31.5 kHz hsync */
@@ -29674,9 +28882,9 @@ diff -urNp linux-2.6.38.3/drivers/video/modedb.c linux-2.6.38.3/drivers/video/mo
29674 }; 28882 };
29675 28883
29676 #ifdef CONFIG_FB_MODE_HELPERS 28884 #ifdef CONFIG_FB_MODE_HELPERS
29677diff -urNp linux-2.6.38.3/drivers/video/pxa3xx-gcu.c linux-2.6.38.3/drivers/video/pxa3xx-gcu.c 28885diff -urNp linux-2.6.38.2/drivers/video/pxa3xx-gcu.c linux-2.6.38.2/drivers/video/pxa3xx-gcu.c
29678--- linux-2.6.38.3/drivers/video/pxa3xx-gcu.c 2011-03-14 21:20:32.000000000 -0400 28886--- linux-2.6.38.2/drivers/video/pxa3xx-gcu.c 2011-03-14 21:20:32.000000000 -0400
29679+++ linux-2.6.38.3/drivers/video/pxa3xx-gcu.c 2011-04-17 15:57:32.000000000 -0400 28887+++ linux-2.6.38.2/drivers/video/pxa3xx-gcu.c 2011-03-21 18:31:35.000000000 -0400
29680@@ -103,7 +103,7 @@ struct pxa3xx_gcu_priv { 28888@@ -103,7 +103,7 @@ struct pxa3xx_gcu_priv {
29681 dma_addr_t shared_phys; 28889 dma_addr_t shared_phys;
29682 struct resource *resource_mem; 28890 struct resource *resource_mem;
@@ -29686,9 +28894,9 @@ diff -urNp linux-2.6.38.3/drivers/video/pxa3xx-gcu.c linux-2.6.38.3/drivers/vide
29686 wait_queue_head_t wait_idle; 28894 wait_queue_head_t wait_idle;
29687 wait_queue_head_t wait_free; 28895 wait_queue_head_t wait_free;
29688 spinlock_t spinlock; 28896 spinlock_t spinlock;
29689diff -urNp linux-2.6.38.3/drivers/video/uvesafb.c linux-2.6.38.3/drivers/video/uvesafb.c 28897diff -urNp linux-2.6.38.2/drivers/video/uvesafb.c linux-2.6.38.2/drivers/video/uvesafb.c
29690--- linux-2.6.38.3/drivers/video/uvesafb.c 2011-03-14 21:20:32.000000000 -0400 28898--- linux-2.6.38.2/drivers/video/uvesafb.c 2011-03-14 21:20:32.000000000 -0400
29691+++ linux-2.6.38.3/drivers/video/uvesafb.c 2011-04-17 15:57:32.000000000 -0400 28899+++ linux-2.6.38.2/drivers/video/uvesafb.c 2011-03-21 18:31:35.000000000 -0400
29692@@ -19,6 +19,7 @@ 28900@@ -19,6 +19,7 @@
29693 #include <linux/io.h> 28901 #include <linux/io.h>
29694 #include <linux/mutex.h> 28902 #include <linux/mutex.h>
@@ -29764,9 +28972,9 @@ diff -urNp linux-2.6.38.3/drivers/video/uvesafb.c linux-2.6.38.3/drivers/video/u
29764 } 28972 }
29765 28973
29766 framebuffer_release(info); 28974 framebuffer_release(info);
29767diff -urNp linux-2.6.38.3/drivers/video/vesafb.c linux-2.6.38.3/drivers/video/vesafb.c 28975diff -urNp linux-2.6.38.2/drivers/video/vesafb.c linux-2.6.38.2/drivers/video/vesafb.c
29768--- linux-2.6.38.3/drivers/video/vesafb.c 2011-03-14 21:20:32.000000000 -0400 28976--- linux-2.6.38.2/drivers/video/vesafb.c 2011-03-14 21:20:32.000000000 -0400
29769+++ linux-2.6.38.3/drivers/video/vesafb.c 2011-04-17 15:57:32.000000000 -0400 28977+++ linux-2.6.38.2/drivers/video/vesafb.c 2011-03-21 18:31:35.000000000 -0400
29770@@ -9,6 +9,7 @@ 28978@@ -9,6 +9,7 @@
29771 */ 28979 */
29772 28980
@@ -29870,9 +29078,9 @@ diff -urNp linux-2.6.38.3/drivers/video/vesafb.c linux-2.6.38.3/drivers/video/ve
29870 if (info->screen_base) 29078 if (info->screen_base)
29871 iounmap(info->screen_base); 29079 iounmap(info->screen_base);
29872 framebuffer_release(info); 29080 framebuffer_release(info);
29873diff -urNp linux-2.6.38.3/fs/9p/vfs_inode.c linux-2.6.38.3/fs/9p/vfs_inode.c 29081diff -urNp linux-2.6.38.2/fs/9p/vfs_inode.c linux-2.6.38.2/fs/9p/vfs_inode.c
29874--- linux-2.6.38.3/fs/9p/vfs_inode.c 2011-03-14 21:20:32.000000000 -0400 29082--- linux-2.6.38.2/fs/9p/vfs_inode.c 2011-03-14 21:20:32.000000000 -0400
29875+++ linux-2.6.38.3/fs/9p/vfs_inode.c 2011-04-17 15:57:32.000000000 -0400 29083+++ linux-2.6.38.2/fs/9p/vfs_inode.c 2011-03-21 18:31:35.000000000 -0400
29876@@ -1094,7 +1094,7 @@ static void *v9fs_vfs_follow_link(struct 29084@@ -1094,7 +1094,7 @@ static void *v9fs_vfs_follow_link(struct
29877 void 29085 void
29878 v9fs_vfs_put_link(struct dentry *dentry, struct nameidata *nd, void *p) 29086 v9fs_vfs_put_link(struct dentry *dentry, struct nameidata *nd, void *p)
@@ -29882,9 +29090,9 @@ diff -urNp linux-2.6.38.3/fs/9p/vfs_inode.c linux-2.6.38.3/fs/9p/vfs_inode.c
29882 29090
29883 P9_DPRINTK(P9_DEBUG_VFS, " %s %s\n", dentry->d_name.name, 29091 P9_DPRINTK(P9_DEBUG_VFS, " %s %s\n", dentry->d_name.name,
29884 IS_ERR(s) ? "<error>" : s); 29092 IS_ERR(s) ? "<error>" : s);
29885diff -urNp linux-2.6.38.3/fs/aio.c linux-2.6.38.3/fs/aio.c 29093diff -urNp linux-2.6.38.2/fs/aio.c linux-2.6.38.2/fs/aio.c
29886--- linux-2.6.38.3/fs/aio.c 2011-04-18 17:27:16.000000000 -0400 29094--- linux-2.6.38.2/fs/aio.c 2011-03-28 17:42:40.000000000 -0400
29887+++ linux-2.6.38.3/fs/aio.c 2011-04-17 15:57:32.000000000 -0400 29095+++ linux-2.6.38.2/fs/aio.c 2011-03-28 17:42:53.000000000 -0400
29888@@ -130,7 +130,7 @@ static int aio_setup_ring(struct kioctx 29096@@ -130,7 +130,7 @@ static int aio_setup_ring(struct kioctx
29889 size += sizeof(struct io_event) * nr_events; 29097 size += sizeof(struct io_event) * nr_events;
29890 nr_pages = (size + PAGE_SIZE-1) >> PAGE_SHIFT; 29098 nr_pages = (size + PAGE_SIZE-1) >> PAGE_SHIFT;
@@ -29894,9 +29102,9 @@ diff -urNp linux-2.6.38.3/fs/aio.c linux-2.6.38.3/fs/aio.c
29894 return -EINVAL; 29102 return -EINVAL;
29895 29103
29896 nr_events = (PAGE_SIZE * nr_pages - sizeof(struct aio_ring)) / sizeof(struct io_event); 29104 nr_events = (PAGE_SIZE * nr_pages - sizeof(struct aio_ring)) / sizeof(struct io_event);
29897diff -urNp linux-2.6.38.3/fs/attr.c linux-2.6.38.3/fs/attr.c 29105diff -urNp linux-2.6.38.2/fs/attr.c linux-2.6.38.2/fs/attr.c
29898--- linux-2.6.38.3/fs/attr.c 2011-03-14 21:20:32.000000000 -0400 29106--- linux-2.6.38.2/fs/attr.c 2011-03-14 21:20:32.000000000 -0400
29899+++ linux-2.6.38.3/fs/attr.c 2011-04-17 15:57:32.000000000 -0400 29107+++ linux-2.6.38.2/fs/attr.c 2011-03-21 18:31:35.000000000 -0400
29900@@ -98,6 +98,7 @@ int inode_newsize_ok(const struct inode 29108@@ -98,6 +98,7 @@ int inode_newsize_ok(const struct inode
29901 unsigned long limit; 29109 unsigned long limit;
29902 29110
@@ -29905,9 +29113,9 @@ diff -urNp linux-2.6.38.3/fs/attr.c linux-2.6.38.3/fs/attr.c
29905 if (limit != RLIM_INFINITY && offset > limit) 29113 if (limit != RLIM_INFINITY && offset > limit)
29906 goto out_sig; 29114 goto out_sig;
29907 if (offset > inode->i_sb->s_maxbytes) 29115 if (offset > inode->i_sb->s_maxbytes)
29908diff -urNp linux-2.6.38.3/fs/befs/linuxvfs.c linux-2.6.38.3/fs/befs/linuxvfs.c 29116diff -urNp linux-2.6.38.2/fs/befs/linuxvfs.c linux-2.6.38.2/fs/befs/linuxvfs.c
29909--- linux-2.6.38.3/fs/befs/linuxvfs.c 2011-03-14 21:20:32.000000000 -0400 29117--- linux-2.6.38.2/fs/befs/linuxvfs.c 2011-03-14 21:20:32.000000000 -0400
29910+++ linux-2.6.38.3/fs/befs/linuxvfs.c 2011-04-17 15:57:32.000000000 -0400 29118+++ linux-2.6.38.2/fs/befs/linuxvfs.c 2011-03-21 18:31:35.000000000 -0400
29911@@ -499,7 +499,7 @@ static void befs_put_link(struct dentry 29119@@ -499,7 +499,7 @@ static void befs_put_link(struct dentry
29912 { 29120 {
29913 befs_inode_info *befs_ino = BEFS_I(dentry->d_inode); 29121 befs_inode_info *befs_ino = BEFS_I(dentry->d_inode);
@@ -29917,9 +29125,9 @@ diff -urNp linux-2.6.38.3/fs/befs/linuxvfs.c linux-2.6.38.3/fs/befs/linuxvfs.c
29917 if (!IS_ERR(link)) 29125 if (!IS_ERR(link))
29918 kfree(link); 29126 kfree(link);
29919 } 29127 }
29920diff -urNp linux-2.6.38.3/fs/binfmt_aout.c linux-2.6.38.3/fs/binfmt_aout.c 29128diff -urNp linux-2.6.38.2/fs/binfmt_aout.c linux-2.6.38.2/fs/binfmt_aout.c
29921--- linux-2.6.38.3/fs/binfmt_aout.c 2011-03-14 21:20:32.000000000 -0400 29129--- linux-2.6.38.2/fs/binfmt_aout.c 2011-03-14 21:20:32.000000000 -0400
29922+++ linux-2.6.38.3/fs/binfmt_aout.c 2011-04-17 15:57:32.000000000 -0400 29130+++ linux-2.6.38.2/fs/binfmt_aout.c 2011-03-21 18:31:35.000000000 -0400
29923@@ -16,6 +16,7 @@ 29131@@ -16,6 +16,7 @@
29924 #include <linux/string.h> 29132 #include <linux/string.h>
29925 #include <linux/fs.h> 29133 #include <linux/fs.h>
@@ -29996,9 +29204,9 @@ diff -urNp linux-2.6.38.3/fs/binfmt_aout.c linux-2.6.38.3/fs/binfmt_aout.c
29996 MAP_FIXED | MAP_PRIVATE | MAP_DENYWRITE | MAP_EXECUTABLE, 29204 MAP_FIXED | MAP_PRIVATE | MAP_DENYWRITE | MAP_EXECUTABLE,
29997 fd_offset + ex.a_text); 29205 fd_offset + ex.a_text);
29998 up_write(&current->mm->mmap_sem); 29206 up_write(&current->mm->mmap_sem);
29999diff -urNp linux-2.6.38.3/fs/binfmt_elf.c linux-2.6.38.3/fs/binfmt_elf.c 29207diff -urNp linux-2.6.38.2/fs/binfmt_elf.c linux-2.6.38.2/fs/binfmt_elf.c
30000--- linux-2.6.38.3/fs/binfmt_elf.c 2011-03-14 21:20:32.000000000 -0400 29208--- linux-2.6.38.2/fs/binfmt_elf.c 2011-03-14 21:20:32.000000000 -0400
30001+++ linux-2.6.38.3/fs/binfmt_elf.c 2011-04-17 15:57:32.000000000 -0400 29209+++ linux-2.6.38.2/fs/binfmt_elf.c 2011-03-21 18:31:35.000000000 -0400
30002@@ -51,6 +51,10 @@ static int elf_core_dump(struct coredump 29210@@ -51,6 +51,10 @@ static int elf_core_dump(struct coredump
30003 #define elf_core_dump NULL 29211 #define elf_core_dump NULL
30004 #endif 29212 #endif
@@ -30040,7 +29248,7 @@ diff -urNp linux-2.6.38.3/fs/binfmt_elf.c linux-2.6.38.3/fs/binfmt_elf.c
30040 return 0; 29248 return 0;
30041 } 29249 }
30042 29250
30043@@ -148,12 +159,13 @@ create_elf_tables(struct linux_binprm *b 29251@@ -148,7 +159,7 @@ create_elf_tables(struct linux_binprm *b
30044 elf_addr_t __user *u_rand_bytes; 29252 elf_addr_t __user *u_rand_bytes;
30045 const char *k_platform = ELF_PLATFORM; 29253 const char *k_platform = ELF_PLATFORM;
30046 const char *k_base_platform = ELF_BASE_PLATFORM; 29254 const char *k_base_platform = ELF_BASE_PLATFORM;
@@ -30049,13 +29257,7 @@ diff -urNp linux-2.6.38.3/fs/binfmt_elf.c linux-2.6.38.3/fs/binfmt_elf.c
30049 int items; 29257 int items;
30050 elf_addr_t *elf_info; 29258 elf_addr_t *elf_info;
30051 int ei_index = 0; 29259 int ei_index = 0;
30052 const struct cred *cred = current_cred(); 29260@@ -195,8 +206,12 @@ create_elf_tables(struct linux_binprm *b
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
30059 * Generate 16 random bytes for userspace PRNG seeding. 29261 * Generate 16 random bytes for userspace PRNG seeding.
30060 */ 29262 */
30061 get_random_bytes(k_rand_bytes, sizeof(k_rand_bytes)); 29263 get_random_bytes(k_rand_bytes, sizeof(k_rand_bytes));
@@ -30070,20 +29272,7 @@ diff -urNp linux-2.6.38.3/fs/binfmt_elf.c linux-2.6.38.3/fs/binfmt_elf.c
30070 if (__copy_to_user(u_rand_bytes, k_rand_bytes, sizeof(k_rand_bytes))) 29272 if (__copy_to_user(u_rand_bytes, k_rand_bytes, sizeof(k_rand_bytes)))
30071 return -EFAULT; 29273 return -EFAULT;
30072 29274
30073@@ -308,9 +324,11 @@ create_elf_tables(struct linux_binprm *b 29275@@ -381,10 +396,10 @@ static unsigned long load_elf_interp(str
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
30087 { 29276 {
30088 struct elf_phdr *elf_phdata; 29277 struct elf_phdr *elf_phdata;
30089 struct elf_phdr *eppnt; 29278 struct elf_phdr *eppnt;
@@ -30096,7 +29285,7 @@ diff -urNp linux-2.6.38.3/fs/binfmt_elf.c linux-2.6.38.3/fs/binfmt_elf.c
30096 unsigned long total_size; 29285 unsigned long total_size;
30097 int retval, i, size; 29286 int retval, i, size;
30098 29287
30099@@ -430,6 +448,11 @@ static unsigned long load_elf_interp(str 29288@@ -430,6 +445,11 @@ static unsigned long load_elf_interp(str
30100 goto out_close; 29289 goto out_close;
30101 } 29290 }
30102 29291
@@ -30108,7 +29297,7 @@ diff -urNp linux-2.6.38.3/fs/binfmt_elf.c linux-2.6.38.3/fs/binfmt_elf.c
30108 eppnt = elf_phdata; 29297 eppnt = elf_phdata;
30109 for (i = 0; i < interp_elf_ex->e_phnum; i++, eppnt++) { 29298 for (i = 0; i < interp_elf_ex->e_phnum; i++, eppnt++) {
30110 if (eppnt->p_type == PT_LOAD) { 29299 if (eppnt->p_type == PT_LOAD) {
30111@@ -473,8 +496,8 @@ static unsigned long load_elf_interp(str 29300@@ -473,8 +493,8 @@ static unsigned long load_elf_interp(str
30112 k = load_addr + eppnt->p_vaddr; 29301 k = load_addr + eppnt->p_vaddr;
30113 if (BAD_ADDR(k) || 29302 if (BAD_ADDR(k) ||
30114 eppnt->p_filesz > eppnt->p_memsz || 29303 eppnt->p_filesz > eppnt->p_memsz ||
@@ -30119,7 +29308,7 @@ diff -urNp linux-2.6.38.3/fs/binfmt_elf.c linux-2.6.38.3/fs/binfmt_elf.c
30119 error = -ENOMEM; 29308 error = -ENOMEM;
30120 goto out_close; 29309 goto out_close;
30121 } 29310 }
30122@@ -528,6 +551,193 @@ out: 29311@@ -528,6 +548,177 @@ out:
30123 return error; 29312 return error;
30124 } 29313 }
30125 29314
@@ -30259,7 +29448,6 @@ diff -urNp linux-2.6.38.3/fs/binfmt_elf.c linux-2.6.38.3/fs/binfmt_elf.c
30259+ 29448+
30260+#ifdef CONFIG_PAX_PT_PAX_FLAGS 29449+#ifdef CONFIG_PAX_PT_PAX_FLAGS
30261+ unsigned long i; 29450+ unsigned long i;
30262+ int found_flags = 0;
30263+#endif 29451+#endif
30264+ 29452+
30265+#ifdef CONFIG_PAX_EI_PAX 29453+#ifdef CONFIG_PAX_EI_PAX
@@ -30283,25 +29471,10 @@ diff -urNp linux-2.6.38.3/fs/binfmt_elf.c linux-2.6.38.3/fs/binfmt_elf.c
30283+#endif 29471+#endif
30284+ 29472+
30285+ pax_flags = pax_parse_hardmode(&elf_phdata[i]); 29473+ pax_flags = pax_parse_hardmode(&elf_phdata[i]);
30286+ found_flags = 1;
30287+ break; 29474+ break;
30288+ } 29475+ }
30289+#endif 29476+#endif
30290+ 29477+
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+
30305+ if (0 > pax_check_flags(&pax_flags)) 29478+ if (0 > pax_check_flags(&pax_flags))
30306+ return -EINVAL; 29479+ return -EINVAL;
30307+ 29480+
@@ -30313,7 +29486,7 @@ diff -urNp linux-2.6.38.3/fs/binfmt_elf.c linux-2.6.38.3/fs/binfmt_elf.c
30313 /* 29486 /*
30314 * These are the functions used to load ELF style executables and shared 29487 * These are the functions used to load ELF style executables and shared
30315 * libraries. There is no binary dependent code anywhere else. 29488 * libraries. There is no binary dependent code anywhere else.
30316@@ -544,6 +754,11 @@ static unsigned long randomize_stack_top 29489@@ -544,6 +735,11 @@ static unsigned long randomize_stack_top
30317 { 29490 {
30318 unsigned int random_variable = 0; 29491 unsigned int random_variable = 0;
30319 29492
@@ -30325,7 +29498,7 @@ diff -urNp linux-2.6.38.3/fs/binfmt_elf.c linux-2.6.38.3/fs/binfmt_elf.c
30325 if ((current->flags & PF_RANDOMIZE) && 29498 if ((current->flags & PF_RANDOMIZE) &&
30326 !(current->personality & ADDR_NO_RANDOMIZE)) { 29499 !(current->personality & ADDR_NO_RANDOMIZE)) {
30327 random_variable = get_random_int() & STACK_RND_MASK; 29500 random_variable = get_random_int() & STACK_RND_MASK;
30328@@ -562,7 +777,7 @@ static int load_elf_binary(struct linux_ 29501@@ -562,7 +758,7 @@ static int load_elf_binary(struct linux_
30329 unsigned long load_addr = 0, load_bias = 0; 29502 unsigned long load_addr = 0, load_bias = 0;
30330 int load_addr_set = 0; 29503 int load_addr_set = 0;
30331 char * elf_interpreter = NULL; 29504 char * elf_interpreter = NULL;
@@ -30334,7 +29507,7 @@ diff -urNp linux-2.6.38.3/fs/binfmt_elf.c linux-2.6.38.3/fs/binfmt_elf.c
30334 struct elf_phdr *elf_ppnt, *elf_phdata; 29507 struct elf_phdr *elf_ppnt, *elf_phdata;
30335 unsigned long elf_bss, elf_brk; 29508 unsigned long elf_bss, elf_brk;
30336 int retval, i; 29509 int retval, i;
30337@@ -572,11 +787,11 @@ static int load_elf_binary(struct linux_ 29510@@ -572,11 +768,11 @@ static int load_elf_binary(struct linux_
30338 unsigned long start_code, end_code, start_data, end_data; 29511 unsigned long start_code, end_code, start_data, end_data;
30339 unsigned long reloc_func_desc = 0; 29512 unsigned long reloc_func_desc = 0;
30340 int executable_stack = EXSTACK_DEFAULT; 29513 int executable_stack = EXSTACK_DEFAULT;
@@ -30347,7 +29520,7 @@ diff -urNp linux-2.6.38.3/fs/binfmt_elf.c linux-2.6.38.3/fs/binfmt_elf.c
30347 29520
30348 loc = kmalloc(sizeof(*loc), GFP_KERNEL); 29521 loc = kmalloc(sizeof(*loc), GFP_KERNEL);
30349 if (!loc) { 29522 if (!loc) {
30350@@ -714,11 +929,80 @@ static int load_elf_binary(struct linux_ 29523@@ -714,11 +910,80 @@ static int load_elf_binary(struct linux_
30351 29524
30352 /* OK, This is the point of no return */ 29525 /* OK, This is the point of no return */
30353 current->flags &= ~PF_FORKNOEXEC; 29526 current->flags &= ~PF_FORKNOEXEC;
@@ -30429,7 +29602,7 @@ diff -urNp linux-2.6.38.3/fs/binfmt_elf.c linux-2.6.38.3/fs/binfmt_elf.c
30429 if (elf_read_implies_exec(loc->elf_ex, executable_stack)) 29602 if (elf_read_implies_exec(loc->elf_ex, executable_stack))
30430 current->personality |= READ_IMPLIES_EXEC; 29603 current->personality |= READ_IMPLIES_EXEC;
30431 29604
30432@@ -800,6 +1084,20 @@ static int load_elf_binary(struct linux_ 29605@@ -800,6 +1065,20 @@ static int load_elf_binary(struct linux_
30433 #else 29606 #else
30434 load_bias = ELF_PAGESTART(ELF_ET_DYN_BASE - vaddr); 29607 load_bias = ELF_PAGESTART(ELF_ET_DYN_BASE - vaddr);
30435 #endif 29608 #endif
@@ -30450,7 +29623,7 @@ diff -urNp linux-2.6.38.3/fs/binfmt_elf.c linux-2.6.38.3/fs/binfmt_elf.c
30450 } 29623 }
30451 29624
30452 error = elf_map(bprm->file, load_bias + vaddr, elf_ppnt, 29625 error = elf_map(bprm->file, load_bias + vaddr, elf_ppnt,
30453@@ -832,9 +1130,9 @@ static int load_elf_binary(struct linux_ 29626@@ -832,9 +1111,9 @@ static int load_elf_binary(struct linux_
30454 * allowed task size. Note that p_filesz must always be 29627 * allowed task size. Note that p_filesz must always be
30455 * <= p_memsz so it is only necessary to check p_memsz. 29628 * <= p_memsz so it is only necessary to check p_memsz.
30456 */ 29629 */
@@ -30463,7 +29636,7 @@ diff -urNp linux-2.6.38.3/fs/binfmt_elf.c linux-2.6.38.3/fs/binfmt_elf.c
30463 /* set_brk can never work. Avoid overflows. */ 29636 /* set_brk can never work. Avoid overflows. */
30464 send_sig(SIGKILL, current, 0); 29637 send_sig(SIGKILL, current, 0);
30465 retval = -EINVAL; 29638 retval = -EINVAL;
30466@@ -862,6 +1160,11 @@ static int load_elf_binary(struct linux_ 29639@@ -862,6 +1141,11 @@ static int load_elf_binary(struct linux_
30467 start_data += load_bias; 29640 start_data += load_bias;
30468 end_data += load_bias; 29641 end_data += load_bias;
30469 29642
@@ -30475,7 +29648,7 @@ diff -urNp linux-2.6.38.3/fs/binfmt_elf.c linux-2.6.38.3/fs/binfmt_elf.c
30475 /* Calling set_brk effectively mmaps the pages that we need 29648 /* Calling set_brk effectively mmaps the pages that we need
30476 * for the bss and break sections. We must do this before 29649 * for the bss and break sections. We must do this before
30477 * mapping in the interpreter, to make sure it doesn't wind 29650 * mapping in the interpreter, to make sure it doesn't wind
30478@@ -873,9 +1176,11 @@ static int load_elf_binary(struct linux_ 29651@@ -873,9 +1157,11 @@ static int load_elf_binary(struct linux_
30479 goto out_free_dentry; 29652 goto out_free_dentry;
30480 } 29653 }
30481 if (likely(elf_bss != elf_brk) && unlikely(padzero(elf_bss))) { 29654 if (likely(elf_bss != elf_brk) && unlikely(padzero(elf_bss))) {
@@ -30490,7 +29663,7 @@ diff -urNp linux-2.6.38.3/fs/binfmt_elf.c linux-2.6.38.3/fs/binfmt_elf.c
30490 } 29663 }
30491 29664
30492 if (elf_interpreter) { 29665 if (elf_interpreter) {
30493@@ -1086,7 +1391,7 @@ out: 29666@@ -1086,7 +1372,7 @@ out:
30494 * Decide what to dump of a segment, part, all or none. 29667 * Decide what to dump of a segment, part, all or none.
30495 */ 29668 */
30496 static unsigned long vma_dump_size(struct vm_area_struct *vma, 29669 static unsigned long vma_dump_size(struct vm_area_struct *vma,
@@ -30499,7 +29672,7 @@ diff -urNp linux-2.6.38.3/fs/binfmt_elf.c linux-2.6.38.3/fs/binfmt_elf.c
30499 { 29672 {
30500 #define FILTER(type) (mm_flags & (1UL << MMF_DUMP_##type)) 29673 #define FILTER(type) (mm_flags & (1UL << MMF_DUMP_##type))
30501 29674
30502@@ -1120,7 +1425,7 @@ static unsigned long vma_dump_size(struc 29675@@ -1120,7 +1406,7 @@ static unsigned long vma_dump_size(struc
30503 if (vma->vm_file == NULL) 29676 if (vma->vm_file == NULL)
30504 return 0; 29677 return 0;
30505 29678
@@ -30508,7 +29681,7 @@ diff -urNp linux-2.6.38.3/fs/binfmt_elf.c linux-2.6.38.3/fs/binfmt_elf.c
30508 goto whole; 29681 goto whole;
30509 29682
30510 /* 29683 /*
30511@@ -1342,9 +1647,9 @@ static void fill_auxv_note(struct memelf 29684@@ -1342,9 +1628,9 @@ static void fill_auxv_note(struct memelf
30512 { 29685 {
30513 elf_addr_t *auxv = (elf_addr_t *) mm->saved_auxv; 29686 elf_addr_t *auxv = (elf_addr_t *) mm->saved_auxv;
30514 int i = 0; 29687 int i = 0;
@@ -30520,7 +29693,7 @@ diff -urNp linux-2.6.38.3/fs/binfmt_elf.c linux-2.6.38.3/fs/binfmt_elf.c
30520 fill_note(note, "CORE", NT_AUXV, i * sizeof(elf_addr_t), auxv); 29693 fill_note(note, "CORE", NT_AUXV, i * sizeof(elf_addr_t), auxv);
30521 } 29694 }
30522 29695
30523@@ -1850,14 +2155,14 @@ static void fill_extnum_info(struct elfh 29696@@ -1850,14 +2136,14 @@ static void fill_extnum_info(struct elfh
30524 } 29697 }
30525 29698
30526 static size_t elf_core_vma_data_size(struct vm_area_struct *gate_vma, 29699 static size_t elf_core_vma_data_size(struct vm_area_struct *gate_vma,
@@ -30537,7 +29710,7 @@ diff -urNp linux-2.6.38.3/fs/binfmt_elf.c linux-2.6.38.3/fs/binfmt_elf.c
30537 return size; 29710 return size;
30538 } 29711 }
30539 29712
30540@@ -1951,7 +2256,7 @@ static int elf_core_dump(struct coredump 29713@@ -1951,7 +2237,7 @@ static int elf_core_dump(struct coredump
30541 29714
30542 dataoff = offset = roundup(offset, ELF_EXEC_PAGESIZE); 29715 dataoff = offset = roundup(offset, ELF_EXEC_PAGESIZE);
30543 29716
@@ -30546,7 +29719,7 @@ diff -urNp linux-2.6.38.3/fs/binfmt_elf.c linux-2.6.38.3/fs/binfmt_elf.c
30546 offset += elf_core_extra_data_size(); 29719 offset += elf_core_extra_data_size();
30547 e_shoff = offset; 29720 e_shoff = offset;
30548 29721
30549@@ -1965,10 +2270,12 @@ static int elf_core_dump(struct coredump 29722@@ -1965,10 +2251,12 @@ static int elf_core_dump(struct coredump
30550 offset = dataoff; 29723 offset = dataoff;
30551 29724
30552 size += sizeof(*elf); 29725 size += sizeof(*elf);
@@ -30559,7 +29732,7 @@ diff -urNp linux-2.6.38.3/fs/binfmt_elf.c linux-2.6.38.3/fs/binfmt_elf.c
30559 if (size > cprm->limit 29732 if (size > cprm->limit
30560 || !dump_write(cprm->file, phdr4note, sizeof(*phdr4note))) 29733 || !dump_write(cprm->file, phdr4note, sizeof(*phdr4note)))
30561 goto end_coredump; 29734 goto end_coredump;
30562@@ -1982,7 +2289,7 @@ static int elf_core_dump(struct coredump 29735@@ -1982,7 +2270,7 @@ static int elf_core_dump(struct coredump
30563 phdr.p_offset = offset; 29736 phdr.p_offset = offset;
30564 phdr.p_vaddr = vma->vm_start; 29737 phdr.p_vaddr = vma->vm_start;
30565 phdr.p_paddr = 0; 29738 phdr.p_paddr = 0;
@@ -30568,7 +29741,7 @@ diff -urNp linux-2.6.38.3/fs/binfmt_elf.c linux-2.6.38.3/fs/binfmt_elf.c
30568 phdr.p_memsz = vma->vm_end - vma->vm_start; 29741 phdr.p_memsz = vma->vm_end - vma->vm_start;
30569 offset += phdr.p_filesz; 29742 offset += phdr.p_filesz;
30570 phdr.p_flags = vma->vm_flags & VM_READ ? PF_R : 0; 29743 phdr.p_flags = vma->vm_flags & VM_READ ? PF_R : 0;
30571@@ -1993,6 +2300,7 @@ static int elf_core_dump(struct coredump 29744@@ -1993,6 +2281,7 @@ static int elf_core_dump(struct coredump
30572 phdr.p_align = ELF_EXEC_PAGESIZE; 29745 phdr.p_align = ELF_EXEC_PAGESIZE;
30573 29746
30574 size += sizeof(phdr); 29747 size += sizeof(phdr);
@@ -30576,7 +29749,7 @@ diff -urNp linux-2.6.38.3/fs/binfmt_elf.c linux-2.6.38.3/fs/binfmt_elf.c
30576 if (size > cprm->limit 29749 if (size > cprm->limit
30577 || !dump_write(cprm->file, &phdr, sizeof(phdr))) 29750 || !dump_write(cprm->file, &phdr, sizeof(phdr)))
30578 goto end_coredump; 29751 goto end_coredump;
30579@@ -2017,7 +2325,7 @@ static int elf_core_dump(struct coredump 29752@@ -2017,7 +2306,7 @@ static int elf_core_dump(struct coredump
30580 unsigned long addr; 29753 unsigned long addr;
30581 unsigned long end; 29754 unsigned long end;
30582 29755
@@ -30585,7 +29758,7 @@ diff -urNp linux-2.6.38.3/fs/binfmt_elf.c linux-2.6.38.3/fs/binfmt_elf.c
30585 29758
30586 for (addr = vma->vm_start; addr < end; addr += PAGE_SIZE) { 29759 for (addr = vma->vm_start; addr < end; addr += PAGE_SIZE) {
30587 struct page *page; 29760 struct page *page;
30588@@ -2026,6 +2334,7 @@ static int elf_core_dump(struct coredump 29761@@ -2026,6 +2315,7 @@ static int elf_core_dump(struct coredump
30589 page = get_dump_page(addr); 29762 page = get_dump_page(addr);
30590 if (page) { 29763 if (page) {
30591 void *kaddr = kmap(page); 29764 void *kaddr = kmap(page);
@@ -30593,7 +29766,7 @@ diff -urNp linux-2.6.38.3/fs/binfmt_elf.c linux-2.6.38.3/fs/binfmt_elf.c
30593 stop = ((size += PAGE_SIZE) > cprm->limit) || 29766 stop = ((size += PAGE_SIZE) > cprm->limit) ||
30594 !dump_write(cprm->file, kaddr, 29767 !dump_write(cprm->file, kaddr,
30595 PAGE_SIZE); 29768 PAGE_SIZE);
30596@@ -2043,6 +2352,7 @@ static int elf_core_dump(struct coredump 29769@@ -2043,6 +2333,7 @@ static int elf_core_dump(struct coredump
30597 29770
30598 if (e_phnum == PN_XNUM) { 29771 if (e_phnum == PN_XNUM) {
30599 size += sizeof(*shdr4extnum); 29772 size += sizeof(*shdr4extnum);
@@ -30601,7 +29774,7 @@ diff -urNp linux-2.6.38.3/fs/binfmt_elf.c linux-2.6.38.3/fs/binfmt_elf.c
30601 if (size > cprm->limit 29774 if (size > cprm->limit
30602 || !dump_write(cprm->file, shdr4extnum, 29775 || !dump_write(cprm->file, shdr4extnum,
30603 sizeof(*shdr4extnum))) 29776 sizeof(*shdr4extnum)))
30604@@ -2063,6 +2373,97 @@ out: 29777@@ -2063,6 +2354,97 @@ out:
30605 29778
30606 #endif /* CONFIG_ELF_CORE */ 29779 #endif /* CONFIG_ELF_CORE */
30607 29780
@@ -30699,9 +29872,9 @@ diff -urNp linux-2.6.38.3/fs/binfmt_elf.c linux-2.6.38.3/fs/binfmt_elf.c
30699 static int __init init_elf_binfmt(void) 29872 static int __init init_elf_binfmt(void)
30700 { 29873 {
30701 return register_binfmt(&elf_format); 29874 return register_binfmt(&elf_format);
30702diff -urNp linux-2.6.38.3/fs/binfmt_flat.c linux-2.6.38.3/fs/binfmt_flat.c 29875diff -urNp linux-2.6.38.2/fs/binfmt_flat.c linux-2.6.38.2/fs/binfmt_flat.c
30703--- linux-2.6.38.3/fs/binfmt_flat.c 2011-03-14 21:20:32.000000000 -0400 29876--- linux-2.6.38.2/fs/binfmt_flat.c 2011-03-14 21:20:32.000000000 -0400
30704+++ linux-2.6.38.3/fs/binfmt_flat.c 2011-04-17 15:57:32.000000000 -0400 29877+++ linux-2.6.38.2/fs/binfmt_flat.c 2011-03-21 18:31:35.000000000 -0400
30705@@ -567,7 +567,9 @@ static int load_flat_file(struct linux_b 29878@@ -567,7 +567,9 @@ static int load_flat_file(struct linux_b
30706 realdatastart = (unsigned long) -ENOMEM; 29879 realdatastart = (unsigned long) -ENOMEM;
30707 printk("Unable to allocate RAM for process data, errno %d\n", 29880 printk("Unable to allocate RAM for process data, errno %d\n",
@@ -30734,9 +29907,9 @@ diff -urNp linux-2.6.38.3/fs/binfmt_flat.c linux-2.6.38.3/fs/binfmt_flat.c
30734 ret = result; 29907 ret = result;
30735 goto err; 29908 goto err;
30736 } 29909 }
30737diff -urNp linux-2.6.38.3/fs/binfmt_misc.c linux-2.6.38.3/fs/binfmt_misc.c 29910diff -urNp linux-2.6.38.2/fs/binfmt_misc.c linux-2.6.38.2/fs/binfmt_misc.c
30738--- linux-2.6.38.3/fs/binfmt_misc.c 2011-03-14 21:20:32.000000000 -0400 29911--- linux-2.6.38.2/fs/binfmt_misc.c 2011-03-14 21:20:32.000000000 -0400
30739+++ linux-2.6.38.3/fs/binfmt_misc.c 2011-04-17 15:57:32.000000000 -0400 29912+++ linux-2.6.38.2/fs/binfmt_misc.c 2011-03-21 18:31:35.000000000 -0400
30740@@ -698,7 +698,7 @@ static int bm_fill_super(struct super_bl 29913@@ -698,7 +698,7 @@ static int bm_fill_super(struct super_bl
30741 static struct tree_descr bm_files[] = { 29914 static struct tree_descr bm_files[] = {
30742 [2] = {"status", &bm_status_operations, S_IWUSR|S_IRUGO}, 29915 [2] = {"status", &bm_status_operations, S_IWUSR|S_IRUGO},
@@ -30746,9 +29919,9 @@ diff -urNp linux-2.6.38.3/fs/binfmt_misc.c linux-2.6.38.3/fs/binfmt_misc.c
30746 }; 29919 };
30747 int err = simple_fill_super(sb, 0x42494e4d, bm_files); 29920 int err = simple_fill_super(sb, 0x42494e4d, bm_files);
30748 if (!err) 29921 if (!err)
30749diff -urNp linux-2.6.38.3/fs/bio.c linux-2.6.38.3/fs/bio.c 29922diff -urNp linux-2.6.38.2/fs/bio.c linux-2.6.38.2/fs/bio.c
30750--- linux-2.6.38.3/fs/bio.c 2011-03-14 21:20:32.000000000 -0400 29923--- linux-2.6.38.2/fs/bio.c 2011-03-14 21:20:32.000000000 -0400
30751+++ linux-2.6.38.3/fs/bio.c 2011-04-17 15:57:32.000000000 -0400 29924+++ linux-2.6.38.2/fs/bio.c 2011-03-21 18:31:35.000000000 -0400
30752@@ -1233,7 +1233,7 @@ static void bio_copy_kern_endio(struct b 29925@@ -1233,7 +1233,7 @@ static void bio_copy_kern_endio(struct b
30753 const int read = bio_data_dir(bio) == READ; 29926 const int read = bio_data_dir(bio) == READ;
30754 struct bio_map_data *bmd = bio->bi_private; 29927 struct bio_map_data *bmd = bio->bi_private;
@@ -30758,9 +29931,9 @@ diff -urNp linux-2.6.38.3/fs/bio.c linux-2.6.38.3/fs/bio.c
30758 29931
30759 __bio_for_each_segment(bvec, bio, i, 0) { 29932 __bio_for_each_segment(bvec, bio, i, 0) {
30760 char *addr = page_address(bvec->bv_page); 29933 char *addr = page_address(bvec->bv_page);
30761diff -urNp linux-2.6.38.3/fs/block_dev.c linux-2.6.38.3/fs/block_dev.c 29934diff -urNp linux-2.6.38.2/fs/block_dev.c linux-2.6.38.2/fs/block_dev.c
30762--- linux-2.6.38.3/fs/block_dev.c 2011-03-14 21:20:32.000000000 -0400 29935--- linux-2.6.38.2/fs/block_dev.c 2011-03-14 21:20:32.000000000 -0400
30763+++ linux-2.6.38.3/fs/block_dev.c 2011-04-17 15:57:32.000000000 -0400 29936+++ linux-2.6.38.2/fs/block_dev.c 2011-03-21 18:31:35.000000000 -0400
30764@@ -669,7 +669,7 @@ static bool bd_may_claim(struct block_de 29937@@ -669,7 +669,7 @@ static bool bd_may_claim(struct block_de
30765 else if (bdev->bd_contains == bdev) 29938 else if (bdev->bd_contains == bdev)
30766 return true; /* is a whole device which isn't held */ 29939 return true; /* is a whole device which isn't held */
@@ -30770,9 +29943,9 @@ diff -urNp linux-2.6.38.3/fs/block_dev.c linux-2.6.38.3/fs/block_dev.c
30770 return true; /* is a partition of a device that is being partitioned */ 29943 return true; /* is a partition of a device that is being partitioned */
30771 else if (whole->bd_holder != NULL) 29944 else if (whole->bd_holder != NULL)
30772 return false; /* is a partition of a held device */ 29945 return false; /* is a partition of a held device */
30773diff -urNp linux-2.6.38.3/fs/btrfs/ctree.c linux-2.6.38.3/fs/btrfs/ctree.c 29946diff -urNp linux-2.6.38.2/fs/btrfs/ctree.c linux-2.6.38.2/fs/btrfs/ctree.c
30774--- linux-2.6.38.3/fs/btrfs/ctree.c 2011-03-14 21:20:32.000000000 -0400 29947--- linux-2.6.38.2/fs/btrfs/ctree.c 2011-03-14 21:20:32.000000000 -0400
30775+++ linux-2.6.38.3/fs/btrfs/ctree.c 2011-04-17 15:57:32.000000000 -0400 29948+++ linux-2.6.38.2/fs/btrfs/ctree.c 2011-03-21 18:31:35.000000000 -0400
30776@@ -468,9 +468,12 @@ static noinline int __btrfs_cow_block(st 29949@@ -468,9 +468,12 @@ static noinline int __btrfs_cow_block(st
30777 free_extent_buffer(buf); 29950 free_extent_buffer(buf);
30778 add_root_to_dirty_list(root); 29951 add_root_to_dirty_list(root);
@@ -30797,9 +29970,9 @@ diff -urNp linux-2.6.38.3/fs/btrfs/ctree.c linux-2.6.38.3/fs/btrfs/ctree.c
30797 btrfs_cpu_key_to_disk(&disk_key, cpu_key); 29970 btrfs_cpu_key_to_disk(&disk_key, cpu_key);
30798 ret = fixup_low_keys(trans, root, path, &disk_key, 1); 29971 ret = fixup_low_keys(trans, root, path, &disk_key, 1);
30799 } 29972 }
30800diff -urNp linux-2.6.38.3/fs/btrfs/disk-io.c linux-2.6.38.3/fs/btrfs/disk-io.c 29973diff -urNp linux-2.6.38.2/fs/btrfs/disk-io.c linux-2.6.38.2/fs/btrfs/disk-io.c
30801--- linux-2.6.38.3/fs/btrfs/disk-io.c 2011-04-18 17:27:18.000000000 -0400 29974--- linux-2.6.38.2/fs/btrfs/disk-io.c 2011-03-14 21:20:32.000000000 -0400
30802+++ linux-2.6.38.3/fs/btrfs/disk-io.c 2011-04-17 16:53:48.000000000 -0400 29975+++ linux-2.6.38.2/fs/btrfs/disk-io.c 2011-03-21 18:31:35.000000000 -0400
30803@@ -41,7 +41,7 @@ 29976@@ -41,7 +41,7 @@
30804 #include "tree-log.h" 29977 #include "tree-log.h"
30805 #include "free-space-cache.h" 29978 #include "free-space-cache.h"
@@ -30809,7 +29982,7 @@ diff -urNp linux-2.6.38.3/fs/btrfs/disk-io.c linux-2.6.38.3/fs/btrfs/disk-io.c
30809 static void end_workqueue_fn(struct btrfs_work *work); 29982 static void end_workqueue_fn(struct btrfs_work *work);
30810 static void free_fs_root(struct btrfs_root *root); 29983 static void free_fs_root(struct btrfs_root *root);
30811 static void btrfs_check_super_valid(struct btrfs_fs_info *fs_info, 29984 static void btrfs_check_super_valid(struct btrfs_fs_info *fs_info,
30812@@ -3030,7 +3030,7 @@ static int btrfs_cleanup_transaction(str 29985@@ -3028,7 +3028,7 @@ static int btrfs_cleanup_transaction(str
30813 return 0; 29986 return 0;
30814 } 29987 }
30815 29988
@@ -30818,9 +29991,9 @@ diff -urNp linux-2.6.38.3/fs/btrfs/disk-io.c linux-2.6.38.3/fs/btrfs/disk-io.c
30818 .write_cache_pages_lock_hook = btree_lock_page_hook, 29991 .write_cache_pages_lock_hook = btree_lock_page_hook,
30819 .readpage_end_io_hook = btree_readpage_end_io_hook, 29992 .readpage_end_io_hook = btree_readpage_end_io_hook,
30820 .submit_bio_hook = btree_submit_bio_hook, 29993 .submit_bio_hook = btree_submit_bio_hook,
30821diff -urNp linux-2.6.38.3/fs/btrfs/extent_io.h linux-2.6.38.3/fs/btrfs/extent_io.h 29994diff -urNp linux-2.6.38.2/fs/btrfs/extent_io.h linux-2.6.38.2/fs/btrfs/extent_io.h
30822--- linux-2.6.38.3/fs/btrfs/extent_io.h 2011-03-14 21:20:32.000000000 -0400 29995--- linux-2.6.38.2/fs/btrfs/extent_io.h 2011-03-14 21:20:32.000000000 -0400
30823+++ linux-2.6.38.3/fs/btrfs/extent_io.h 2011-04-17 15:57:32.000000000 -0400 29996+++ linux-2.6.38.2/fs/btrfs/extent_io.h 2011-03-21 18:31:35.000000000 -0400
30824@@ -55,36 +55,36 @@ typedef int (extent_submit_bio_hook_t)(s 29997@@ -55,36 +55,36 @@ typedef int (extent_submit_bio_hook_t)(s
30825 struct bio *bio, int mirror_num, 29998 struct bio *bio, int mirror_num,
30826 unsigned long bio_flags, u64 bio_offset); 29999 unsigned long bio_flags, u64 bio_offset);
@@ -30881,9 +30054,9 @@ diff -urNp linux-2.6.38.3/fs/btrfs/extent_io.h linux-2.6.38.3/fs/btrfs/extent_io
30881 }; 30054 };
30882 30055
30883 struct extent_state { 30056 struct extent_state {
30884diff -urNp linux-2.6.38.3/fs/btrfs/free-space-cache.c linux-2.6.38.3/fs/btrfs/free-space-cache.c 30057diff -urNp linux-2.6.38.2/fs/btrfs/free-space-cache.c linux-2.6.38.2/fs/btrfs/free-space-cache.c
30885--- linux-2.6.38.3/fs/btrfs/free-space-cache.c 2011-03-14 21:20:32.000000000 -0400 30058--- linux-2.6.38.2/fs/btrfs/free-space-cache.c 2011-03-14 21:20:32.000000000 -0400
30886+++ linux-2.6.38.3/fs/btrfs/free-space-cache.c 2011-04-17 15:57:32.000000000 -0400 30059+++ linux-2.6.38.2/fs/btrfs/free-space-cache.c 2011-03-21 18:31:35.000000000 -0400
30887@@ -1855,8 +1855,6 @@ u64 btrfs_alloc_from_cluster(struct btrf 30060@@ -1855,8 +1855,6 @@ u64 btrfs_alloc_from_cluster(struct btrf
30888 30061
30889 while(1) { 30062 while(1) {
@@ -30902,9 +30075,9 @@ diff -urNp linux-2.6.38.3/fs/btrfs/free-space-cache.c linux-2.6.38.3/fs/btrfs/fr
30902 30075
30903 if (entry->bitmap && entry->bytes > bytes + empty_size) { 30076 if (entry->bitmap && entry->bytes > bytes + empty_size) {
30904 ret = btrfs_bitmap_cluster(block_group, entry, cluster, 30077 ret = btrfs_bitmap_cluster(block_group, entry, cluster,
30905diff -urNp linux-2.6.38.3/fs/btrfs/inode.c linux-2.6.38.3/fs/btrfs/inode.c 30078diff -urNp linux-2.6.38.2/fs/btrfs/inode.c linux-2.6.38.2/fs/btrfs/inode.c
30906--- linux-2.6.38.3/fs/btrfs/inode.c 2011-03-14 21:20:32.000000000 -0400 30079--- linux-2.6.38.2/fs/btrfs/inode.c 2011-03-14 21:20:32.000000000 -0400
30907+++ linux-2.6.38.3/fs/btrfs/inode.c 2011-04-17 15:57:32.000000000 -0400 30080+++ linux-2.6.38.2/fs/btrfs/inode.c 2011-03-24 23:08:20.000000000 -0400
30908@@ -64,7 +64,7 @@ static const struct inode_operations btr 30081@@ -64,7 +64,7 @@ static const struct inode_operations btr
30909 static const struct address_space_operations btrfs_aops; 30082 static const struct address_space_operations btrfs_aops;
30910 static const struct address_space_operations btrfs_symlink_aops; 30083 static const struct address_space_operations btrfs_symlink_aops;
@@ -30947,10 +30120,10 @@ diff -urNp linux-2.6.38.3/fs/btrfs/inode.c linux-2.6.38.3/fs/btrfs/inode.c
30947 .fill_delalloc = run_delalloc_range, 30120 .fill_delalloc = run_delalloc_range,
30948 .submit_bio_hook = btrfs_submit_bio_hook, 30121 .submit_bio_hook = btrfs_submit_bio_hook,
30949 .merge_bio_hook = btrfs_merge_bio_hook, 30122 .merge_bio_hook = btrfs_merge_bio_hook,
30950diff -urNp linux-2.6.38.3/fs/btrfs/ioctl.c linux-2.6.38.3/fs/btrfs/ioctl.c 30123diff -urNp linux-2.6.38.2/fs/btrfs/ioctl.c linux-2.6.38.2/fs/btrfs/ioctl.c
30951--- linux-2.6.38.3/fs/btrfs/ioctl.c 2011-04-18 17:27:18.000000000 -0400 30124--- linux-2.6.38.2/fs/btrfs/ioctl.c 2011-03-14 21:20:32.000000000 -0400
30952+++ linux-2.6.38.3/fs/btrfs/ioctl.c 2011-04-17 16:53:48.000000000 -0400 30125+++ linux-2.6.38.2/fs/btrfs/ioctl.c 2011-03-21 18:31:35.000000000 -0400
30953@@ -2274,9 +2274,12 @@ long btrfs_ioctl_space_info(struct btrfs 30126@@ -2270,9 +2270,12 @@ long btrfs_ioctl_space_info(struct btrfs
30954 for (i = 0; i < num_types; i++) { 30127 for (i = 0; i < num_types; i++) {
30955 struct btrfs_space_info *tmp; 30128 struct btrfs_space_info *tmp;
30956 30129
@@ -30963,7 +30136,7 @@ diff -urNp linux-2.6.38.3/fs/btrfs/ioctl.c linux-2.6.38.3/fs/btrfs/ioctl.c
30963 info = NULL; 30136 info = NULL;
30964 rcu_read_lock(); 30137 rcu_read_lock();
30965 list_for_each_entry_rcu(tmp, &root->fs_info->space_info, 30138 list_for_each_entry_rcu(tmp, &root->fs_info->space_info,
30966@@ -2298,10 +2301,7 @@ long btrfs_ioctl_space_info(struct btrfs 30139@@ -2294,10 +2297,7 @@ long btrfs_ioctl_space_info(struct btrfs
30967 memcpy(dest, &space, sizeof(space)); 30140 memcpy(dest, &space, sizeof(space));
30968 dest++; 30141 dest++;
30969 space_args.total_spaces++; 30142 space_args.total_spaces++;
@@ -30974,9 +30147,9 @@ diff -urNp linux-2.6.38.3/fs/btrfs/ioctl.c linux-2.6.38.3/fs/btrfs/ioctl.c
30974 } 30147 }
30975 up_read(&info->groups_sem); 30148 up_read(&info->groups_sem);
30976 } 30149 }
30977diff -urNp linux-2.6.38.3/fs/btrfs/relocation.c linux-2.6.38.3/fs/btrfs/relocation.c 30150diff -urNp linux-2.6.38.2/fs/btrfs/relocation.c linux-2.6.38.2/fs/btrfs/relocation.c
30978--- linux-2.6.38.3/fs/btrfs/relocation.c 2011-03-14 21:20:32.000000000 -0400 30151--- linux-2.6.38.2/fs/btrfs/relocation.c 2011-03-14 21:20:32.000000000 -0400
30979+++ linux-2.6.38.3/fs/btrfs/relocation.c 2011-04-17 15:57:32.000000000 -0400 30152+++ linux-2.6.38.2/fs/btrfs/relocation.c 2011-03-21 18:31:35.000000000 -0400
30980@@ -1239,7 +1239,7 @@ static int __update_reloc_root(struct bt 30153@@ -1239,7 +1239,7 @@ static int __update_reloc_root(struct bt
30981 } 30154 }
30982 spin_unlock(&rc->reloc_root_tree.lock); 30155 spin_unlock(&rc->reloc_root_tree.lock);
@@ -30986,9 +30159,9 @@ diff -urNp linux-2.6.38.3/fs/btrfs/relocation.c linux-2.6.38.3/fs/btrfs/relocati
30986 30159
30987 if (!del) { 30160 if (!del) {
30988 spin_lock(&rc->reloc_root_tree.lock); 30161 spin_lock(&rc->reloc_root_tree.lock);
30989diff -urNp linux-2.6.38.3/fs/cachefiles/bind.c linux-2.6.38.3/fs/cachefiles/bind.c 30162diff -urNp linux-2.6.38.2/fs/cachefiles/bind.c linux-2.6.38.2/fs/cachefiles/bind.c
30990--- linux-2.6.38.3/fs/cachefiles/bind.c 2011-03-14 21:20:32.000000000 -0400 30163--- linux-2.6.38.2/fs/cachefiles/bind.c 2011-03-14 21:20:32.000000000 -0400
30991+++ linux-2.6.38.3/fs/cachefiles/bind.c 2011-04-17 15:57:32.000000000 -0400 30164+++ linux-2.6.38.2/fs/cachefiles/bind.c 2011-03-21 18:31:35.000000000 -0400
30992@@ -39,13 +39,11 @@ int cachefiles_daemon_bind(struct cachef 30165@@ -39,13 +39,11 @@ int cachefiles_daemon_bind(struct cachef
30993 args); 30166 args);
30994 30167
@@ -31005,9 +30178,9 @@ diff -urNp linux-2.6.38.3/fs/cachefiles/bind.c linux-2.6.38.3/fs/cachefiles/bind
31005 cache->bcull_percent < cache->brun_percent && 30178 cache->bcull_percent < cache->brun_percent &&
31006 cache->brun_percent < 100); 30179 cache->brun_percent < 100);
31007 30180
31008diff -urNp linux-2.6.38.3/fs/cachefiles/daemon.c linux-2.6.38.3/fs/cachefiles/daemon.c 30181diff -urNp linux-2.6.38.2/fs/cachefiles/daemon.c linux-2.6.38.2/fs/cachefiles/daemon.c
31009--- linux-2.6.38.3/fs/cachefiles/daemon.c 2011-03-14 21:20:32.000000000 -0400 30182--- linux-2.6.38.2/fs/cachefiles/daemon.c 2011-03-14 21:20:32.000000000 -0400
31010+++ linux-2.6.38.3/fs/cachefiles/daemon.c 2011-04-17 15:57:32.000000000 -0400 30183+++ linux-2.6.38.2/fs/cachefiles/daemon.c 2011-03-21 18:31:35.000000000 -0400
31011@@ -196,7 +196,7 @@ static ssize_t cachefiles_daemon_read(st 30184@@ -196,7 +196,7 @@ static ssize_t cachefiles_daemon_read(st
31012 if (n > buflen) 30185 if (n > buflen)
31013 return -EMSGSIZE; 30186 return -EMSGSIZE;
@@ -31044,9 +30217,9 @@ diff -urNp linux-2.6.38.3/fs/cachefiles/daemon.c linux-2.6.38.3/fs/cachefiles/da
31044 return cachefiles_daemon_range_error(cache, args); 30217 return cachefiles_daemon_range_error(cache, args);
31045 30218
31046 cache->bstop_percent = bstop; 30219 cache->bstop_percent = bstop;
31047diff -urNp linux-2.6.38.3/fs/cachefiles/rdwr.c linux-2.6.38.3/fs/cachefiles/rdwr.c 30220diff -urNp linux-2.6.38.2/fs/cachefiles/rdwr.c linux-2.6.38.2/fs/cachefiles/rdwr.c
31048--- linux-2.6.38.3/fs/cachefiles/rdwr.c 2011-03-14 21:20:32.000000000 -0400 30221--- linux-2.6.38.2/fs/cachefiles/rdwr.c 2011-03-14 21:20:32.000000000 -0400
31049+++ linux-2.6.38.3/fs/cachefiles/rdwr.c 2011-04-17 15:57:32.000000000 -0400 30222+++ linux-2.6.38.2/fs/cachefiles/rdwr.c 2011-03-21 18:31:35.000000000 -0400
31050@@ -945,7 +945,7 @@ int cachefiles_write_page(struct fscache 30223@@ -945,7 +945,7 @@ int cachefiles_write_page(struct fscache
31051 old_fs = get_fs(); 30224 old_fs = get_fs();
31052 set_fs(KERNEL_DS); 30225 set_fs(KERNEL_DS);
@@ -31056,9 +30229,9 @@ diff -urNp linux-2.6.38.3/fs/cachefiles/rdwr.c linux-2.6.38.3/fs/cachefiles/rdwr
31056 set_fs(old_fs); 30229 set_fs(old_fs);
31057 kunmap(page); 30230 kunmap(page);
31058 if (ret != len) 30231 if (ret != len)
31059diff -urNp linux-2.6.38.3/fs/ceph/dir.c linux-2.6.38.3/fs/ceph/dir.c 30232diff -urNp linux-2.6.38.2/fs/ceph/dir.c linux-2.6.38.2/fs/ceph/dir.c
31060--- linux-2.6.38.3/fs/ceph/dir.c 2011-03-14 21:20:32.000000000 -0400 30233--- linux-2.6.38.2/fs/ceph/dir.c 2011-03-14 21:20:32.000000000 -0400
31061+++ linux-2.6.38.3/fs/ceph/dir.c 2011-04-17 15:57:32.000000000 -0400 30234+++ linux-2.6.38.2/fs/ceph/dir.c 2011-03-21 18:31:35.000000000 -0400
31062@@ -226,7 +226,7 @@ static int ceph_readdir(struct file *fil 30235@@ -226,7 +226,7 @@ static int ceph_readdir(struct file *fil
31063 struct ceph_fs_client *fsc = ceph_inode_to_client(inode); 30236 struct ceph_fs_client *fsc = ceph_inode_to_client(inode);
31064 struct ceph_mds_client *mdsc = fsc->mdsc; 30237 struct ceph_mds_client *mdsc = fsc->mdsc;
@@ -31077,9 +30250,9 @@ diff -urNp linux-2.6.38.3/fs/ceph/dir.c linux-2.6.38.3/fs/ceph/dir.c
31077 u64 pos = ceph_make_fpos(frag, off); 30250 u64 pos = ceph_make_fpos(frag, off);
31078 struct ceph_mds_reply_inode *in = 30251 struct ceph_mds_reply_inode *in =
31079 rinfo->dir_in[off - fi->offset].in; 30252 rinfo->dir_in[off - fi->offset].in;
31080diff -urNp linux-2.6.38.3/fs/cifs/cifs_uniupr.h linux-2.6.38.3/fs/cifs/cifs_uniupr.h 30253diff -urNp linux-2.6.38.2/fs/cifs/cifs_uniupr.h linux-2.6.38.2/fs/cifs/cifs_uniupr.h
31081--- linux-2.6.38.3/fs/cifs/cifs_uniupr.h 2011-03-14 21:20:32.000000000 -0400 30254--- linux-2.6.38.2/fs/cifs/cifs_uniupr.h 2011-03-14 21:20:32.000000000 -0400
31082+++ linux-2.6.38.3/fs/cifs/cifs_uniupr.h 2011-04-17 15:57:32.000000000 -0400 30255+++ linux-2.6.38.2/fs/cifs/cifs_uniupr.h 2011-03-21 18:31:35.000000000 -0400
31083@@ -132,7 +132,7 @@ const struct UniCaseRange CifsUniUpperRa 30256@@ -132,7 +132,7 @@ const struct UniCaseRange CifsUniUpperRa
31084 {0x0490, 0x04cc, UniCaseRangeU0490}, 30257 {0x0490, 0x04cc, UniCaseRangeU0490},
31085 {0x1e00, 0x1ffc, UniCaseRangeU1e00}, 30258 {0x1e00, 0x1ffc, UniCaseRangeU1e00},
@@ -31089,9 +30262,9 @@ diff -urNp linux-2.6.38.3/fs/cifs/cifs_uniupr.h linux-2.6.38.3/fs/cifs/cifs_uniu
31089 }; 30262 };
31090 #endif 30263 #endif
31091 30264
31092diff -urNp linux-2.6.38.3/fs/cifs/link.c linux-2.6.38.3/fs/cifs/link.c 30265diff -urNp linux-2.6.38.2/fs/cifs/link.c linux-2.6.38.2/fs/cifs/link.c
31093--- linux-2.6.38.3/fs/cifs/link.c 2011-03-14 21:20:32.000000000 -0400 30266--- linux-2.6.38.2/fs/cifs/link.c 2011-03-14 21:20:32.000000000 -0400
31094+++ linux-2.6.38.3/fs/cifs/link.c 2011-04-17 15:57:32.000000000 -0400 30267+++ linux-2.6.38.2/fs/cifs/link.c 2011-03-21 18:31:35.000000000 -0400
31095@@ -577,7 +577,7 @@ symlink_exit: 30268@@ -577,7 +577,7 @@ symlink_exit:
31096 30269
31097 void cifs_put_link(struct dentry *direntry, struct nameidata *nd, void *cookie) 30270 void cifs_put_link(struct dentry *direntry, struct nameidata *nd, void *cookie)
@@ -31101,9 +30274,9 @@ diff -urNp linux-2.6.38.3/fs/cifs/link.c linux-2.6.38.3/fs/cifs/link.c
31101 if (!IS_ERR(p)) 30274 if (!IS_ERR(p))
31102 kfree(p); 30275 kfree(p);
31103 } 30276 }
31104diff -urNp linux-2.6.38.3/fs/compat_binfmt_elf.c linux-2.6.38.3/fs/compat_binfmt_elf.c 30277diff -urNp linux-2.6.38.2/fs/compat_binfmt_elf.c linux-2.6.38.2/fs/compat_binfmt_elf.c
31105--- linux-2.6.38.3/fs/compat_binfmt_elf.c 2011-03-14 21:20:32.000000000 -0400 30278--- linux-2.6.38.2/fs/compat_binfmt_elf.c 2011-03-14 21:20:32.000000000 -0400
31106+++ linux-2.6.38.3/fs/compat_binfmt_elf.c 2011-04-17 15:57:32.000000000 -0400 30279+++ linux-2.6.38.2/fs/compat_binfmt_elf.c 2011-03-21 18:31:35.000000000 -0400
31107@@ -30,11 +30,13 @@ 30280@@ -30,11 +30,13 @@
31108 #undef elf_phdr 30281 #undef elf_phdr
31109 #undef elf_shdr 30282 #undef elf_shdr
@@ -31118,9 +30291,9 @@ diff -urNp linux-2.6.38.3/fs/compat_binfmt_elf.c linux-2.6.38.3/fs/compat_binfmt
31118 #define elf_addr_t Elf32_Addr 30291 #define elf_addr_t Elf32_Addr
31119 30292
31120 /* 30293 /*
31121diff -urNp linux-2.6.38.3/fs/compat.c linux-2.6.38.3/fs/compat.c 30294diff -urNp linux-2.6.38.2/fs/compat.c linux-2.6.38.2/fs/compat.c
31122--- linux-2.6.38.3/fs/compat.c 2011-03-14 21:20:32.000000000 -0400 30295--- linux-2.6.38.2/fs/compat.c 2011-03-14 21:20:32.000000000 -0400
31123+++ linux-2.6.38.3/fs/compat.c 2011-04-17 15:57:32.000000000 -0400 30296+++ linux-2.6.38.2/fs/compat.c 2011-03-21 18:31:35.000000000 -0400
31124@@ -594,7 +594,7 @@ ssize_t compat_rw_copy_check_uvector(int 30297@@ -594,7 +594,7 @@ ssize_t compat_rw_copy_check_uvector(int
31125 goto out; 30298 goto out;
31126 30299
@@ -31231,15 +30404,10 @@ diff -urNp linux-2.6.38.3/fs/compat.c linux-2.6.38.3/fs/compat.c
31231 struct linux_binprm *bprm; 30404 struct linux_binprm *bprm;
31232 struct file *file; 30405 struct file *file;
31233 struct files_struct *displaced; 30406 struct files_struct *displaced;
31234@@ -1500,6 +1524,19 @@ int compat_do_execve(char * filename, 30407@@ -1500,6 +1524,14 @@ int compat_do_execve(char * filename,
31235 bprm->filename = filename; 30408 bprm->filename = filename;
31236 bprm->interp = filename; 30409 bprm->interp = filename;
31237 30410
31238+ if (gr_process_user_ban()) {
31239+ retval = -EPERM;
31240+ goto out_file;
31241+ }
31242+
31243+ gr_learn_resource(current, RLIMIT_NPROC, atomic_read(&current->cred->user->processes), 1); 30411+ gr_learn_resource(current, RLIMIT_NPROC, atomic_read(&current->cred->user->processes), 1);
31244+ retval = -EAGAIN; 30412+ retval = -EAGAIN;
31245+ if (gr_handle_nproc()) 30413+ if (gr_handle_nproc())
@@ -31251,7 +30419,7 @@ diff -urNp linux-2.6.38.3/fs/compat.c linux-2.6.38.3/fs/compat.c
31251 retval = bprm_mm_init(bprm); 30419 retval = bprm_mm_init(bprm);
31252 if (retval) 30420 if (retval)
31253 goto out_file; 30421 goto out_file;
31254@@ -1529,9 +1566,40 @@ int compat_do_execve(char * filename, 30422@@ -1529,9 +1561,40 @@ int compat_do_execve(char * filename,
31255 if (retval < 0) 30423 if (retval < 0)
31256 goto out; 30424 goto out;
31257 30425
@@ -31293,7 +30461,7 @@ diff -urNp linux-2.6.38.3/fs/compat.c linux-2.6.38.3/fs/compat.c
31293 30461
31294 /* execve succeeded */ 30462 /* execve succeeded */
31295 current->fs->in_exec = 0; 30463 current->fs->in_exec = 0;
31296@@ -1542,6 +1610,14 @@ int compat_do_execve(char * filename, 30464@@ -1542,6 +1605,14 @@ int compat_do_execve(char * filename,
31297 put_files_struct(displaced); 30465 put_files_struct(displaced);
31298 return retval; 30466 return retval;
31299 30467
@@ -31308,9 +30476,9 @@ diff -urNp linux-2.6.38.3/fs/compat.c linux-2.6.38.3/fs/compat.c
31308 out: 30476 out:
31309 if (bprm->mm) { 30477 if (bprm->mm) {
31310 acct_arg_size(bprm, 0); 30478 acct_arg_size(bprm, 0);
31311diff -urNp linux-2.6.38.3/fs/compat_ioctl.c linux-2.6.38.3/fs/compat_ioctl.c 30479diff -urNp linux-2.6.38.2/fs/compat_ioctl.c linux-2.6.38.2/fs/compat_ioctl.c
31312--- linux-2.6.38.3/fs/compat_ioctl.c 2011-03-14 21:20:32.000000000 -0400 30480--- linux-2.6.38.2/fs/compat_ioctl.c 2011-03-14 21:20:32.000000000 -0400
31313+++ linux-2.6.38.3/fs/compat_ioctl.c 2011-04-17 15:57:32.000000000 -0400 30481+++ linux-2.6.38.2/fs/compat_ioctl.c 2011-03-21 18:31:35.000000000 -0400
31314@@ -208,6 +208,8 @@ static int do_video_set_spu_palette(unsi 30482@@ -208,6 +208,8 @@ static int do_video_set_spu_palette(unsi
31315 30483
31316 err = get_user(palp, &up->palette); 30484 err = get_user(palp, &up->palette);
@@ -31331,21 +30499,9 @@ diff -urNp linux-2.6.38.3/fs/compat_ioctl.c linux-2.6.38.3/fs/compat_ioctl.c
31331 if (a > b) 30499 if (a > b)
31332 return 1; 30500 return 1;
31333 if (a < b) 30501 if (a < b)
31334diff -urNp linux-2.6.38.3/fs/dcache.c linux-2.6.38.3/fs/dcache.c 30502diff -urNp linux-2.6.38.2/fs/debugfs/inode.c linux-2.6.38.2/fs/debugfs/inode.c
31335--- linux-2.6.38.3/fs/dcache.c 2011-04-18 17:27:16.000000000 -0400 30503--- linux-2.6.38.2/fs/debugfs/inode.c 2011-03-14 21:20:32.000000000 -0400
31336+++ linux-2.6.38.3/fs/dcache.c 2011-04-17 15:57:32.000000000 -0400 30504+++ linux-2.6.38.2/fs/debugfs/inode.c 2011-03-21 18:31:35.000000000 -0400
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
31349@@ -130,7 +130,7 @@ static inline int debugfs_positive(struc 30505@@ -130,7 +130,7 @@ static inline int debugfs_positive(struc
31350 30506
31351 static int debug_fill_super(struct super_block *sb, void *data, int silent) 30507 static int debug_fill_super(struct super_block *sb, void *data, int silent)
@@ -31355,9 +30511,9 @@ diff -urNp linux-2.6.38.3/fs/debugfs/inode.c linux-2.6.38.3/fs/debugfs/inode.c
31355 30511
31356 return simple_fill_super(sb, DEBUGFS_MAGIC, debug_files); 30512 return simple_fill_super(sb, DEBUGFS_MAGIC, debug_files);
31357 } 30513 }
31358diff -urNp linux-2.6.38.3/fs/dlm/lockspace.c linux-2.6.38.3/fs/dlm/lockspace.c 30514diff -urNp linux-2.6.38.2/fs/dlm/lockspace.c linux-2.6.38.2/fs/dlm/lockspace.c
31359--- linux-2.6.38.3/fs/dlm/lockspace.c 2011-03-14 21:20:32.000000000 -0400 30515--- linux-2.6.38.2/fs/dlm/lockspace.c 2011-03-14 21:20:32.000000000 -0400
31360+++ linux-2.6.38.3/fs/dlm/lockspace.c 2011-04-17 15:57:32.000000000 -0400 30516+++ linux-2.6.38.2/fs/dlm/lockspace.c 2011-03-21 18:31:35.000000000 -0400
31361@@ -200,7 +200,7 @@ static int dlm_uevent(struct kset *kset, 30517@@ -200,7 +200,7 @@ static int dlm_uevent(struct kset *kset,
31362 return 0; 30518 return 0;
31363 } 30519 }
@@ -31367,9 +30523,9 @@ diff -urNp linux-2.6.38.3/fs/dlm/lockspace.c linux-2.6.38.3/fs/dlm/lockspace.c
31367 .uevent = dlm_uevent, 30523 .uevent = dlm_uevent,
31368 }; 30524 };
31369 30525
31370diff -urNp linux-2.6.38.3/fs/ecryptfs/inode.c linux-2.6.38.3/fs/ecryptfs/inode.c 30526diff -urNp linux-2.6.38.2/fs/ecryptfs/inode.c linux-2.6.38.2/fs/ecryptfs/inode.c
31371--- linux-2.6.38.3/fs/ecryptfs/inode.c 2011-03-14 21:20:32.000000000 -0400 30527--- linux-2.6.38.2/fs/ecryptfs/inode.c 2011-03-14 21:20:32.000000000 -0400
31372+++ linux-2.6.38.3/fs/ecryptfs/inode.c 2011-04-17 15:57:32.000000000 -0400 30528+++ linux-2.6.38.2/fs/ecryptfs/inode.c 2011-03-21 18:31:35.000000000 -0400
31373@@ -658,7 +658,7 @@ static int ecryptfs_readlink_lower(struc 30529@@ -658,7 +658,7 @@ static int ecryptfs_readlink_lower(struc
31374 old_fs = get_fs(); 30530 old_fs = get_fs();
31375 set_fs(get_ds()); 30531 set_fs(get_ds());
@@ -31397,9 +30553,9 @@ diff -urNp linux-2.6.38.3/fs/ecryptfs/inode.c linux-2.6.38.3/fs/ecryptfs/inode.c
31397 if (!IS_ERR(buf)) { 30553 if (!IS_ERR(buf)) {
31398 /* Free the char* */ 30554 /* Free the char* */
31399 kfree(buf); 30555 kfree(buf);
31400diff -urNp linux-2.6.38.3/fs/ecryptfs/miscdev.c linux-2.6.38.3/fs/ecryptfs/miscdev.c 30556diff -urNp linux-2.6.38.2/fs/ecryptfs/miscdev.c linux-2.6.38.2/fs/ecryptfs/miscdev.c
31401--- linux-2.6.38.3/fs/ecryptfs/miscdev.c 2011-03-14 21:20:32.000000000 -0400 30557--- linux-2.6.38.2/fs/ecryptfs/miscdev.c 2011-03-14 21:20:32.000000000 -0400
31402+++ linux-2.6.38.3/fs/ecryptfs/miscdev.c 2011-04-17 15:57:32.000000000 -0400 30558+++ linux-2.6.38.2/fs/ecryptfs/miscdev.c 2011-03-21 18:31:35.000000000 -0400
31403@@ -328,7 +328,7 @@ check_list: 30559@@ -328,7 +328,7 @@ check_list:
31404 goto out_unlock_msg_ctx; 30560 goto out_unlock_msg_ctx;
31405 i = 5; 30561 i = 5;
@@ -31409,9 +30565,9 @@ diff -urNp linux-2.6.38.3/fs/ecryptfs/miscdev.c linux-2.6.38.3/fs/ecryptfs/miscd
31409 goto out_unlock_msg_ctx; 30565 goto out_unlock_msg_ctx;
31410 i += packet_length_size; 30566 i += packet_length_size;
31411 if (copy_to_user(&buf[i], msg_ctx->msg, msg_ctx->msg_size)) 30567 if (copy_to_user(&buf[i], msg_ctx->msg, msg_ctx->msg_size))
31412diff -urNp linux-2.6.38.3/fs/exec.c linux-2.6.38.3/fs/exec.c 30568diff -urNp linux-2.6.38.2/fs/exec.c linux-2.6.38.2/fs/exec.c
31413--- linux-2.6.38.3/fs/exec.c 2011-03-14 21:20:32.000000000 -0400 30569--- linux-2.6.38.2/fs/exec.c 2011-03-14 21:20:32.000000000 -0400
31414+++ linux-2.6.38.3/fs/exec.c 2011-04-17 15:57:32.000000000 -0400 30570+++ linux-2.6.38.2/fs/exec.c 2011-03-21 18:31:35.000000000 -0400
31415@@ -55,12 +55,24 @@ 30571@@ -55,12 +55,24 @@
31416 #include <linux/fs_struct.h> 30572 #include <linux/fs_struct.h>
31417 #include <linux/pipe_fs_i.h> 30573 #include <linux/pipe_fs_i.h>
@@ -31616,15 +30772,10 @@ diff -urNp linux-2.6.38.3/fs/exec.c linux-2.6.38.3/fs/exec.c
31616 struct linux_binprm *bprm; 30772 struct linux_binprm *bprm;
31617 struct file *file; 30773 struct file *file;
31618 struct files_struct *displaced; 30774 struct files_struct *displaced;
31619@@ -1414,6 +1448,23 @@ int do_execve(const char * filename, 30775@@ -1414,6 +1448,18 @@ int do_execve(const char * filename,
31620 bprm->filename = filename; 30776 bprm->filename = filename;
31621 bprm->interp = filename; 30777 bprm->interp = filename;
31622 30778
31623+ if (gr_process_user_ban()) {
31624+ retval = -EPERM;
31625+ goto out_file;
31626+ }
31627+
31628+ gr_learn_resource(current, RLIMIT_NPROC, atomic_read(&current->cred->user->processes), 1); 30779+ gr_learn_resource(current, RLIMIT_NPROC, atomic_read(&current->cred->user->processes), 1);
31629+ 30780+
31630+ if (gr_handle_nproc()) { 30781+ if (gr_handle_nproc()) {
@@ -31640,7 +30791,7 @@ diff -urNp linux-2.6.38.3/fs/exec.c linux-2.6.38.3/fs/exec.c
31640 retval = bprm_mm_init(bprm); 30791 retval = bprm_mm_init(bprm);
31641 if (retval) 30792 if (retval)
31642 goto out_file; 30793 goto out_file;
31643@@ -1443,9 +1494,40 @@ int do_execve(const char * filename, 30794@@ -1443,9 +1489,40 @@ int do_execve(const char * filename,
31644 if (retval < 0) 30795 if (retval < 0)
31645 goto out; 30796 goto out;
31646 30797
@@ -31682,7 +30833,7 @@ diff -urNp linux-2.6.38.3/fs/exec.c linux-2.6.38.3/fs/exec.c
31682 30833
31683 /* execve succeeded */ 30834 /* execve succeeded */
31684 current->fs->in_exec = 0; 30835 current->fs->in_exec = 0;
31685@@ -1456,6 +1538,14 @@ int do_execve(const char * filename, 30836@@ -1456,6 +1533,14 @@ int do_execve(const char * filename,
31686 put_files_struct(displaced); 30837 put_files_struct(displaced);
31687 return retval; 30838 return retval;
31688 30839
@@ -31697,7 +30848,7 @@ diff -urNp linux-2.6.38.3/fs/exec.c linux-2.6.38.3/fs/exec.c
31697 out: 30848 out:
31698 if (bprm->mm) { 30849 if (bprm->mm) {
31699 acct_arg_size(bprm, 0); 30850 acct_arg_size(bprm, 0);
31700@@ -1642,6 +1732,208 @@ out: 30851@@ -1642,6 +1727,217 @@ out:
31701 return ispipe; 30852 return ispipe;
31702 } 30853 }
31703 30854
@@ -31889,16 +31040,25 @@ diff -urNp linux-2.6.38.3/fs/exec.c linux-2.6.38.3/fs/exec.c
31889+} 31040+}
31890+ 31041+
31891+ 31042+
31892+void pax_report_usercopy(const void *ptr, unsigned long len, bool to, const char *type) 31043+void pax_report_leak_to_user(const void *ptr, unsigned long len)
31044+{
31045+ if (current->signal->curr_ip)
31046+ printk(KERN_ERR "PAX: From %pI4: kernel memory leak attempt detected from %p (%lu bytes)\n",
31047+ &current->signal->curr_ip, ptr, len);
31048+ else
31049+ printk(KERN_ERR "PAX: kernel memory leak attempt detected from %p (%lu bytes)\n", ptr, len);
31050+ dump_stack();
31051+ do_group_exit(SIGKILL);
31052+}
31053+
31054+void pax_report_overflow_from_user(const void *ptr, unsigned long len)
31893+{ 31055+{
31894+ if (current->signal->curr_ip) 31056+ if (current->signal->curr_ip)
31895+ printk(KERN_ERR "PAX: From %pI4: kernel memory %s attempt detected %s %p (%s) (%lu bytes)\n", 31057+ printk(KERN_ERR "PAX: From %pI4: kernel memory overflow attempt detected to %p (%lu bytes)\n",
31896+ &current->signal->curr_ip, to ? "leak" : "overwrite", to ? "from" : "to", ptr, type ? : "unknown", len); 31058+ &current->signal->curr_ip, ptr, len);
31897+ else 31059+ else
31898+ printk(KERN_ERR "PAX: kernel memory %s attempt detected %s %p (%s) (%lu bytes)\n", 31060+ printk(KERN_ERR "PAX: kernel memory overflow attempt detected to %p (%lu bytes)\n", ptr, len);
31899+ to ? "leak" : "overwrite", to ? "from" : "to", ptr, type ? : "unknown", len);
31900+ dump_stack(); 31061+ dump_stack();
31901+ gr_handle_kernel_exploit();
31902+ do_group_exit(SIGKILL); 31062+ do_group_exit(SIGKILL);
31903+} 31063+}
31904+#endif 31064+#endif
@@ -31906,7 +31066,7 @@ diff -urNp linux-2.6.38.3/fs/exec.c linux-2.6.38.3/fs/exec.c
31906 static int zap_process(struct task_struct *start, int exit_code) 31066 static int zap_process(struct task_struct *start, int exit_code)
31907 { 31067 {
31908 struct task_struct *t; 31068 struct task_struct *t;
31909@@ -1852,17 +2144,17 @@ static void wait_for_dump_helpers(struct 31069@@ -1852,17 +2148,17 @@ static void wait_for_dump_helpers(struct
31910 pipe = file->f_path.dentry->d_inode->i_pipe; 31070 pipe = file->f_path.dentry->d_inode->i_pipe;
31911 31071
31912 pipe_lock(pipe); 31072 pipe_lock(pipe);
@@ -31929,28 +31089,20 @@ diff -urNp linux-2.6.38.3/fs/exec.c linux-2.6.38.3/fs/exec.c
31929 pipe_unlock(pipe); 31089 pipe_unlock(pipe);
31930 31090
31931 } 31091 }
31932@@ -1938,6 +2230,9 @@ void do_coredump(long signr, int exit_co 31092@@ -1978,6 +2274,10 @@ void do_coredump(long signr, int exit_co
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
31943 goto fail_corename; 31093 goto fail_corename;
31944 } 31094 }
31945 31095
31096+ if (signr == SIGSEGV || signr == SIGBUS || signr == SIGKILL || signr == SIGILL)
31097+ gr_handle_brute_attach(current);
31946+ gr_learn_resource(current, RLIMIT_CORE, binfmt->min_coredump, 1); 31098+ gr_learn_resource(current, RLIMIT_CORE, binfmt->min_coredump, 1);
31947+ 31099+
31948 if (ispipe) { 31100 if (ispipe) {
31949 int dump_count; 31101 int dump_count;
31950 char **helper_argv; 31102 char **helper_argv;
31951diff -urNp linux-2.6.38.3/fs/ext2/balloc.c linux-2.6.38.3/fs/ext2/balloc.c 31103diff -urNp linux-2.6.38.2/fs/ext2/balloc.c linux-2.6.38.2/fs/ext2/balloc.c
31952--- linux-2.6.38.3/fs/ext2/balloc.c 2011-03-14 21:20:32.000000000 -0400 31104--- linux-2.6.38.2/fs/ext2/balloc.c 2011-03-14 21:20:32.000000000 -0400
31953+++ linux-2.6.38.3/fs/ext2/balloc.c 2011-04-17 15:57:32.000000000 -0400 31105+++ linux-2.6.38.2/fs/ext2/balloc.c 2011-03-21 18:31:35.000000000 -0400
31954@@ -1192,7 +1192,7 @@ static int ext2_has_free_blocks(struct e 31106@@ -1192,7 +1192,7 @@ static int ext2_has_free_blocks(struct e
31955 31107
31956 free_blocks = percpu_counter_read_positive(&sbi->s_freeblocks_counter); 31108 free_blocks = percpu_counter_read_positive(&sbi->s_freeblocks_counter);
@@ -31960,9 +31112,9 @@ diff -urNp linux-2.6.38.3/fs/ext2/balloc.c linux-2.6.38.3/fs/ext2/balloc.c
31960 sbi->s_resuid != current_fsuid() && 31112 sbi->s_resuid != current_fsuid() &&
31961 (sbi->s_resgid == 0 || !in_group_p (sbi->s_resgid))) { 31113 (sbi->s_resgid == 0 || !in_group_p (sbi->s_resgid))) {
31962 return 0; 31114 return 0;
31963diff -urNp linux-2.6.38.3/fs/ext2/xattr.c linux-2.6.38.3/fs/ext2/xattr.c 31115diff -urNp linux-2.6.38.2/fs/ext2/xattr.c linux-2.6.38.2/fs/ext2/xattr.c
31964--- linux-2.6.38.3/fs/ext2/xattr.c 2011-03-14 21:20:32.000000000 -0400 31116--- linux-2.6.38.2/fs/ext2/xattr.c 2011-03-14 21:20:32.000000000 -0400
31965+++ linux-2.6.38.3/fs/ext2/xattr.c 2011-04-17 15:57:32.000000000 -0400 31117+++ linux-2.6.38.2/fs/ext2/xattr.c 2011-03-21 18:31:35.000000000 -0400
31966@@ -86,8 +86,8 @@ 31118@@ -86,8 +86,8 @@
31967 printk("\n"); \ 31119 printk("\n"); \
31968 } while (0) 31120 } while (0)
@@ -31974,9 +31126,9 @@ diff -urNp linux-2.6.38.3/fs/ext2/xattr.c linux-2.6.38.3/fs/ext2/xattr.c
31974 #endif 31126 #endif
31975 31127
31976 static int ext2_xattr_set2(struct inode *, struct buffer_head *, 31128 static int ext2_xattr_set2(struct inode *, struct buffer_head *,
31977diff -urNp linux-2.6.38.3/fs/ext3/balloc.c linux-2.6.38.3/fs/ext3/balloc.c 31129diff -urNp linux-2.6.38.2/fs/ext3/balloc.c linux-2.6.38.2/fs/ext3/balloc.c
31978--- linux-2.6.38.3/fs/ext3/balloc.c 2011-03-14 21:20:32.000000000 -0400 31130--- linux-2.6.38.2/fs/ext3/balloc.c 2011-03-14 21:20:32.000000000 -0400
31979+++ linux-2.6.38.3/fs/ext3/balloc.c 2011-04-17 15:57:32.000000000 -0400 31131+++ linux-2.6.38.2/fs/ext3/balloc.c 2011-03-21 18:31:35.000000000 -0400
31980@@ -1441,7 +1441,7 @@ static int ext3_has_free_blocks(struct e 31132@@ -1441,7 +1441,7 @@ static int ext3_has_free_blocks(struct e
31981 31133
31982 free_blocks = percpu_counter_read_positive(&sbi->s_freeblocks_counter); 31134 free_blocks = percpu_counter_read_positive(&sbi->s_freeblocks_counter);
@@ -31986,9 +31138,9 @@ diff -urNp linux-2.6.38.3/fs/ext3/balloc.c linux-2.6.38.3/fs/ext3/balloc.c
31986 sbi->s_resuid != current_fsuid() && 31138 sbi->s_resuid != current_fsuid() &&
31987 (sbi->s_resgid == 0 || !in_group_p (sbi->s_resgid))) { 31139 (sbi->s_resgid == 0 || !in_group_p (sbi->s_resgid))) {
31988 return 0; 31140 return 0;
31989diff -urNp linux-2.6.38.3/fs/ext3/namei.c linux-2.6.38.3/fs/ext3/namei.c 31141diff -urNp linux-2.6.38.2/fs/ext3/namei.c linux-2.6.38.2/fs/ext3/namei.c
31990--- linux-2.6.38.3/fs/ext3/namei.c 2011-04-18 17:27:14.000000000 -0400 31142--- linux-2.6.38.2/fs/ext3/namei.c 2011-03-23 17:20:08.000000000 -0400
31991+++ linux-2.6.38.3/fs/ext3/namei.c 2011-04-17 15:57:32.000000000 -0400 31143+++ linux-2.6.38.2/fs/ext3/namei.c 2011-03-23 17:21:51.000000000 -0400
31992@@ -1159,7 +1159,7 @@ static struct ext3_dir_entry_2 *do_split 31144@@ -1159,7 +1159,7 @@ static struct ext3_dir_entry_2 *do_split
31993 char *data1 = (*bh)->b_data, *data2; 31145 char *data1 = (*bh)->b_data, *data2;
31994 unsigned split, move, size; 31146 unsigned split, move, size;
@@ -31998,9 +31150,9 @@ diff -urNp linux-2.6.38.3/fs/ext3/namei.c linux-2.6.38.3/fs/ext3/namei.c
31998 31150
31999 bh2 = ext3_append (handle, dir, &newblock, &err); 31151 bh2 = ext3_append (handle, dir, &newblock, &err);
32000 if (!(bh2)) { 31152 if (!(bh2)) {
32001diff -urNp linux-2.6.38.3/fs/ext3/xattr.c linux-2.6.38.3/fs/ext3/xattr.c 31153diff -urNp linux-2.6.38.2/fs/ext3/xattr.c linux-2.6.38.2/fs/ext3/xattr.c
32002--- linux-2.6.38.3/fs/ext3/xattr.c 2011-03-14 21:20:32.000000000 -0400 31154--- linux-2.6.38.2/fs/ext3/xattr.c 2011-03-14 21:20:32.000000000 -0400
32003+++ linux-2.6.38.3/fs/ext3/xattr.c 2011-04-17 15:57:32.000000000 -0400 31155+++ linux-2.6.38.2/fs/ext3/xattr.c 2011-03-21 18:31:35.000000000 -0400
32004@@ -89,8 +89,8 @@ 31156@@ -89,8 +89,8 @@
32005 printk("\n"); \ 31157 printk("\n"); \
32006 } while (0) 31158 } while (0)
@@ -32012,9 +31164,9 @@ diff -urNp linux-2.6.38.3/fs/ext3/xattr.c linux-2.6.38.3/fs/ext3/xattr.c
32012 #endif 31164 #endif
32013 31165
32014 static void ext3_xattr_cache_insert(struct buffer_head *); 31166 static void ext3_xattr_cache_insert(struct buffer_head *);
32015diff -urNp linux-2.6.38.3/fs/ext4/balloc.c linux-2.6.38.3/fs/ext4/balloc.c 31167diff -urNp linux-2.6.38.2/fs/ext4/balloc.c linux-2.6.38.2/fs/ext4/balloc.c
32016--- linux-2.6.38.3/fs/ext4/balloc.c 2011-03-14 21:20:32.000000000 -0400 31168--- linux-2.6.38.2/fs/ext4/balloc.c 2011-03-14 21:20:32.000000000 -0400
32017+++ linux-2.6.38.3/fs/ext4/balloc.c 2011-04-17 15:57:32.000000000 -0400 31169+++ linux-2.6.38.2/fs/ext4/balloc.c 2011-03-21 18:31:35.000000000 -0400
32018@@ -519,7 +519,7 @@ static int ext4_has_free_blocks(struct e 31170@@ -519,7 +519,7 @@ static int ext4_has_free_blocks(struct e
32019 /* Hm, nope. Are (enough) root reserved blocks available? */ 31171 /* Hm, nope. Are (enough) root reserved blocks available? */
32020 if (sbi->s_resuid == current_fsuid() || 31172 if (sbi->s_resuid == current_fsuid() ||
@@ -32024,9 +31176,9 @@ diff -urNp linux-2.6.38.3/fs/ext4/balloc.c linux-2.6.38.3/fs/ext4/balloc.c
32024 if (free_blocks >= (nblocks + dirty_blocks)) 31176 if (free_blocks >= (nblocks + dirty_blocks))
32025 return 1; 31177 return 1;
32026 } 31178 }
32027diff -urNp linux-2.6.38.3/fs/ext4/ext4.h linux-2.6.38.3/fs/ext4/ext4.h 31179diff -urNp linux-2.6.38.2/fs/ext4/ext4.h linux-2.6.38.2/fs/ext4/ext4.h
32028--- linux-2.6.38.3/fs/ext4/ext4.h 2011-03-14 21:20:32.000000000 -0400 31180--- linux-2.6.38.2/fs/ext4/ext4.h 2011-03-14 21:20:32.000000000 -0400
32029+++ linux-2.6.38.3/fs/ext4/ext4.h 2011-04-17 15:57:32.000000000 -0400 31181+++ linux-2.6.38.2/fs/ext4/ext4.h 2011-03-21 18:31:35.000000000 -0400
32030@@ -1166,19 +1166,19 @@ struct ext4_sb_info { 31182@@ -1166,19 +1166,19 @@ struct ext4_sb_info {
32031 unsigned long s_mb_last_start; 31183 unsigned long s_mb_last_start;
32032 31184
@@ -32057,9 +31209,9 @@ diff -urNp linux-2.6.38.3/fs/ext4/ext4.h linux-2.6.38.3/fs/ext4/ext4.h
32057 atomic_t s_lock_busy; 31209 atomic_t s_lock_busy;
32058 31210
32059 /* locality groups */ 31211 /* locality groups */
32060diff -urNp linux-2.6.38.3/fs/ext4/mballoc.c linux-2.6.38.3/fs/ext4/mballoc.c 31212diff -urNp linux-2.6.38.2/fs/ext4/mballoc.c linux-2.6.38.2/fs/ext4/mballoc.c
32061--- linux-2.6.38.3/fs/ext4/mballoc.c 2011-03-14 21:20:32.000000000 -0400 31213--- linux-2.6.38.2/fs/ext4/mballoc.c 2011-03-14 21:20:32.000000000 -0400
32062+++ linux-2.6.38.3/fs/ext4/mballoc.c 2011-04-17 15:57:32.000000000 -0400 31214+++ linux-2.6.38.2/fs/ext4/mballoc.c 2011-03-21 18:31:35.000000000 -0400
32063@@ -1846,7 +1846,7 @@ void ext4_mb_simple_scan_group(struct ex 31215@@ -1846,7 +1846,7 @@ void ext4_mb_simple_scan_group(struct ex
32064 BUG_ON(ac->ac_b_ex.fe_len != ac->ac_g_ex.fe_len); 31216 BUG_ON(ac->ac_b_ex.fe_len != ac->ac_g_ex.fe_len);
32065 31217
@@ -32173,9 +31325,9 @@ diff -urNp linux-2.6.38.3/fs/ext4/mballoc.c linux-2.6.38.3/fs/ext4/mballoc.c
32173 trace_ext4_mballoc_discard(sb, NULL, group, bit, pa->pa_len); 31325 trace_ext4_mballoc_discard(sb, NULL, group, bit, pa->pa_len);
32174 31326
32175 return 0; 31327 return 0;
32176diff -urNp linux-2.6.38.3/fs/ext4/namei.c linux-2.6.38.3/fs/ext4/namei.c 31328diff -urNp linux-2.6.38.2/fs/ext4/namei.c linux-2.6.38.2/fs/ext4/namei.c
32177--- linux-2.6.38.3/fs/ext4/namei.c 2011-03-14 21:20:32.000000000 -0400 31329--- linux-2.6.38.2/fs/ext4/namei.c 2011-03-14 21:20:32.000000000 -0400
32178+++ linux-2.6.38.3/fs/ext4/namei.c 2011-04-17 15:57:32.000000000 -0400 31330+++ linux-2.6.38.2/fs/ext4/namei.c 2011-03-21 18:31:35.000000000 -0400
32179@@ -1161,7 +1161,7 @@ static struct ext4_dir_entry_2 *do_split 31331@@ -1161,7 +1161,7 @@ static struct ext4_dir_entry_2 *do_split
32180 char *data1 = (*bh)->b_data, *data2; 31332 char *data1 = (*bh)->b_data, *data2;
32181 unsigned split, move, size; 31333 unsigned split, move, size;
@@ -32185,9 +31337,9 @@ diff -urNp linux-2.6.38.3/fs/ext4/namei.c linux-2.6.38.3/fs/ext4/namei.c
32185 31337
32186 bh2 = ext4_append (handle, dir, &newblock, &err); 31338 bh2 = ext4_append (handle, dir, &newblock, &err);
32187 if (!(bh2)) { 31339 if (!(bh2)) {
32188diff -urNp linux-2.6.38.3/fs/ext4/xattr.c linux-2.6.38.3/fs/ext4/xattr.c 31340diff -urNp linux-2.6.38.2/fs/ext4/xattr.c linux-2.6.38.2/fs/ext4/xattr.c
32189--- linux-2.6.38.3/fs/ext4/xattr.c 2011-03-14 21:20:32.000000000 -0400 31341--- linux-2.6.38.2/fs/ext4/xattr.c 2011-03-14 21:20:32.000000000 -0400
32190+++ linux-2.6.38.3/fs/ext4/xattr.c 2011-04-17 15:57:32.000000000 -0400 31342+++ linux-2.6.38.2/fs/ext4/xattr.c 2011-03-21 18:31:35.000000000 -0400
32191@@ -82,8 +82,8 @@ 31343@@ -82,8 +82,8 @@
32192 printk("\n"); \ 31344 printk("\n"); \
32193 } while (0) 31345 } while (0)
@@ -32199,9 +31351,9 @@ diff -urNp linux-2.6.38.3/fs/ext4/xattr.c linux-2.6.38.3/fs/ext4/xattr.c
32199 #endif 31351 #endif
32200 31352
32201 static void ext4_xattr_cache_insert(struct buffer_head *); 31353 static void ext4_xattr_cache_insert(struct buffer_head *);
32202diff -urNp linux-2.6.38.3/fs/fcntl.c linux-2.6.38.3/fs/fcntl.c 31354diff -urNp linux-2.6.38.2/fs/fcntl.c linux-2.6.38.2/fs/fcntl.c
32203--- linux-2.6.38.3/fs/fcntl.c 2011-03-14 21:20:32.000000000 -0400 31355--- linux-2.6.38.2/fs/fcntl.c 2011-03-14 21:20:32.000000000 -0400
32204+++ linux-2.6.38.3/fs/fcntl.c 2011-04-17 15:57:32.000000000 -0400 31356+++ linux-2.6.38.2/fs/fcntl.c 2011-03-21 18:31:35.000000000 -0400
32205@@ -224,6 +224,11 @@ int __f_setown(struct file *filp, struct 31357@@ -224,6 +224,11 @@ int __f_setown(struct file *filp, struct
32206 if (err) 31358 if (err)
32207 return err; 31359 return err;
@@ -32239,9 +31391,9 @@ diff -urNp linux-2.6.38.3/fs/fcntl.c linux-2.6.38.3/fs/fcntl.c
32239 )); 31391 ));
32240 31392
32241 fasync_cache = kmem_cache_create("fasync_cache", 31393 fasync_cache = kmem_cache_create("fasync_cache",
32242diff -urNp linux-2.6.38.3/fs/fifo.c linux-2.6.38.3/fs/fifo.c 31394diff -urNp linux-2.6.38.2/fs/fifo.c linux-2.6.38.2/fs/fifo.c
32243--- linux-2.6.38.3/fs/fifo.c 2011-03-14 21:20:32.000000000 -0400 31395--- linux-2.6.38.2/fs/fifo.c 2011-03-14 21:20:32.000000000 -0400
32244+++ linux-2.6.38.3/fs/fifo.c 2011-04-17 15:57:32.000000000 -0400 31396+++ linux-2.6.38.2/fs/fifo.c 2011-03-21 18:31:35.000000000 -0400
32245@@ -58,10 +58,10 @@ static int fifo_open(struct inode *inode 31397@@ -58,10 +58,10 @@ static int fifo_open(struct inode *inode
32246 */ 31398 */
32247 filp->f_op = &read_pipefifo_fops; 31399 filp->f_op = &read_pipefifo_fops;
@@ -32312,9 +31464,9 @@ diff -urNp linux-2.6.38.3/fs/fifo.c linux-2.6.38.3/fs/fifo.c
32312 free_pipe_info(inode); 31464 free_pipe_info(inode);
32313 31465
32314 err_nocleanup: 31466 err_nocleanup:
32315diff -urNp linux-2.6.38.3/fs/file.c linux-2.6.38.3/fs/file.c 31467diff -urNp linux-2.6.38.2/fs/file.c linux-2.6.38.2/fs/file.c
32316--- linux-2.6.38.3/fs/file.c 2011-03-14 21:20:32.000000000 -0400 31468--- linux-2.6.38.2/fs/file.c 2011-03-14 21:20:32.000000000 -0400
32317+++ linux-2.6.38.3/fs/file.c 2011-04-17 15:57:32.000000000 -0400 31469+++ linux-2.6.38.2/fs/file.c 2011-03-21 18:31:35.000000000 -0400
32318@@ -14,6 +14,7 @@ 31470@@ -14,6 +14,7 @@
32319 #include <linux/slab.h> 31471 #include <linux/slab.h>
32320 #include <linux/vmalloc.h> 31472 #include <linux/vmalloc.h>
@@ -32331,25 +31483,9 @@ diff -urNp linux-2.6.38.3/fs/file.c linux-2.6.38.3/fs/file.c
32331 if (nr >= rlimit(RLIMIT_NOFILE)) 31483 if (nr >= rlimit(RLIMIT_NOFILE))
32332 return -EMFILE; 31484 return -EMFILE;
32333 31485
32334diff -urNp linux-2.6.38.3/fs/filesystems.c linux-2.6.38.3/fs/filesystems.c 31486diff -urNp linux-2.6.38.2/fs/fs_struct.c linux-2.6.38.2/fs/fs_struct.c
32335--- linux-2.6.38.3/fs/filesystems.c 2011-03-14 21:20:32.000000000 -0400 31487--- linux-2.6.38.2/fs/fs_struct.c 2011-03-14 21:20:32.000000000 -0400
32336+++ linux-2.6.38.3/fs/filesystems.c 2011-04-17 15:57:32.000000000 -0400 31488+++ linux-2.6.38.2/fs/fs_struct.c 2011-03-21 18:31:35.000000000 -0400
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
32353@@ -4,6 +4,7 @@ 31489@@ -4,6 +4,7 @@
32354 #include <linux/path.h> 31490 #include <linux/path.h>
32355 #include <linux/slab.h> 31491 #include <linux/slab.h>
@@ -32439,9 +31575,9 @@ diff -urNp linux-2.6.38.3/fs/fs_struct.c linux-2.6.38.3/fs/fs_struct.c
32439 spin_unlock(&fs->lock); 31575 spin_unlock(&fs->lock);
32440 31576
32441 task_unlock(current); 31577 task_unlock(current);
32442diff -urNp linux-2.6.38.3/fs/fuse/control.c linux-2.6.38.3/fs/fuse/control.c 31578diff -urNp linux-2.6.38.2/fs/fuse/control.c linux-2.6.38.2/fs/fuse/control.c
32443--- linux-2.6.38.3/fs/fuse/control.c 2011-03-14 21:20:32.000000000 -0400 31579--- linux-2.6.38.2/fs/fuse/control.c 2011-03-14 21:20:32.000000000 -0400
32444+++ linux-2.6.38.3/fs/fuse/control.c 2011-04-17 15:57:32.000000000 -0400 31580+++ linux-2.6.38.2/fs/fuse/control.c 2011-03-21 18:31:35.000000000 -0400
32445@@ -298,7 +298,7 @@ void fuse_ctl_remove_conn(struct fuse_co 31581@@ -298,7 +298,7 @@ void fuse_ctl_remove_conn(struct fuse_co
32446 31582
32447 static int fuse_ctl_fill_super(struct super_block *sb, void *data, int silent) 31583 static int fuse_ctl_fill_super(struct super_block *sb, void *data, int silent)
@@ -32451,9 +31587,9 @@ diff -urNp linux-2.6.38.3/fs/fuse/control.c linux-2.6.38.3/fs/fuse/control.c
32451 struct fuse_conn *fc; 31587 struct fuse_conn *fc;
32452 int err; 31588 int err;
32453 31589
32454diff -urNp linux-2.6.38.3/fs/fuse/cuse.c linux-2.6.38.3/fs/fuse/cuse.c 31590diff -urNp linux-2.6.38.2/fs/fuse/cuse.c linux-2.6.38.2/fs/fuse/cuse.c
32455--- linux-2.6.38.3/fs/fuse/cuse.c 2011-03-14 21:20:32.000000000 -0400 31591--- linux-2.6.38.2/fs/fuse/cuse.c 2011-03-14 21:20:32.000000000 -0400
32456+++ linux-2.6.38.3/fs/fuse/cuse.c 2011-04-17 15:57:32.000000000 -0400 31592+++ linux-2.6.38.2/fs/fuse/cuse.c 2011-03-21 18:31:35.000000000 -0400
32457@@ -530,8 +530,18 @@ static int cuse_channel_release(struct i 31593@@ -530,8 +530,18 @@ static int cuse_channel_release(struct i
32458 return rc; 31594 return rc;
32459 } 31595 }
@@ -32488,9 +31624,9 @@ diff -urNp linux-2.6.38.3/fs/fuse/cuse.c linux-2.6.38.3/fs/fuse/cuse.c
32488 cuse_class = class_create(THIS_MODULE, "cuse"); 31624 cuse_class = class_create(THIS_MODULE, "cuse");
32489 if (IS_ERR(cuse_class)) 31625 if (IS_ERR(cuse_class))
32490 return PTR_ERR(cuse_class); 31626 return PTR_ERR(cuse_class);
32491diff -urNp linux-2.6.38.3/fs/fuse/dev.c linux-2.6.38.3/fs/fuse/dev.c 31627diff -urNp linux-2.6.38.2/fs/fuse/dev.c linux-2.6.38.2/fs/fuse/dev.c
32492--- linux-2.6.38.3/fs/fuse/dev.c 2011-03-14 21:20:32.000000000 -0400 31628--- linux-2.6.38.2/fs/fuse/dev.c 2011-03-14 21:20:32.000000000 -0400
32493+++ linux-2.6.38.3/fs/fuse/dev.c 2011-04-17 15:57:32.000000000 -0400 31629+++ linux-2.6.38.2/fs/fuse/dev.c 2011-03-21 18:31:35.000000000 -0400
32494@@ -1183,7 +1183,7 @@ static ssize_t fuse_dev_do_read(struct f 31630@@ -1183,7 +1183,7 @@ static ssize_t fuse_dev_do_read(struct f
32495 return err; 31631 return err;
32496 } 31632 }
@@ -32572,9 +31708,9 @@ diff -urNp linux-2.6.38.3/fs/fuse/dev.c linux-2.6.38.3/fs/fuse/dev.c
32572 const struct file_operations fuse_dev_operations = { 31708 const struct file_operations fuse_dev_operations = {
32573 .owner = THIS_MODULE, 31709 .owner = THIS_MODULE,
32574 .llseek = no_llseek, 31710 .llseek = no_llseek,
32575diff -urNp linux-2.6.38.3/fs/fuse/dir.c linux-2.6.38.3/fs/fuse/dir.c 31711diff -urNp linux-2.6.38.2/fs/fuse/dir.c linux-2.6.38.2/fs/fuse/dir.c
32576--- linux-2.6.38.3/fs/fuse/dir.c 2011-03-14 21:20:32.000000000 -0400 31712--- linux-2.6.38.2/fs/fuse/dir.c 2011-03-14 21:20:32.000000000 -0400
32577+++ linux-2.6.38.3/fs/fuse/dir.c 2011-04-17 15:57:32.000000000 -0400 31713+++ linux-2.6.38.2/fs/fuse/dir.c 2011-03-21 18:31:35.000000000 -0400
32578@@ -1133,7 +1133,7 @@ static char *read_link(struct dentry *de 31714@@ -1133,7 +1133,7 @@ static char *read_link(struct dentry *de
32579 return link; 31715 return link;
32580 } 31716 }
@@ -32584,9 +31720,9 @@ diff -urNp linux-2.6.38.3/fs/fuse/dir.c linux-2.6.38.3/fs/fuse/dir.c
32584 { 31720 {
32585 if (!IS_ERR(link)) 31721 if (!IS_ERR(link))
32586 free_page((unsigned long) link); 31722 free_page((unsigned long) link);
32587diff -urNp linux-2.6.38.3/fs/fuse/fuse_i.h linux-2.6.38.3/fs/fuse/fuse_i.h 31723diff -urNp linux-2.6.38.2/fs/fuse/fuse_i.h linux-2.6.38.2/fs/fuse/fuse_i.h
32588--- linux-2.6.38.3/fs/fuse/fuse_i.h 2011-03-14 21:20:32.000000000 -0400 31724--- linux-2.6.38.2/fs/fuse/fuse_i.h 2011-03-14 21:20:32.000000000 -0400
32589+++ linux-2.6.38.3/fs/fuse/fuse_i.h 2011-04-17 15:57:32.000000000 -0400 31725+++ linux-2.6.38.2/fs/fuse/fuse_i.h 2011-03-21 18:31:35.000000000 -0400
32590@@ -541,6 +541,16 @@ extern const struct file_operations fuse 31726@@ -541,6 +541,16 @@ extern const struct file_operations fuse
32591 31727
32592 extern const struct dentry_operations fuse_dentry_operations; 31728 extern const struct dentry_operations fuse_dentry_operations;
@@ -32604,9 +31740,9 @@ diff -urNp linux-2.6.38.3/fs/fuse/fuse_i.h linux-2.6.38.3/fs/fuse/fuse_i.h
32604 /** 31740 /**
32605 * Inode to nodeid comparison. 31741 * Inode to nodeid comparison.
32606 */ 31742 */
32607diff -urNp linux-2.6.38.3/fs/hfs/inode.c linux-2.6.38.3/fs/hfs/inode.c 31743diff -urNp linux-2.6.38.2/fs/hfs/inode.c linux-2.6.38.2/fs/hfs/inode.c
32608--- linux-2.6.38.3/fs/hfs/inode.c 2011-03-14 21:20:32.000000000 -0400 31744--- linux-2.6.38.2/fs/hfs/inode.c 2011-03-14 21:20:32.000000000 -0400
32609+++ linux-2.6.38.3/fs/hfs/inode.c 2011-04-17 15:57:32.000000000 -0400 31745+++ linux-2.6.38.2/fs/hfs/inode.c 2011-03-21 18:31:35.000000000 -0400
32610@@ -447,7 +447,7 @@ int hfs_write_inode(struct inode *inode, 31746@@ -447,7 +447,7 @@ int hfs_write_inode(struct inode *inode,
32611 31747
32612 if (S_ISDIR(main_inode->i_mode)) { 31748 if (S_ISDIR(main_inode->i_mode)) {
@@ -32625,9 +31761,9 @@ diff -urNp linux-2.6.38.3/fs/hfs/inode.c linux-2.6.38.3/fs/hfs/inode.c
32625 hfs_bnode_read(fd.bnode, &rec, fd.entryoffset, 31761 hfs_bnode_read(fd.bnode, &rec, fd.entryoffset,
32626 sizeof(struct hfs_cat_file)); 31762 sizeof(struct hfs_cat_file));
32627 if (rec.type != HFS_CDR_FIL || 31763 if (rec.type != HFS_CDR_FIL ||
32628diff -urNp linux-2.6.38.3/fs/hfsplus/inode.c linux-2.6.38.3/fs/hfsplus/inode.c 31764diff -urNp linux-2.6.38.2/fs/hfsplus/inode.c linux-2.6.38.2/fs/hfsplus/inode.c
32629--- linux-2.6.38.3/fs/hfsplus/inode.c 2011-03-14 21:20:32.000000000 -0400 31765--- linux-2.6.38.2/fs/hfsplus/inode.c 2011-03-14 21:20:32.000000000 -0400
32630+++ linux-2.6.38.3/fs/hfsplus/inode.c 2011-04-17 15:57:32.000000000 -0400 31766+++ linux-2.6.38.2/fs/hfsplus/inode.c 2011-03-21 18:31:35.000000000 -0400
32631@@ -498,7 +498,7 @@ int hfsplus_cat_read_inode(struct inode 31767@@ -498,7 +498,7 @@ int hfsplus_cat_read_inode(struct inode
32632 struct hfsplus_cat_folder *folder = &entry.folder; 31768 struct hfsplus_cat_folder *folder = &entry.folder;
32633 31769
@@ -32664,9 +31800,9 @@ diff -urNp linux-2.6.38.3/fs/hfsplus/inode.c linux-2.6.38.3/fs/hfsplus/inode.c
32664 hfs_bnode_read(fd.bnode, &entry, fd.entryoffset, 31800 hfs_bnode_read(fd.bnode, &entry, fd.entryoffset,
32665 sizeof(struct hfsplus_cat_file)); 31801 sizeof(struct hfsplus_cat_file));
32666 hfsplus_inode_write_fork(inode, &file->data_fork); 31802 hfsplus_inode_write_fork(inode, &file->data_fork);
32667diff -urNp linux-2.6.38.3/fs/hugetlbfs/inode.c linux-2.6.38.3/fs/hugetlbfs/inode.c 31803diff -urNp linux-2.6.38.2/fs/hugetlbfs/inode.c linux-2.6.38.2/fs/hugetlbfs/inode.c
32668--- linux-2.6.38.3/fs/hugetlbfs/inode.c 2011-03-14 21:20:32.000000000 -0400 31804--- linux-2.6.38.2/fs/hugetlbfs/inode.c 2011-03-14 21:20:32.000000000 -0400
32669+++ linux-2.6.38.3/fs/hugetlbfs/inode.c 2011-04-17 15:57:32.000000000 -0400 31805+++ linux-2.6.38.2/fs/hugetlbfs/inode.c 2011-03-21 18:31:35.000000000 -0400
32670@@ -915,7 +915,7 @@ static struct file_system_type hugetlbfs 31806@@ -915,7 +915,7 @@ static struct file_system_type hugetlbfs
32671 .kill_sb = kill_litter_super, 31807 .kill_sb = kill_litter_super,
32672 }; 31808 };
@@ -32676,9 +31812,9 @@ diff -urNp linux-2.6.38.3/fs/hugetlbfs/inode.c linux-2.6.38.3/fs/hugetlbfs/inode
32676 31812
32677 static int can_do_hugetlb_shm(void) 31813 static int can_do_hugetlb_shm(void)
32678 { 31814 {
32679diff -urNp linux-2.6.38.3/fs/jffs2/debug.h linux-2.6.38.3/fs/jffs2/debug.h 31815diff -urNp linux-2.6.38.2/fs/jffs2/debug.h linux-2.6.38.2/fs/jffs2/debug.h
32680--- linux-2.6.38.3/fs/jffs2/debug.h 2011-03-14 21:20:32.000000000 -0400 31816--- linux-2.6.38.2/fs/jffs2/debug.h 2011-03-14 21:20:32.000000000 -0400
32681+++ linux-2.6.38.3/fs/jffs2/debug.h 2011-04-17 15:57:32.000000000 -0400 31817+++ linux-2.6.38.2/fs/jffs2/debug.h 2011-03-21 18:31:35.000000000 -0400
32682@@ -53,13 +53,13 @@ 31818@@ -53,13 +53,13 @@
32683 #if CONFIG_JFFS2_FS_DEBUG > 0 31819 #if CONFIG_JFFS2_FS_DEBUG > 0
32684 #define D1(x) x 31820 #define D1(x) x
@@ -32780,9 +31916,9 @@ diff -urNp linux-2.6.38.3/fs/jffs2/debug.h linux-2.6.38.3/fs/jffs2/debug.h
32780 #endif 31916 #endif
32781 31917
32782 /* "Sanity" checks */ 31918 /* "Sanity" checks */
32783diff -urNp linux-2.6.38.3/fs/jffs2/erase.c linux-2.6.38.3/fs/jffs2/erase.c 31919diff -urNp linux-2.6.38.2/fs/jffs2/erase.c linux-2.6.38.2/fs/jffs2/erase.c
32784--- linux-2.6.38.3/fs/jffs2/erase.c 2011-03-14 21:20:32.000000000 -0400 31920--- linux-2.6.38.2/fs/jffs2/erase.c 2011-03-14 21:20:32.000000000 -0400
32785+++ linux-2.6.38.3/fs/jffs2/erase.c 2011-04-17 15:57:32.000000000 -0400 31921+++ linux-2.6.38.2/fs/jffs2/erase.c 2011-03-21 18:31:35.000000000 -0400
32786@@ -439,7 +439,8 @@ static void jffs2_mark_erased_block(stru 31922@@ -439,7 +439,8 @@ static void jffs2_mark_erased_block(stru
32787 struct jffs2_unknown_node marker = { 31923 struct jffs2_unknown_node marker = {
32788 .magic = cpu_to_je16(JFFS2_MAGIC_BITMASK), 31924 .magic = cpu_to_je16(JFFS2_MAGIC_BITMASK),
@@ -32793,9 +31929,9 @@ diff -urNp linux-2.6.38.3/fs/jffs2/erase.c linux-2.6.38.3/fs/jffs2/erase.c
32793 }; 31929 };
32794 31930
32795 jffs2_prealloc_raw_node_refs(c, jeb, 1); 31931 jffs2_prealloc_raw_node_refs(c, jeb, 1);
32796diff -urNp linux-2.6.38.3/fs/jffs2/summary.h linux-2.6.38.3/fs/jffs2/summary.h 31932diff -urNp linux-2.6.38.2/fs/jffs2/summary.h linux-2.6.38.2/fs/jffs2/summary.h
32797--- linux-2.6.38.3/fs/jffs2/summary.h 2011-03-14 21:20:32.000000000 -0400 31933--- linux-2.6.38.2/fs/jffs2/summary.h 2011-03-14 21:20:32.000000000 -0400
32798+++ linux-2.6.38.3/fs/jffs2/summary.h 2011-04-17 15:57:32.000000000 -0400 31934+++ linux-2.6.38.2/fs/jffs2/summary.h 2011-03-21 18:31:35.000000000 -0400
32799@@ -194,18 +194,18 @@ int jffs2_sum_scan_sumnode(struct jffs2_ 31935@@ -194,18 +194,18 @@ int jffs2_sum_scan_sumnode(struct jffs2_
32800 31936
32801 #define jffs2_sum_active() (0) 31937 #define jffs2_sum_active() (0)
@@ -32824,9 +31960,9 @@ diff -urNp linux-2.6.38.3/fs/jffs2/summary.h linux-2.6.38.3/fs/jffs2/summary.h
32824 #define jffs2_sum_scan_sumnode(a,b,c,d,e) (0) 31960 #define jffs2_sum_scan_sumnode(a,b,c,d,e) (0)
32825 31961
32826 #endif /* CONFIG_JFFS2_SUMMARY */ 31962 #endif /* CONFIG_JFFS2_SUMMARY */
32827diff -urNp linux-2.6.38.3/fs/jffs2/wbuf.c linux-2.6.38.3/fs/jffs2/wbuf.c 31963diff -urNp linux-2.6.38.2/fs/jffs2/wbuf.c linux-2.6.38.2/fs/jffs2/wbuf.c
32828--- linux-2.6.38.3/fs/jffs2/wbuf.c 2011-03-14 21:20:32.000000000 -0400 31964--- linux-2.6.38.2/fs/jffs2/wbuf.c 2011-03-14 21:20:32.000000000 -0400
32829+++ linux-2.6.38.3/fs/jffs2/wbuf.c 2011-04-17 15:57:32.000000000 -0400 31965+++ linux-2.6.38.2/fs/jffs2/wbuf.c 2011-03-21 18:31:35.000000000 -0400
32830@@ -1012,7 +1012,8 @@ static const struct jffs2_unknown_node o 31966@@ -1012,7 +1012,8 @@ static const struct jffs2_unknown_node o
32831 { 31967 {
32832 .magic = constant_cpu_to_je16(JFFS2_MAGIC_BITMASK), 31968 .magic = constant_cpu_to_je16(JFFS2_MAGIC_BITMASK),
@@ -32837,9 +31973,9 @@ diff -urNp linux-2.6.38.3/fs/jffs2/wbuf.c linux-2.6.38.3/fs/jffs2/wbuf.c
32837 }; 31973 };
32838 31974
32839 /* 31975 /*
32840diff -urNp linux-2.6.38.3/fs/Kconfig.binfmt linux-2.6.38.3/fs/Kconfig.binfmt 31976diff -urNp linux-2.6.38.2/fs/Kconfig.binfmt linux-2.6.38.2/fs/Kconfig.binfmt
32841--- linux-2.6.38.3/fs/Kconfig.binfmt 2011-03-14 21:20:32.000000000 -0400 31977--- linux-2.6.38.2/fs/Kconfig.binfmt 2011-03-14 21:20:32.000000000 -0400
32842+++ linux-2.6.38.3/fs/Kconfig.binfmt 2011-04-17 15:57:32.000000000 -0400 31978+++ linux-2.6.38.2/fs/Kconfig.binfmt 2011-03-21 18:31:35.000000000 -0400
32843@@ -86,7 +86,7 @@ config HAVE_AOUT 31979@@ -86,7 +86,7 @@ config HAVE_AOUT
32844 31980
32845 config BINFMT_AOUT 31981 config BINFMT_AOUT
@@ -32849,35 +31985,9 @@ diff -urNp linux-2.6.38.3/fs/Kconfig.binfmt linux-2.6.38.3/fs/Kconfig.binfmt
32849 ---help--- 31985 ---help---
32850 A.out (Assembler.OUTput) is a set of formats for libraries and 31986 A.out (Assembler.OUTput) is a set of formats for libraries and
32851 executables used in the earliest versions of UNIX. Linux used 31987 executables used in the earliest versions of UNIX. Linux used
32852diff -urNp linux-2.6.38.3/fs/libfs.c linux-2.6.38.3/fs/libfs.c 31988diff -urNp linux-2.6.38.2/fs/lockd/svc.c linux-2.6.38.2/fs/lockd/svc.c
32853--- linux-2.6.38.3/fs/libfs.c 2011-03-14 21:20:32.000000000 -0400 31989--- linux-2.6.38.2/fs/lockd/svc.c 2011-03-14 21:20:32.000000000 -0400
32854+++ linux-2.6.38.3/fs/libfs.c 2011-04-17 15:57:32.000000000 -0400 31990+++ linux-2.6.38.2/fs/lockd/svc.c 2011-03-21 18:31:35.000000000 -0400
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
32881@@ -41,7 +41,7 @@ 31991@@ -41,7 +41,7 @@
32882 31992
32883 static struct svc_program nlmsvc_program; 31993 static struct svc_program nlmsvc_program;
@@ -32887,9 +31997,9 @@ diff -urNp linux-2.6.38.3/fs/lockd/svc.c linux-2.6.38.3/fs/lockd/svc.c
32887 EXPORT_SYMBOL_GPL(nlmsvc_ops); 31997 EXPORT_SYMBOL_GPL(nlmsvc_ops);
32888 31998
32889 static DEFINE_MUTEX(nlmsvc_mutex); 31999 static DEFINE_MUTEX(nlmsvc_mutex);
32890diff -urNp linux-2.6.38.3/fs/locks.c linux-2.6.38.3/fs/locks.c 32000diff -urNp linux-2.6.38.2/fs/locks.c linux-2.6.38.2/fs/locks.c
32891--- linux-2.6.38.3/fs/locks.c 2011-03-14 21:20:32.000000000 -0400 32001--- linux-2.6.38.2/fs/locks.c 2011-03-14 21:20:32.000000000 -0400
32892+++ linux-2.6.38.3/fs/locks.c 2011-04-17 15:57:32.000000000 -0400 32002+++ linux-2.6.38.2/fs/locks.c 2011-03-21 18:31:35.000000000 -0400
32893@@ -2044,16 +2044,16 @@ void locks_remove_flock(struct file *fil 32003@@ -2044,16 +2044,16 @@ void locks_remove_flock(struct file *fil
32894 return; 32004 return;
32895 32005
@@ -32911,9 +32021,9 @@ diff -urNp linux-2.6.38.3/fs/locks.c linux-2.6.38.3/fs/locks.c
32911 } 32021 }
32912 32022
32913 lock_flocks(); 32023 lock_flocks();
32914diff -urNp linux-2.6.38.3/fs/namei.c linux-2.6.38.3/fs/namei.c 32024diff -urNp linux-2.6.38.2/fs/namei.c linux-2.6.38.2/fs/namei.c
32915--- linux-2.6.38.3/fs/namei.c 2011-03-14 21:20:32.000000000 -0400 32025--- linux-2.6.38.2/fs/namei.c 2011-03-14 21:20:32.000000000 -0400
32916+++ linux-2.6.38.3/fs/namei.c 2011-04-17 15:57:32.000000000 -0400 32026+++ linux-2.6.38.2/fs/namei.c 2011-03-28 16:59:25.000000000 -0400
32917@@ -226,14 +226,6 @@ int generic_permission(struct inode *ino 32027@@ -226,14 +226,6 @@ int generic_permission(struct inode *ino
32918 return ret; 32028 return ret;
32919 32029
@@ -33372,34 +32482,9 @@ diff -urNp linux-2.6.38.3/fs/namei.c linux-2.6.38.3/fs/namei.c
33372 exit6: 32482 exit6:
33373 mnt_drop_write(oldnd.path.mnt); 32483 mnt_drop_write(oldnd.path.mnt);
33374 exit5: 32484 exit5:
33375@@ -3437,6 +3598,8 @@ SYSCALL_DEFINE2(rename, const char __use 32485diff -urNp linux-2.6.38.2/fs/namespace.c linux-2.6.38.2/fs/namespace.c
33376 32486--- linux-2.6.38.2/fs/namespace.c 2011-03-28 17:42:40.000000000 -0400
33377 int vfs_readlink(struct dentry *dentry, char __user *buffer, int buflen, const char *link) 32487+++ linux-2.6.38.2/fs/namespace.c 2011-03-28 17:42:53.000000000 -0400
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
33403@@ -1285,6 +1285,9 @@ static int do_umount(struct vfsmount *mn 32488@@ -1285,6 +1285,9 @@ static int do_umount(struct vfsmount *mn
33404 if (!(sb->s_flags & MS_RDONLY)) 32489 if (!(sb->s_flags & MS_RDONLY))
33405 retval = do_remount_sb(sb, MS_RDONLY, NULL, 0); 32490 retval = do_remount_sb(sb, MS_RDONLY, NULL, 0);
@@ -33460,9 +32545,9 @@ diff -urNp linux-2.6.38.3/fs/namespace.c linux-2.6.38.3/fs/namespace.c
33460 get_fs_root(current->fs, &root); 32545 get_fs_root(current->fs, &root);
33461 down_write(&namespace_sem); 32546 down_write(&namespace_sem);
33462 mutex_lock(&old.dentry->d_inode->i_mutex); 32547 mutex_lock(&old.dentry->d_inode->i_mutex);
33463diff -urNp linux-2.6.38.3/fs/nfs/inode.c linux-2.6.38.3/fs/nfs/inode.c 32548diff -urNp linux-2.6.38.2/fs/nfs/inode.c linux-2.6.38.2/fs/nfs/inode.c
33464--- linux-2.6.38.3/fs/nfs/inode.c 2011-03-14 21:20:32.000000000 -0400 32549--- linux-2.6.38.2/fs/nfs/inode.c 2011-03-14 21:20:32.000000000 -0400
33465+++ linux-2.6.38.3/fs/nfs/inode.c 2011-04-17 15:57:32.000000000 -0400 32550+++ linux-2.6.38.2/fs/nfs/inode.c 2011-03-21 18:31:35.000000000 -0400
33466@@ -998,16 +998,16 @@ static int nfs_size_need_update(const st 32551@@ -998,16 +998,16 @@ static int nfs_size_need_update(const st
33467 return nfs_size_to_loff_t(fattr->size) > i_size_read(inode); 32552 return nfs_size_to_loff_t(fattr->size) > i_size_read(inode);
33468 } 32553 }
@@ -33483,9 +32568,9 @@ diff -urNp linux-2.6.38.3/fs/nfs/inode.c linux-2.6.38.3/fs/nfs/inode.c
33483 } 32568 }
33484 32569
33485 void nfs_fattr_init(struct nfs_fattr *fattr) 32570 void nfs_fattr_init(struct nfs_fattr *fattr)
33486diff -urNp linux-2.6.38.3/fs/nfs/nfs4proc.c linux-2.6.38.3/fs/nfs/nfs4proc.c 32571diff -urNp linux-2.6.38.2/fs/nfs/nfs4proc.c linux-2.6.38.2/fs/nfs/nfs4proc.c
33487--- linux-2.6.38.3/fs/nfs/nfs4proc.c 2011-03-14 21:20:32.000000000 -0400 32572--- linux-2.6.38.2/fs/nfs/nfs4proc.c 2011-03-14 21:20:32.000000000 -0400
33488+++ linux-2.6.38.3/fs/nfs/nfs4proc.c 2011-04-17 15:57:32.000000000 -0400 32573+++ linux-2.6.38.2/fs/nfs/nfs4proc.c 2011-03-21 18:31:35.000000000 -0400
33489@@ -1198,7 +1198,7 @@ static int _nfs4_do_open_reclaim(struct 32574@@ -1198,7 +1198,7 @@ static int _nfs4_do_open_reclaim(struct
33490 static int nfs4_do_open_reclaim(struct nfs_open_context *ctx, struct nfs4_state *state) 32575 static int nfs4_do_open_reclaim(struct nfs_open_context *ctx, struct nfs4_state *state)
33491 { 32576 {
@@ -33756,10 +32841,10 @@ diff -urNp linux-2.6.38.3/fs/nfs/nfs4proc.c linux-2.6.38.3/fs/nfs/nfs4proc.c
33756 int err; 32841 int err;
33757 32842
33758 err = nfs4_set_lock_state(state, fl); 32843 err = nfs4_set_lock_state(state, fl);
33759diff -urNp linux-2.6.38.3/fs/nfsd/lockd.c linux-2.6.38.3/fs/nfsd/lockd.c 32844diff -urNp linux-2.6.38.2/fs/nfsd/lockd.c linux-2.6.38.2/fs/nfsd/lockd.c
33760--- linux-2.6.38.3/fs/nfsd/lockd.c 2011-04-18 17:27:18.000000000 -0400 32845--- linux-2.6.38.2/fs/nfsd/lockd.c 2011-03-14 21:20:32.000000000 -0400
33761+++ linux-2.6.38.3/fs/nfsd/lockd.c 2011-04-17 16:53:48.000000000 -0400 32846+++ linux-2.6.38.2/fs/nfsd/lockd.c 2011-03-21 18:31:35.000000000 -0400
33762@@ -60,7 +60,7 @@ nlm_fclose(struct file *filp) 32847@@ -61,7 +61,7 @@ nlm_fclose(struct file *filp)
33763 fput(filp); 32848 fput(filp);
33764 } 32849 }
33765 32850
@@ -33768,9 +32853,9 @@ diff -urNp linux-2.6.38.3/fs/nfsd/lockd.c linux-2.6.38.3/fs/nfsd/lockd.c
33768 .fopen = nlm_fopen, /* open file for locking */ 32853 .fopen = nlm_fopen, /* open file for locking */
33769 .fclose = nlm_fclose, /* close file */ 32854 .fclose = nlm_fclose, /* close file */
33770 }; 32855 };
33771diff -urNp linux-2.6.38.3/fs/nfsd/nfsctl.c linux-2.6.38.3/fs/nfsd/nfsctl.c 32856diff -urNp linux-2.6.38.2/fs/nfsd/nfsctl.c linux-2.6.38.2/fs/nfsd/nfsctl.c
33772--- linux-2.6.38.3/fs/nfsd/nfsctl.c 2011-03-14 21:20:32.000000000 -0400 32857--- linux-2.6.38.2/fs/nfsd/nfsctl.c 2011-03-14 21:20:32.000000000 -0400
33773+++ linux-2.6.38.3/fs/nfsd/nfsctl.c 2011-04-17 15:57:32.000000000 -0400 32858+++ linux-2.6.38.2/fs/nfsd/nfsctl.c 2011-03-21 18:31:35.000000000 -0400
33774@@ -180,7 +180,7 @@ static int export_features_open(struct i 32859@@ -180,7 +180,7 @@ static int export_features_open(struct i
33775 return single_open(file, export_features_show, NULL); 32860 return single_open(file, export_features_show, NULL);
33776 } 32861 }
@@ -33780,9 +32865,9 @@ diff -urNp linux-2.6.38.3/fs/nfsd/nfsctl.c linux-2.6.38.3/fs/nfsd/nfsctl.c
33780 .open = export_features_open, 32865 .open = export_features_open,
33781 .read = seq_read, 32866 .read = seq_read,
33782 .llseek = seq_lseek, 32867 .llseek = seq_lseek,
33783diff -urNp linux-2.6.38.3/fs/nfsd/vfs.c linux-2.6.38.3/fs/nfsd/vfs.c 32868diff -urNp linux-2.6.38.2/fs/nfsd/vfs.c linux-2.6.38.2/fs/nfsd/vfs.c
33784--- linux-2.6.38.3/fs/nfsd/vfs.c 2011-03-14 21:20:32.000000000 -0400 32869--- linux-2.6.38.2/fs/nfsd/vfs.c 2011-03-14 21:20:32.000000000 -0400
33785+++ linux-2.6.38.3/fs/nfsd/vfs.c 2011-04-17 15:57:32.000000000 -0400 32870+++ linux-2.6.38.2/fs/nfsd/vfs.c 2011-03-21 18:31:35.000000000 -0400
33786@@ -898,7 +898,7 @@ nfsd_vfs_read(struct svc_rqst *rqstp, st 32871@@ -898,7 +898,7 @@ nfsd_vfs_read(struct svc_rqst *rqstp, st
33787 } else { 32872 } else {
33788 oldfs = get_fs(); 32873 oldfs = get_fs();
@@ -33810,9 +32895,9 @@ diff -urNp linux-2.6.38.3/fs/nfsd/vfs.c linux-2.6.38.3/fs/nfsd/vfs.c
33810 set_fs(oldfs); 32895 set_fs(oldfs);
33811 32896
33812 if (host_err < 0) 32897 if (host_err < 0)
33813diff -urNp linux-2.6.38.3/fs/nls/nls_base.c linux-2.6.38.3/fs/nls/nls_base.c 32898diff -urNp linux-2.6.38.2/fs/nls/nls_base.c linux-2.6.38.2/fs/nls/nls_base.c
33814--- linux-2.6.38.3/fs/nls/nls_base.c 2011-03-14 21:20:32.000000000 -0400 32899--- linux-2.6.38.2/fs/nls/nls_base.c 2011-03-14 21:20:32.000000000 -0400
33815+++ linux-2.6.38.3/fs/nls/nls_base.c 2011-04-17 15:57:32.000000000 -0400 32900+++ linux-2.6.38.2/fs/nls/nls_base.c 2011-03-21 18:31:35.000000000 -0400
33816@@ -41,7 +41,7 @@ static const struct utf8_table utf8_tabl 32901@@ -41,7 +41,7 @@ static const struct utf8_table utf8_tabl
33817 {0xF8, 0xF0, 3*6, 0x1FFFFF, 0x10000, /* 4 byte sequence */}, 32902 {0xF8, 0xF0, 3*6, 0x1FFFFF, 0x10000, /* 4 byte sequence */},
33818 {0xFC, 0xF8, 4*6, 0x3FFFFFF, 0x200000, /* 5 byte sequence */}, 32903 {0xFC, 0xF8, 4*6, 0x3FFFFFF, 0x200000, /* 5 byte sequence */},
@@ -33822,21 +32907,9 @@ diff -urNp linux-2.6.38.3/fs/nls/nls_base.c linux-2.6.38.3/fs/nls/nls_base.c
33822 }; 32907 };
33823 32908
33824 #define UNICODE_MAX 0x0010ffff 32909 #define UNICODE_MAX 0x0010ffff
33825diff -urNp linux-2.6.38.3/fs/notify/dnotify/dnotify.c linux-2.6.38.3/fs/notify/dnotify/dnotify.c 32910diff -urNp linux-2.6.38.2/fs/ntfs/dir.c linux-2.6.38.2/fs/ntfs/dir.c
33826--- linux-2.6.38.3/fs/notify/dnotify/dnotify.c 2011-03-14 21:20:32.000000000 -0400 32911--- linux-2.6.38.2/fs/ntfs/dir.c 2011-03-14 21:20:32.000000000 -0400
33827+++ linux-2.6.38.3/fs/notify/dnotify/dnotify.c 2011-04-17 15:57:32.000000000 -0400 32912+++ linux-2.6.38.2/fs/ntfs/dir.c 2011-03-21 18:31:35.000000000 -0400
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
33840@@ -1329,7 +1329,7 @@ find_next_index_buffer: 32913@@ -1329,7 +1329,7 @@ find_next_index_buffer:
33841 ia = (INDEX_ALLOCATION*)(kaddr + (ia_pos & ~PAGE_CACHE_MASK & 32914 ia = (INDEX_ALLOCATION*)(kaddr + (ia_pos & ~PAGE_CACHE_MASK &
33842 ~(s64)(ndir->itype.index.block_size - 1))); 32915 ~(s64)(ndir->itype.index.block_size - 1)));
@@ -33846,9 +32919,9 @@ diff -urNp linux-2.6.38.3/fs/ntfs/dir.c linux-2.6.38.3/fs/ntfs/dir.c
33846 ntfs_error(sb, "Out of bounds check failed. Corrupt directory " 32919 ntfs_error(sb, "Out of bounds check failed. Corrupt directory "
33847 "inode 0x%lx or driver bug.", vdir->i_ino); 32920 "inode 0x%lx or driver bug.", vdir->i_ino);
33848 goto err_out; 32921 goto err_out;
33849diff -urNp linux-2.6.38.3/fs/ntfs/file.c linux-2.6.38.3/fs/ntfs/file.c 32922diff -urNp linux-2.6.38.2/fs/ntfs/file.c linux-2.6.38.2/fs/ntfs/file.c
33850--- linux-2.6.38.3/fs/ntfs/file.c 2011-03-14 21:20:32.000000000 -0400 32923--- linux-2.6.38.2/fs/ntfs/file.c 2011-03-14 21:20:32.000000000 -0400
33851+++ linux-2.6.38.3/fs/ntfs/file.c 2011-04-17 15:57:32.000000000 -0400 32924+++ linux-2.6.38.2/fs/ntfs/file.c 2011-03-21 18:31:35.000000000 -0400
33852@@ -2222,6 +2222,6 @@ const struct inode_operations ntfs_file_ 32925@@ -2222,6 +2222,6 @@ const struct inode_operations ntfs_file_
33853 #endif /* NTFS_RW */ 32926 #endif /* NTFS_RW */
33854 }; 32927 };
@@ -33858,9 +32931,9 @@ diff -urNp linux-2.6.38.3/fs/ntfs/file.c linux-2.6.38.3/fs/ntfs/file.c
33858 32931
33859-const struct inode_operations ntfs_empty_inode_ops = {}; 32932-const struct inode_operations ntfs_empty_inode_ops = {};
33860+const struct inode_operations ntfs_empty_inode_ops __read_only; 32933+const struct inode_operations ntfs_empty_inode_ops __read_only;
33861diff -urNp linux-2.6.38.3/fs/ocfs2/localalloc.c linux-2.6.38.3/fs/ocfs2/localalloc.c 32934diff -urNp linux-2.6.38.2/fs/ocfs2/localalloc.c linux-2.6.38.2/fs/ocfs2/localalloc.c
33862--- linux-2.6.38.3/fs/ocfs2/localalloc.c 2011-03-14 21:20:32.000000000 -0400 32935--- linux-2.6.38.2/fs/ocfs2/localalloc.c 2011-03-14 21:20:32.000000000 -0400
33863+++ linux-2.6.38.3/fs/ocfs2/localalloc.c 2011-04-17 15:57:32.000000000 -0400 32936+++ linux-2.6.38.2/fs/ocfs2/localalloc.c 2011-03-21 18:31:35.000000000 -0400
33864@@ -1307,7 +1307,7 @@ static int ocfs2_local_alloc_slide_windo 32937@@ -1307,7 +1307,7 @@ static int ocfs2_local_alloc_slide_windo
33865 goto bail; 32938 goto bail;
33866 } 32939 }
@@ -33870,9 +32943,9 @@ diff -urNp linux-2.6.38.3/fs/ocfs2/localalloc.c linux-2.6.38.3/fs/ocfs2/localall
33870 32943
33871 bail: 32944 bail:
33872 if (handle) 32945 if (handle)
33873diff -urNp linux-2.6.38.3/fs/ocfs2/ocfs2.h linux-2.6.38.3/fs/ocfs2/ocfs2.h 32946diff -urNp linux-2.6.38.2/fs/ocfs2/ocfs2.h linux-2.6.38.2/fs/ocfs2/ocfs2.h
33874--- linux-2.6.38.3/fs/ocfs2/ocfs2.h 2011-03-14 21:20:32.000000000 -0400 32947--- linux-2.6.38.2/fs/ocfs2/ocfs2.h 2011-03-14 21:20:32.000000000 -0400
33875+++ linux-2.6.38.3/fs/ocfs2/ocfs2.h 2011-04-17 15:57:32.000000000 -0400 32948+++ linux-2.6.38.2/fs/ocfs2/ocfs2.h 2011-03-21 18:31:35.000000000 -0400
33876@@ -230,11 +230,11 @@ enum ocfs2_vol_state 32949@@ -230,11 +230,11 @@ enum ocfs2_vol_state
33877 32950
33878 struct ocfs2_alloc_stats 32951 struct ocfs2_alloc_stats
@@ -33890,9 +32963,9 @@ diff -urNp linux-2.6.38.3/fs/ocfs2/ocfs2.h linux-2.6.38.3/fs/ocfs2/ocfs2.h
33890 }; 32963 };
33891 32964
33892 enum ocfs2_local_alloc_state 32965 enum ocfs2_local_alloc_state
33893diff -urNp linux-2.6.38.3/fs/ocfs2/suballoc.c linux-2.6.38.3/fs/ocfs2/suballoc.c 32966diff -urNp linux-2.6.38.2/fs/ocfs2/suballoc.c linux-2.6.38.2/fs/ocfs2/suballoc.c
33894--- linux-2.6.38.3/fs/ocfs2/suballoc.c 2011-03-14 21:20:32.000000000 -0400 32967--- linux-2.6.38.2/fs/ocfs2/suballoc.c 2011-03-14 21:20:32.000000000 -0400
33895+++ linux-2.6.38.3/fs/ocfs2/suballoc.c 2011-04-17 15:57:32.000000000 -0400 32968+++ linux-2.6.38.2/fs/ocfs2/suballoc.c 2011-03-21 18:31:35.000000000 -0400
33896@@ -877,7 +877,7 @@ static int ocfs2_reserve_suballoc_bits(s 32969@@ -877,7 +877,7 @@ static int ocfs2_reserve_suballoc_bits(s
33897 mlog_errno(status); 32970 mlog_errno(status);
33898 goto bail; 32971 goto bail;
@@ -33938,9 +33011,9 @@ diff -urNp linux-2.6.38.3/fs/ocfs2/suballoc.c linux-2.6.38.3/fs/ocfs2/suballoc.c
33938 *num_clusters = res.sr_bits; 33011 *num_clusters = res.sr_bits;
33939 } 33012 }
33940 } 33013 }
33941diff -urNp linux-2.6.38.3/fs/ocfs2/super.c linux-2.6.38.3/fs/ocfs2/super.c 33014diff -urNp linux-2.6.38.2/fs/ocfs2/super.c linux-2.6.38.2/fs/ocfs2/super.c
33942--- linux-2.6.38.3/fs/ocfs2/super.c 2011-03-14 21:20:32.000000000 -0400 33015--- linux-2.6.38.2/fs/ocfs2/super.c 2011-03-14 21:20:32.000000000 -0400
33943+++ linux-2.6.38.3/fs/ocfs2/super.c 2011-04-17 15:57:32.000000000 -0400 33016+++ linux-2.6.38.2/fs/ocfs2/super.c 2011-03-21 18:31:35.000000000 -0400
33944@@ -297,11 +297,11 @@ static int ocfs2_osb_dump(struct ocfs2_s 33017@@ -297,11 +297,11 @@ static int ocfs2_osb_dump(struct ocfs2_s
33945 "%10s => GlobalAllocs: %d LocalAllocs: %d " 33018 "%10s => GlobalAllocs: %d LocalAllocs: %d "
33946 "SubAllocs: %d LAWinMoves: %d SAExtends: %d\n", 33019 "SubAllocs: %d LAWinMoves: %d SAExtends: %d\n",
@@ -33975,9 +33048,9 @@ diff -urNp linux-2.6.38.3/fs/ocfs2/super.c linux-2.6.38.3/fs/ocfs2/super.c
33975 33048
33976 /* Copy the blockcheck stats from the superblock probe */ 33049 /* Copy the blockcheck stats from the superblock probe */
33977 osb->osb_ecc_stats = *stats; 33050 osb->osb_ecc_stats = *stats;
33978diff -urNp linux-2.6.38.3/fs/ocfs2/symlink.c linux-2.6.38.3/fs/ocfs2/symlink.c 33051diff -urNp linux-2.6.38.2/fs/ocfs2/symlink.c linux-2.6.38.2/fs/ocfs2/symlink.c
33979--- linux-2.6.38.3/fs/ocfs2/symlink.c 2011-03-14 21:20:32.000000000 -0400 33052--- linux-2.6.38.2/fs/ocfs2/symlink.c 2011-03-14 21:20:32.000000000 -0400
33980+++ linux-2.6.38.3/fs/ocfs2/symlink.c 2011-04-17 15:57:32.000000000 -0400 33053+++ linux-2.6.38.2/fs/ocfs2/symlink.c 2011-03-21 18:31:35.000000000 -0400
33981@@ -148,7 +148,7 @@ bail: 33054@@ -148,7 +148,7 @@ bail:
33982 33055
33983 static void ocfs2_fast_put_link(struct dentry *dentry, struct nameidata *nd, void *cookie) 33056 static void ocfs2_fast_put_link(struct dentry *dentry, struct nameidata *nd, void *cookie)
@@ -33987,9 +33060,9 @@ diff -urNp linux-2.6.38.3/fs/ocfs2/symlink.c linux-2.6.38.3/fs/ocfs2/symlink.c
33987 if (!IS_ERR(link)) 33060 if (!IS_ERR(link))
33988 kfree(link); 33061 kfree(link);
33989 } 33062 }
33990diff -urNp linux-2.6.38.3/fs/open.c linux-2.6.38.3/fs/open.c 33063diff -urNp linux-2.6.38.2/fs/open.c linux-2.6.38.2/fs/open.c
33991--- linux-2.6.38.3/fs/open.c 2011-03-14 21:20:32.000000000 -0400 33064--- linux-2.6.38.2/fs/open.c 2011-03-14 21:20:32.000000000 -0400
33992+++ linux-2.6.38.3/fs/open.c 2011-04-17 15:57:32.000000000 -0400 33065+++ linux-2.6.38.2/fs/open.c 2011-03-21 18:31:35.000000000 -0400
33993@@ -112,6 +112,10 @@ static long do_sys_truncate(const char _ 33066@@ -112,6 +112,10 @@ static long do_sys_truncate(const char _
33994 error = locks_verify_truncate(inode, NULL, length); 33067 error = locks_verify_truncate(inode, NULL, length);
33995 if (!error) 33068 if (!error)
@@ -34127,33 +33200,10 @@ diff -urNp linux-2.6.38.3/fs/open.c linux-2.6.38.3/fs/open.c
34127 if (IS_ERR(f)) { 33200 if (IS_ERR(f)) {
34128 put_unused_fd(fd); 33201 put_unused_fd(fd);
34129 fd = PTR_ERR(f); 33202 fd = PTR_ERR(f);
34130diff -urNp linux-2.6.38.3/fs/partitions/ldm.c linux-2.6.38.3/fs/partitions/ldm.c 33203diff -urNp linux-2.6.38.2/fs/partitions/ldm.c linux-2.6.38.2/fs/partitions/ldm.c
34131--- linux-2.6.38.3/fs/partitions/ldm.c 2011-03-14 21:20:32.000000000 -0400 33204--- linux-2.6.38.2/fs/partitions/ldm.c 2011-03-14 21:20:32.000000000 -0400
34132+++ linux-2.6.38.3/fs/partitions/ldm.c 2011-04-18 19:31:25.000000000 -0400 33205+++ linux-2.6.38.2/fs/partitions/ldm.c 2011-03-21 18:31:35.000000000 -0400
34133@@ -1299,6 +1299,11 @@ static bool ldm_frag_add (const u8 *data 33206@@ -1313,7 +1313,7 @@ static bool ldm_frag_add (const u8 *data
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)
34157 goto found; 33207 goto found;
34158 } 33208 }
34159 33209
@@ -34162,23 +33212,9 @@ diff -urNp linux-2.6.38.3/fs/partitions/ldm.c linux-2.6.38.3/fs/partitions/ldm.c
34162 if (!f) { 33212 if (!f) {
34163 ldm_crit ("Out of memory."); 33213 ldm_crit ("Out of memory.");
34164 return false; 33214 return false;
34165@@ -1334,10 +1344,9 @@ found: 33215diff -urNp linux-2.6.38.2/fs/pipe.c linux-2.6.38.2/fs/pipe.c
34166 33216--- linux-2.6.38.2/fs/pipe.c 2011-03-14 21:20:32.000000000 -0400
34167 f->map |= (1 << rec); 33217+++ linux-2.6.38.2/fs/pipe.c 2011-03-21 18:31:35.000000000 -0400
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
34182@@ -420,9 +420,9 @@ redo: 33218@@ -420,9 +420,9 @@ redo:
34183 } 33219 }
34184 if (bufs) /* More to do? */ 33220 if (bufs) /* More to do? */
@@ -34302,9 +33338,9 @@ diff -urNp linux-2.6.38.3/fs/pipe.c linux-2.6.38.3/fs/pipe.c
34302 inode->i_fop = &rdwr_pipefifo_fops; 33338 inode->i_fop = &rdwr_pipefifo_fops;
34303 33339
34304 /* 33340 /*
34305diff -urNp linux-2.6.38.3/fs/proc/array.c linux-2.6.38.3/fs/proc/array.c 33341diff -urNp linux-2.6.38.2/fs/proc/array.c linux-2.6.38.2/fs/proc/array.c
34306--- linux-2.6.38.3/fs/proc/array.c 2011-04-18 17:27:16.000000000 -0400 33342--- linux-2.6.38.2/fs/proc/array.c 2011-03-28 17:42:40.000000000 -0400
34307+++ linux-2.6.38.3/fs/proc/array.c 2011-04-20 18:14:54.000000000 -0400 33343+++ linux-2.6.38.2/fs/proc/array.c 2011-03-28 17:48:30.000000000 -0400
34308@@ -60,6 +60,7 @@ 33344@@ -60,6 +60,7 @@
34309 #include <linux/tty.h> 33345 #include <linux/tty.h>
34310 #include <linux/string.h> 33346 #include <linux/string.h>
@@ -34396,7 +33432,7 @@ diff -urNp linux-2.6.38.3/fs/proc/array.c linux-2.6.38.3/fs/proc/array.c
34396 esp, 33432 esp,
34397 eip, 33433 eip,
34398 /* The signal information here is obsolete. 33434 /* The signal information here is obsolete.
34399@@ -544,3 +594,18 @@ int proc_pid_statm(struct seq_file *m, s 33435@@ -544,3 +594,10 @@ int proc_pid_statm(struct seq_file *m, s
34400 33436
34401 return 0; 33437 return 0;
34402 } 33438 }
@@ -34404,20 +33440,12 @@ diff -urNp linux-2.6.38.3/fs/proc/array.c linux-2.6.38.3/fs/proc/array.c
34404+#ifdef CONFIG_GRKERNSEC_PROC_IPADDR 33440+#ifdef CONFIG_GRKERNSEC_PROC_IPADDR
34405+int proc_pid_ipaddr(struct task_struct *task, char *buffer) 33441+int proc_pid_ipaddr(struct task_struct *task, char *buffer)
34406+{ 33442+{
34407+ u32 curr_ip = 0; 33443+ return sprintf(buffer, "%pI4\n", &task->signal->curr_ip);
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);
34416+} 33444+}
34417+#endif 33445+#endif
34418diff -urNp linux-2.6.38.3/fs/proc/base.c linux-2.6.38.3/fs/proc/base.c 33446diff -urNp linux-2.6.38.2/fs/proc/base.c linux-2.6.38.2/fs/proc/base.c
34419--- linux-2.6.38.3/fs/proc/base.c 2011-03-14 21:20:32.000000000 -0400 33447--- linux-2.6.38.2/fs/proc/base.c 2011-03-14 21:20:32.000000000 -0400
34420+++ linux-2.6.38.3/fs/proc/base.c 2011-04-18 19:26:45.000000000 -0400 33448+++ linux-2.6.38.2/fs/proc/base.c 2011-03-26 11:59:10.000000000 -0400
34421@@ -104,6 +104,22 @@ struct pid_entry { 33449@@ -104,6 +104,22 @@ struct pid_entry {
34422 union proc_op op; 33450 union proc_op op;
34423 }; 33451 };
@@ -34783,14 +33811,10 @@ diff -urNp linux-2.6.38.3/fs/proc/base.c linux-2.6.38.3/fs/proc/base.c
34783 put_task_struct(task); 33811 put_task_struct(task);
34784 out: 33812 out:
34785 return result; 33813 return result;
34786@@ -3066,11 +3189,21 @@ static int proc_pid_fill_cache(struct fi 33814@@ -3068,6 +3191,11 @@ int proc_pid_readdir(struct file * filp,
34787 /* for the /proc/ directory itself, after non-process stuff has been done */ 33815 {
34788 int proc_pid_readdir(struct file * filp, void * dirent, filldir_t filldir) 33816 unsigned int nr = filp->f_pos - FIRST_PROCESS_ENTRY;
34789 { 33817 struct task_struct *reaper = get_proc_task(filp->f_path.dentry->d_inode);
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;
34794+#if defined(CONFIG_GRKERNSEC_PROC_USER) || defined(CONFIG_GRKERNSEC_PROC_USERGROUP) 33818+#if defined(CONFIG_GRKERNSEC_PROC_USER) || defined(CONFIG_GRKERNSEC_PROC_USERGROUP)
34795+ const struct cred *tmpcred = current_cred(); 33819+ const struct cred *tmpcred = current_cred();
34796+ const struct cred *itercred; 33820+ const struct cred *itercred;
@@ -34799,15 +33823,7 @@ diff -urNp linux-2.6.38.3/fs/proc/base.c linux-2.6.38.3/fs/proc/base.c
34799 struct tgid_iter iter; 33823 struct tgid_iter iter;
34800 struct pid_namespace *ns; 33824 struct pid_namespace *ns;
34801 33825
34802+ if (filp->f_pos >= PID_MAX_LIMIT + TGID_OFFSET) 33826@@ -3086,8 +3214,27 @@ int proc_pid_readdir(struct file * filp,
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,
34811 for (iter = next_tgid(ns, iter); 33827 for (iter = next_tgid(ns, iter);
34812 iter.task; 33828 iter.task;
34813 iter.tgid += 1, iter = next_tgid(ns, iter)) { 33829 iter.tgid += 1, iter = next_tgid(ns, iter)) {
@@ -34836,7 +33852,7 @@ diff -urNp linux-2.6.38.3/fs/proc/base.c linux-2.6.38.3/fs/proc/base.c
34836 put_task_struct(iter.task); 33852 put_task_struct(iter.task);
34837 goto out; 33853 goto out;
34838 } 33854 }
34839@@ -3114,7 +3266,7 @@ static const struct pid_entry tid_base_s 33855@@ -3114,7 +3261,7 @@ static const struct pid_entry tid_base_s
34840 REG("sched", S_IRUGO|S_IWUSR, proc_pid_sched_operations), 33856 REG("sched", S_IRUGO|S_IWUSR, proc_pid_sched_operations),
34841 #endif 33857 #endif
34842 REG("comm", S_IRUGO|S_IWUSR, proc_pid_set_comm_operations), 33858 REG("comm", S_IRUGO|S_IWUSR, proc_pid_set_comm_operations),
@@ -34845,7 +33861,7 @@ diff -urNp linux-2.6.38.3/fs/proc/base.c linux-2.6.38.3/fs/proc/base.c
34845 INF("syscall", S_IRUSR, proc_pid_syscall), 33861 INF("syscall", S_IRUSR, proc_pid_syscall),
34846 #endif 33862 #endif
34847 INF("cmdline", S_IRUGO, proc_pid_cmdline), 33863 INF("cmdline", S_IRUGO, proc_pid_cmdline),
34848@@ -3138,10 +3290,10 @@ static const struct pid_entry tid_base_s 33864@@ -3138,10 +3285,10 @@ static const struct pid_entry tid_base_s
34849 #ifdef CONFIG_SECURITY 33865 #ifdef CONFIG_SECURITY
34850 DIR("attr", S_IRUGO|S_IXUGO, proc_attr_dir_inode_operations, proc_attr_dir_operations), 33866 DIR("attr", S_IRUGO|S_IXUGO, proc_attr_dir_inode_operations, proc_attr_dir_operations),
34851 #endif 33867 #endif
@@ -34858,9 +33874,9 @@ diff -urNp linux-2.6.38.3/fs/proc/base.c linux-2.6.38.3/fs/proc/base.c
34858 ONE("stack", S_IRUSR, proc_pid_stack), 33874 ONE("stack", S_IRUSR, proc_pid_stack),
34859 #endif 33875 #endif
34860 #ifdef CONFIG_SCHEDSTATS 33876 #ifdef CONFIG_SCHEDSTATS
34861diff -urNp linux-2.6.38.3/fs/proc/cmdline.c linux-2.6.38.3/fs/proc/cmdline.c 33877diff -urNp linux-2.6.38.2/fs/proc/cmdline.c linux-2.6.38.2/fs/proc/cmdline.c
34862--- linux-2.6.38.3/fs/proc/cmdline.c 2011-03-14 21:20:32.000000000 -0400 33878--- linux-2.6.38.2/fs/proc/cmdline.c 2011-03-14 21:20:32.000000000 -0400
34863+++ linux-2.6.38.3/fs/proc/cmdline.c 2011-04-17 15:57:32.000000000 -0400 33879+++ linux-2.6.38.2/fs/proc/cmdline.c 2011-03-21 18:31:35.000000000 -0400
34864@@ -23,7 +23,11 @@ static const struct file_operations cmdl 33880@@ -23,7 +23,11 @@ static const struct file_operations cmdl
34865 33881
34866 static int __init proc_cmdline_init(void) 33882 static int __init proc_cmdline_init(void)
@@ -34873,9 +33889,9 @@ diff -urNp linux-2.6.38.3/fs/proc/cmdline.c linux-2.6.38.3/fs/proc/cmdline.c
34873 return 0; 33889 return 0;
34874 } 33890 }
34875 module_init(proc_cmdline_init); 33891 module_init(proc_cmdline_init);
34876diff -urNp linux-2.6.38.3/fs/proc/devices.c linux-2.6.38.3/fs/proc/devices.c 33892diff -urNp linux-2.6.38.2/fs/proc/devices.c linux-2.6.38.2/fs/proc/devices.c
34877--- linux-2.6.38.3/fs/proc/devices.c 2011-03-14 21:20:32.000000000 -0400 33893--- linux-2.6.38.2/fs/proc/devices.c 2011-03-14 21:20:32.000000000 -0400
34878+++ linux-2.6.38.3/fs/proc/devices.c 2011-04-17 15:57:32.000000000 -0400 33894+++ linux-2.6.38.2/fs/proc/devices.c 2011-03-21 18:31:35.000000000 -0400
34879@@ -64,7 +64,11 @@ static const struct file_operations proc 33895@@ -64,7 +64,11 @@ static const struct file_operations proc
34880 33896
34881 static int __init proc_devices_init(void) 33897 static int __init proc_devices_init(void)
@@ -34888,9 +33904,9 @@ diff -urNp linux-2.6.38.3/fs/proc/devices.c linux-2.6.38.3/fs/proc/devices.c
34888 return 0; 33904 return 0;
34889 } 33905 }
34890 module_init(proc_devices_init); 33906 module_init(proc_devices_init);
34891diff -urNp linux-2.6.38.3/fs/proc/inode.c linux-2.6.38.3/fs/proc/inode.c 33907diff -urNp linux-2.6.38.2/fs/proc/inode.c linux-2.6.38.2/fs/proc/inode.c
34892--- linux-2.6.38.3/fs/proc/inode.c 2011-03-14 21:20:32.000000000 -0400 33908--- linux-2.6.38.2/fs/proc/inode.c 2011-03-14 21:20:32.000000000 -0400
34893+++ linux-2.6.38.3/fs/proc/inode.c 2011-04-17 15:57:32.000000000 -0400 33909+++ linux-2.6.38.2/fs/proc/inode.c 2011-03-21 18:31:35.000000000 -0400
34894@@ -435,7 +435,11 @@ struct inode *proc_get_inode(struct supe 33910@@ -435,7 +435,11 @@ struct inode *proc_get_inode(struct supe
34895 if (de->mode) { 33911 if (de->mode) {
34896 inode->i_mode = de->mode; 33912 inode->i_mode = de->mode;
@@ -34903,9 +33919,9 @@ diff -urNp linux-2.6.38.3/fs/proc/inode.c linux-2.6.38.3/fs/proc/inode.c
34903 } 33919 }
34904 if (de->size) 33920 if (de->size)
34905 inode->i_size = de->size; 33921 inode->i_size = de->size;
34906diff -urNp linux-2.6.38.3/fs/proc/internal.h linux-2.6.38.3/fs/proc/internal.h 33922diff -urNp linux-2.6.38.2/fs/proc/internal.h linux-2.6.38.2/fs/proc/internal.h
34907--- linux-2.6.38.3/fs/proc/internal.h 2011-03-14 21:20:32.000000000 -0400 33923--- linux-2.6.38.2/fs/proc/internal.h 2011-03-14 21:20:32.000000000 -0400
34908+++ linux-2.6.38.3/fs/proc/internal.h 2011-04-17 15:57:32.000000000 -0400 33924+++ linux-2.6.38.2/fs/proc/internal.h 2011-03-21 18:31:35.000000000 -0400
34909@@ -51,6 +51,9 @@ extern int proc_pid_status(struct seq_fi 33925@@ -51,6 +51,9 @@ extern int proc_pid_status(struct seq_fi
34910 struct pid *pid, struct task_struct *task); 33926 struct pid *pid, struct task_struct *task);
34911 extern int proc_pid_statm(struct seq_file *m, struct pid_namespace *ns, 33927 extern int proc_pid_statm(struct seq_file *m, struct pid_namespace *ns,
@@ -34916,9 +33932,9 @@ diff -urNp linux-2.6.38.3/fs/proc/internal.h linux-2.6.38.3/fs/proc/internal.h
34916 extern loff_t mem_lseek(struct file *file, loff_t offset, int orig); 33932 extern loff_t mem_lseek(struct file *file, loff_t offset, int orig);
34917 33933
34918 extern const struct file_operations proc_maps_operations; 33934 extern const struct file_operations proc_maps_operations;
34919diff -urNp linux-2.6.38.3/fs/proc/Kconfig linux-2.6.38.3/fs/proc/Kconfig 33935diff -urNp linux-2.6.38.2/fs/proc/Kconfig linux-2.6.38.2/fs/proc/Kconfig
34920--- linux-2.6.38.3/fs/proc/Kconfig 2011-03-14 21:20:32.000000000 -0400 33936--- linux-2.6.38.2/fs/proc/Kconfig 2011-03-14 21:20:32.000000000 -0400
34921+++ linux-2.6.38.3/fs/proc/Kconfig 2011-04-17 15:57:32.000000000 -0400 33937+++ linux-2.6.38.2/fs/proc/Kconfig 2011-03-21 18:31:35.000000000 -0400
34922@@ -30,12 +30,12 @@ config PROC_FS 33938@@ -30,12 +30,12 @@ config PROC_FS
34923 33939
34924 config PROC_KCORE 33940 config PROC_KCORE
@@ -34946,9 +33962,9 @@ diff -urNp linux-2.6.38.3/fs/proc/Kconfig linux-2.6.38.3/fs/proc/Kconfig
34946 bool "Enable /proc page monitoring" if EXPERT 33962 bool "Enable /proc page monitoring" if EXPERT
34947 help 33963 help
34948 Various /proc files exist to monitor process memory utilization: 33964 Various /proc files exist to monitor process memory utilization:
34949diff -urNp linux-2.6.38.3/fs/proc/kcore.c linux-2.6.38.3/fs/proc/kcore.c 33965diff -urNp linux-2.6.38.2/fs/proc/kcore.c linux-2.6.38.2/fs/proc/kcore.c
34950--- linux-2.6.38.3/fs/proc/kcore.c 2011-03-14 21:20:32.000000000 -0400 33966--- linux-2.6.38.2/fs/proc/kcore.c 2011-03-14 21:20:32.000000000 -0400
34951+++ linux-2.6.38.3/fs/proc/kcore.c 2011-04-17 15:57:32.000000000 -0400 33967+++ linux-2.6.38.2/fs/proc/kcore.c 2011-03-21 18:31:35.000000000 -0400
34952@@ -478,9 +478,10 @@ read_kcore(struct file *file, char __use 33968@@ -478,9 +478,10 @@ read_kcore(struct file *file, char __use
34953 * the addresses in the elf_phdr on our list. 33969 * the addresses in the elf_phdr on our list.
34954 */ 33970 */
@@ -35007,9 +34023,9 @@ diff -urNp linux-2.6.38.3/fs/proc/kcore.c linux-2.6.38.3/fs/proc/kcore.c
35007 if (!capable(CAP_SYS_RAWIO)) 34023 if (!capable(CAP_SYS_RAWIO))
35008 return -EPERM; 34024 return -EPERM;
35009 if (kcore_need_update) 34025 if (kcore_need_update)
35010diff -urNp linux-2.6.38.3/fs/proc/meminfo.c linux-2.6.38.3/fs/proc/meminfo.c 34026diff -urNp linux-2.6.38.2/fs/proc/meminfo.c linux-2.6.38.2/fs/proc/meminfo.c
35011--- linux-2.6.38.3/fs/proc/meminfo.c 2011-03-14 21:20:32.000000000 -0400 34027--- linux-2.6.38.2/fs/proc/meminfo.c 2011-03-14 21:20:32.000000000 -0400
35012+++ linux-2.6.38.3/fs/proc/meminfo.c 2011-04-17 15:57:32.000000000 -0400 34028+++ linux-2.6.38.2/fs/proc/meminfo.c 2011-03-21 18:31:35.000000000 -0400
35013@@ -157,7 +157,7 @@ static int meminfo_proc_show(struct seq_ 34029@@ -157,7 +157,7 @@ static int meminfo_proc_show(struct seq_
35014 vmi.used >> 10, 34030 vmi.used >> 10,
35015 vmi.largest_chunk >> 10 34031 vmi.largest_chunk >> 10
@@ -35019,9 +34035,9 @@ diff -urNp linux-2.6.38.3/fs/proc/meminfo.c linux-2.6.38.3/fs/proc/meminfo.c
35019 #endif 34035 #endif
35020 #ifdef CONFIG_TRANSPARENT_HUGEPAGE 34036 #ifdef CONFIG_TRANSPARENT_HUGEPAGE
35021 ,K(global_page_state(NR_ANON_TRANSPARENT_HUGEPAGES) * 34037 ,K(global_page_state(NR_ANON_TRANSPARENT_HUGEPAGES) *
35022diff -urNp linux-2.6.38.3/fs/proc/nommu.c linux-2.6.38.3/fs/proc/nommu.c 34038diff -urNp linux-2.6.38.2/fs/proc/nommu.c linux-2.6.38.2/fs/proc/nommu.c
35023--- linux-2.6.38.3/fs/proc/nommu.c 2011-03-14 21:20:32.000000000 -0400 34039--- linux-2.6.38.2/fs/proc/nommu.c 2011-03-14 21:20:32.000000000 -0400
35024+++ linux-2.6.38.3/fs/proc/nommu.c 2011-04-17 15:57:32.000000000 -0400 34040+++ linux-2.6.38.2/fs/proc/nommu.c 2011-03-21 18:31:35.000000000 -0400
35025@@ -66,7 +66,7 @@ static int nommu_region_show(struct seq_ 34041@@ -66,7 +66,7 @@ static int nommu_region_show(struct seq_
35026 if (len < 1) 34042 if (len < 1)
35027 len = 1; 34043 len = 1;
@@ -35031,9 +34047,9 @@ diff -urNp linux-2.6.38.3/fs/proc/nommu.c linux-2.6.38.3/fs/proc/nommu.c
35031 } 34047 }
35032 34048
35033 seq_putc(m, '\n'); 34049 seq_putc(m, '\n');
35034diff -urNp linux-2.6.38.3/fs/proc/proc_net.c linux-2.6.38.3/fs/proc/proc_net.c 34050diff -urNp linux-2.6.38.2/fs/proc/proc_net.c linux-2.6.38.2/fs/proc/proc_net.c
35035--- linux-2.6.38.3/fs/proc/proc_net.c 2011-03-14 21:20:32.000000000 -0400 34051--- linux-2.6.38.2/fs/proc/proc_net.c 2011-03-14 21:20:32.000000000 -0400
35036+++ linux-2.6.38.3/fs/proc/proc_net.c 2011-04-17 15:57:32.000000000 -0400 34052+++ linux-2.6.38.2/fs/proc/proc_net.c 2011-03-21 18:31:35.000000000 -0400
35037@@ -105,6 +105,17 @@ static struct net *get_proc_task_net(str 34053@@ -105,6 +105,17 @@ static struct net *get_proc_task_net(str
35038 struct task_struct *task; 34054 struct task_struct *task;
35039 struct nsproxy *ns; 34055 struct nsproxy *ns;
@@ -35052,9 +34068,9 @@ diff -urNp linux-2.6.38.3/fs/proc/proc_net.c linux-2.6.38.3/fs/proc/proc_net.c
35052 34068
35053 rcu_read_lock(); 34069 rcu_read_lock();
35054 task = pid_task(proc_pid(dir), PIDTYPE_PID); 34070 task = pid_task(proc_pid(dir), PIDTYPE_PID);
35055diff -urNp linux-2.6.38.3/fs/proc/proc_sysctl.c linux-2.6.38.3/fs/proc/proc_sysctl.c 34071diff -urNp linux-2.6.38.2/fs/proc/proc_sysctl.c linux-2.6.38.2/fs/proc/proc_sysctl.c
35056--- linux-2.6.38.3/fs/proc/proc_sysctl.c 2011-03-14 21:20:32.000000000 -0400 34072--- linux-2.6.38.2/fs/proc/proc_sysctl.c 2011-03-14 21:20:32.000000000 -0400
35057+++ linux-2.6.38.3/fs/proc/proc_sysctl.c 2011-04-17 15:57:32.000000000 -0400 34073+++ linux-2.6.38.2/fs/proc/proc_sysctl.c 2011-03-21 18:31:35.000000000 -0400
35058@@ -8,6 +8,8 @@ 34074@@ -8,6 +8,8 @@
35059 #include <linux/namei.h> 34075 #include <linux/namei.h>
35060 #include "internal.h" 34076 #include "internal.h"
@@ -35094,9 +34110,9 @@ diff -urNp linux-2.6.38.3/fs/proc/proc_sysctl.c linux-2.6.38.3/fs/proc/proc_sysc
35094 generic_fillattr(inode, stat); 34110 generic_fillattr(inode, stat);
35095 if (table) 34111 if (table)
35096 stat->mode = (stat->mode & S_IFMT) | table->mode; 34112 stat->mode = (stat->mode & S_IFMT) | table->mode;
35097diff -urNp linux-2.6.38.3/fs/proc/root.c linux-2.6.38.3/fs/proc/root.c 34113diff -urNp linux-2.6.38.2/fs/proc/root.c linux-2.6.38.2/fs/proc/root.c
35098--- linux-2.6.38.3/fs/proc/root.c 2011-03-14 21:20:32.000000000 -0400 34114--- linux-2.6.38.2/fs/proc/root.c 2011-03-14 21:20:32.000000000 -0400
35099+++ linux-2.6.38.3/fs/proc/root.c 2011-04-17 15:57:32.000000000 -0400 34115+++ linux-2.6.38.2/fs/proc/root.c 2011-03-21 18:31:35.000000000 -0400
35100@@ -132,7 +132,15 @@ void __init proc_root_init(void) 34116@@ -132,7 +132,15 @@ void __init proc_root_init(void)
35101 #ifdef CONFIG_PROC_DEVICETREE 34117 #ifdef CONFIG_PROC_DEVICETREE
35102 proc_device_tree_init(); 34118 proc_device_tree_init();
@@ -35113,9 +34129,9 @@ diff -urNp linux-2.6.38.3/fs/proc/root.c linux-2.6.38.3/fs/proc/root.c
35113 proc_sys_init(); 34129 proc_sys_init();
35114 } 34130 }
35115 34131
35116diff -urNp linux-2.6.38.3/fs/proc/task_mmu.c linux-2.6.38.3/fs/proc/task_mmu.c 34132diff -urNp linux-2.6.38.2/fs/proc/task_mmu.c linux-2.6.38.2/fs/proc/task_mmu.c
35117--- linux-2.6.38.3/fs/proc/task_mmu.c 2011-04-18 17:27:16.000000000 -0400 34133--- linux-2.6.38.2/fs/proc/task_mmu.c 2011-03-28 17:42:40.000000000 -0400
35118+++ linux-2.6.38.3/fs/proc/task_mmu.c 2011-04-18 19:35:47.000000000 -0400 34134+++ linux-2.6.38.2/fs/proc/task_mmu.c 2011-03-28 17:42:53.000000000 -0400
35119@@ -49,8 +49,13 @@ void task_mem(struct seq_file *m, struct 34135@@ -49,8 +49,13 @@ void task_mem(struct seq_file *m, struct
35120 "VmExe:\t%8lu kB\n" 34136 "VmExe:\t%8lu kB\n"
35121 "VmLib:\t%8lu kB\n" 34137 "VmLib:\t%8lu kB\n"
@@ -35147,17 +34163,7 @@ diff -urNp linux-2.6.38.3/fs/proc/task_mmu.c linux-2.6.38.3/fs/proc/task_mmu.c
35147 } 34163 }
35148 34164
35149 unsigned long task_vsize(struct mm_struct *mm) 34165 unsigned long task_vsize(struct mm_struct *mm)
35150@@ -180,7 +191,8 @@ static void m_stop(struct seq_file *m, v 34166@@ -204,6 +215,12 @@ static int do_maps_open(struct inode *in
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
35161 return ret; 34167 return ret;
35162 } 34168 }
35163 34169
@@ -35170,7 +34176,7 @@ diff -urNp linux-2.6.38.3/fs/proc/task_mmu.c linux-2.6.38.3/fs/proc/task_mmu.c
35170 static void show_map_vma(struct seq_file *m, struct vm_area_struct *vma) 34176 static void show_map_vma(struct seq_file *m, struct vm_area_struct *vma)
35171 { 34177 {
35172 struct mm_struct *mm = vma->vm_mm; 34178 struct mm_struct *mm = vma->vm_mm;
35173@@ -211,7 +229,6 @@ static void show_map_vma(struct seq_file 34179@@ -211,7 +228,6 @@ static void show_map_vma(struct seq_file
35174 int flags = vma->vm_flags; 34180 int flags = vma->vm_flags;
35175 unsigned long ino = 0; 34181 unsigned long ino = 0;
35176 unsigned long long pgoff = 0; 34182 unsigned long long pgoff = 0;
@@ -35178,7 +34184,7 @@ diff -urNp linux-2.6.38.3/fs/proc/task_mmu.c linux-2.6.38.3/fs/proc/task_mmu.c
35178 dev_t dev = 0; 34184 dev_t dev = 0;
35179 int len; 34185 int len;
35180 34186
35181@@ -222,20 +239,23 @@ static void show_map_vma(struct seq_file 34187@@ -222,20 +238,23 @@ static void show_map_vma(struct seq_file
35182 pgoff = ((loff_t)vma->vm_pgoff) << PAGE_SHIFT; 34188 pgoff = ((loff_t)vma->vm_pgoff) << PAGE_SHIFT;
35183 } 34189 }
35184 34190
@@ -35209,7 +34215,7 @@ diff -urNp linux-2.6.38.3/fs/proc/task_mmu.c linux-2.6.38.3/fs/proc/task_mmu.c
35209 MAJOR(dev), MINOR(dev), ino, &len); 34215 MAJOR(dev), MINOR(dev), ino, &len);
35210 34216
35211 /* 34217 /*
35212@@ -244,16 +264,16 @@ static void show_map_vma(struct seq_file 34218@@ -244,16 +263,16 @@ static void show_map_vma(struct seq_file
35213 */ 34219 */
35214 if (file) { 34220 if (file) {
35215 pad_len_spaces(m, len); 34221 pad_len_spaces(m, len);
@@ -35231,7 +34237,7 @@ diff -urNp linux-2.6.38.3/fs/proc/task_mmu.c linux-2.6.38.3/fs/proc/task_mmu.c
35231 name = "[stack]"; 34237 name = "[stack]";
35232 } 34238 }
35233 } else { 34239 } else {
35234@@ -399,11 +419,16 @@ static int show_smap(struct seq_file *m, 34240@@ -399,11 +418,16 @@ static int show_smap(struct seq_file *m,
35235 }; 34241 };
35236 34242
35237 memset(&mss, 0, sizeof mss); 34243 memset(&mss, 0, sizeof mss);
@@ -35253,7 +34259,7 @@ diff -urNp linux-2.6.38.3/fs/proc/task_mmu.c linux-2.6.38.3/fs/proc/task_mmu.c
35253 show_map_vma(m, vma); 34259 show_map_vma(m, vma);
35254 34260
35255 seq_printf(m, 34261 seq_printf(m,
35256@@ -420,7 +445,11 @@ static int show_smap(struct seq_file *m, 34262@@ -420,7 +444,11 @@ static int show_smap(struct seq_file *m,
35257 "KernelPageSize: %8lu kB\n" 34263 "KernelPageSize: %8lu kB\n"
35258 "MMUPageSize: %8lu kB\n" 34264 "MMUPageSize: %8lu kB\n"
35259 "Locked: %8lu kB\n", 34265 "Locked: %8lu kB\n",
@@ -35265,9 +34271,9 @@ diff -urNp linux-2.6.38.3/fs/proc/task_mmu.c linux-2.6.38.3/fs/proc/task_mmu.c
35265 mss.resident >> 10, 34271 mss.resident >> 10,
35266 (unsigned long)(mss.pss >> (10 + PSS_SHIFT)), 34272 (unsigned long)(mss.pss >> (10 + PSS_SHIFT)),
35267 mss.shared_clean >> 10, 34273 mss.shared_clean >> 10,
35268diff -urNp linux-2.6.38.3/fs/proc/task_nommu.c linux-2.6.38.3/fs/proc/task_nommu.c 34274diff -urNp linux-2.6.38.2/fs/proc/task_nommu.c linux-2.6.38.2/fs/proc/task_nommu.c
35269--- linux-2.6.38.3/fs/proc/task_nommu.c 2011-03-14 21:20:32.000000000 -0400 34275--- linux-2.6.38.2/fs/proc/task_nommu.c 2011-03-14 21:20:32.000000000 -0400
35270+++ linux-2.6.38.3/fs/proc/task_nommu.c 2011-04-17 15:57:32.000000000 -0400 34276+++ linux-2.6.38.2/fs/proc/task_nommu.c 2011-03-21 18:31:35.000000000 -0400
35271@@ -51,7 +51,7 @@ void task_mem(struct seq_file *m, struct 34277@@ -51,7 +51,7 @@ void task_mem(struct seq_file *m, struct
35272 else 34278 else
35273 bytes += kobjsize(mm); 34279 bytes += kobjsize(mm);
@@ -35286,9 +34292,9 @@ diff -urNp linux-2.6.38.3/fs/proc/task_nommu.c linux-2.6.38.3/fs/proc/task_nommu
35286 } else if (mm) { 34292 } else if (mm) {
35287 if (vma->vm_start <= mm->start_stack && 34293 if (vma->vm_start <= mm->start_stack &&
35288 vma->vm_end >= mm->start_stack) { 34294 vma->vm_end >= mm->start_stack) {
35289diff -urNp linux-2.6.38.3/fs/readdir.c linux-2.6.38.3/fs/readdir.c 34295diff -urNp linux-2.6.38.2/fs/readdir.c linux-2.6.38.2/fs/readdir.c
35290--- linux-2.6.38.3/fs/readdir.c 2011-03-14 21:20:32.000000000 -0400 34296--- linux-2.6.38.2/fs/readdir.c 2011-03-14 21:20:32.000000000 -0400
35291+++ linux-2.6.38.3/fs/readdir.c 2011-04-17 15:57:32.000000000 -0400 34297+++ linux-2.6.38.2/fs/readdir.c 2011-03-21 18:31:35.000000000 -0400
35292@@ -17,6 +17,7 @@ 34298@@ -17,6 +17,7 @@
35293 #include <linux/security.h> 34299 #include <linux/security.h>
35294 #include <linux/syscalls.h> 34300 #include <linux/syscalls.h>
@@ -35378,9 +34384,9 @@ diff -urNp linux-2.6.38.3/fs/readdir.c linux-2.6.38.3/fs/readdir.c
35378 buf.count = count; 34384 buf.count = count;
35379 buf.error = 0; 34385 buf.error = 0;
35380 34386
35381diff -urNp linux-2.6.38.3/fs/reiserfs/do_balan.c linux-2.6.38.3/fs/reiserfs/do_balan.c 34387diff -urNp linux-2.6.38.2/fs/reiserfs/do_balan.c linux-2.6.38.2/fs/reiserfs/do_balan.c
35382--- linux-2.6.38.3/fs/reiserfs/do_balan.c 2011-03-14 21:20:32.000000000 -0400 34388--- linux-2.6.38.2/fs/reiserfs/do_balan.c 2011-03-14 21:20:32.000000000 -0400
35383+++ linux-2.6.38.3/fs/reiserfs/do_balan.c 2011-04-17 15:57:32.000000000 -0400 34389+++ linux-2.6.38.2/fs/reiserfs/do_balan.c 2011-03-21 18:31:35.000000000 -0400
35384@@ -2051,7 +2051,7 @@ void do_balance(struct tree_balance *tb, 34390@@ -2051,7 +2051,7 @@ void do_balance(struct tree_balance *tb,
35385 return; 34391 return;
35386 } 34392 }
@@ -35390,9 +34396,9 @@ diff -urNp linux-2.6.38.3/fs/reiserfs/do_balan.c linux-2.6.38.3/fs/reiserfs/do_b
35390 do_balance_starts(tb); 34396 do_balance_starts(tb);
35391 34397
35392 /* balance leaf returns 0 except if combining L R and S into 34398 /* balance leaf returns 0 except if combining L R and S into
35393diff -urNp linux-2.6.38.3/fs/reiserfs/item_ops.c linux-2.6.38.3/fs/reiserfs/item_ops.c 34399diff -urNp linux-2.6.38.2/fs/reiserfs/item_ops.c linux-2.6.38.2/fs/reiserfs/item_ops.c
35394--- linux-2.6.38.3/fs/reiserfs/item_ops.c 2011-03-14 21:20:32.000000000 -0400 34400--- linux-2.6.38.2/fs/reiserfs/item_ops.c 2011-03-14 21:20:32.000000000 -0400
35395+++ linux-2.6.38.3/fs/reiserfs/item_ops.c 2011-04-17 15:57:32.000000000 -0400 34401+++ linux-2.6.38.2/fs/reiserfs/item_ops.c 2011-03-21 18:31:35.000000000 -0400
35396@@ -102,7 +102,7 @@ static void sd_print_vi(struct virtual_i 34402@@ -102,7 +102,7 @@ static void sd_print_vi(struct virtual_i
35397 vi->vi_index, vi->vi_type, vi->vi_ih); 34403 vi->vi_index, vi->vi_type, vi->vi_ih);
35398 } 34404 }
@@ -35447,9 +34453,9 @@ diff -urNp linux-2.6.38.3/fs/reiserfs/item_ops.c linux-2.6.38.3/fs/reiserfs/item
35447 &stat_data_ops, 34453 &stat_data_ops,
35448 &indirect_ops, 34454 &indirect_ops,
35449 &direct_ops, 34455 &direct_ops,
35450diff -urNp linux-2.6.38.3/fs/reiserfs/procfs.c linux-2.6.38.3/fs/reiserfs/procfs.c 34456diff -urNp linux-2.6.38.2/fs/reiserfs/procfs.c linux-2.6.38.2/fs/reiserfs/procfs.c
35451--- linux-2.6.38.3/fs/reiserfs/procfs.c 2011-03-14 21:20:32.000000000 -0400 34457--- linux-2.6.38.2/fs/reiserfs/procfs.c 2011-03-14 21:20:32.000000000 -0400
35452+++ linux-2.6.38.3/fs/reiserfs/procfs.c 2011-04-17 15:57:32.000000000 -0400 34458+++ linux-2.6.38.2/fs/reiserfs/procfs.c 2011-03-21 18:31:35.000000000 -0400
35453@@ -113,7 +113,7 @@ static int show_super(struct seq_file *m 34459@@ -113,7 +113,7 @@ static int show_super(struct seq_file *m
35454 "SMALL_TAILS " : "NO_TAILS ", 34460 "SMALL_TAILS " : "NO_TAILS ",
35455 replay_only(sb) ? "REPLAY_ONLY " : "", 34461 replay_only(sb) ? "REPLAY_ONLY " : "",
@@ -35459,9 +34465,9 @@ diff -urNp linux-2.6.38.3/fs/reiserfs/procfs.c linux-2.6.38.3/fs/reiserfs/procfs
35459 SF(s_disk_reads), SF(s_disk_writes), SF(s_fix_nodes), 34465 SF(s_disk_reads), SF(s_disk_writes), SF(s_fix_nodes),
35460 SF(s_do_balance), SF(s_unneeded_left_neighbor), 34466 SF(s_do_balance), SF(s_unneeded_left_neighbor),
35461 SF(s_good_search_by_key_reada), SF(s_bmaps), 34467 SF(s_good_search_by_key_reada), SF(s_bmaps),
35462diff -urNp linux-2.6.38.3/fs/select.c linux-2.6.38.3/fs/select.c 34468diff -urNp linux-2.6.38.2/fs/select.c linux-2.6.38.2/fs/select.c
35463--- linux-2.6.38.3/fs/select.c 2011-03-14 21:20:32.000000000 -0400 34469--- linux-2.6.38.2/fs/select.c 2011-03-14 21:20:32.000000000 -0400
35464+++ linux-2.6.38.3/fs/select.c 2011-04-17 15:57:32.000000000 -0400 34470+++ linux-2.6.38.2/fs/select.c 2011-03-21 18:31:35.000000000 -0400
35465@@ -20,6 +20,7 @@ 34471@@ -20,6 +20,7 @@
35466 #include <linux/module.h> 34472 #include <linux/module.h>
35467 #include <linux/slab.h> 34473 #include <linux/slab.h>
@@ -35478,9 +34484,9 @@ diff -urNp linux-2.6.38.3/fs/select.c linux-2.6.38.3/fs/select.c
35478 if (nfds > rlimit(RLIMIT_NOFILE)) 34484 if (nfds > rlimit(RLIMIT_NOFILE))
35479 return -EINVAL; 34485 return -EINVAL;
35480 34486
35481diff -urNp linux-2.6.38.3/fs/seq_file.c linux-2.6.38.3/fs/seq_file.c 34487diff -urNp linux-2.6.38.2/fs/seq_file.c linux-2.6.38.2/fs/seq_file.c
35482--- linux-2.6.38.3/fs/seq_file.c 2011-03-14 21:20:32.000000000 -0400 34488--- linux-2.6.38.2/fs/seq_file.c 2011-03-14 21:20:32.000000000 -0400
35483+++ linux-2.6.38.3/fs/seq_file.c 2011-04-17 15:57:32.000000000 -0400 34489+++ linux-2.6.38.2/fs/seq_file.c 2011-03-21 18:31:35.000000000 -0400
35484@@ -76,7 +76,8 @@ static int traverse(struct seq_file *m, 34490@@ -76,7 +76,8 @@ static int traverse(struct seq_file *m,
35485 return 0; 34491 return 0;
35486 } 34492 }
@@ -35521,9 +34527,9 @@ diff -urNp linux-2.6.38.3/fs/seq_file.c linux-2.6.38.3/fs/seq_file.c
35521 if (!m->buf) 34527 if (!m->buf)
35522 goto Enomem; 34528 goto Enomem;
35523 m->count = 0; 34529 m->count = 0;
35524diff -urNp linux-2.6.38.3/fs/splice.c linux-2.6.38.3/fs/splice.c 34530diff -urNp linux-2.6.38.2/fs/splice.c linux-2.6.38.2/fs/splice.c
35525--- linux-2.6.38.3/fs/splice.c 2011-03-14 21:20:32.000000000 -0400 34531--- linux-2.6.38.2/fs/splice.c 2011-03-14 21:20:32.000000000 -0400
35526+++ linux-2.6.38.3/fs/splice.c 2011-04-17 15:57:32.000000000 -0400 34532+++ linux-2.6.38.2/fs/splice.c 2011-03-21 18:31:35.000000000 -0400
35527@@ -186,7 +186,7 @@ ssize_t splice_to_pipe(struct pipe_inode 34533@@ -186,7 +186,7 @@ ssize_t splice_to_pipe(struct pipe_inode
35528 pipe_lock(pipe); 34534 pipe_lock(pipe);
35529 34535
@@ -35662,9 +34668,9 @@ diff -urNp linux-2.6.38.3/fs/splice.c linux-2.6.38.3/fs/splice.c
35662 ret = -EAGAIN; 34668 ret = -EAGAIN;
35663 34669
35664 pipe_unlock(ipipe); 34670 pipe_unlock(ipipe);
35665diff -urNp linux-2.6.38.3/fs/sysfs/mount.c linux-2.6.38.3/fs/sysfs/mount.c 34671diff -urNp linux-2.6.38.2/fs/sysfs/mount.c linux-2.6.38.2/fs/sysfs/mount.c
35666--- linux-2.6.38.3/fs/sysfs/mount.c 2011-03-14 21:20:32.000000000 -0400 34672--- linux-2.6.38.2/fs/sysfs/mount.c 2011-03-14 21:20:32.000000000 -0400
35667+++ linux-2.6.38.3/fs/sysfs/mount.c 2011-04-17 15:57:32.000000000 -0400 34673+++ linux-2.6.38.2/fs/sysfs/mount.c 2011-03-21 18:31:35.000000000 -0400
35668@@ -36,7 +36,11 @@ struct sysfs_dirent sysfs_root = { 34674@@ -36,7 +36,11 @@ struct sysfs_dirent sysfs_root = {
35669 .s_name = "", 34675 .s_name = "",
35670 .s_count = ATOMIC_INIT(1), 34676 .s_count = ATOMIC_INIT(1),
@@ -35677,9 +34683,9 @@ diff -urNp linux-2.6.38.3/fs/sysfs/mount.c linux-2.6.38.3/fs/sysfs/mount.c
35677 .s_ino = 1, 34683 .s_ino = 1,
35678 }; 34684 };
35679 34685
35680diff -urNp linux-2.6.38.3/fs/sysfs/symlink.c linux-2.6.38.3/fs/sysfs/symlink.c 34686diff -urNp linux-2.6.38.2/fs/sysfs/symlink.c linux-2.6.38.2/fs/sysfs/symlink.c
35681--- linux-2.6.38.3/fs/sysfs/symlink.c 2011-03-14 21:20:32.000000000 -0400 34687--- linux-2.6.38.2/fs/sysfs/symlink.c 2011-03-14 21:20:32.000000000 -0400
35682+++ linux-2.6.38.3/fs/sysfs/symlink.c 2011-04-17 15:57:32.000000000 -0400 34688+++ linux-2.6.38.2/fs/sysfs/symlink.c 2011-03-21 18:31:35.000000000 -0400
35683@@ -286,7 +286,7 @@ static void *sysfs_follow_link(struct de 34689@@ -286,7 +286,7 @@ static void *sysfs_follow_link(struct de
35684 34690
35685 static void sysfs_put_link(struct dentry *dentry, struct nameidata *nd, void *cookie) 34691 static void sysfs_put_link(struct dentry *dentry, struct nameidata *nd, void *cookie)
@@ -35689,10 +34695,10 @@ diff -urNp linux-2.6.38.3/fs/sysfs/symlink.c linux-2.6.38.3/fs/sysfs/symlink.c
35689 if (!IS_ERR(page)) 34695 if (!IS_ERR(page))
35690 free_page((unsigned long)page); 34696 free_page((unsigned long)page);
35691 } 34697 }
35692diff -urNp linux-2.6.38.3/fs/ubifs/debug.c linux-2.6.38.3/fs/ubifs/debug.c 34698diff -urNp linux-2.6.38.2/fs/ubifs/debug.c linux-2.6.38.2/fs/ubifs/debug.c
35693--- linux-2.6.38.3/fs/ubifs/debug.c 2011-04-18 17:27:18.000000000 -0400 34699--- linux-2.6.38.2/fs/ubifs/debug.c 2011-03-14 21:20:32.000000000 -0400
35694+++ linux-2.6.38.3/fs/ubifs/debug.c 2011-04-17 16:53:48.000000000 -0400 34700+++ linux-2.6.38.2/fs/ubifs/debug.c 2011-03-21 18:31:35.000000000 -0400
35695@@ -2844,19 +2844,19 @@ int dbg_debugfs_init_fs(struct ubifs_inf 34701@@ -2813,19 +2813,19 @@ int dbg_debugfs_init_fs(struct ubifs_inf
35696 } 34702 }
35697 34703
35698 fname = "dump_lprops"; 34704 fname = "dump_lprops";
@@ -35715,9 +34721,9 @@ diff -urNp linux-2.6.38.3/fs/ubifs/debug.c linux-2.6.38.3/fs/ubifs/debug.c
35715 if (IS_ERR(dent)) 34721 if (IS_ERR(dent))
35716 goto out_remove; 34722 goto out_remove;
35717 d->dfs_dump_tnc = dent; 34723 d->dfs_dump_tnc = dent;
35718diff -urNp linux-2.6.38.3/fs/udf/misc.c linux-2.6.38.3/fs/udf/misc.c 34724diff -urNp linux-2.6.38.2/fs/udf/misc.c linux-2.6.38.2/fs/udf/misc.c
35719--- linux-2.6.38.3/fs/udf/misc.c 2011-03-14 21:20:32.000000000 -0400 34725--- linux-2.6.38.2/fs/udf/misc.c 2011-03-14 21:20:32.000000000 -0400
35720+++ linux-2.6.38.3/fs/udf/misc.c 2011-04-17 15:57:32.000000000 -0400 34726+++ linux-2.6.38.2/fs/udf/misc.c 2011-03-21 18:31:35.000000000 -0400
35721@@ -142,8 +142,8 @@ struct genericFormat *udf_add_extendedat 34727@@ -142,8 +142,8 @@ struct genericFormat *udf_add_extendedat
35722 iinfo->i_lenEAttr += size; 34728 iinfo->i_lenEAttr += size;
35723 return (struct genericFormat *)&ea[offset]; 34729 return (struct genericFormat *)&ea[offset];
@@ -35738,9 +34744,9 @@ diff -urNp linux-2.6.38.3/fs/udf/misc.c linux-2.6.38.3/fs/udf/misc.c
35738 u8 checksum = 0; 34744 u8 checksum = 0;
35739 int i; 34745 int i;
35740 for (i = 0; i < sizeof(struct tag); ++i) 34746 for (i = 0; i < sizeof(struct tag); ++i)
35741diff -urNp linux-2.6.38.3/fs/udf/udfdecl.h linux-2.6.38.3/fs/udf/udfdecl.h 34747diff -urNp linux-2.6.38.2/fs/udf/udfdecl.h linux-2.6.38.2/fs/udf/udfdecl.h
35742--- linux-2.6.38.3/fs/udf/udfdecl.h 2011-03-14 21:20:32.000000000 -0400 34748--- linux-2.6.38.2/fs/udf/udfdecl.h 2011-03-14 21:20:32.000000000 -0400
35743+++ linux-2.6.38.3/fs/udf/udfdecl.h 2011-04-17 15:57:32.000000000 -0400 34749+++ linux-2.6.38.2/fs/udf/udfdecl.h 2011-03-21 18:31:35.000000000 -0400
35744@@ -26,7 +26,7 @@ do { \ 34750@@ -26,7 +26,7 @@ do { \
35745 printk(f, ##a); \ 34751 printk(f, ##a); \
35746 } while (0) 34752 } while (0)
@@ -35750,9 +34756,9 @@ diff -urNp linux-2.6.38.3/fs/udf/udfdecl.h linux-2.6.38.3/fs/udf/udfdecl.h
35750 #endif 34756 #endif
35751 34757
35752 #define udf_info(f, a...) \ 34758 #define udf_info(f, a...) \
35753diff -urNp linux-2.6.38.3/fs/utimes.c linux-2.6.38.3/fs/utimes.c 34759diff -urNp linux-2.6.38.2/fs/utimes.c linux-2.6.38.2/fs/utimes.c
35754--- linux-2.6.38.3/fs/utimes.c 2011-03-14 21:20:32.000000000 -0400 34760--- linux-2.6.38.2/fs/utimes.c 2011-03-14 21:20:32.000000000 -0400
35755+++ linux-2.6.38.3/fs/utimes.c 2011-04-17 15:57:32.000000000 -0400 34761+++ linux-2.6.38.2/fs/utimes.c 2011-03-21 18:31:35.000000000 -0400
35756@@ -1,6 +1,7 @@ 34762@@ -1,6 +1,7 @@
35757 #include <linux/compiler.h> 34763 #include <linux/compiler.h>
35758 #include <linux/file.h> 34764 #include <linux/file.h>
@@ -35774,9 +34780,9 @@ diff -urNp linux-2.6.38.3/fs/utimes.c linux-2.6.38.3/fs/utimes.c
35774 mutex_lock(&inode->i_mutex); 34780 mutex_lock(&inode->i_mutex);
35775 error = notify_change(path->dentry, &newattrs); 34781 error = notify_change(path->dentry, &newattrs);
35776 mutex_unlock(&inode->i_mutex); 34782 mutex_unlock(&inode->i_mutex);
35777diff -urNp linux-2.6.38.3/fs/xattr_acl.c linux-2.6.38.3/fs/xattr_acl.c 34783diff -urNp linux-2.6.38.2/fs/xattr_acl.c linux-2.6.38.2/fs/xattr_acl.c
35778--- linux-2.6.38.3/fs/xattr_acl.c 2011-03-14 21:20:32.000000000 -0400 34784--- linux-2.6.38.2/fs/xattr_acl.c 2011-03-14 21:20:32.000000000 -0400
35779+++ linux-2.6.38.3/fs/xattr_acl.c 2011-04-17 15:57:32.000000000 -0400 34785+++ linux-2.6.38.2/fs/xattr_acl.c 2011-03-21 18:31:35.000000000 -0400
35780@@ -17,8 +17,8 @@ 34786@@ -17,8 +17,8 @@
35781 struct posix_acl * 34787 struct posix_acl *
35782 posix_acl_from_xattr(const void *value, size_t size) 34788 posix_acl_from_xattr(const void *value, size_t size)
@@ -35788,9 +34794,9 @@ diff -urNp linux-2.6.38.3/fs/xattr_acl.c linux-2.6.38.3/fs/xattr_acl.c
35788 int count; 34794 int count;
35789 struct posix_acl *acl; 34795 struct posix_acl *acl;
35790 struct posix_acl_entry *acl_e; 34796 struct posix_acl_entry *acl_e;
35791diff -urNp linux-2.6.38.3/fs/xattr.c linux-2.6.38.3/fs/xattr.c 34797diff -urNp linux-2.6.38.2/fs/xattr.c linux-2.6.38.2/fs/xattr.c
35792--- linux-2.6.38.3/fs/xattr.c 2011-03-14 21:20:32.000000000 -0400 34798--- linux-2.6.38.2/fs/xattr.c 2011-03-14 21:20:32.000000000 -0400
35793+++ linux-2.6.38.3/fs/xattr.c 2011-04-17 15:57:32.000000000 -0400 34799+++ linux-2.6.38.2/fs/xattr.c 2011-03-21 18:31:35.000000000 -0400
35794@@ -247,7 +247,7 @@ EXPORT_SYMBOL_GPL(vfs_removexattr); 34800@@ -247,7 +247,7 @@ EXPORT_SYMBOL_GPL(vfs_removexattr);
35795 * Extended attribute SET operations 34801 * Extended attribute SET operations
35796 */ 34802 */
@@ -35853,9 +34859,9 @@ diff -urNp linux-2.6.38.3/fs/xattr.c linux-2.6.38.3/fs/xattr.c
35853 mnt_drop_write(f->f_path.mnt); 34859 mnt_drop_write(f->f_path.mnt);
35854 } 34860 }
35855 fput(f); 34861 fput(f);
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 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
35857--- linux-2.6.38.3/fs/xfs/linux-2.6/xfs_ioctl32.c 2011-03-14 21:20:32.000000000 -0400 34863--- linux-2.6.38.2/fs/xfs/linux-2.6/xfs_ioctl32.c 2011-03-14 21:20:32.000000000 -0400
35858+++ linux-2.6.38.3/fs/xfs/linux-2.6/xfs_ioctl32.c 2011-04-17 15:57:32.000000000 -0400 34864+++ linux-2.6.38.2/fs/xfs/linux-2.6/xfs_ioctl32.c 2011-03-21 18:31:35.000000000 -0400
35859@@ -73,6 +73,7 @@ xfs_compat_ioc_fsgeometry_v1( 34865@@ -73,6 +73,7 @@ xfs_compat_ioc_fsgeometry_v1(
35860 xfs_fsop_geom_t fsgeo; 34866 xfs_fsop_geom_t fsgeo;
35861 int error; 34867 int error;
@@ -35864,9 +34870,9 @@ diff -urNp linux-2.6.38.3/fs/xfs/linux-2.6/xfs_ioctl32.c linux-2.6.38.3/fs/xfs/l
35864 error = xfs_fs_geometry(mp, &fsgeo, 3); 34870 error = xfs_fs_geometry(mp, &fsgeo, 3);
35865 if (error) 34871 if (error)
35866 return -error; 34872 return -error;
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 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
35868--- linux-2.6.38.3/fs/xfs/linux-2.6/xfs_ioctl.c 2011-03-14 21:20:32.000000000 -0400 34874--- linux-2.6.38.2/fs/xfs/linux-2.6/xfs_ioctl.c 2011-03-14 21:20:32.000000000 -0400
35869+++ linux-2.6.38.3/fs/xfs/linux-2.6/xfs_ioctl.c 2011-04-17 20:08:09.000000000 -0400 34875+++ linux-2.6.38.2/fs/xfs/linux-2.6/xfs_ioctl.c 2011-03-21 18:31:35.000000000 -0400
35870@@ -128,7 +128,7 @@ xfs_find_handle( 34876@@ -128,7 +128,7 @@ xfs_find_handle(
35871 } 34877 }
35872 34878
@@ -35876,9 +34882,17 @@ diff -urNp linux-2.6.38.3/fs/xfs/linux-2.6/xfs_ioctl.c linux-2.6.38.3/fs/xfs/lin
35876 copy_to_user(hreq->ohandlen, &hsize, sizeof(__s32))) 34882 copy_to_user(hreq->ohandlen, &hsize, sizeof(__s32)))
35877 goto out_put; 34883 goto out_put;
35878 34884
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 34885@@ -720,6 +720,7 @@ xfs_ioc_fsgeometry(
35880--- linux-2.6.38.3/fs/xfs/linux-2.6/xfs_iops.c 2011-03-14 21:20:32.000000000 -0400 34886 xfs_fsop_geom_t fsgeo;
35881+++ linux-2.6.38.3/fs/xfs/linux-2.6/xfs_iops.c 2011-04-17 15:57:32.000000000 -0400 34887 int error;
34888
34889+ memset(&fsgeo, 0, sizeof(fsgeo));
34890 error = xfs_fs_geometry(mp, &fsgeo, 4);
34891 if (error)
34892 return -error;
34893diff -urNp linux-2.6.38.2/fs/xfs/linux-2.6/xfs_iops.c linux-2.6.38.2/fs/xfs/linux-2.6/xfs_iops.c
34894--- linux-2.6.38.2/fs/xfs/linux-2.6/xfs_iops.c 2011-03-14 21:20:32.000000000 -0400
34895+++ linux-2.6.38.2/fs/xfs/linux-2.6/xfs_iops.c 2011-03-21 18:31:35.000000000 -0400
35882@@ -436,7 +436,7 @@ xfs_vn_put_link( 34896@@ -436,7 +436,7 @@ xfs_vn_put_link(
35883 struct nameidata *nd, 34897 struct nameidata *nd,
35884 void *p) 34898 void *p)
@@ -35888,9 +34902,9 @@ diff -urNp linux-2.6.38.3/fs/xfs/linux-2.6/xfs_iops.c linux-2.6.38.3/fs/xfs/linu
35888 34902
35889 if (!IS_ERR(s)) 34903 if (!IS_ERR(s))
35890 kfree(s); 34904 kfree(s);
35891diff -urNp linux-2.6.38.3/fs/xfs/xfs_bmap.c linux-2.6.38.3/fs/xfs/xfs_bmap.c 34905diff -urNp linux-2.6.38.2/fs/xfs/xfs_bmap.c linux-2.6.38.2/fs/xfs/xfs_bmap.c
35892--- linux-2.6.38.3/fs/xfs/xfs_bmap.c 2011-03-14 21:20:32.000000000 -0400 34906--- linux-2.6.38.2/fs/xfs/xfs_bmap.c 2011-03-14 21:20:32.000000000 -0400
35893+++ linux-2.6.38.3/fs/xfs/xfs_bmap.c 2011-04-17 15:57:32.000000000 -0400 34907+++ linux-2.6.38.2/fs/xfs/xfs_bmap.c 2011-03-21 18:31:35.000000000 -0400
35894@@ -287,7 +287,7 @@ xfs_bmap_validate_ret( 34908@@ -287,7 +287,7 @@ xfs_bmap_validate_ret(
35895 int nmap, 34909 int nmap,
35896 int ret_nmap); 34910 int ret_nmap);
@@ -35900,29 +34914,9 @@ diff -urNp linux-2.6.38.3/fs/xfs/xfs_bmap.c linux-2.6.38.3/fs/xfs/xfs_bmap.c
35900 #endif /* DEBUG */ 34914 #endif /* DEBUG */
35901 34915
35902 STATIC int 34916 STATIC int
35903diff -urNp linux-2.6.38.3/fs/xfs/xfs_dir2_sf.c linux-2.6.38.3/fs/xfs/xfs_dir2_sf.c 34917diff -urNp linux-2.6.38.2/grsecurity/gracl_alloc.c linux-2.6.38.2/grsecurity/gracl_alloc.c
35904--- linux-2.6.38.3/fs/xfs/xfs_dir2_sf.c 2011-03-14 21:20:32.000000000 -0400 34918--- linux-2.6.38.2/grsecurity/gracl_alloc.c 1969-12-31 19:00:00.000000000 -0500
35905+++ linux-2.6.38.3/fs/xfs/xfs_dir2_sf.c 2011-04-18 22:03:12.000000000 -0400 34919+++ linux-2.6.38.2/grsecurity/gracl_alloc.c 2011-03-21 18:31:35.000000000 -0400
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
35926@@ -0,0 +1,105 @@ 34920@@ -0,0 +1,105 @@
35927+#include <linux/kernel.h> 34921+#include <linux/kernel.h>
35928+#include <linux/mm.h> 34922+#include <linux/mm.h>
@@ -36029,9 +35023,9 @@ diff -urNp linux-2.6.38.3/grsecurity/gracl_alloc.c linux-2.6.38.3/grsecurity/gra
36029+ else 35023+ else
36030+ return 1; 35024+ return 1;
36031+} 35025+}
36032diff -urNp linux-2.6.38.3/grsecurity/gracl.c linux-2.6.38.3/grsecurity/gracl.c 35026diff -urNp linux-2.6.38.2/grsecurity/gracl.c linux-2.6.38.2/grsecurity/gracl.c
36033--- linux-2.6.38.3/grsecurity/gracl.c 1969-12-31 19:00:00.000000000 -0500 35027--- linux-2.6.38.2/grsecurity/gracl.c 1969-12-31 19:00:00.000000000 -0500
36034+++ linux-2.6.38.3/grsecurity/gracl.c 2011-04-17 15:57:32.000000000 -0400 35028+++ linux-2.6.38.2/grsecurity/gracl.c 2011-03-28 17:16:45.000000000 -0400
36035@@ -0,0 +1,4074 @@ 35029@@ -0,0 +1,4074 @@
36036+#include <linux/kernel.h> 35030+#include <linux/kernel.h>
36037+#include <linux/module.h> 35031+#include <linux/module.h>
@@ -37862,9 +36856,9 @@ diff -urNp linux-2.6.38.3/grsecurity/gracl.c linux-2.6.38.3/grsecurity/gracl.c
37862+ write_seqlock(&rename_lock); 36856+ write_seqlock(&rename_lock);
37863+ br_read_lock(vfsmount_lock); 36857+ br_read_lock(vfsmount_lock);
37864+ 36858+
37865+ if (unlikely((mnt == shm_mnt && dentry->d_inode->i_nlink == 0) || mnt == pipe_mnt || mnt == sock_mnt || 36859+ if (unlikely(mnt == shm_mnt || mnt == pipe_mnt || mnt == sock_mnt ||
37866+#ifdef CONFIG_HUGETLBFS 36860+#ifdef CONFIG_HUGETLBFS
37867+ (mnt == hugetlbfs_vfsmount && dentry->d_inode->i_nlink == 0) || 36861+ mnt == hugetlbfs_vfsmount ||
37868+#endif 36862+#endif
37869+ /* ignore Eric Biederman */ 36863+ /* ignore Eric Biederman */
37870+ IS_PRIVATE(l_dentry->d_inode))) { 36864+ IS_PRIVATE(l_dentry->d_inode))) {
@@ -39843,7 +38837,7 @@ diff -urNp linux-2.6.38.3/grsecurity/gracl.c linux-2.6.38.3/grsecurity/gracl.c
39843+ struct acl_object_label *obj, *obj2; 38837+ struct acl_object_label *obj, *obj2;
39844+ 38838+
39845+ if (gr_status & GR_READY && !(task->acl->mode & GR_OVERRIDE) && 38839+ if (gr_status & GR_READY && !(task->acl->mode & GR_OVERRIDE) &&
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))) { 38840+ !task->is_writable && S_ISREG(filp->f_path.dentry->d_inode->i_mode) && filp->f_path.mnt != shm_mnt) {
39847+ obj = chk_obj_label(filp->f_path.dentry, filp->f_path.mnt, default_role->root_label); 38841+ obj = chk_obj_label(filp->f_path.dentry, filp->f_path.mnt, default_role->root_label);
39848+ obj2 = chk_obj_label(filp->f_path.dentry, filp->f_path.mnt, 38842+ obj2 = chk_obj_label(filp->f_path.dentry, filp->f_path.mnt,
39849+ task->role->root_label); 38843+ task->role->root_label);
@@ -40107,9 +39101,9 @@ diff -urNp linux-2.6.38.3/grsecurity/gracl.c linux-2.6.38.3/grsecurity/gracl.c
40107+EXPORT_SYMBOL(gr_check_group_change); 39101+EXPORT_SYMBOL(gr_check_group_change);
40108+#endif 39102+#endif
40109+ 39103+
40110diff -urNp linux-2.6.38.3/grsecurity/gracl_cap.c linux-2.6.38.3/grsecurity/gracl_cap.c 39104diff -urNp linux-2.6.38.2/grsecurity/gracl_cap.c linux-2.6.38.2/grsecurity/gracl_cap.c
40111--- linux-2.6.38.3/grsecurity/gracl_cap.c 1969-12-31 19:00:00.000000000 -0500 39105--- linux-2.6.38.2/grsecurity/gracl_cap.c 1969-12-31 19:00:00.000000000 -0500
40112+++ linux-2.6.38.3/grsecurity/gracl_cap.c 2011-04-17 15:57:32.000000000 -0400 39106+++ linux-2.6.38.2/grsecurity/gracl_cap.c 2011-03-21 20:22:36.000000000 -0400
40113@@ -0,0 +1,139 @@ 39107@@ -0,0 +1,139 @@
40114+#include <linux/kernel.h> 39108+#include <linux/kernel.h>
40115+#include <linux/module.h> 39109+#include <linux/module.h>
@@ -40250,9 +39244,9 @@ diff -urNp linux-2.6.38.3/grsecurity/gracl_cap.c linux-2.6.38.3/grsecurity/gracl
40250+ return 0; 39244+ return 0;
40251+} 39245+}
40252+ 39246+
40253diff -urNp linux-2.6.38.3/grsecurity/gracl_fs.c linux-2.6.38.3/grsecurity/gracl_fs.c 39247diff -urNp linux-2.6.38.2/grsecurity/gracl_fs.c linux-2.6.38.2/grsecurity/gracl_fs.c
40254--- linux-2.6.38.3/grsecurity/gracl_fs.c 1969-12-31 19:00:00.000000000 -0500 39248--- linux-2.6.38.2/grsecurity/gracl_fs.c 1969-12-31 19:00:00.000000000 -0500
40255+++ linux-2.6.38.3/grsecurity/gracl_fs.c 2011-04-17 15:57:32.000000000 -0400 39249+++ linux-2.6.38.2/grsecurity/gracl_fs.c 2011-03-26 14:32:42.000000000 -0400
40256@@ -0,0 +1,431 @@ 39250@@ -0,0 +1,431 @@
40257+#include <linux/kernel.h> 39251+#include <linux/kernel.h>
40258+#include <linux/sched.h> 39252+#include <linux/sched.h>
@@ -40685,9 +39679,9 @@ diff -urNp linux-2.6.38.3/grsecurity/gracl_fs.c linux-2.6.38.3/grsecurity/gracl_
40685+ 39679+
40686+ return 0; 39680+ return 0;
40687+} 39681+}
40688diff -urNp linux-2.6.38.3/grsecurity/gracl_ip.c linux-2.6.38.3/grsecurity/gracl_ip.c 39682diff -urNp linux-2.6.38.2/grsecurity/gracl_ip.c linux-2.6.38.2/grsecurity/gracl_ip.c
40689--- linux-2.6.38.3/grsecurity/gracl_ip.c 1969-12-31 19:00:00.000000000 -0500 39683--- linux-2.6.38.2/grsecurity/gracl_ip.c 1969-12-31 19:00:00.000000000 -0500
40690+++ linux-2.6.38.3/grsecurity/gracl_ip.c 2011-04-17 15:57:32.000000000 -0400 39684+++ linux-2.6.38.2/grsecurity/gracl_ip.c 2011-03-21 18:31:35.000000000 -0400
40691@@ -0,0 +1,382 @@ 39685@@ -0,0 +1,382 @@
40692+#include <linux/kernel.h> 39686+#include <linux/kernel.h>
40693+#include <asm/uaccess.h> 39687+#include <asm/uaccess.h>
@@ -41071,9 +40065,9 @@ diff -urNp linux-2.6.38.3/grsecurity/gracl_ip.c linux-2.6.38.3/grsecurity/gracl_
41071+ 40065+
41072+ return gr_search_connectbind(GR_CONNECT | GR_CONNECTOVERRIDE, sk, &sin, SOCK_DGRAM); 40066+ return gr_search_connectbind(GR_CONNECT | GR_CONNECTOVERRIDE, sk, &sin, SOCK_DGRAM);
41073+} 40067+}
41074diff -urNp linux-2.6.38.3/grsecurity/gracl_learn.c linux-2.6.38.3/grsecurity/gracl_learn.c 40068diff -urNp linux-2.6.38.2/grsecurity/gracl_learn.c linux-2.6.38.2/grsecurity/gracl_learn.c
41075--- linux-2.6.38.3/grsecurity/gracl_learn.c 1969-12-31 19:00:00.000000000 -0500 40069--- linux-2.6.38.2/grsecurity/gracl_learn.c 1969-12-31 19:00:00.000000000 -0500
41076+++ linux-2.6.38.3/grsecurity/gracl_learn.c 2011-04-17 15:57:32.000000000 -0400 40070+++ linux-2.6.38.2/grsecurity/gracl_learn.c 2011-03-21 18:31:35.000000000 -0400
41077@@ -0,0 +1,211 @@ 40071@@ -0,0 +1,211 @@
41078+#include <linux/kernel.h> 40072+#include <linux/kernel.h>
41079+#include <linux/mm.h> 40073+#include <linux/mm.h>
@@ -41286,9 +40280,9 @@ diff -urNp linux-2.6.38.3/grsecurity/gracl_learn.c linux-2.6.38.3/grsecurity/gra
41286+ .release = close_learn, 40280+ .release = close_learn,
41287+ .poll = poll_learn, 40281+ .poll = poll_learn,
41288+}; 40282+};
41289diff -urNp linux-2.6.38.3/grsecurity/gracl_res.c linux-2.6.38.3/grsecurity/gracl_res.c 40283diff -urNp linux-2.6.38.2/grsecurity/gracl_res.c linux-2.6.38.2/grsecurity/gracl_res.c
41290--- linux-2.6.38.3/grsecurity/gracl_res.c 1969-12-31 19:00:00.000000000 -0500 40284--- linux-2.6.38.2/grsecurity/gracl_res.c 1969-12-31 19:00:00.000000000 -0500
41291+++ linux-2.6.38.3/grsecurity/gracl_res.c 2011-04-17 15:57:32.000000000 -0400 40285+++ linux-2.6.38.2/grsecurity/gracl_res.c 2011-03-21 18:31:35.000000000 -0400
41292@@ -0,0 +1,68 @@ 40286@@ -0,0 +1,68 @@
41293+#include <linux/kernel.h> 40287+#include <linux/kernel.h>
41294+#include <linux/sched.h> 40288+#include <linux/sched.h>
@@ -41358,10 +40352,10 @@ diff -urNp linux-2.6.38.3/grsecurity/gracl_res.c linux-2.6.38.3/grsecurity/gracl
41358+ rcu_read_unlock(); 40352+ rcu_read_unlock();
41359+ return; 40353+ return;
41360+} 40354+}
41361diff -urNp linux-2.6.38.3/grsecurity/gracl_segv.c linux-2.6.38.3/grsecurity/gracl_segv.c 40355diff -urNp linux-2.6.38.2/grsecurity/gracl_segv.c linux-2.6.38.2/grsecurity/gracl_segv.c
41362--- linux-2.6.38.3/grsecurity/gracl_segv.c 1969-12-31 19:00:00.000000000 -0500 40356--- linux-2.6.38.2/grsecurity/gracl_segv.c 1969-12-31 19:00:00.000000000 -0500
41363+++ linux-2.6.38.3/grsecurity/gracl_segv.c 2011-04-17 15:57:32.000000000 -0400 40357+++ linux-2.6.38.2/grsecurity/gracl_segv.c 2011-03-24 23:09:37.000000000 -0400
41364@@ -0,0 +1,300 @@ 40358@@ -0,0 +1,326 @@
41365+#include <linux/kernel.h> 40359+#include <linux/kernel.h>
41366+#include <linux/mm.h> 40360+#include <linux/mm.h>
41367+#include <asm/uaccess.h> 40361+#include <asm/uaccess.h>
@@ -41388,6 +40382,8 @@ diff -urNp linux-2.6.38.3/grsecurity/gracl_segv.c linux-2.6.38.3/grsecurity/grac
41388+extern struct acl_subject_label * 40382+extern struct acl_subject_label *
41389+ lookup_acl_subj_label(const ino_t inode, const dev_t dev, 40383+ lookup_acl_subj_label(const ino_t inode, const dev_t dev,
41390+ struct acl_role_label *role); 40384+ struct acl_role_label *role);
40385+extern int specific_send_sig_info(int sig, struct siginfo *info, struct task_struct *t);
40386+
41391+ 40387+
41392+#ifdef CONFIG_BTRFS_FS 40388+#ifdef CONFIG_BTRFS_FS
41393+extern dev_t get_btrfs_dev_from_inode(struct inode *inode); 40389+extern dev_t get_btrfs_dev_from_inode(struct inode *inode);
@@ -41537,8 +40533,32 @@ diff -urNp linux-2.6.38.3/grsecurity/gracl_segv.c linux-2.6.38.3/grsecurity/grac
41537+ 40533+
41538+ return 0; 40534+ return 0;
41539+} 40535+}
40536+static __inline__ int
40537+gr_fake_force_sig(int sig, struct task_struct *t)
40538+{
40539+ unsigned long int flags;
40540+ int ret, blocked, ignored;
40541+ struct k_sigaction *action;
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);
41540+ 40557+
41541+extern int gr_fake_force_sig(int sig, struct task_struct *t); 40558+ spin_unlock_irqrestore(&t->sighand->siglock, flags);
40559+
40560+ return ret;
40561+}
41542+ 40562+
41543+void 40563+void
41544+gr_handle_crash(struct task_struct *task, const int sig) 40564+gr_handle_crash(struct task_struct *task, const int sig)
@@ -41662,9 +40682,9 @@ diff -urNp linux-2.6.38.3/grsecurity/gracl_segv.c linux-2.6.38.3/grsecurity/grac
41662+ 40682+
41663+ return; 40683+ return;
41664+} 40684+}
41665diff -urNp linux-2.6.38.3/grsecurity/gracl_shm.c linux-2.6.38.3/grsecurity/gracl_shm.c 40685diff -urNp linux-2.6.38.2/grsecurity/gracl_shm.c linux-2.6.38.2/grsecurity/gracl_shm.c
41666--- linux-2.6.38.3/grsecurity/gracl_shm.c 1969-12-31 19:00:00.000000000 -0500 40686--- linux-2.6.38.2/grsecurity/gracl_shm.c 1969-12-31 19:00:00.000000000 -0500
41667+++ linux-2.6.38.3/grsecurity/gracl_shm.c 2011-04-17 15:57:32.000000000 -0400 40687+++ linux-2.6.38.2/grsecurity/gracl_shm.c 2011-03-21 18:31:35.000000000 -0400
41668@@ -0,0 +1,40 @@ 40688@@ -0,0 +1,40 @@
41669+#include <linux/kernel.h> 40689+#include <linux/kernel.h>
41670+#include <linux/mm.h> 40690+#include <linux/mm.h>
@@ -41706,9 +40726,9 @@ diff -urNp linux-2.6.38.3/grsecurity/gracl_shm.c linux-2.6.38.3/grsecurity/gracl
41706+ 40726+
41707+ return 1; 40727+ return 1;
41708+} 40728+}
41709diff -urNp linux-2.6.38.3/grsecurity/grsec_chdir.c linux-2.6.38.3/grsecurity/grsec_chdir.c 40729diff -urNp linux-2.6.38.2/grsecurity/grsec_chdir.c linux-2.6.38.2/grsecurity/grsec_chdir.c
41710--- linux-2.6.38.3/grsecurity/grsec_chdir.c 1969-12-31 19:00:00.000000000 -0500 40730--- linux-2.6.38.2/grsecurity/grsec_chdir.c 1969-12-31 19:00:00.000000000 -0500
41711+++ linux-2.6.38.3/grsecurity/grsec_chdir.c 2011-04-17 15:57:32.000000000 -0400 40731+++ linux-2.6.38.2/grsecurity/grsec_chdir.c 2011-03-21 18:31:35.000000000 -0400
41712@@ -0,0 +1,19 @@ 40732@@ -0,0 +1,19 @@
41713+#include <linux/kernel.h> 40733+#include <linux/kernel.h>
41714+#include <linux/sched.h> 40734+#include <linux/sched.h>
@@ -41729,10 +40749,10 @@ diff -urNp linux-2.6.38.3/grsecurity/grsec_chdir.c linux-2.6.38.3/grsecurity/grs
41729+#endif 40749+#endif
41730+ return; 40750+ return;
41731+} 40751+}
41732diff -urNp linux-2.6.38.3/grsecurity/grsec_chroot.c linux-2.6.38.3/grsecurity/grsec_chroot.c 40752diff -urNp linux-2.6.38.2/grsecurity/grsec_chroot.c linux-2.6.38.2/grsecurity/grsec_chroot.c
41733--- linux-2.6.38.3/grsecurity/grsec_chroot.c 1969-12-31 19:00:00.000000000 -0500 40753--- linux-2.6.38.2/grsecurity/grsec_chroot.c 1969-12-31 19:00:00.000000000 -0500
41734+++ linux-2.6.38.3/grsecurity/grsec_chroot.c 2011-04-17 15:57:32.000000000 -0400 40754+++ linux-2.6.38.2/grsecurity/grsec_chroot.c 2011-03-21 21:24:10.000000000 -0400
41735@@ -0,0 +1,355 @@ 40755@@ -0,0 +1,351 @@
41736+#include <linux/kernel.h> 40756+#include <linux/kernel.h>
41737+#include <linux/module.h> 40757+#include <linux/module.h>
41738+#include <linux/sched.h> 40758+#include <linux/sched.h>
@@ -41782,7 +40802,7 @@ diff -urNp linux-2.6.38.3/grsecurity/grsec_chroot.c linux-2.6.38.3/grsecurity/gr
41782+ rcu_read_lock(); 40802+ rcu_read_lock();
41783+ read_lock(&tasklist_lock); 40803+ read_lock(&tasklist_lock);
41784+ p = pid_task(pid, PIDTYPE_PID); 40804+ p = pid_task(pid, PIDTYPE_PID);
41785+ if (unlikely(p && !have_same_root(current, p))) { 40805+ if (unlikely(!have_same_root(current, p))) {
41786+ read_unlock(&tasklist_lock); 40806+ read_unlock(&tasklist_lock);
41787+ rcu_read_unlock(); 40807+ rcu_read_unlock();
41788+ gr_log_noargs(GR_DONT_AUDIT, GR_UNIX_CHROOT_MSG); 40808+ gr_log_noargs(GR_DONT_AUDIT, GR_UNIX_CHROOT_MSG);
@@ -41925,8 +40945,6 @@ diff -urNp linux-2.6.38.3/grsecurity/grsec_chroot.c linux-2.6.38.3/grsecurity/gr
41925+ if (pid) { 40945+ if (pid) {
41926+ struct task_struct *p; 40946+ struct task_struct *p;
41927+ p = pid_task(pid, PIDTYPE_PID); 40947+ p = pid_task(pid, PIDTYPE_PID);
41928+ if (p == NULL)
41929+ goto unlock;
41930+ starttime = p->start_time.tv_sec; 40948+ starttime = p->start_time.tv_sec;
41931+ if (unlikely(!have_same_root(current, p) && 40949+ if (unlikely(!have_same_root(current, p) &&
41932+ time_before_eq((unsigned long)starttime, (unsigned long)shm_createtime))) { 40950+ time_before_eq((unsigned long)starttime, (unsigned long)shm_createtime))) {
@@ -41940,8 +40958,6 @@ diff -urNp linux-2.6.38.3/grsecurity/grsec_chroot.c linux-2.6.38.3/grsecurity/gr
41940+ if (pid) { 40958+ if (pid) {
41941+ struct task_struct *p; 40959+ struct task_struct *p;
41942+ p = pid_task(pid, PIDTYPE_PID); 40960+ p = pid_task(pid, PIDTYPE_PID);
41943+ if (p == NULL)
41944+ goto unlock;
41945+ if (unlikely(!have_same_root(current, p))) { 40961+ if (unlikely(!have_same_root(current, p))) {
41946+ read_unlock(&tasklist_lock); 40962+ read_unlock(&tasklist_lock);
41947+ rcu_read_unlock(); 40963+ rcu_read_unlock();
@@ -41950,7 +40966,7 @@ diff -urNp linux-2.6.38.3/grsecurity/grsec_chroot.c linux-2.6.38.3/grsecurity/gr
41950+ } 40966+ }
41951+ } 40967+ }
41952+ } 40968+ }
41953+unlock: 40969+
41954+ read_unlock(&tasklist_lock); 40970+ read_unlock(&tasklist_lock);
41955+ rcu_read_unlock(); 40971+ rcu_read_unlock();
41956+#endif 40972+#endif
@@ -42088,9 +41104,9 @@ diff -urNp linux-2.6.38.3/grsecurity/grsec_chroot.c linux-2.6.38.3/grsecurity/gr
42088+#ifdef CONFIG_SECURITY 41104+#ifdef CONFIG_SECURITY
42089+EXPORT_SYMBOL(gr_handle_chroot_caps); 41105+EXPORT_SYMBOL(gr_handle_chroot_caps);
42090+#endif 41106+#endif
42091diff -urNp linux-2.6.38.3/grsecurity/grsec_disabled.c linux-2.6.38.3/grsecurity/grsec_disabled.c 41107diff -urNp linux-2.6.38.2/grsecurity/grsec_disabled.c linux-2.6.38.2/grsecurity/grsec_disabled.c
42092--- linux-2.6.38.3/grsecurity/grsec_disabled.c 1969-12-31 19:00:00.000000000 -0500 41108--- linux-2.6.38.2/grsecurity/grsec_disabled.c 1969-12-31 19:00:00.000000000 -0500
42093+++ linux-2.6.38.3/grsecurity/grsec_disabled.c 2011-04-17 15:57:32.000000000 -0400 41109+++ linux-2.6.38.2/grsecurity/grsec_disabled.c 2011-03-25 18:57:41.000000000 -0400
42094@@ -0,0 +1,447 @@ 41110@@ -0,0 +1,447 @@
42095+#include <linux/kernel.h> 41111+#include <linux/kernel.h>
42096+#include <linux/module.h> 41112+#include <linux/module.h>
@@ -42539,9 +41555,9 @@ diff -urNp linux-2.6.38.3/grsecurity/grsec_disabled.c linux-2.6.38.3/grsecurity/
42539+EXPORT_SYMBOL(gr_check_user_change); 41555+EXPORT_SYMBOL(gr_check_user_change);
42540+EXPORT_SYMBOL(gr_check_group_change); 41556+EXPORT_SYMBOL(gr_check_group_change);
42541+#endif 41557+#endif
42542diff -urNp linux-2.6.38.3/grsecurity/grsec_exec.c linux-2.6.38.3/grsecurity/grsec_exec.c 41558diff -urNp linux-2.6.38.2/grsecurity/grsec_exec.c linux-2.6.38.2/grsecurity/grsec_exec.c
42543--- linux-2.6.38.3/grsecurity/grsec_exec.c 1969-12-31 19:00:00.000000000 -0500 41559--- linux-2.6.38.2/grsecurity/grsec_exec.c 1969-12-31 19:00:00.000000000 -0500
42544+++ linux-2.6.38.3/grsecurity/grsec_exec.c 2011-04-17 15:57:32.000000000 -0400 41560+++ linux-2.6.38.2/grsecurity/grsec_exec.c 2011-03-21 18:31:35.000000000 -0400
42545@@ -0,0 +1,147 @@ 41561@@ -0,0 +1,147 @@
42546+#include <linux/kernel.h> 41562+#include <linux/kernel.h>
42547+#include <linux/sched.h> 41563+#include <linux/sched.h>
@@ -42690,9 +41706,9 @@ diff -urNp linux-2.6.38.3/grsecurity/grsec_exec.c linux-2.6.38.3/grsecurity/grse
42690+ return; 41706+ return;
42691+} 41707+}
42692+#endif 41708+#endif
42693diff -urNp linux-2.6.38.3/grsecurity/grsec_fifo.c linux-2.6.38.3/grsecurity/grsec_fifo.c 41709diff -urNp linux-2.6.38.2/grsecurity/grsec_fifo.c linux-2.6.38.2/grsecurity/grsec_fifo.c
42694--- linux-2.6.38.3/grsecurity/grsec_fifo.c 1969-12-31 19:00:00.000000000 -0500 41710--- linux-2.6.38.2/grsecurity/grsec_fifo.c 1969-12-31 19:00:00.000000000 -0500
42695+++ linux-2.6.38.3/grsecurity/grsec_fifo.c 2011-04-17 15:57:32.000000000 -0400 41711+++ linux-2.6.38.2/grsecurity/grsec_fifo.c 2011-03-21 20:33:29.000000000 -0400
42696@@ -0,0 +1,24 @@ 41712@@ -0,0 +1,24 @@
42697+#include <linux/kernel.h> 41713+#include <linux/kernel.h>
42698+#include <linux/sched.h> 41714+#include <linux/sched.h>
@@ -42718,9 +41734,9 @@ diff -urNp linux-2.6.38.3/grsecurity/grsec_fifo.c linux-2.6.38.3/grsecurity/grse
42718+#endif 41734+#endif
42719+ return 0; 41735+ return 0;
42720+} 41736+}
42721diff -urNp linux-2.6.38.3/grsecurity/grsec_fork.c linux-2.6.38.3/grsecurity/grsec_fork.c 41737diff -urNp linux-2.6.38.2/grsecurity/grsec_fork.c linux-2.6.38.2/grsecurity/grsec_fork.c
42722--- linux-2.6.38.3/grsecurity/grsec_fork.c 1969-12-31 19:00:00.000000000 -0500 41738--- linux-2.6.38.2/grsecurity/grsec_fork.c 1969-12-31 19:00:00.000000000 -0500
42723+++ linux-2.6.38.3/grsecurity/grsec_fork.c 2011-04-17 15:57:32.000000000 -0400 41739+++ linux-2.6.38.2/grsecurity/grsec_fork.c 2011-03-21 18:31:35.000000000 -0400
42724@@ -0,0 +1,23 @@ 41740@@ -0,0 +1,23 @@
42725+#include <linux/kernel.h> 41741+#include <linux/kernel.h>
42726+#include <linux/sched.h> 41742+#include <linux/sched.h>
@@ -42745,9 +41761,9 @@ diff -urNp linux-2.6.38.3/grsecurity/grsec_fork.c linux-2.6.38.3/grsecurity/grse
42745+#endif 41761+#endif
42746+ return; 41762+ return;
42747+} 41763+}
42748diff -urNp linux-2.6.38.3/grsecurity/grsec_init.c linux-2.6.38.3/grsecurity/grsec_init.c 41764diff -urNp linux-2.6.38.2/grsecurity/grsec_init.c linux-2.6.38.2/grsecurity/grsec_init.c
42749--- linux-2.6.38.3/grsecurity/grsec_init.c 1969-12-31 19:00:00.000000000 -0500 41765--- linux-2.6.38.2/grsecurity/grsec_init.c 1969-12-31 19:00:00.000000000 -0500
42750+++ linux-2.6.38.3/grsecurity/grsec_init.c 2011-04-17 15:57:32.000000000 -0400 41766+++ linux-2.6.38.2/grsecurity/grsec_init.c 2011-03-21 18:31:35.000000000 -0400
42751@@ -0,0 +1,270 @@ 41767@@ -0,0 +1,270 @@
42752+#include <linux/kernel.h> 41768+#include <linux/kernel.h>
42753+#include <linux/sched.h> 41769+#include <linux/sched.h>
@@ -43019,9 +42035,9 @@ diff -urNp linux-2.6.38.3/grsecurity/grsec_init.c linux-2.6.38.3/grsecurity/grse
43019+ 42035+
43020+ return; 42036+ return;
43021+} 42037+}
43022diff -urNp linux-2.6.38.3/grsecurity/grsec_link.c linux-2.6.38.3/grsecurity/grsec_link.c 42038diff -urNp linux-2.6.38.2/grsecurity/grsec_link.c linux-2.6.38.2/grsecurity/grsec_link.c
43023--- linux-2.6.38.3/grsecurity/grsec_link.c 1969-12-31 19:00:00.000000000 -0500 42039--- linux-2.6.38.2/grsecurity/grsec_link.c 1969-12-31 19:00:00.000000000 -0500
43024+++ linux-2.6.38.3/grsecurity/grsec_link.c 2011-04-17 15:57:32.000000000 -0400 42040+++ linux-2.6.38.2/grsecurity/grsec_link.c 2011-03-21 20:34:41.000000000 -0400
43025@@ -0,0 +1,43 @@ 42041@@ -0,0 +1,43 @@
43026+#include <linux/kernel.h> 42042+#include <linux/kernel.h>
43027+#include <linux/sched.h> 42043+#include <linux/sched.h>
@@ -43066,9 +42082,9 @@ diff -urNp linux-2.6.38.3/grsecurity/grsec_link.c linux-2.6.38.3/grsecurity/grse
43066+#endif 42082+#endif
43067+ return 0; 42083+ return 0;
43068+} 42084+}
43069diff -urNp linux-2.6.38.3/grsecurity/grsec_log.c linux-2.6.38.3/grsecurity/grsec_log.c 42085diff -urNp linux-2.6.38.2/grsecurity/grsec_log.c linux-2.6.38.2/grsecurity/grsec_log.c
43070--- linux-2.6.38.3/grsecurity/grsec_log.c 1969-12-31 19:00:00.000000000 -0500 42086--- linux-2.6.38.2/grsecurity/grsec_log.c 1969-12-31 19:00:00.000000000 -0500
43071+++ linux-2.6.38.3/grsecurity/grsec_log.c 2011-04-17 15:57:32.000000000 -0400 42087+++ linux-2.6.38.2/grsecurity/grsec_log.c 2011-03-21 18:31:35.000000000 -0400
43072@@ -0,0 +1,310 @@ 42088@@ -0,0 +1,310 @@
43073+#include <linux/kernel.h> 42089+#include <linux/kernel.h>
43074+#include <linux/sched.h> 42090+#include <linux/sched.h>
@@ -43380,10 +42396,10 @@ diff -urNp linux-2.6.38.3/grsecurity/grsec_log.c linux-2.6.38.3/grsecurity/grsec
43380+ gr_log_end(audit); 42396+ gr_log_end(audit);
43381+ END_LOCKS(audit); 42397+ END_LOCKS(audit);
43382+} 42398+}
43383diff -urNp linux-2.6.38.3/grsecurity/grsec_mem.c linux-2.6.38.3/grsecurity/grsec_mem.c 42399diff -urNp linux-2.6.38.2/grsecurity/grsec_mem.c linux-2.6.38.2/grsecurity/grsec_mem.c
43384--- linux-2.6.38.3/grsecurity/grsec_mem.c 1969-12-31 19:00:00.000000000 -0500 42400--- linux-2.6.38.2/grsecurity/grsec_mem.c 1969-12-31 19:00:00.000000000 -0500
43385+++ linux-2.6.38.3/grsecurity/grsec_mem.c 2011-04-17 15:57:32.000000000 -0400 42401+++ linux-2.6.38.2/grsecurity/grsec_mem.c 2011-03-26 14:40:33.000000000 -0400
43386@@ -0,0 +1,33 @@ 42402@@ -0,0 +1,100 @@
43387+#include <linux/kernel.h> 42403+#include <linux/kernel.h>
43388+#include <linux/sched.h> 42404+#include <linux/sched.h>
43389+#include <linux/mm.h> 42405+#include <linux/mm.h>
@@ -43405,21 +42421,88 @@ diff -urNp linux-2.6.38.3/grsecurity/grsec_mem.c linux-2.6.38.3/grsecurity/grsec
43405+} 42421+}
43406+ 42422+
43407+void 42423+void
43408+gr_handle_mem_readwrite(u64 from, u64 to) 42424+gr_handle_mem_write(void)
43409+{ 42425+{
43410+ gr_log_two_u64(GR_DONT_AUDIT, GR_MEM_READWRITE_MSG, from, to); 42426+ gr_log_noargs(GR_DONT_AUDIT, GR_MEM_WRITE_MSG);
43411+ return; 42427+ return;
43412+} 42428+}
43413+ 42429+
43414+void 42430+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
43415+gr_handle_vm86(void) 42498+gr_handle_vm86(void)
43416+{ 42499+{
43417+ gr_log_noargs(GR_DONT_AUDIT, GR_VM86_MSG); 42500+ gr_log_noargs(GR_DONT_AUDIT, GR_VM86_MSG);
43418+ return; 42501+ return;
43419+} 42502+}
43420diff -urNp linux-2.6.38.3/grsecurity/grsec_mount.c linux-2.6.38.3/grsecurity/grsec_mount.c 42503diff -urNp linux-2.6.38.2/grsecurity/grsec_mount.c linux-2.6.38.2/grsecurity/grsec_mount.c
43421--- linux-2.6.38.3/grsecurity/grsec_mount.c 1969-12-31 19:00:00.000000000 -0500 42504--- linux-2.6.38.2/grsecurity/grsec_mount.c 1969-12-31 19:00:00.000000000 -0500
43422+++ linux-2.6.38.3/grsecurity/grsec_mount.c 2011-04-17 15:57:32.000000000 -0400 42505+++ linux-2.6.38.2/grsecurity/grsec_mount.c 2011-03-21 18:31:35.000000000 -0400
43423@@ -0,0 +1,62 @@ 42506@@ -0,0 +1,62 @@
43424+#include <linux/kernel.h> 42507+#include <linux/kernel.h>
43425+#include <linux/sched.h> 42508+#include <linux/sched.h>
@@ -43483,9 +42566,9 @@ diff -urNp linux-2.6.38.3/grsecurity/grsec_mount.c linux-2.6.38.3/grsecurity/grs
43483+#endif 42566+#endif
43484+ return 0; 42567+ return 0;
43485+} 42568+}
43486diff -urNp linux-2.6.38.3/grsecurity/grsec_pax.c linux-2.6.38.3/grsecurity/grsec_pax.c 42569diff -urNp linux-2.6.38.2/grsecurity/grsec_pax.c linux-2.6.38.2/grsecurity/grsec_pax.c
43487--- linux-2.6.38.3/grsecurity/grsec_pax.c 1969-12-31 19:00:00.000000000 -0500 42570--- linux-2.6.38.2/grsecurity/grsec_pax.c 1969-12-31 19:00:00.000000000 -0500
43488+++ linux-2.6.38.3/grsecurity/grsec_pax.c 2011-04-17 15:57:32.000000000 -0400 42571+++ linux-2.6.38.2/grsecurity/grsec_pax.c 2011-03-21 18:31:35.000000000 -0400
43489@@ -0,0 +1,36 @@ 42572@@ -0,0 +1,36 @@
43490+#include <linux/kernel.h> 42573+#include <linux/kernel.h>
43491+#include <linux/sched.h> 42574+#include <linux/sched.h>
@@ -43523,9 +42606,9 @@ diff -urNp linux-2.6.38.3/grsecurity/grsec_pax.c linux-2.6.38.3/grsecurity/grsec
43523+#endif 42606+#endif
43524+ return; 42607+ return;
43525+} 42608+}
43526diff -urNp linux-2.6.38.3/grsecurity/grsec_ptrace.c linux-2.6.38.3/grsecurity/grsec_ptrace.c 42609diff -urNp linux-2.6.38.2/grsecurity/grsec_ptrace.c linux-2.6.38.2/grsecurity/grsec_ptrace.c
43527--- linux-2.6.38.3/grsecurity/grsec_ptrace.c 1969-12-31 19:00:00.000000000 -0500 42610--- linux-2.6.38.2/grsecurity/grsec_ptrace.c 1969-12-31 19:00:00.000000000 -0500
43528+++ linux-2.6.38.3/grsecurity/grsec_ptrace.c 2011-04-17 15:57:32.000000000 -0400 42611+++ linux-2.6.38.2/grsecurity/grsec_ptrace.c 2011-03-21 18:31:35.000000000 -0400
43529@@ -0,0 +1,14 @@ 42612@@ -0,0 +1,14 @@
43530+#include <linux/kernel.h> 42613+#include <linux/kernel.h>
43531+#include <linux/sched.h> 42614+#include <linux/sched.h>
@@ -43541,16 +42624,15 @@ diff -urNp linux-2.6.38.3/grsecurity/grsec_ptrace.c linux-2.6.38.3/grsecurity/gr
43541+#endif 42624+#endif
43542+ return; 42625+ return;
43543+} 42626+}
43544diff -urNp linux-2.6.38.3/grsecurity/grsec_sig.c linux-2.6.38.3/grsecurity/grsec_sig.c 42627diff -urNp linux-2.6.38.2/grsecurity/grsec_sig.c linux-2.6.38.2/grsecurity/grsec_sig.c
43545--- linux-2.6.38.3/grsecurity/grsec_sig.c 1969-12-31 19:00:00.000000000 -0500 42628--- linux-2.6.38.2/grsecurity/grsec_sig.c 1969-12-31 19:00:00.000000000 -0500
43546+++ linux-2.6.38.3/grsecurity/grsec_sig.c 2011-04-17 15:57:32.000000000 -0400 42629+++ linux-2.6.38.2/grsecurity/grsec_sig.c 2011-03-26 19:58:27.000000000 -0400
43547@@ -0,0 +1,197 @@ 42630@@ -0,0 +1,65 @@
43548+#include <linux/kernel.h> 42631+#include <linux/kernel.h>
43549+#include <linux/sched.h> 42632+#include <linux/sched.h>
43550+#include <linux/delay.h> 42633+#include <linux/delay.h>
43551+#include <linux/grsecurity.h> 42634+#include <linux/grsecurity.h>
43552+#include <linux/grinternal.h> 42635+#include <linux/grinternal.h>
43553+#include <linux/hardirq.h>
43554+ 42636+
43555+char *signames[] = { 42637+char *signames[] = {
43556+ [SIGSEGV] = "Segmentation fault", 42638+ [SIGSEGV] = "Segmentation fault",
@@ -43589,91 +42671,15 @@ diff -urNp linux-2.6.38.3/grsecurity/grsec_sig.c linux-2.6.38.3/grsecurity/grsec
43589+ return 0; 42671+ return 0;
43590+} 42672+}
43591+ 42673+
43592+#ifdef CONFIG_GRKERNSEC 42674+void gr_handle_brute_attach(struct task_struct *p)
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)
43635+{ 42675+{
43636+#ifdef CONFIG_GRKERNSEC_BRUTE 42676+#ifdef CONFIG_GRKERNSEC_BRUTE
43637+ uid_t uid = 0;
43638+
43639+ rcu_read_lock();
43640+ read_lock(&tasklist_lock); 42677+ read_lock(&tasklist_lock);
43641+ read_lock(&grsec_exec_file_lock); 42678+ read_lock(&grsec_exec_file_lock);
43642+ if (p->real_parent && p->real_parent->exec_file == p->exec_file) 42679+ if (p->real_parent && p->real_parent->exec_file == p->exec_file)
43643+ p->real_parent->brute = 1; 42680+ 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:
43670+ read_unlock(&grsec_exec_file_lock); 42681+ read_unlock(&grsec_exec_file_lock);
43671+ read_unlock(&tasklist_lock); 42682+ 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+
43677+#endif 42683+#endif
43678+ return; 42684+ return;
43679+} 42685+}
@@ -43687,64 +42693,9 @@ diff -urNp linux-2.6.38.3/grsecurity/grsec_sig.c linux-2.6.38.3/grsecurity/grsec
43687+ return; 42693+ return;
43688+} 42694+}
43689+ 42695+
43690+void gr_handle_kernel_exploit(void) 42696diff -urNp linux-2.6.38.2/grsecurity/grsec_sock.c linux-2.6.38.2/grsecurity/grsec_sock.c
43691+{ 42697--- linux-2.6.38.2/grsecurity/grsec_sock.c 1969-12-31 19:00:00.000000000 -0500
43692+#ifdef CONFIG_GRKERNSEC_KERN_LOCKOUT 42698+++ linux-2.6.38.2/grsecurity/grsec_sock.c 2011-03-21 18:31:35.000000000 -0400
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
43748@@ -0,0 +1,275 @@ 42699@@ -0,0 +1,275 @@
43749+#include <linux/kernel.h> 42700+#include <linux/kernel.h>
43750+#include <linux/module.h> 42701+#include <linux/module.h>
@@ -44021,9 +42972,9 @@ diff -urNp linux-2.6.38.3/grsecurity/grsec_sock.c linux-2.6.38.3/grsecurity/grse
44021+ return current_cap(); 42972+ return current_cap();
44022+#endif 42973+#endif
44023+} 42974+}
44024diff -urNp linux-2.6.38.3/grsecurity/grsec_sysctl.c linux-2.6.38.3/grsecurity/grsec_sysctl.c 42975diff -urNp linux-2.6.38.2/grsecurity/grsec_sysctl.c linux-2.6.38.2/grsecurity/grsec_sysctl.c
44025--- linux-2.6.38.3/grsecurity/grsec_sysctl.c 1969-12-31 19:00:00.000000000 -0500 42976--- linux-2.6.38.2/grsecurity/grsec_sysctl.c 1969-12-31 19:00:00.000000000 -0500
44026+++ linux-2.6.38.3/grsecurity/grsec_sysctl.c 2011-04-17 15:57:32.000000000 -0400 42977+++ linux-2.6.38.2/grsecurity/grsec_sysctl.c 2011-03-21 18:31:35.000000000 -0400
44027@@ -0,0 +1,433 @@ 42978@@ -0,0 +1,433 @@
44028+#include <linux/kernel.h> 42979+#include <linux/kernel.h>
44029+#include <linux/sched.h> 42980+#include <linux/sched.h>
@@ -44458,9 +43409,9 @@ diff -urNp linux-2.6.38.3/grsecurity/grsec_sysctl.c linux-2.6.38.3/grsecurity/gr
44458+ { } 43409+ { }
44459+}; 43410+};
44460+#endif 43411+#endif
44461diff -urNp linux-2.6.38.3/grsecurity/grsec_time.c linux-2.6.38.3/grsecurity/grsec_time.c 43412diff -urNp linux-2.6.38.2/grsecurity/grsec_time.c linux-2.6.38.2/grsecurity/grsec_time.c
44462--- linux-2.6.38.3/grsecurity/grsec_time.c 1969-12-31 19:00:00.000000000 -0500 43413--- linux-2.6.38.2/grsecurity/grsec_time.c 1969-12-31 19:00:00.000000000 -0500
44463+++ linux-2.6.38.3/grsecurity/grsec_time.c 2011-04-17 15:57:32.000000000 -0400 43414+++ linux-2.6.38.2/grsecurity/grsec_time.c 2011-03-21 18:31:35.000000000 -0400
44464@@ -0,0 +1,16 @@ 43415@@ -0,0 +1,16 @@
44465+#include <linux/kernel.h> 43416+#include <linux/kernel.h>
44466+#include <linux/sched.h> 43417+#include <linux/sched.h>
@@ -44478,9 +43429,9 @@ diff -urNp linux-2.6.38.3/grsecurity/grsec_time.c linux-2.6.38.3/grsecurity/grse
44478+} 43429+}
44479+ 43430+
44480+EXPORT_SYMBOL(gr_log_timechange); 43431+EXPORT_SYMBOL(gr_log_timechange);
44481diff -urNp linux-2.6.38.3/grsecurity/grsec_tpe.c linux-2.6.38.3/grsecurity/grsec_tpe.c 43432diff -urNp linux-2.6.38.2/grsecurity/grsec_tpe.c linux-2.6.38.2/grsecurity/grsec_tpe.c
44482--- linux-2.6.38.3/grsecurity/grsec_tpe.c 1969-12-31 19:00:00.000000000 -0500 43433--- linux-2.6.38.2/grsecurity/grsec_tpe.c 1969-12-31 19:00:00.000000000 -0500
44483+++ linux-2.6.38.3/grsecurity/grsec_tpe.c 2011-04-17 15:57:32.000000000 -0400 43434+++ linux-2.6.38.2/grsecurity/grsec_tpe.c 2011-03-21 18:31:35.000000000 -0400
44484@@ -0,0 +1,39 @@ 43435@@ -0,0 +1,39 @@
44485+#include <linux/kernel.h> 43436+#include <linux/kernel.h>
44486+#include <linux/sched.h> 43437+#include <linux/sched.h>
@@ -44521,9 +43472,9 @@ diff -urNp linux-2.6.38.3/grsecurity/grsec_tpe.c linux-2.6.38.3/grsecurity/grsec
44521+#endif 43472+#endif
44522+ return 1; 43473+ return 1;
44523+} 43474+}
44524diff -urNp linux-2.6.38.3/grsecurity/grsum.c linux-2.6.38.3/grsecurity/grsum.c 43475diff -urNp linux-2.6.38.2/grsecurity/grsum.c linux-2.6.38.2/grsecurity/grsum.c
44525--- linux-2.6.38.3/grsecurity/grsum.c 1969-12-31 19:00:00.000000000 -0500 43476--- linux-2.6.38.2/grsecurity/grsum.c 1969-12-31 19:00:00.000000000 -0500
44526+++ linux-2.6.38.3/grsecurity/grsum.c 2011-04-17 15:57:32.000000000 -0400 43477+++ linux-2.6.38.2/grsecurity/grsum.c 2011-03-21 18:31:35.000000000 -0400
44527@@ -0,0 +1,61 @@ 43478@@ -0,0 +1,61 @@
44528+#include <linux/err.h> 43479+#include <linux/err.h>
44529+#include <linux/kernel.h> 43480+#include <linux/kernel.h>
@@ -44586,10 +43537,10 @@ diff -urNp linux-2.6.38.3/grsecurity/grsum.c linux-2.6.38.3/grsecurity/grsum.c
44586+ 43537+
44587+ return retval; 43538+ return retval;
44588+} 43539+}
44589diff -urNp linux-2.6.38.3/grsecurity/Kconfig linux-2.6.38.3/grsecurity/Kconfig 43540diff -urNp linux-2.6.38.2/grsecurity/Kconfig linux-2.6.38.2/grsecurity/Kconfig
44590--- linux-2.6.38.3/grsecurity/Kconfig 1969-12-31 19:00:00.000000000 -0500 43541--- linux-2.6.38.2/grsecurity/Kconfig 1969-12-31 19:00:00.000000000 -0500
44591+++ linux-2.6.38.3/grsecurity/Kconfig 2011-04-17 15:57:32.000000000 -0400 43542+++ linux-2.6.38.2/grsecurity/Kconfig 2011-03-26 19:54:37.000000000 -0400
44592@@ -0,0 +1,1045 @@ 43543@@ -0,0 +1,1020 @@
44593+# 43544+#
44594+# grecurity configuration 43545+# grecurity configuration
44595+# 43546+#
@@ -44732,7 +43683,6 @@ diff -urNp linux-2.6.38.3/grsecurity/Kconfig linux-2.6.38.3/grsecurity/Kconfig
44732+ select GRKERNSEC_MODHARDEN if (MODULES) 43683+ select GRKERNSEC_MODHARDEN if (MODULES)
44733+ select GRKERNSEC_HARDEN_PTRACE 43684+ select GRKERNSEC_HARDEN_PTRACE
44734+ select GRKERNSEC_VM86 if (X86_32) 43685+ select GRKERNSEC_VM86 if (X86_32)
44735+ select GRKERNSEC_KERN_LOCKOUT if (X86)
44736+ select PAX 43686+ select PAX
44737+ select PAX_RANDUSTACK 43687+ select PAX_RANDUSTACK
44738+ select PAX_ASLR 43688+ select PAX_ASLR
@@ -44744,7 +43694,7 @@ diff -urNp linux-2.6.38.3/grsecurity/Kconfig linux-2.6.38.3/grsecurity/Kconfig
44744+ select PAX_HAVE_ACL_FLAGS 43694+ select PAX_HAVE_ACL_FLAGS
44745+ select PAX_KERNEXEC if ((PPC || X86) && (!X86_32 || X86_WP_WORKS_OK) && !XEN) 43695+ select PAX_KERNEXEC if ((PPC || X86) && (!X86_32 || X86_WP_WORKS_OK) && !XEN)
44746+ select PAX_MEMORY_UDEREF if (X86 && !XEN) 43696+ select PAX_MEMORY_UDEREF if (X86 && !XEN)
44747+ select PAX_RANDKSTACK if (X86_TSC && X86) 43697+ select PAX_RANDKSTACK if (X86_TSC && !X86_64)
44748+ select PAX_SEGMEXEC if (X86_32) 43698+ select PAX_SEGMEXEC if (X86_32)
44749+ select PAX_PAGEEXEC 43699+ select PAX_PAGEEXEC
44750+ select PAX_EMUPLT if (ALPHA || PARISC || SPARC32 || SPARC64) 43700+ select PAX_EMUPLT if (ALPHA || PARISC || SPARC32 || SPARC64)
@@ -44785,7 +43735,6 @@ diff -urNp linux-2.6.38.3/grsecurity/Kconfig linux-2.6.38.3/grsecurity/Kconfig
44785+ - Ptrace restrictions 43735+ - Ptrace restrictions
44786+ - Restricted vm86 mode 43736+ - Restricted vm86 mode
44787+ - Restricted sysfs/debugfs 43737+ - Restricted sysfs/debugfs
44788+ - Active kernel exploit response
44789+ 43738+
44790+config GRKERNSEC_CUSTOM 43739+config GRKERNSEC_CUSTOM
44791+ bool "Custom" 43740+ bool "Custom"
@@ -44804,7 +43753,6 @@ diff -urNp linux-2.6.38.3/grsecurity/Kconfig linux-2.6.38.3/grsecurity/Kconfig
44804+ 43753+
44805+config GRKERNSEC_KMEM 43754+config GRKERNSEC_KMEM
44806+ bool "Deny writing to /dev/kmem, /dev/mem, and /dev/port" 43755+ bool "Deny writing to /dev/kmem, /dev/mem, and /dev/port"
44807+ select STRICT_DEVMEM if (X86 || ARM || TILE || S390)
44808+ help 43756+ help
44809+ If you say Y here, /dev/kmem and /dev/mem won't be allowed to 43757+ If you say Y here, /dev/kmem and /dev/mem won't be allowed to
44810+ be written to via mmap or otherwise to modify the running kernel. 43758+ be written to via mmap or otherwise to modify the running kernel.
@@ -44871,18 +43819,13 @@ diff -urNp linux-2.6.38.3/grsecurity/Kconfig linux-2.6.38.3/grsecurity/Kconfig
44871+ bool "Deter exploit bruteforcing" 43819+ bool "Deter exploit bruteforcing"
44872+ help 43820+ help
44873+ If you say Y here, attempts to bruteforce exploits against forking 43821+ If you say Y here, attempts to bruteforce exploits against forking
44874+ daemons such as apache or sshd, as well as against suid/sgid binaries 43822+ daemons such as apache or sshd will be deterred. When a child of a
44875+ will be deterred. When a child of a forking daemon is killed by PaX 43823+ forking daemon is killed by PaX or crashes due to an illegal
44876+ or crashes due to an illegal instruction or other suspicious signal, 43824+ instruction, the parent process will be delayed 30 seconds upon every
44877+ the parent process will be delayed 30 seconds upon every subsequent 43825+ subsequent fork until the administrator is able to assess the
44878+ fork until the administrator is able to assess the situation and 43826+ situation and restart the daemon. It is recommended that you also
44879+ restart the daemon. 43827+ enable signal logging in the auditing section so that logs are
44880+ In the suid/sgid case, the attempt is logged, the user has all their 43828+ generated when a process performs an illegal instruction.
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.
44886+ 43829+
44887+config GRKERNSEC_MODHARDEN 43830+config GRKERNSEC_MODHARDEN
44888+ bool "Harden module auto-loading" 43831+ bool "Harden module auto-loading"
@@ -44930,23 +43873,6 @@ diff -urNp linux-2.6.38.3/grsecurity/Kconfig linux-2.6.38.3/grsecurity/Kconfig
44930+ useful protection against local kernel exploitation of overflows 43873+ useful protection against local kernel exploitation of overflows
44931+ and arbitrary read/write vulnerabilities. 43874+ and arbitrary read/write vulnerabilities.
44932+ 43875+
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+
44950+endmenu 43876+endmenu
44951+menu "Role Based Access Control Options" 43877+menu "Role Based Access Control Options"
44952+depends on GRKERNSEC 43878+depends on GRKERNSEC
@@ -45635,9 +44561,9 @@ diff -urNp linux-2.6.38.3/grsecurity/Kconfig linux-2.6.38.3/grsecurity/Kconfig
45635+endmenu 44561+endmenu
45636+ 44562+
45637+endmenu 44563+endmenu
45638diff -urNp linux-2.6.38.3/grsecurity/Makefile linux-2.6.38.3/grsecurity/Makefile 44564diff -urNp linux-2.6.38.2/grsecurity/Makefile linux-2.6.38.2/grsecurity/Makefile
45639--- linux-2.6.38.3/grsecurity/Makefile 1969-12-31 19:00:00.000000000 -0500 44565--- linux-2.6.38.2/grsecurity/Makefile 1969-12-31 19:00:00.000000000 -0500
45640+++ linux-2.6.38.3/grsecurity/Makefile 2011-04-17 15:57:32.000000000 -0400 44566+++ linux-2.6.38.2/grsecurity/Makefile 2011-03-21 18:31:35.000000000 -0400
45641@@ -0,0 +1,29 @@ 44567@@ -0,0 +1,29 @@
45642+# grsecurity's ACL system was originally written in 2001 by Michael Dalton 44568+# grsecurity's ACL system was originally written in 2001 by Michael Dalton
45643+# during 2001-2009 it has been completely redesigned by Brad Spengler 44569+# during 2001-2009 it has been completely redesigned by Brad Spengler
@@ -45668,9 +44594,9 @@ diff -urNp linux-2.6.38.3/grsecurity/Makefile linux-2.6.38.3/grsecurity/Makefile
45668+ @-chmod -f 700 . 44594+ @-chmod -f 700 .
45669+ @echo ' grsec: protected kernel image paths' 44595+ @echo ' grsec: protected kernel image paths'
45670+endif 44596+endif
45671diff -urNp linux-2.6.38.3/include/acpi/acoutput.h linux-2.6.38.3/include/acpi/acoutput.h 44597diff -urNp linux-2.6.38.2/include/acpi/acoutput.h linux-2.6.38.2/include/acpi/acoutput.h
45672--- linux-2.6.38.3/include/acpi/acoutput.h 2011-03-14 21:20:32.000000000 -0400 44598--- linux-2.6.38.2/include/acpi/acoutput.h 2011-03-14 21:20:32.000000000 -0400
45673+++ linux-2.6.38.3/include/acpi/acoutput.h 2011-04-17 15:57:32.000000000 -0400 44599+++ linux-2.6.38.2/include/acpi/acoutput.h 2011-03-21 18:31:35.000000000 -0400
45674@@ -269,8 +269,8 @@ 44600@@ -269,8 +269,8 @@
45675 * leaving no executable debug code! 44601 * leaving no executable debug code!
45676 */ 44602 */
@@ -45682,9 +44608,9 @@ diff -urNp linux-2.6.38.3/include/acpi/acoutput.h linux-2.6.38.3/include/acpi/ac
45682 44608
45683 #endif /* ACPI_DEBUG_OUTPUT */ 44609 #endif /* ACPI_DEBUG_OUTPUT */
45684 44610
45685diff -urNp linux-2.6.38.3/include/acpi/acpi_drivers.h linux-2.6.38.3/include/acpi/acpi_drivers.h 44611diff -urNp linux-2.6.38.2/include/acpi/acpi_drivers.h linux-2.6.38.2/include/acpi/acpi_drivers.h
45686--- linux-2.6.38.3/include/acpi/acpi_drivers.h 2011-03-14 21:20:32.000000000 -0400 44612--- linux-2.6.38.2/include/acpi/acpi_drivers.h 2011-03-14 21:20:32.000000000 -0400
45687+++ linux-2.6.38.3/include/acpi/acpi_drivers.h 2011-04-17 15:57:32.000000000 -0400 44613+++ linux-2.6.38.2/include/acpi/acpi_drivers.h 2011-03-21 18:31:35.000000000 -0400
45688@@ -119,8 +119,8 @@ void pci_acpi_crs_quirks(void); 44614@@ -119,8 +119,8 @@ void pci_acpi_crs_quirks(void);
45689 Dock Station 44615 Dock Station
45690 -------------------------------------------------------------------------- */ 44616 -------------------------------------------------------------------------- */
@@ -45714,9 +44640,9 @@ diff -urNp linux-2.6.38.3/include/acpi/acpi_drivers.h linux-2.6.38.3/include/acp
45714 void *context) 44640 void *context)
45715 { 44641 {
45716 return -ENODEV; 44642 return -ENODEV;
45717diff -urNp linux-2.6.38.3/include/asm-generic/atomic-long.h linux-2.6.38.3/include/asm-generic/atomic-long.h 44643diff -urNp linux-2.6.38.2/include/asm-generic/atomic-long.h linux-2.6.38.2/include/asm-generic/atomic-long.h
45718--- linux-2.6.38.3/include/asm-generic/atomic-long.h 2011-03-14 21:20:32.000000000 -0400 44644--- linux-2.6.38.2/include/asm-generic/atomic-long.h 2011-03-14 21:20:32.000000000 -0400
45719+++ linux-2.6.38.3/include/asm-generic/atomic-long.h 2011-04-17 15:57:32.000000000 -0400 44645+++ linux-2.6.38.2/include/asm-generic/atomic-long.h 2011-03-21 18:31:35.000000000 -0400
45720@@ -22,6 +22,12 @@ 44646@@ -22,6 +22,12 @@
45721 44647
45722 typedef atomic64_t atomic_long_t; 44648 typedef atomic64_t atomic_long_t;
@@ -46009,9 +44935,9 @@ diff -urNp linux-2.6.38.3/include/asm-generic/atomic-long.h linux-2.6.38.3/inclu
46009+#endif 44935+#endif
46010+ 44936+
46011 #endif /* _ASM_GENERIC_ATOMIC_LONG_H */ 44937 #endif /* _ASM_GENERIC_ATOMIC_LONG_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 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
46013--- linux-2.6.38.3/include/asm-generic/dma-mapping-common.h 2011-03-14 21:20:32.000000000 -0400 44939--- linux-2.6.38.2/include/asm-generic/dma-mapping-common.h 2011-03-14 21:20:32.000000000 -0400
46014+++ linux-2.6.38.3/include/asm-generic/dma-mapping-common.h 2011-04-17 15:57:32.000000000 -0400 44940+++ linux-2.6.38.2/include/asm-generic/dma-mapping-common.h 2011-03-21 18:31:35.000000000 -0400
46015@@ -11,7 +11,7 @@ static inline dma_addr_t dma_map_single_ 44941@@ -11,7 +11,7 @@ static inline dma_addr_t dma_map_single_
46016 enum dma_data_direction dir, 44942 enum dma_data_direction dir,
46017 struct dma_attrs *attrs) 44943 struct dma_attrs *attrs)
@@ -46102,9 +45028,9 @@ diff -urNp linux-2.6.38.3/include/asm-generic/dma-mapping-common.h linux-2.6.38.
46102 45028
46103 BUG_ON(!valid_dma_direction(dir)); 45029 BUG_ON(!valid_dma_direction(dir));
46104 if (ops->sync_sg_for_device) 45030 if (ops->sync_sg_for_device)
46105diff -urNp linux-2.6.38.3/include/asm-generic/futex.h linux-2.6.38.3/include/asm-generic/futex.h 45031diff -urNp linux-2.6.38.2/include/asm-generic/futex.h linux-2.6.38.2/include/asm-generic/futex.h
46106--- linux-2.6.38.3/include/asm-generic/futex.h 2011-03-14 21:20:32.000000000 -0400 45032--- linux-2.6.38.2/include/asm-generic/futex.h 2011-03-14 21:20:32.000000000 -0400
46107+++ linux-2.6.38.3/include/asm-generic/futex.h 2011-04-17 15:57:32.000000000 -0400 45033+++ linux-2.6.38.2/include/asm-generic/futex.h 2011-03-21 18:31:35.000000000 -0400
46108@@ -6,7 +6,7 @@ 45034@@ -6,7 +6,7 @@
46109 #include <asm/errno.h> 45035 #include <asm/errno.h>
46110 45036
@@ -46123,9 +45049,9 @@ diff -urNp linux-2.6.38.3/include/asm-generic/futex.h linux-2.6.38.3/include/asm
46123 { 45049 {
46124 return -ENOSYS; 45050 return -ENOSYS;
46125 } 45051 }
46126diff -urNp linux-2.6.38.3/include/asm-generic/int-l64.h linux-2.6.38.3/include/asm-generic/int-l64.h 45052diff -urNp linux-2.6.38.2/include/asm-generic/int-l64.h linux-2.6.38.2/include/asm-generic/int-l64.h
46127--- linux-2.6.38.3/include/asm-generic/int-l64.h 2011-03-14 21:20:32.000000000 -0400 45053--- linux-2.6.38.2/include/asm-generic/int-l64.h 2011-03-14 21:20:32.000000000 -0400
46128+++ linux-2.6.38.3/include/asm-generic/int-l64.h 2011-04-17 15:57:32.000000000 -0400 45054+++ linux-2.6.38.2/include/asm-generic/int-l64.h 2011-03-21 18:31:35.000000000 -0400
46129@@ -46,6 +46,8 @@ typedef unsigned int u32; 45055@@ -46,6 +46,8 @@ typedef unsigned int u32;
46130 typedef signed long s64; 45056 typedef signed long s64;
46131 typedef unsigned long u64; 45057 typedef unsigned long u64;
@@ -46135,9 +45061,9 @@ diff -urNp linux-2.6.38.3/include/asm-generic/int-l64.h linux-2.6.38.3/include/a
46135 #define S8_C(x) x 45061 #define S8_C(x) x
46136 #define U8_C(x) x ## U 45062 #define U8_C(x) x ## U
46137 #define S16_C(x) x 45063 #define S16_C(x) x
46138diff -urNp linux-2.6.38.3/include/asm-generic/int-ll64.h linux-2.6.38.3/include/asm-generic/int-ll64.h 45064diff -urNp linux-2.6.38.2/include/asm-generic/int-ll64.h linux-2.6.38.2/include/asm-generic/int-ll64.h
46139--- linux-2.6.38.3/include/asm-generic/int-ll64.h 2011-03-14 21:20:32.000000000 -0400 45065--- linux-2.6.38.2/include/asm-generic/int-ll64.h 2011-03-14 21:20:32.000000000 -0400
46140+++ linux-2.6.38.3/include/asm-generic/int-ll64.h 2011-04-17 15:57:32.000000000 -0400 45066+++ linux-2.6.38.2/include/asm-generic/int-ll64.h 2011-03-21 18:31:35.000000000 -0400
46141@@ -51,6 +51,8 @@ typedef unsigned int u32; 45067@@ -51,6 +51,8 @@ typedef unsigned int u32;
46142 typedef signed long long s64; 45068 typedef signed long long s64;
46143 typedef unsigned long long u64; 45069 typedef unsigned long long u64;
@@ -46147,9 +45073,9 @@ diff -urNp linux-2.6.38.3/include/asm-generic/int-ll64.h linux-2.6.38.3/include/
46147 #define S8_C(x) x 45073 #define S8_C(x) x
46148 #define U8_C(x) x ## U 45074 #define U8_C(x) x ## U
46149 #define S16_C(x) x 45075 #define S16_C(x) x
46150diff -urNp linux-2.6.38.3/include/asm-generic/kmap_types.h linux-2.6.38.3/include/asm-generic/kmap_types.h 45076diff -urNp linux-2.6.38.2/include/asm-generic/kmap_types.h linux-2.6.38.2/include/asm-generic/kmap_types.h
46151--- linux-2.6.38.3/include/asm-generic/kmap_types.h 2011-03-14 21:20:32.000000000 -0400 45077--- linux-2.6.38.2/include/asm-generic/kmap_types.h 2011-03-14 21:20:32.000000000 -0400
46152+++ linux-2.6.38.3/include/asm-generic/kmap_types.h 2011-04-17 15:57:32.000000000 -0400 45078+++ linux-2.6.38.2/include/asm-generic/kmap_types.h 2011-03-21 18:31:35.000000000 -0400
46153@@ -29,10 +29,11 @@ KMAP_D(16) KM_IRQ_PTE, 45079@@ -29,10 +29,11 @@ KMAP_D(16) KM_IRQ_PTE,
46154 KMAP_D(17) KM_NMI, 45080 KMAP_D(17) KM_NMI,
46155 KMAP_D(18) KM_NMI_PTE, 45081 KMAP_D(18) KM_NMI_PTE,
@@ -46163,9 +45089,9 @@ diff -urNp linux-2.6.38.3/include/asm-generic/kmap_types.h linux-2.6.38.3/includ
46163 }; 45089 };
46164 45090
46165 #undef KMAP_D 45091 #undef KMAP_D
46166diff -urNp linux-2.6.38.3/include/asm-generic/pgtable.h linux-2.6.38.3/include/asm-generic/pgtable.h 45092diff -urNp linux-2.6.38.2/include/asm-generic/pgtable.h linux-2.6.38.2/include/asm-generic/pgtable.h
46167--- linux-2.6.38.3/include/asm-generic/pgtable.h 2011-03-14 21:20:32.000000000 -0400 45093--- linux-2.6.38.2/include/asm-generic/pgtable.h 2011-03-14 21:20:32.000000000 -0400
46168+++ linux-2.6.38.3/include/asm-generic/pgtable.h 2011-04-17 15:57:32.000000000 -0400 45094+++ linux-2.6.38.2/include/asm-generic/pgtable.h 2011-03-21 18:31:35.000000000 -0400
46169@@ -447,6 +447,14 @@ static inline int pmd_write(pmd_t pmd) 45095@@ -447,6 +447,14 @@ static inline int pmd_write(pmd_t pmd)
46170 #endif /* __HAVE_ARCH_PMD_WRITE */ 45096 #endif /* __HAVE_ARCH_PMD_WRITE */
46171 #endif 45097 #endif
@@ -46181,9 +45107,9 @@ diff -urNp linux-2.6.38.3/include/asm-generic/pgtable.h linux-2.6.38.3/include/a
46181 #endif /* !__ASSEMBLY__ */ 45107 #endif /* !__ASSEMBLY__ */
46182 45108
46183 #endif /* _ASM_GENERIC_PGTABLE_H */ 45109 #endif /* _ASM_GENERIC_PGTABLE_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 45110diff -urNp linux-2.6.38.2/include/asm-generic/pgtable-nopmd.h linux-2.6.38.2/include/asm-generic/pgtable-nopmd.h
46185--- linux-2.6.38.3/include/asm-generic/pgtable-nopmd.h 2011-03-14 21:20:32.000000000 -0400 45111--- linux-2.6.38.2/include/asm-generic/pgtable-nopmd.h 2011-03-14 21:20:32.000000000 -0400
46186+++ linux-2.6.38.3/include/asm-generic/pgtable-nopmd.h 2011-04-17 15:57:32.000000000 -0400 45112+++ linux-2.6.38.2/include/asm-generic/pgtable-nopmd.h 2011-03-21 18:31:35.000000000 -0400
46187@@ -1,14 +1,19 @@ 45113@@ -1,14 +1,19 @@
46188 #ifndef _PGTABLE_NOPMD_H 45114 #ifndef _PGTABLE_NOPMD_H
46189 #define _PGTABLE_NOPMD_H 45115 #define _PGTABLE_NOPMD_H
@@ -46220,9 +45146,9 @@ diff -urNp linux-2.6.38.3/include/asm-generic/pgtable-nopmd.h linux-2.6.38.3/inc
46220 /* 45146 /*
46221 * The "pud_xxx()" functions here are trivial for a folded two-level 45147 * The "pud_xxx()" functions here are trivial for a folded two-level
46222 * setup: the pmd is never bad, and a pmd always exists (as it's folded 45148 * setup: the pmd is never bad, and a pmd always exists (as it's folded
46223diff -urNp linux-2.6.38.3/include/asm-generic/pgtable-nopud.h linux-2.6.38.3/include/asm-generic/pgtable-nopud.h 45149diff -urNp linux-2.6.38.2/include/asm-generic/pgtable-nopud.h linux-2.6.38.2/include/asm-generic/pgtable-nopud.h
46224--- linux-2.6.38.3/include/asm-generic/pgtable-nopud.h 2011-03-14 21:20:32.000000000 -0400 45150--- linux-2.6.38.2/include/asm-generic/pgtable-nopud.h 2011-03-14 21:20:32.000000000 -0400
46225+++ linux-2.6.38.3/include/asm-generic/pgtable-nopud.h 2011-04-17 15:57:32.000000000 -0400 45151+++ linux-2.6.38.2/include/asm-generic/pgtable-nopud.h 2011-03-21 18:31:35.000000000 -0400
46226@@ -1,10 +1,15 @@ 45152@@ -1,10 +1,15 @@
46227 #ifndef _PGTABLE_NOPUD_H 45153 #ifndef _PGTABLE_NOPUD_H
46228 #define _PGTABLE_NOPUD_H 45154 #define _PGTABLE_NOPUD_H
@@ -46253,9 +45179,9 @@ diff -urNp linux-2.6.38.3/include/asm-generic/pgtable-nopud.h linux-2.6.38.3/inc
46253 /* 45179 /*
46254 * The "pgd_xxx()" functions here are trivial for a folded two-level 45180 * The "pgd_xxx()" functions here are trivial for a folded two-level
46255 * setup: the pud is never bad, and a pud always exists (as it's folded 45181 * setup: the pud is never bad, and a pud always exists (as it's folded
46256diff -urNp linux-2.6.38.3/include/asm-generic/vmlinux.lds.h linux-2.6.38.3/include/asm-generic/vmlinux.lds.h 45182diff -urNp linux-2.6.38.2/include/asm-generic/vmlinux.lds.h linux-2.6.38.2/include/asm-generic/vmlinux.lds.h
46257--- linux-2.6.38.3/include/asm-generic/vmlinux.lds.h 2011-03-14 21:20:32.000000000 -0400 45183--- linux-2.6.38.2/include/asm-generic/vmlinux.lds.h 2011-03-14 21:20:32.000000000 -0400
46258+++ linux-2.6.38.3/include/asm-generic/vmlinux.lds.h 2011-04-17 15:57:32.000000000 -0400 45184+++ linux-2.6.38.2/include/asm-generic/vmlinux.lds.h 2011-03-21 18:31:35.000000000 -0400
46259@@ -213,6 +213,7 @@ 45185@@ -213,6 +213,7 @@
46260 .rodata : AT(ADDR(.rodata) - LOAD_OFFSET) { \ 45186 .rodata : AT(ADDR(.rodata) - LOAD_OFFSET) { \
46261 VMLINUX_SYMBOL(__start_rodata) = .; \ 45187 VMLINUX_SYMBOL(__start_rodata) = .; \
@@ -46292,19 +45218,19 @@ diff -urNp linux-2.6.38.3/include/asm-generic/vmlinux.lds.h linux-2.6.38.3/inclu
46292 45218
46293 /** 45219 /**
46294 * PERCPU - define output section for percpu area, simple version 45220 * PERCPU - define output section for percpu area, simple version
46295diff -urNp linux-2.6.38.3/include/drm/drm_pciids.h linux-2.6.38.3/include/drm/drm_pciids.h 45221diff -urNp linux-2.6.38.2/include/drm/drm_pciids.h linux-2.6.38.2/include/drm/drm_pciids.h
46296--- linux-2.6.38.3/include/drm/drm_pciids.h 2011-04-18 17:27:18.000000000 -0400 45222--- linux-2.6.38.2/include/drm/drm_pciids.h 2011-03-14 21:20:32.000000000 -0400
46297+++ linux-2.6.38.3/include/drm/drm_pciids.h 2011-04-17 16:58:34.000000000 -0400 45223+++ linux-2.6.38.2/include/drm/drm_pciids.h 2011-03-21 18:31:35.000000000 -0400
46298@@ -460,7 +460,7 @@ 45224@@ -458,7 +458,7 @@
45225 {0x1002, 0x9803, PCI_ANY_ID, PCI_ANY_ID, 0, 0, CHIP_PALM|RADEON_NEW_MEMMAP|RADEON_IS_IGP}, \
45226 {0x1002, 0x9804, PCI_ANY_ID, PCI_ANY_ID, 0, 0, CHIP_PALM|RADEON_NEW_MEMMAP|RADEON_IS_IGP}, \
46299 {0x1002, 0x9805, PCI_ANY_ID, PCI_ANY_ID, 0, 0, CHIP_PALM|RADEON_NEW_MEMMAP|RADEON_IS_IGP}, \ 45227 {0x1002, 0x9805, PCI_ANY_ID, PCI_ANY_ID, 0, 0, CHIP_PALM|RADEON_NEW_MEMMAP|RADEON_IS_IGP}, \
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}, \
46302- {0, 0, 0} 45228- {0, 0, 0}
46303+ {0, 0, 0, 0, 0, 0} 45229+ {0, 0, 0, 0, 0, 0}
46304 45230
46305 #define r128_PCI_IDS \ 45231 #define r128_PCI_IDS \
46306 {0x1002, 0x4c45, PCI_ANY_ID, PCI_ANY_ID, 0, 0, 0}, \ 45232 {0x1002, 0x4c45, PCI_ANY_ID, PCI_ANY_ID, 0, 0, 0}, \
46307@@ -500,14 +500,14 @@ 45233@@ -498,14 +498,14 @@
46308 {0x1002, 0x5446, PCI_ANY_ID, PCI_ANY_ID, 0, 0, 0}, \ 45234 {0x1002, 0x5446, PCI_ANY_ID, PCI_ANY_ID, 0, 0, 0}, \
46309 {0x1002, 0x544C, PCI_ANY_ID, PCI_ANY_ID, 0, 0, 0}, \ 45235 {0x1002, 0x544C, PCI_ANY_ID, PCI_ANY_ID, 0, 0, 0}, \
46310 {0x1002, 0x5452, PCI_ANY_ID, PCI_ANY_ID, 0, 0, 0}, \ 45236 {0x1002, 0x5452, PCI_ANY_ID, PCI_ANY_ID, 0, 0, 0}, \
@@ -46321,7 +45247,7 @@ diff -urNp linux-2.6.38.3/include/drm/drm_pciids.h linux-2.6.38.3/include/drm/dr
46321 45247
46322 #define mach64_PCI_IDS \ 45248 #define mach64_PCI_IDS \
46323 {0x1002, 0x4749, PCI_ANY_ID, PCI_ANY_ID, 0, 0, 0}, \ 45249 {0x1002, 0x4749, PCI_ANY_ID, PCI_ANY_ID, 0, 0, 0}, \
46324@@ -530,7 +530,7 @@ 45250@@ -528,7 +528,7 @@
46325 {0x1002, 0x4c53, PCI_ANY_ID, PCI_ANY_ID, 0, 0, 0}, \ 45251 {0x1002, 0x4c53, PCI_ANY_ID, PCI_ANY_ID, 0, 0, 0}, \
46326 {0x1002, 0x4c4d, PCI_ANY_ID, PCI_ANY_ID, 0, 0, 0}, \ 45252 {0x1002, 0x4c4d, PCI_ANY_ID, PCI_ANY_ID, 0, 0, 0}, \
46327 {0x1002, 0x4c4e, PCI_ANY_ID, PCI_ANY_ID, 0, 0, 0}, \ 45253 {0x1002, 0x4c4e, PCI_ANY_ID, PCI_ANY_ID, 0, 0, 0}, \
@@ -46330,7 +45256,7 @@ diff -urNp linux-2.6.38.3/include/drm/drm_pciids.h linux-2.6.38.3/include/drm/dr
46330 45256
46331 #define sisdrv_PCI_IDS \ 45257 #define sisdrv_PCI_IDS \
46332 {0x1039, 0x0300, PCI_ANY_ID, PCI_ANY_ID, 0, 0, 0}, \ 45258 {0x1039, 0x0300, PCI_ANY_ID, PCI_ANY_ID, 0, 0, 0}, \
46333@@ -541,7 +541,7 @@ 45259@@ -539,7 +539,7 @@
46334 {0x1039, 0x7300, PCI_ANY_ID, PCI_ANY_ID, 0, 0, 0}, \ 45260 {0x1039, 0x7300, PCI_ANY_ID, PCI_ANY_ID, 0, 0, 0}, \
46335 {0x18CA, 0x0040, PCI_ANY_ID, PCI_ANY_ID, 0, 0, SIS_CHIP_315}, \ 45261 {0x18CA, 0x0040, PCI_ANY_ID, PCI_ANY_ID, 0, 0, SIS_CHIP_315}, \
46336 {0x18CA, 0x0042, PCI_ANY_ID, PCI_ANY_ID, 0, 0, SIS_CHIP_315}, \ 45262 {0x18CA, 0x0042, PCI_ANY_ID, PCI_ANY_ID, 0, 0, SIS_CHIP_315}, \
@@ -46339,7 +45265,7 @@ diff -urNp linux-2.6.38.3/include/drm/drm_pciids.h linux-2.6.38.3/include/drm/dr
46339 45265
46340 #define tdfx_PCI_IDS \ 45266 #define tdfx_PCI_IDS \
46341 {0x121a, 0x0003, PCI_ANY_ID, PCI_ANY_ID, 0, 0, 0}, \ 45267 {0x121a, 0x0003, PCI_ANY_ID, PCI_ANY_ID, 0, 0, 0}, \
46342@@ -550,7 +550,7 @@ 45268@@ -548,7 +548,7 @@
46343 {0x121a, 0x0007, PCI_ANY_ID, PCI_ANY_ID, 0, 0, 0}, \ 45269 {0x121a, 0x0007, PCI_ANY_ID, PCI_ANY_ID, 0, 0, 0}, \
46344 {0x121a, 0x0009, PCI_ANY_ID, PCI_ANY_ID, 0, 0, 0}, \ 45270 {0x121a, 0x0009, PCI_ANY_ID, PCI_ANY_ID, 0, 0, 0}, \
46345 {0x121a, 0x000b, PCI_ANY_ID, PCI_ANY_ID, 0, 0, 0}, \ 45271 {0x121a, 0x000b, PCI_ANY_ID, PCI_ANY_ID, 0, 0, 0}, \
@@ -46348,7 +45274,7 @@ diff -urNp linux-2.6.38.3/include/drm/drm_pciids.h linux-2.6.38.3/include/drm/dr
46348 45274
46349 #define viadrv_PCI_IDS \ 45275 #define viadrv_PCI_IDS \
46350 {0x1106, 0x3022, PCI_ANY_ID, PCI_ANY_ID, 0, 0, 0}, \ 45276 {0x1106, 0x3022, PCI_ANY_ID, PCI_ANY_ID, 0, 0, 0}, \
46351@@ -562,14 +562,14 @@ 45277@@ -560,14 +560,14 @@
46352 {0x1106, 0x3343, PCI_ANY_ID, PCI_ANY_ID, 0, 0, 0}, \ 45278 {0x1106, 0x3343, PCI_ANY_ID, PCI_ANY_ID, 0, 0, 0}, \
46353 {0x1106, 0x3230, PCI_ANY_ID, PCI_ANY_ID, 0, 0, VIA_DX9_0}, \ 45279 {0x1106, 0x3230, PCI_ANY_ID, PCI_ANY_ID, 0, 0, VIA_DX9_0}, \
46354 {0x1106, 0x3157, PCI_ANY_ID, PCI_ANY_ID, 0, 0, VIA_PRO_GROUP_A}, \ 45280 {0x1106, 0x3157, PCI_ANY_ID, PCI_ANY_ID, 0, 0, VIA_PRO_GROUP_A}, \
@@ -46365,7 +45291,7 @@ diff -urNp linux-2.6.38.3/include/drm/drm_pciids.h linux-2.6.38.3/include/drm/dr
46365 45291
46366 #define i830_PCI_IDS \ 45292 #define i830_PCI_IDS \
46367 {0x8086, 0x3577, PCI_ANY_ID, PCI_ANY_ID, 0, 0, 0}, \ 45293 {0x8086, 0x3577, PCI_ANY_ID, PCI_ANY_ID, 0, 0, 0}, \
46368@@ -577,11 +577,11 @@ 45294@@ -575,11 +575,11 @@
46369 {0x8086, 0x3582, PCI_ANY_ID, PCI_ANY_ID, 0, 0, 0}, \ 45295 {0x8086, 0x3582, PCI_ANY_ID, PCI_ANY_ID, 0, 0, 0}, \
46370 {0x8086, 0x2572, PCI_ANY_ID, PCI_ANY_ID, 0, 0, 0}, \ 45296 {0x8086, 0x2572, PCI_ANY_ID, PCI_ANY_ID, 0, 0, 0}, \
46371 {0x8086, 0x358e, PCI_ANY_ID, PCI_ANY_ID, 0, 0, 0}, \ 45297 {0x8086, 0x358e, PCI_ANY_ID, PCI_ANY_ID, 0, 0, 0}, \
@@ -46379,7 +45305,7 @@ diff -urNp linux-2.6.38.3/include/drm/drm_pciids.h linux-2.6.38.3/include/drm/dr
46379 45305
46380 #define savage_PCI_IDS \ 45306 #define savage_PCI_IDS \
46381 {0x5333, 0x8a20, PCI_ANY_ID, PCI_ANY_ID, 0, 0, S3_SAVAGE3D}, \ 45307 {0x5333, 0x8a20, PCI_ANY_ID, PCI_ANY_ID, 0, 0, S3_SAVAGE3D}, \
46382@@ -607,10 +607,10 @@ 45308@@ -605,10 +605,10 @@
46383 {0x5333, 0x8d02, PCI_ANY_ID, PCI_ANY_ID, 0, 0, S3_TWISTER}, \ 45309 {0x5333, 0x8d02, PCI_ANY_ID, PCI_ANY_ID, 0, 0, S3_TWISTER}, \
46384 {0x5333, 0x8d03, PCI_ANY_ID, PCI_ANY_ID, 0, 0, S3_PROSAVAGEDDR}, \ 45310 {0x5333, 0x8d03, PCI_ANY_ID, PCI_ANY_ID, 0, 0, S3_PROSAVAGEDDR}, \
46385 {0x5333, 0x8d04, PCI_ANY_ID, PCI_ANY_ID, 0, 0, S3_PROSAVAGEDDR}, \ 45311 {0x5333, 0x8d04, PCI_ANY_ID, PCI_ANY_ID, 0, 0, S3_PROSAVAGEDDR}, \
@@ -46392,15 +45318,15 @@ diff -urNp linux-2.6.38.3/include/drm/drm_pciids.h linux-2.6.38.3/include/drm/dr
46392 45318
46393 #define i915_PCI_IDS \ 45319 #define i915_PCI_IDS \
46394 {0x8086, 0x3577, PCI_ANY_ID, PCI_ANY_ID, PCI_CLASS_DISPLAY_VGA << 8, 0xffff00, 0}, \ 45320 {0x8086, 0x3577, PCI_ANY_ID, PCI_ANY_ID, PCI_CLASS_DISPLAY_VGA << 8, 0xffff00, 0}, \
46395@@ -644,4 +644,4 @@ 45321@@ -642,4 +642,4 @@
46396 {0x8086, 0x0042, PCI_ANY_ID, PCI_ANY_ID, PCI_CLASS_DISPLAY_VGA << 8, 0xffff00, 0}, \ 45322 {0x8086, 0x0042, PCI_ANY_ID, PCI_ANY_ID, PCI_CLASS_DISPLAY_VGA << 8, 0xffff00, 0}, \
46397 {0x8086, 0x0046, PCI_ANY_ID, PCI_ANY_ID, PCI_CLASS_DISPLAY_VGA << 8, 0xffff00, 0}, \ 45323 {0x8086, 0x0046, PCI_ANY_ID, PCI_ANY_ID, PCI_CLASS_DISPLAY_VGA << 8, 0xffff00, 0}, \
46398 {0x8086, 0x0102, PCI_ANY_ID, PCI_ANY_ID, PCI_CLASS_DISPLAY_VGA << 8, 0xffff00, 0}, \ 45324 {0x8086, 0x0102, PCI_ANY_ID, PCI_ANY_ID, PCI_CLASS_DISPLAY_VGA << 8, 0xffff00, 0}, \
46399- {0, 0, 0} 45325- {0, 0, 0}
46400+ {0, 0, 0, 0, 0, 0} 45326+ {0, 0, 0, 0, 0, 0}
46401diff -urNp linux-2.6.38.3/include/drm/drmP.h linux-2.6.38.3/include/drm/drmP.h 45327diff -urNp linux-2.6.38.2/include/drm/drmP.h linux-2.6.38.2/include/drm/drmP.h
46402--- linux-2.6.38.3/include/drm/drmP.h 2011-03-14 21:20:32.000000000 -0400 45328--- linux-2.6.38.2/include/drm/drmP.h 2011-03-14 21:20:32.000000000 -0400
46403+++ linux-2.6.38.3/include/drm/drmP.h 2011-04-17 15:57:32.000000000 -0400 45329+++ linux-2.6.38.2/include/drm/drmP.h 2011-03-21 18:31:35.000000000 -0400
46404@@ -73,6 +73,7 @@ 45330@@ -73,6 +73,7 @@
46405 #include <linux/workqueue.h> 45331 #include <linux/workqueue.h>
46406 #include <linux/poll.h> 45332 #include <linux/poll.h>
@@ -46454,9 +45380,9 @@ diff -urNp linux-2.6.38.3/include/drm/drmP.h linux-2.6.38.3/include/drm/drmP.h
46454 void *dev_private; /**< device private data */ 45380 void *dev_private; /**< device private data */
46455 void *mm_private; 45381 void *mm_private;
46456 struct address_space *dev_mapping; 45382 struct address_space *dev_mapping;
46457diff -urNp linux-2.6.38.3/include/linux/a.out.h linux-2.6.38.3/include/linux/a.out.h 45383diff -urNp linux-2.6.38.2/include/linux/a.out.h linux-2.6.38.2/include/linux/a.out.h
46458--- linux-2.6.38.3/include/linux/a.out.h 2011-03-14 21:20:32.000000000 -0400 45384--- linux-2.6.38.2/include/linux/a.out.h 2011-03-14 21:20:32.000000000 -0400
46459+++ linux-2.6.38.3/include/linux/a.out.h 2011-04-17 15:57:32.000000000 -0400 45385+++ linux-2.6.38.2/include/linux/a.out.h 2011-03-21 18:31:35.000000000 -0400
46460@@ -39,6 +39,14 @@ enum machine_type { 45386@@ -39,6 +39,14 @@ enum machine_type {
46461 M_MIPS2 = 152 /* MIPS R6000/R4000 binary */ 45387 M_MIPS2 = 152 /* MIPS R6000/R4000 binary */
46462 }; 45388 };
@@ -46472,9 +45398,9 @@ diff -urNp linux-2.6.38.3/include/linux/a.out.h linux-2.6.38.3/include/linux/a.o
46472 #if !defined (N_MAGIC) 45398 #if !defined (N_MAGIC)
46473 #define N_MAGIC(exec) ((exec).a_info & 0xffff) 45399 #define N_MAGIC(exec) ((exec).a_info & 0xffff)
46474 #endif 45400 #endif
46475diff -urNp linux-2.6.38.3/include/linux/atmdev.h linux-2.6.38.3/include/linux/atmdev.h 45401diff -urNp linux-2.6.38.2/include/linux/atmdev.h linux-2.6.38.2/include/linux/atmdev.h
46476--- linux-2.6.38.3/include/linux/atmdev.h 2011-04-18 17:27:18.000000000 -0400 45402--- linux-2.6.38.2/include/linux/atmdev.h 2011-03-14 21:20:32.000000000 -0400
46477+++ linux-2.6.38.3/include/linux/atmdev.h 2011-04-17 16:53:48.000000000 -0400 45403+++ linux-2.6.38.2/include/linux/atmdev.h 2011-03-21 18:31:35.000000000 -0400
46478@@ -237,7 +237,7 @@ struct compat_atm_iobuf { 45404@@ -237,7 +237,7 @@ struct compat_atm_iobuf {
46479 #endif 45405 #endif
46480 45406
@@ -46484,9 +45410,9 @@ diff -urNp linux-2.6.38.3/include/linux/atmdev.h linux-2.6.38.3/include/linux/at
46484 __AAL_STAT_ITEMS 45410 __AAL_STAT_ITEMS
46485 #undef __HANDLE_ITEM 45411 #undef __HANDLE_ITEM
46486 }; 45412 };
46487diff -urNp linux-2.6.38.3/include/linux/binfmts.h linux-2.6.38.3/include/linux/binfmts.h 45413diff -urNp linux-2.6.38.2/include/linux/binfmts.h linux-2.6.38.2/include/linux/binfmts.h
46488--- linux-2.6.38.3/include/linux/binfmts.h 2011-03-14 21:20:32.000000000 -0400 45414--- linux-2.6.38.2/include/linux/binfmts.h 2011-03-14 21:20:32.000000000 -0400
46489+++ linux-2.6.38.3/include/linux/binfmts.h 2011-04-17 15:57:32.000000000 -0400 45415+++ linux-2.6.38.2/include/linux/binfmts.h 2011-03-21 18:31:35.000000000 -0400
46490@@ -92,6 +92,7 @@ struct linux_binfmt { 45416@@ -92,6 +92,7 @@ struct linux_binfmt {
46491 int (*load_binary)(struct linux_binprm *, struct pt_regs * regs); 45417 int (*load_binary)(struct linux_binprm *, struct pt_regs * regs);
46492 int (*load_shlib)(struct file *); 45418 int (*load_shlib)(struct file *);
@@ -46495,9 +45421,9 @@ diff -urNp linux-2.6.38.3/include/linux/binfmts.h linux-2.6.38.3/include/linux/b
46495 unsigned long min_coredump; /* minimal dump size */ 45421 unsigned long min_coredump; /* minimal dump size */
46496 }; 45422 };
46497 45423
46498diff -urNp linux-2.6.38.3/include/linux/blkdev.h linux-2.6.38.3/include/linux/blkdev.h 45424diff -urNp linux-2.6.38.2/include/linux/blkdev.h linux-2.6.38.2/include/linux/blkdev.h
46499--- linux-2.6.38.3/include/linux/blkdev.h 2011-03-14 21:20:32.000000000 -0400 45425--- linux-2.6.38.2/include/linux/blkdev.h 2011-03-14 21:20:32.000000000 -0400
46500+++ linux-2.6.38.3/include/linux/blkdev.h 2011-04-17 15:57:32.000000000 -0400 45426+++ linux-2.6.38.2/include/linux/blkdev.h 2011-03-21 18:31:35.000000000 -0400
46501@@ -1247,22 +1247,22 @@ queue_max_integrity_segments(struct requ 45427@@ -1247,22 +1247,22 @@ queue_max_integrity_segments(struct requ
46502 #endif /* CONFIG_BLK_DEV_INTEGRITY */ 45428 #endif /* CONFIG_BLK_DEV_INTEGRITY */
46503 45429
@@ -46533,9 +45459,9 @@ diff -urNp linux-2.6.38.3/include/linux/blkdev.h linux-2.6.38.3/include/linux/bl
46533 }; 45459 };
46534 45460
46535 extern int __blkdev_driver_ioctl(struct block_device *, fmode_t, unsigned int, 45461 extern int __blkdev_driver_ioctl(struct block_device *, fmode_t, unsigned int,
46536diff -urNp linux-2.6.38.3/include/linux/byteorder/little_endian.h linux-2.6.38.3/include/linux/byteorder/little_endian.h 45462diff -urNp linux-2.6.38.2/include/linux/byteorder/little_endian.h linux-2.6.38.2/include/linux/byteorder/little_endian.h
46537--- linux-2.6.38.3/include/linux/byteorder/little_endian.h 2011-03-14 21:20:32.000000000 -0400 45463--- linux-2.6.38.2/include/linux/byteorder/little_endian.h 2011-03-14 21:20:32.000000000 -0400
46538+++ linux-2.6.38.3/include/linux/byteorder/little_endian.h 2011-04-17 15:57:32.000000000 -0400 45464+++ linux-2.6.38.2/include/linux/byteorder/little_endian.h 2011-03-21 18:31:35.000000000 -0400
46539@@ -42,51 +42,51 @@ 45465@@ -42,51 +42,51 @@
46540 45466
46541 static inline __le64 __cpu_to_le64p(const __u64 *p) 45467 static inline __le64 __cpu_to_le64p(const __u64 *p)
@@ -46600,9 +45526,9 @@ diff -urNp linux-2.6.38.3/include/linux/byteorder/little_endian.h linux-2.6.38.3
46600 } 45526 }
46601 #define __cpu_to_le64s(x) do { (void)(x); } while (0) 45527 #define __cpu_to_le64s(x) do { (void)(x); } while (0)
46602 #define __le64_to_cpus(x) do { (void)(x); } while (0) 45528 #define __le64_to_cpus(x) do { (void)(x); } while (0)
46603diff -urNp linux-2.6.38.3/include/linux/cache.h linux-2.6.38.3/include/linux/cache.h 45529diff -urNp linux-2.6.38.2/include/linux/cache.h linux-2.6.38.2/include/linux/cache.h
46604--- linux-2.6.38.3/include/linux/cache.h 2011-03-14 21:20:32.000000000 -0400 45530--- linux-2.6.38.2/include/linux/cache.h 2011-03-14 21:20:32.000000000 -0400
46605+++ linux-2.6.38.3/include/linux/cache.h 2011-04-17 15:57:32.000000000 -0400 45531+++ linux-2.6.38.2/include/linux/cache.h 2011-03-21 18:31:35.000000000 -0400
46606@@ -16,6 +16,10 @@ 45532@@ -16,6 +16,10 @@
46607 #define __read_mostly 45533 #define __read_mostly
46608 #endif 45534 #endif
@@ -46614,9 +45540,9 @@ diff -urNp linux-2.6.38.3/include/linux/cache.h linux-2.6.38.3/include/linux/cac
46614 #ifndef ____cacheline_aligned 45540 #ifndef ____cacheline_aligned
46615 #define ____cacheline_aligned __attribute__((__aligned__(SMP_CACHE_BYTES))) 45541 #define ____cacheline_aligned __attribute__((__aligned__(SMP_CACHE_BYTES)))
46616 #endif 45542 #endif
46617diff -urNp linux-2.6.38.3/include/linux/capability.h linux-2.6.38.3/include/linux/capability.h 45543diff -urNp linux-2.6.38.2/include/linux/capability.h linux-2.6.38.2/include/linux/capability.h
46618--- linux-2.6.38.3/include/linux/capability.h 2011-03-14 21:20:32.000000000 -0400 45544--- linux-2.6.38.2/include/linux/capability.h 2011-03-14 21:20:32.000000000 -0400
46619+++ linux-2.6.38.3/include/linux/capability.h 2011-04-17 15:57:32.000000000 -0400 45545+++ linux-2.6.38.2/include/linux/capability.h 2011-03-21 18:31:35.000000000 -0400
46620@@ -561,6 +561,7 @@ extern const kernel_cap_t __cap_init_eff 45546@@ -561,6 +561,7 @@ extern const kernel_cap_t __cap_init_eff
46621 (security_real_capable_noaudit((t), (cap)) == 0) 45547 (security_real_capable_noaudit((t), (cap)) == 0)
46622 45548
@@ -46625,9 +45551,9 @@ diff -urNp linux-2.6.38.3/include/linux/capability.h linux-2.6.38.3/include/linu
46625 45551
46626 /* audit system wants to get cap info from files as well */ 45552 /* audit system wants to get cap info from files as well */
46627 struct dentry; 45553 struct dentry;
46628diff -urNp linux-2.6.38.3/include/linux/compiler-gcc4.h linux-2.6.38.3/include/linux/compiler-gcc4.h 45554diff -urNp linux-2.6.38.2/include/linux/compiler-gcc4.h linux-2.6.38.2/include/linux/compiler-gcc4.h
46629--- linux-2.6.38.3/include/linux/compiler-gcc4.h 2011-03-14 21:20:32.000000000 -0400 45555--- linux-2.6.38.2/include/linux/compiler-gcc4.h 2011-03-14 21:20:32.000000000 -0400
46630+++ linux-2.6.38.3/include/linux/compiler-gcc4.h 2011-04-17 15:57:32.000000000 -0400 45556+++ linux-2.6.38.2/include/linux/compiler-gcc4.h 2011-03-21 18:31:35.000000000 -0400
46631@@ -54,6 +54,10 @@ 45557@@ -54,6 +54,10 @@
46632 45558
46633 #endif 45559 #endif
@@ -46639,9 +45565,9 @@ diff -urNp linux-2.6.38.3/include/linux/compiler-gcc4.h linux-2.6.38.3/include/l
46639 #endif 45565 #endif
46640 45566
46641 #if __GNUC_MINOR__ > 0 45567 #if __GNUC_MINOR__ > 0
46642diff -urNp linux-2.6.38.3/include/linux/compiler.h linux-2.6.38.3/include/linux/compiler.h 45568diff -urNp linux-2.6.38.2/include/linux/compiler.h linux-2.6.38.2/include/linux/compiler.h
46643--- linux-2.6.38.3/include/linux/compiler.h 2011-03-14 21:20:32.000000000 -0400 45569--- linux-2.6.38.2/include/linux/compiler.h 2011-03-14 21:20:32.000000000 -0400
46644+++ linux-2.6.38.3/include/linux/compiler.h 2011-04-17 15:57:32.000000000 -0400 45570+++ linux-2.6.38.2/include/linux/compiler.h 2011-03-21 18:31:35.000000000 -0400
46645@@ -273,6 +273,22 @@ void ftrace_likely_update(struct ftrace_ 45571@@ -273,6 +273,22 @@ void ftrace_likely_update(struct ftrace_
46646 #define __cold 45572 #define __cold
46647 #endif 45573 #endif
@@ -46674,9 +45600,9 @@ diff -urNp linux-2.6.38.3/include/linux/compiler.h linux-2.6.38.3/include/linux/
46674+#define ACCESS_ONCE_RW(x) (*(volatile typeof(x) *)&(x)) 45600+#define ACCESS_ONCE_RW(x) (*(volatile typeof(x) *)&(x))
46675 45601
46676 #endif /* __LINUX_COMPILER_H */ 45602 #endif /* __LINUX_COMPILER_H */
46677diff -urNp linux-2.6.38.3/include/linux/cpuset.h linux-2.6.38.3/include/linux/cpuset.h 45603diff -urNp linux-2.6.38.2/include/linux/cpuset.h linux-2.6.38.2/include/linux/cpuset.h
46678--- linux-2.6.38.3/include/linux/cpuset.h 2011-03-14 21:20:32.000000000 -0400 45604--- linux-2.6.38.2/include/linux/cpuset.h 2011-03-14 21:20:32.000000000 -0400
46679+++ linux-2.6.38.3/include/linux/cpuset.h 2011-04-17 15:57:32.000000000 -0400 45605+++ linux-2.6.38.2/include/linux/cpuset.h 2011-03-21 18:31:35.000000000 -0400
46680@@ -118,7 +118,7 @@ static inline void put_mems_allowed(void 45606@@ -118,7 +118,7 @@ static inline void put_mems_allowed(void
46681 * nodemask. 45607 * nodemask.
46682 */ 45608 */
@@ -46686,9 +45612,9 @@ diff -urNp linux-2.6.38.3/include/linux/cpuset.h linux-2.6.38.3/include/linux/cp
46686 } 45612 }
46687 45613
46688 static inline void set_mems_allowed(nodemask_t nodemask) 45614 static inline void set_mems_allowed(nodemask_t nodemask)
46689diff -urNp linux-2.6.38.3/include/linux/decompress/mm.h linux-2.6.38.3/include/linux/decompress/mm.h 45615diff -urNp linux-2.6.38.2/include/linux/decompress/mm.h linux-2.6.38.2/include/linux/decompress/mm.h
46690--- linux-2.6.38.3/include/linux/decompress/mm.h 2011-03-14 21:20:32.000000000 -0400 45616--- linux-2.6.38.2/include/linux/decompress/mm.h 2011-03-14 21:20:32.000000000 -0400
46691+++ linux-2.6.38.3/include/linux/decompress/mm.h 2011-04-17 15:57:32.000000000 -0400 45617+++ linux-2.6.38.2/include/linux/decompress/mm.h 2011-03-21 18:31:35.000000000 -0400
46692@@ -77,7 +77,7 @@ static void free(void *where) 45618@@ -77,7 +77,7 @@ static void free(void *where)
46693 * warnings when not needed (indeed large_malloc / large_free are not 45619 * warnings when not needed (indeed large_malloc / large_free are not
46694 * needed by inflate */ 45620 * needed by inflate */
@@ -46698,9 +45624,9 @@ diff -urNp linux-2.6.38.3/include/linux/decompress/mm.h linux-2.6.38.3/include/l
46698 #define free(a) kfree(a) 45624 #define free(a) kfree(a)
46699 45625
46700 #define large_malloc(a) vmalloc(a) 45626 #define large_malloc(a) vmalloc(a)
46701diff -urNp linux-2.6.38.3/include/linux/dma-mapping.h linux-2.6.38.3/include/linux/dma-mapping.h 45627diff -urNp linux-2.6.38.2/include/linux/dma-mapping.h linux-2.6.38.2/include/linux/dma-mapping.h
46702--- linux-2.6.38.3/include/linux/dma-mapping.h 2011-03-14 21:20:32.000000000 -0400 45628--- linux-2.6.38.2/include/linux/dma-mapping.h 2011-03-14 21:20:32.000000000 -0400
46703+++ linux-2.6.38.3/include/linux/dma-mapping.h 2011-04-17 15:57:32.000000000 -0400 45629+++ linux-2.6.38.2/include/linux/dma-mapping.h 2011-03-21 18:31:35.000000000 -0400
46704@@ -16,40 +16,40 @@ enum dma_data_direction { 45630@@ -16,40 +16,40 @@ enum dma_data_direction {
46705 }; 45631 };
46706 45632
@@ -46756,9 +45682,9 @@ diff -urNp linux-2.6.38.3/include/linux/dma-mapping.h linux-2.6.38.3/include/lin
46756 }; 45682 };
46757 45683
46758 #define DMA_BIT_MASK(n) (((n) == 64) ? ~0ULL : ((1ULL<<(n))-1)) 45684 #define DMA_BIT_MASK(n) (((n) == 64) ? ~0ULL : ((1ULL<<(n))-1))
46759diff -urNp linux-2.6.38.3/include/linux/elf.h linux-2.6.38.3/include/linux/elf.h 45685diff -urNp linux-2.6.38.2/include/linux/elf.h linux-2.6.38.2/include/linux/elf.h
46760--- linux-2.6.38.3/include/linux/elf.h 2011-03-14 21:20:32.000000000 -0400 45686--- linux-2.6.38.2/include/linux/elf.h 2011-03-14 21:20:32.000000000 -0400
46761+++ linux-2.6.38.3/include/linux/elf.h 2011-04-17 15:57:32.000000000 -0400 45687+++ linux-2.6.38.2/include/linux/elf.h 2011-03-21 18:31:35.000000000 -0400
46762@@ -49,6 +49,17 @@ typedef __s64 Elf64_Sxword; 45688@@ -49,6 +49,17 @@ typedef __s64 Elf64_Sxword;
46763 #define PT_GNU_EH_FRAME 0x6474e550 45689 #define PT_GNU_EH_FRAME 0x6474e550
46764 45690
@@ -46831,9 +45757,9 @@ diff -urNp linux-2.6.38.3/include/linux/elf.h linux-2.6.38.3/include/linux/elf.h
46831 45757
46832 #endif 45758 #endif
46833 45759
46834diff -urNp linux-2.6.38.3/include/linux/fs.h linux-2.6.38.3/include/linux/fs.h 45760diff -urNp linux-2.6.38.2/include/linux/fs.h linux-2.6.38.2/include/linux/fs.h
46835--- linux-2.6.38.3/include/linux/fs.h 2011-03-14 21:20:32.000000000 -0400 45761--- linux-2.6.38.2/include/linux/fs.h 2011-03-14 21:20:32.000000000 -0400
46836+++ linux-2.6.38.3/include/linux/fs.h 2011-04-17 15:57:32.000000000 -0400 45762+++ linux-2.6.38.2/include/linux/fs.h 2011-03-21 18:31:35.000000000 -0400
46837@@ -105,6 +105,11 @@ struct inodes_stat_t { 45763@@ -105,6 +105,11 @@ struct inodes_stat_t {
46838 /* File was opened by fanotify and shouldn't generate fanotify events */ 45764 /* File was opened by fanotify and shouldn't generate fanotify events */
46839 #define FMODE_NONOTIFY ((__force fmode_t)0x1000000) 45765 #define FMODE_NONOTIFY ((__force fmode_t)0x1000000)
@@ -46982,9 +45908,9 @@ diff -urNp linux-2.6.38.3/include/linux/fs.h linux-2.6.38.3/include/linux/fs.h
46982 }; 45908 };
46983 45909
46984 /* 45910 /*
46985diff -urNp linux-2.6.38.3/include/linux/fs_struct.h linux-2.6.38.3/include/linux/fs_struct.h 45911diff -urNp linux-2.6.38.2/include/linux/fs_struct.h linux-2.6.38.2/include/linux/fs_struct.h
46986--- linux-2.6.38.3/include/linux/fs_struct.h 2011-03-14 21:20:32.000000000 -0400 45912--- linux-2.6.38.2/include/linux/fs_struct.h 2011-03-14 21:20:32.000000000 -0400
46987+++ linux-2.6.38.3/include/linux/fs_struct.h 2011-04-17 15:57:32.000000000 -0400 45913+++ linux-2.6.38.2/include/linux/fs_struct.h 2011-03-21 18:31:35.000000000 -0400
46988@@ -6,7 +6,7 @@ 45914@@ -6,7 +6,7 @@
46989 #include <linux/seqlock.h> 45915 #include <linux/seqlock.h>
46990 45916
@@ -46994,9 +45920,9 @@ diff -urNp linux-2.6.38.3/include/linux/fs_struct.h linux-2.6.38.3/include/linux
46994 spinlock_t lock; 45920 spinlock_t lock;
46995 seqcount_t seq; 45921 seqcount_t seq;
46996 int umask; 45922 int umask;
46997diff -urNp linux-2.6.38.3/include/linux/genhd.h linux-2.6.38.3/include/linux/genhd.h 45923diff -urNp linux-2.6.38.2/include/linux/genhd.h linux-2.6.38.2/include/linux/genhd.h
46998--- linux-2.6.38.3/include/linux/genhd.h 2011-03-14 21:20:32.000000000 -0400 45924--- linux-2.6.38.2/include/linux/genhd.h 2011-03-14 21:20:32.000000000 -0400
46999+++ linux-2.6.38.3/include/linux/genhd.h 2011-04-17 15:57:32.000000000 -0400 45925+++ linux-2.6.38.2/include/linux/genhd.h 2011-03-21 18:31:35.000000000 -0400
47000@@ -183,7 +183,7 @@ struct gendisk { 45926@@ -183,7 +183,7 @@ struct gendisk {
47001 struct kobject *slave_dir; 45927 struct kobject *slave_dir;
47002 45928
@@ -47006,9 +45932,9 @@ diff -urNp linux-2.6.38.3/include/linux/genhd.h linux-2.6.38.3/include/linux/gen
47006 struct disk_events *ev; 45932 struct disk_events *ev;
47007 #ifdef CONFIG_BLK_DEV_INTEGRITY 45933 #ifdef CONFIG_BLK_DEV_INTEGRITY
47008 struct blk_integrity *integrity; 45934 struct blk_integrity *integrity;
47009diff -urNp linux-2.6.38.3/include/linux/gracl.h linux-2.6.38.3/include/linux/gracl.h 45935diff -urNp linux-2.6.38.2/include/linux/gracl.h linux-2.6.38.2/include/linux/gracl.h
47010--- linux-2.6.38.3/include/linux/gracl.h 1969-12-31 19:00:00.000000000 -0500 45936--- linux-2.6.38.2/include/linux/gracl.h 1969-12-31 19:00:00.000000000 -0500
47011+++ linux-2.6.38.3/include/linux/gracl.h 2011-04-17 15:57:32.000000000 -0400 45937+++ linux-2.6.38.2/include/linux/gracl.h 2011-03-26 14:27:27.000000000 -0400
47012@@ -0,0 +1,317 @@ 45938@@ -0,0 +1,317 @@
47013+#ifndef GR_ACL_H 45939+#ifndef GR_ACL_H
47014+#define GR_ACL_H 45940+#define GR_ACL_H
@@ -47327,9 +46253,9 @@ diff -urNp linux-2.6.38.3/include/linux/gracl.h linux-2.6.38.3/include/linux/gra
47327+ 46253+
47328+#endif 46254+#endif
47329+ 46255+
47330diff -urNp linux-2.6.38.3/include/linux/gralloc.h linux-2.6.38.3/include/linux/gralloc.h 46256diff -urNp linux-2.6.38.2/include/linux/gralloc.h linux-2.6.38.2/include/linux/gralloc.h
47331--- linux-2.6.38.3/include/linux/gralloc.h 1969-12-31 19:00:00.000000000 -0500 46257--- linux-2.6.38.2/include/linux/gralloc.h 1969-12-31 19:00:00.000000000 -0500
47332+++ linux-2.6.38.3/include/linux/gralloc.h 2011-04-17 15:57:32.000000000 -0400 46258+++ linux-2.6.38.2/include/linux/gralloc.h 2011-03-21 18:31:35.000000000 -0400
47333@@ -0,0 +1,9 @@ 46259@@ -0,0 +1,9 @@
47334+#ifndef __GRALLOC_H 46260+#ifndef __GRALLOC_H
47335+#define __GRALLOC_H 46261+#define __GRALLOC_H
@@ -47340,9 +46266,9 @@ diff -urNp linux-2.6.38.3/include/linux/gralloc.h linux-2.6.38.3/include/linux/g
47340+void *acl_alloc_num(unsigned long num, unsigned long len); 46266+void *acl_alloc_num(unsigned long num, unsigned long len);
47341+ 46267+
47342+#endif 46268+#endif
47343diff -urNp linux-2.6.38.3/include/linux/grdefs.h linux-2.6.38.3/include/linux/grdefs.h 46269diff -urNp linux-2.6.38.2/include/linux/grdefs.h linux-2.6.38.2/include/linux/grdefs.h
47344--- linux-2.6.38.3/include/linux/grdefs.h 1969-12-31 19:00:00.000000000 -0500 46270--- linux-2.6.38.2/include/linux/grdefs.h 1969-12-31 19:00:00.000000000 -0500
47345+++ linux-2.6.38.3/include/linux/grdefs.h 2011-04-17 15:57:32.000000000 -0400 46271+++ linux-2.6.38.2/include/linux/grdefs.h 2011-03-26 16:39:14.000000000 -0400
47346@@ -0,0 +1,139 @@ 46272@@ -0,0 +1,139 @@
47347+#ifndef GRDEFS_H 46273+#ifndef GRDEFS_H
47348+#define GRDEFS_H 46274+#define GRDEFS_H
@@ -47483,10 +46409,10 @@ diff -urNp linux-2.6.38.3/include/linux/grdefs.h linux-2.6.38.3/include/linux/gr
47483+}; 46409+};
47484+ 46410+
47485+#endif 46411+#endif
47486diff -urNp linux-2.6.38.3/include/linux/grinternal.h linux-2.6.38.3/include/linux/grinternal.h 46412diff -urNp linux-2.6.38.2/include/linux/grinternal.h linux-2.6.38.2/include/linux/grinternal.h
47487--- linux-2.6.38.3/include/linux/grinternal.h 1969-12-31 19:00:00.000000000 -0500 46413--- linux-2.6.38.2/include/linux/grinternal.h 1969-12-31 19:00:00.000000000 -0500
47488+++ linux-2.6.38.3/include/linux/grinternal.h 2011-04-17 15:57:32.000000000 -0400 46414+++ linux-2.6.38.2/include/linux/grinternal.h 2011-03-26 16:51:07.000000000 -0400
47489@@ -0,0 +1,219 @@ 46415@@ -0,0 +1,217 @@
47490+#ifndef __GRINTERNAL_H 46416+#ifndef __GRINTERNAL_H
47491+#define __GRINTERNAL_H 46417+#define __GRINTERNAL_H
47492+ 46418+
@@ -47643,7 +46569,6 @@ diff -urNp linux-2.6.38.3/include/linux/grinternal.h linux-2.6.38.3/include/linu
47643+ GR_STR_INT, 46569+ GR_STR_INT,
47644+ GR_TWO_STR_INT, 46570+ GR_TWO_STR_INT,
47645+ GR_TWO_INT, 46571+ GR_TWO_INT,
47646+ GR_TWO_U64,
47647+ GR_THREE_INT, 46572+ GR_THREE_INT,
47648+ GR_FIVE_INT_TWO_STR, 46573+ GR_FIVE_INT_TWO_STR,
47649+ GR_TWO_STR, 46574+ GR_TWO_STR,
@@ -47679,7 +46604,6 @@ diff -urNp linux-2.6.38.3/include/linux/grinternal.h linux-2.6.38.3/include/linu
47679+#define gr_log_str(audit, msg, str) gr_log_varargs(audit, msg, GR_ONE_STR, str) 46604+#define gr_log_str(audit, msg, str) gr_log_varargs(audit, msg, GR_ONE_STR, str)
47680+#define gr_log_str_int(audit, msg, str, num) gr_log_varargs(audit, msg, GR_STR_INT, str, num) 46605+#define gr_log_str_int(audit, msg, str, num) gr_log_varargs(audit, msg, GR_STR_INT, str, num)
47681+#define gr_log_int_int(audit, msg, num1, num2) gr_log_varargs(audit, msg, GR_TWO_INT, num1, num2) 46606+#define gr_log_int_int(audit, msg, num1, num2) gr_log_varargs(audit, msg, GR_TWO_INT, num1, num2)
47682+#define gr_log_two_u64(audit, msg, num1, num2) gr_log_varargs(audit, msg, GR_TWO_U64, num1, num2)
47683+#define gr_log_int3(audit, msg, num1, num2, num3) gr_log_varargs(audit, msg, GR_THREE_INT, num1, num2, num3) 46607+#define gr_log_int3(audit, msg, num1, num2, num3) gr_log_varargs(audit, msg, GR_THREE_INT, num1, num2, num3)
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) 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)
47685+#define gr_log_str_str(audit, msg, str1, str2) gr_log_varargs(audit, msg, GR_TWO_STR, str1, str2) 46609+#define gr_log_str_str(audit, msg, str1, str2) gr_log_varargs(audit, msg, GR_TWO_STR, str1, str2)
@@ -47706,10 +46630,10 @@ diff -urNp linux-2.6.38.3/include/linux/grinternal.h linux-2.6.38.3/include/linu
47706+#endif 46630+#endif
47707+ 46631+
47708+#endif 46632+#endif
47709diff -urNp linux-2.6.38.3/include/linux/grmsg.h linux-2.6.38.3/include/linux/grmsg.h 46633diff -urNp linux-2.6.38.2/include/linux/grmsg.h linux-2.6.38.2/include/linux/grmsg.h
47710--- linux-2.6.38.3/include/linux/grmsg.h 1969-12-31 19:00:00.000000000 -0500 46634--- linux-2.6.38.2/include/linux/grmsg.h 1969-12-31 19:00:00.000000000 -0500
47711+++ linux-2.6.38.3/include/linux/grmsg.h 2011-04-17 15:57:32.000000000 -0400 46635+++ linux-2.6.38.2/include/linux/grmsg.h 2011-03-26 16:52:08.000000000 -0400
47712@@ -0,0 +1,108 @@ 46636@@ -0,0 +1,112 @@
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" 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"
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" 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"
47715+#define GR_PTRACE_ACL_MSG "denied ptrace of %.950s(%.16s:%d) by " 46639+#define GR_PTRACE_ACL_MSG "denied ptrace of %.950s(%.16s:%d) by "
@@ -47721,7 +46645,10 @@ diff -urNp linux-2.6.38.3/include/linux/grmsg.h linux-2.6.38.3/include/linux/grm
47721+#define GR_SHMAT_ACL_MSG "denied attach of shared memory of UID %u, PID %d, ID %u by " 46645+#define GR_SHMAT_ACL_MSG "denied attach of shared memory of UID %u, PID %d, ID %u by "
47722+#define GR_UNIX_CHROOT_MSG "denied connect() to abstract AF_UNIX socket outside of chroot by " 46646+#define GR_UNIX_CHROOT_MSG "denied connect() to abstract AF_UNIX socket outside of chroot by "
47723+#define GR_SHMAT_CHROOT_MSG "denied attach of shared memory outside of chroot by " 46647+#define GR_SHMAT_CHROOT_MSG "denied attach of shared memory outside of chroot by "
47724+#define GR_MEM_READWRITE_MSG "denied access of range %Lx -> %Lx in /dev/mem by " 46648+#define GR_KMEM_MSG "denied write of /dev/kmem by "
46649+#define GR_PORT_OPEN_MSG "denied open of /dev/port by "
46650+#define GR_MEM_WRITE_MSG "denied write of /dev/mem by "
46651+#define GR_MEM_MMAP_MSG "denied mmap write of /dev/[k]mem by "
47725+#define GR_SYMLINK_MSG "not following symlink %.950s owned by %d.%d by " 46652+#define GR_SYMLINK_MSG "not following symlink %.950s owned by %d.%d by "
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" 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"
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" 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"
@@ -47815,13 +46742,14 @@ diff -urNp linux-2.6.38.3/include/linux/grmsg.h linux-2.6.38.3/include/linux/grm
47815+#define GR_RWXMMAP_MSG "denied RWX mmap of %.950s by " 46742+#define GR_RWXMMAP_MSG "denied RWX mmap of %.950s by "
47816+#define GR_RWXMPROTECT_MSG "denied RWX mprotect of %.950s by " 46743+#define GR_RWXMPROTECT_MSG "denied RWX mprotect of %.950s by "
47817+#define GR_TEXTREL_AUDIT_MSG "text relocation in %s, VMA:0x%08lx 0x%08lx by " 46744+#define GR_TEXTREL_AUDIT_MSG "text relocation in %s, VMA:0x%08lx 0x%08lx by "
46745+#define GR_NONROOT_MODLOAD_MSG "denied kernel module auto-load of %.64s by "
47818+#define GR_VM86_MSG "denied use of vm86 by " 46746+#define GR_VM86_MSG "denied use of vm86 by "
47819+#define GR_PTRACE_AUDIT_MSG "process %.950s(%.16s:%d) attached to via ptrace by " 46747+#define GR_PTRACE_AUDIT_MSG "process %.950s(%.16s:%d) attached to via ptrace by "
47820+#define GR_INIT_TRANSFER_MSG "persistent special role transferred privilege to init by " 46748+#define GR_INIT_TRANSFER_MSG "persistent special role transferred privilege to init by "
47821diff -urNp linux-2.6.38.3/include/linux/grsecurity.h linux-2.6.38.3/include/linux/grsecurity.h 46749diff -urNp linux-2.6.38.2/include/linux/grsecurity.h linux-2.6.38.2/include/linux/grsecurity.h
47822--- linux-2.6.38.3/include/linux/grsecurity.h 1969-12-31 19:00:00.000000000 -0500 46750--- linux-2.6.38.2/include/linux/grsecurity.h 1969-12-31 19:00:00.000000000 -0500
47823+++ linux-2.6.38.3/include/linux/grsecurity.h 2011-04-17 15:57:32.000000000 -0400 46751+++ linux-2.6.38.2/include/linux/grsecurity.h 2011-03-26 19:58:41.000000000 -0400
47824@@ -0,0 +1,212 @@ 46752@@ -0,0 +1,215 @@
47825+#ifndef GR_SECURITY_H 46753+#ifndef GR_SECURITY_H
47826+#define GR_SECURITY_H 46754+#define GR_SECURITY_H
47827+#include <linux/fs.h> 46755+#include <linux/fs.h>
@@ -47847,10 +46775,8 @@ diff -urNp linux-2.6.38.3/include/linux/grsecurity.h linux-2.6.38.3/include/linu
47847+#error "CONFIG_PAX enabled, but no PaX options are enabled." 46775+#error "CONFIG_PAX enabled, but no PaX options are enabled."
47848+#endif 46776+#endif
47849+ 46777+
47850+void gr_handle_brute_attach(struct task_struct *p, unsigned long mm_flags); 46778+void gr_handle_brute_attach(struct task_struct *p);
47851+void gr_handle_brute_check(void); 46779+void gr_handle_brute_check(void);
47852+void gr_handle_kernel_exploit(void);
47853+int gr_process_user_ban(void);
47854+ 46780+
47855+char gr_roletype_to_char(void); 46781+char gr_roletype_to_char(void);
47856+ 46782+
@@ -48026,17 +46952,22 @@ diff -urNp linux-2.6.38.3/include/linux/grsecurity.h linux-2.6.38.3/include/linu
48026+ 46952+
48027+#ifdef CONFIG_GRKERNSEC 46953+#ifdef CONFIG_GRKERNSEC
48028+void task_grsec_rbac(struct seq_file *m, struct task_struct *p); 46954+void task_grsec_rbac(struct seq_file *m, struct task_struct *p);
46955+void gr_log_nonroot_mod_load(const char *modname);
48029+void gr_handle_vm86(void); 46956+void gr_handle_vm86(void);
48030+void gr_handle_mem_readwrite(u64 from, u64 to); 46957+void gr_handle_mem_write(void);
46958+void gr_handle_kmem_write(void);
46959+void gr_handle_open_port(void);
46960+int gr_handle_mem_mmap(const unsigned long offset,
46961+ struct vm_area_struct *vma);
48031+ 46962+
48032+extern int grsec_enable_dmesg; 46963+extern int grsec_enable_dmesg;
48033+extern int grsec_disable_privio; 46964+extern int grsec_disable_privio;
48034+#endif 46965+#endif
48035+ 46966+
48036+#endif 46967+#endif
48037diff -urNp linux-2.6.38.3/include/linux/grsock.h linux-2.6.38.3/include/linux/grsock.h 46968diff -urNp linux-2.6.38.2/include/linux/grsock.h linux-2.6.38.2/include/linux/grsock.h
48038--- linux-2.6.38.3/include/linux/grsock.h 1969-12-31 19:00:00.000000000 -0500 46969--- linux-2.6.38.2/include/linux/grsock.h 1969-12-31 19:00:00.000000000 -0500
48039+++ linux-2.6.38.3/include/linux/grsock.h 2011-04-17 15:57:32.000000000 -0400 46970+++ linux-2.6.38.2/include/linux/grsock.h 2011-03-21 18:31:35.000000000 -0400
48040@@ -0,0 +1,19 @@ 46971@@ -0,0 +1,19 @@
48041+#ifndef __GRSOCK_H 46972+#ifndef __GRSOCK_H
48042+#define __GRSOCK_H 46973+#define __GRSOCK_H
@@ -48057,9 +46988,9 @@ diff -urNp linux-2.6.38.3/include/linux/grsock.h linux-2.6.38.3/include/linux/gr
48057+ const int protocol); 46988+ const int protocol);
48058+ 46989+
48059+#endif 46990+#endif
48060diff -urNp linux-2.6.38.3/include/linux/highmem.h linux-2.6.38.3/include/linux/highmem.h 46991diff -urNp linux-2.6.38.2/include/linux/highmem.h linux-2.6.38.2/include/linux/highmem.h
48061--- linux-2.6.38.3/include/linux/highmem.h 2011-03-14 21:20:32.000000000 -0400 46992--- linux-2.6.38.2/include/linux/highmem.h 2011-03-14 21:20:32.000000000 -0400
48062+++ linux-2.6.38.3/include/linux/highmem.h 2011-04-17 15:57:32.000000000 -0400 46993+++ linux-2.6.38.2/include/linux/highmem.h 2011-03-21 18:31:35.000000000 -0400
48063@@ -185,6 +185,18 @@ static inline void clear_highpage(struct 46994@@ -185,6 +185,18 @@ static inline void clear_highpage(struct
48064 kunmap_atomic(kaddr, KM_USER0); 46995 kunmap_atomic(kaddr, KM_USER0);
48065 } 46996 }
@@ -48079,9 +47010,9 @@ diff -urNp linux-2.6.38.3/include/linux/highmem.h linux-2.6.38.3/include/linux/h
48079 static inline void zero_user_segments(struct page *page, 47010 static inline void zero_user_segments(struct page *page,
48080 unsigned start1, unsigned end1, 47011 unsigned start1, unsigned end1,
48081 unsigned start2, unsigned end2) 47012 unsigned start2, unsigned end2)
48082diff -urNp linux-2.6.38.3/include/linux/init.h linux-2.6.38.3/include/linux/init.h 47013diff -urNp linux-2.6.38.2/include/linux/init.h linux-2.6.38.2/include/linux/init.h
48083--- linux-2.6.38.3/include/linux/init.h 2011-03-14 21:20:32.000000000 -0400 47014--- linux-2.6.38.2/include/linux/init.h 2011-03-14 21:20:32.000000000 -0400
48084+++ linux-2.6.38.3/include/linux/init.h 2011-04-17 15:57:32.000000000 -0400 47015+++ linux-2.6.38.2/include/linux/init.h 2011-03-21 18:31:35.000000000 -0400
48085@@ -293,13 +293,13 @@ void __init parse_early_options(char *cm 47016@@ -293,13 +293,13 @@ void __init parse_early_options(char *cm
48086 47017
48087 /* Each module must use one module_init(). */ 47018 /* Each module must use one module_init(). */
@@ -48098,33 +47029,9 @@ diff -urNp linux-2.6.38.3/include/linux/init.h linux-2.6.38.3/include/linux/init
48098 { return exitfn; } \ 47029 { return exitfn; } \
48099 void cleanup_module(void) __attribute__((alias(#exitfn))); 47030 void cleanup_module(void) __attribute__((alias(#exitfn)));
48100 47031
48101diff -urNp linux-2.6.38.3/include/linux/init_task.h linux-2.6.38.3/include/linux/init_task.h 47032diff -urNp linux-2.6.38.2/include/linux/interrupt.h linux-2.6.38.2/include/linux/interrupt.h
48102--- linux-2.6.38.3/include/linux/init_task.h 2011-03-14 21:20:32.000000000 -0400 47033--- linux-2.6.38.2/include/linux/interrupt.h 2011-03-14 21:20:32.000000000 -0400
48103+++ linux-2.6.38.3/include/linux/init_task.h 2011-04-18 18:02:13.000000000 -0400 47034+++ linux-2.6.38.2/include/linux/interrupt.h 2011-03-21 18:31:35.000000000 -0400
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
48128@@ -393,7 +393,7 @@ enum 47035@@ -393,7 +393,7 @@ enum
48129 /* map softirq index to softirq name. update 'softirq_to_name' in 47036 /* map softirq index to softirq name. update 'softirq_to_name' in
48130 * kernel/softirq.c when adding a new softirq. 47037 * kernel/softirq.c when adding a new softirq.
@@ -48149,9 +47056,9 @@ diff -urNp linux-2.6.38.3/include/linux/interrupt.h linux-2.6.38.3/include/linux
48149 extern void softirq_init(void); 47056 extern void softirq_init(void);
48150 static inline void __raise_softirq_irqoff(unsigned int nr) 47057 static inline void __raise_softirq_irqoff(unsigned int nr)
48151 { 47058 {
48152diff -urNp linux-2.6.38.3/include/linux/jbd2.h linux-2.6.38.3/include/linux/jbd2.h 47059diff -urNp linux-2.6.38.2/include/linux/jbd2.h linux-2.6.38.2/include/linux/jbd2.h
48153--- linux-2.6.38.3/include/linux/jbd2.h 2011-03-14 21:20:32.000000000 -0400 47060--- linux-2.6.38.2/include/linux/jbd2.h 2011-03-14 21:20:32.000000000 -0400
48154+++ linux-2.6.38.3/include/linux/jbd2.h 2011-04-17 15:57:32.000000000 -0400 47061+++ linux-2.6.38.2/include/linux/jbd2.h 2011-03-21 18:31:35.000000000 -0400
48155@@ -67,7 +67,7 @@ extern u8 jbd2_journal_enable_debug; 47062@@ -67,7 +67,7 @@ extern u8 jbd2_journal_enable_debug;
48156 } \ 47063 } \
48157 } while (0) 47064 } while (0)
@@ -48161,9 +47068,9 @@ diff -urNp linux-2.6.38.3/include/linux/jbd2.h linux-2.6.38.3/include/linux/jbd2
48161 #endif 47068 #endif
48162 47069
48163 extern void *jbd2_alloc(size_t size, gfp_t flags); 47070 extern void *jbd2_alloc(size_t size, gfp_t flags);
48164diff -urNp linux-2.6.38.3/include/linux/jbd.h linux-2.6.38.3/include/linux/jbd.h 47071diff -urNp linux-2.6.38.2/include/linux/jbd.h linux-2.6.38.2/include/linux/jbd.h
48165--- linux-2.6.38.3/include/linux/jbd.h 2011-03-14 21:20:32.000000000 -0400 47072--- linux-2.6.38.2/include/linux/jbd.h 2011-03-14 21:20:32.000000000 -0400
48166+++ linux-2.6.38.3/include/linux/jbd.h 2011-04-17 15:57:32.000000000 -0400 47073+++ linux-2.6.38.2/include/linux/jbd.h 2011-03-21 18:31:35.000000000 -0400
48167@@ -67,7 +67,7 @@ extern u8 journal_enable_debug; 47074@@ -67,7 +67,7 @@ extern u8 journal_enable_debug;
48168 } \ 47075 } \
48169 } while (0) 47076 } while (0)
@@ -48173,9 +47080,9 @@ diff -urNp linux-2.6.38.3/include/linux/jbd.h linux-2.6.38.3/include/linux/jbd.h
48173 #endif 47080 #endif
48174 47081
48175 static inline void *jbd_alloc(size_t size, gfp_t flags) 47082 static inline void *jbd_alloc(size_t size, gfp_t flags)
48176diff -urNp linux-2.6.38.3/include/linux/kallsyms.h linux-2.6.38.3/include/linux/kallsyms.h 47083diff -urNp linux-2.6.38.2/include/linux/kallsyms.h linux-2.6.38.2/include/linux/kallsyms.h
48177--- linux-2.6.38.3/include/linux/kallsyms.h 2011-03-14 21:20:32.000000000 -0400 47084--- linux-2.6.38.2/include/linux/kallsyms.h 2011-03-14 21:20:32.000000000 -0400
48178+++ linux-2.6.38.3/include/linux/kallsyms.h 2011-04-17 15:57:32.000000000 -0400 47085+++ linux-2.6.38.2/include/linux/kallsyms.h 2011-03-21 18:31:35.000000000 -0400
48179@@ -15,7 +15,8 @@ 47086@@ -15,7 +15,8 @@
48180 47087
48181 struct module; 47088 struct module;
@@ -48202,9 +47109,9 @@ diff -urNp linux-2.6.38.3/include/linux/kallsyms.h linux-2.6.38.3/include/linux/
48202 47109
48203 /* This macro allows us to keep printk typechecking */ 47110 /* This macro allows us to keep printk typechecking */
48204 static void __check_printsym_format(const char *fmt, ...) 47111 static void __check_printsym_format(const char *fmt, ...)
48205diff -urNp linux-2.6.38.3/include/linux/kgdb.h linux-2.6.38.3/include/linux/kgdb.h 47112diff -urNp linux-2.6.38.2/include/linux/kgdb.h linux-2.6.38.2/include/linux/kgdb.h
48206--- linux-2.6.38.3/include/linux/kgdb.h 2011-03-14 21:20:32.000000000 -0400 47113--- linux-2.6.38.2/include/linux/kgdb.h 2011-03-14 21:20:32.000000000 -0400
48207+++ linux-2.6.38.3/include/linux/kgdb.h 2011-04-17 15:57:32.000000000 -0400 47114+++ linux-2.6.38.2/include/linux/kgdb.h 2011-03-21 18:31:35.000000000 -0400
48208@@ -269,22 +269,22 @@ struct kgdb_arch { 47115@@ -269,22 +269,22 @@ struct kgdb_arch {
48209 */ 47116 */
48210 struct kgdb_io { 47117 struct kgdb_io {
@@ -48238,21 +47145,9 @@ diff -urNp linux-2.6.38.3/include/linux/kgdb.h linux-2.6.38.3/include/linux/kgdb
48238 47145
48239 extern int kgdb_hex2long(char **ptr, unsigned long *long_val); 47146 extern int kgdb_hex2long(char **ptr, unsigned long *long_val);
48240 extern char *kgdb_mem2hex(char *mem, char *buf, int count); 47147 extern char *kgdb_mem2hex(char *mem, char *buf, int count);
48241diff -urNp linux-2.6.38.3/include/linux/kmod.h linux-2.6.38.3/include/linux/kmod.h 47148diff -urNp linux-2.6.38.2/include/linux/kvm_host.h linux-2.6.38.2/include/linux/kvm_host.h
48242--- linux-2.6.38.3/include/linux/kmod.h 2011-03-14 21:20:32.000000000 -0400 47149--- linux-2.6.38.2/include/linux/kvm_host.h 2011-03-14 21:20:32.000000000 -0400
48243+++ linux-2.6.38.3/include/linux/kmod.h 2011-04-17 15:57:32.000000000 -0400 47150+++ linux-2.6.38.2/include/linux/kvm_host.h 2011-03-21 18:31:35.000000000 -0400
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
48256@@ -288,7 +288,7 @@ void kvm_vcpu_uninit(struct kvm_vcpu *vc 47151@@ -288,7 +288,7 @@ void kvm_vcpu_uninit(struct kvm_vcpu *vc
48257 void vcpu_load(struct kvm_vcpu *vcpu); 47152 void vcpu_load(struct kvm_vcpu *vcpu);
48258 void vcpu_put(struct kvm_vcpu *vcpu); 47153 void vcpu_put(struct kvm_vcpu *vcpu);
@@ -48271,9 +47166,9 @@ diff -urNp linux-2.6.38.3/include/linux/kvm_host.h linux-2.6.38.3/include/linux/
48271 void kvm_arch_exit(void); 47166 void kvm_arch_exit(void);
48272 47167
48273 int kvm_arch_vcpu_init(struct kvm_vcpu *vcpu); 47168 int kvm_arch_vcpu_init(struct kvm_vcpu *vcpu);
48274diff -urNp linux-2.6.38.3/include/linux/libata.h linux-2.6.38.3/include/linux/libata.h 47169diff -urNp linux-2.6.38.2/include/linux/libata.h linux-2.6.38.2/include/linux/libata.h
48275--- linux-2.6.38.3/include/linux/libata.h 2011-03-14 21:20:32.000000000 -0400 47170--- linux-2.6.38.2/include/linux/libata.h 2011-03-14 21:20:32.000000000 -0400
48276+++ linux-2.6.38.3/include/linux/libata.h 2011-04-17 15:57:32.000000000 -0400 47171+++ linux-2.6.38.2/include/linux/libata.h 2011-03-21 18:31:35.000000000 -0400
48277@@ -65,11 +65,11 @@ 47172@@ -65,11 +65,11 @@
48278 #ifdef ATA_VERBOSE_DEBUG 47173 #ifdef ATA_VERBOSE_DEBUG
48279 #define VPRINTK(fmt, args...) printk(KERN_ERR "%s: " fmt, __func__, ## args) 47174 #define VPRINTK(fmt, args...) printk(KERN_ERR "%s: " fmt, __func__, ## args)
@@ -48339,9 +47234,9 @@ diff -urNp linux-2.6.38.3/include/linux/libata.h linux-2.6.38.3/include/linux/li
48339 extern int ata_scsi_detect(struct scsi_host_template *sht); 47234 extern int ata_scsi_detect(struct scsi_host_template *sht);
48340 extern int ata_scsi_ioctl(struct scsi_device *dev, int cmd, void __user *arg); 47235 extern int ata_scsi_ioctl(struct scsi_device *dev, int cmd, void __user *arg);
48341 extern int ata_scsi_queuecmd(struct Scsi_Host *h, struct scsi_cmnd *cmd); 47236 extern int ata_scsi_queuecmd(struct Scsi_Host *h, struct scsi_cmnd *cmd);
48342diff -urNp linux-2.6.38.3/include/linux/lockd/bind.h linux-2.6.38.3/include/linux/lockd/bind.h 47237diff -urNp linux-2.6.38.2/include/linux/lockd/bind.h linux-2.6.38.2/include/linux/lockd/bind.h
48343--- linux-2.6.38.3/include/linux/lockd/bind.h 2011-03-14 21:20:32.000000000 -0400 47238--- linux-2.6.38.2/include/linux/lockd/bind.h 2011-03-14 21:20:32.000000000 -0400
48344+++ linux-2.6.38.3/include/linux/lockd/bind.h 2011-04-17 15:57:32.000000000 -0400 47239+++ linux-2.6.38.2/include/linux/lockd/bind.h 2011-03-21 18:31:35.000000000 -0400
48345@@ -23,13 +23,13 @@ struct svc_rqst; 47240@@ -23,13 +23,13 @@ struct svc_rqst;
48346 * This is the set of functions for lockd->nfsd communication 47241 * This is the set of functions for lockd->nfsd communication
48347 */ 47242 */
@@ -48359,9 +47254,9 @@ diff -urNp linux-2.6.38.3/include/linux/lockd/bind.h linux-2.6.38.3/include/linu
48359 47254
48360 /* 47255 /*
48361 * Similar to nfs_client_initdata, but without the NFS-specific 47256 * Similar to nfs_client_initdata, but without the NFS-specific
48362diff -urNp linux-2.6.38.3/include/linux/mm.h linux-2.6.38.3/include/linux/mm.h 47257diff -urNp linux-2.6.38.2/include/linux/mm.h linux-2.6.38.2/include/linux/mm.h
48363--- linux-2.6.38.3/include/linux/mm.h 2011-04-18 17:27:16.000000000 -0400 47258--- linux-2.6.38.2/include/linux/mm.h 2011-03-28 17:42:40.000000000 -0400
48364+++ linux-2.6.38.3/include/linux/mm.h 2011-04-17 15:57:32.000000000 -0400 47259+++ linux-2.6.38.2/include/linux/mm.h 2011-03-28 17:42:53.000000000 -0400
48365@@ -113,7 +113,14 @@ extern unsigned int kobjsize(const void 47260@@ -113,7 +113,14 @@ extern unsigned int kobjsize(const void
48366 47261
48367 #define VM_CAN_NONLINEAR 0x08000000 /* Has ->fault & does nonlinear pages */ 47262 #define VM_CAN_NONLINEAR 0x08000000 /* Has ->fault & does nonlinear pages */
@@ -48462,9 +47357,9 @@ diff -urNp linux-2.6.38.3/include/linux/mm.h linux-2.6.38.3/include/linux/mm.h
48462+ 47357+
48463 #endif /* __KERNEL__ */ 47358 #endif /* __KERNEL__ */
48464 #endif /* _LINUX_MM_H */ 47359 #endif /* _LINUX_MM_H */
48465diff -urNp linux-2.6.38.3/include/linux/mm_types.h linux-2.6.38.3/include/linux/mm_types.h 47360diff -urNp linux-2.6.38.2/include/linux/mm_types.h linux-2.6.38.2/include/linux/mm_types.h
48466--- linux-2.6.38.3/include/linux/mm_types.h 2011-03-14 21:20:32.000000000 -0400 47361--- linux-2.6.38.2/include/linux/mm_types.h 2011-03-14 21:20:32.000000000 -0400
48467+++ linux-2.6.38.3/include/linux/mm_types.h 2011-04-17 15:57:32.000000000 -0400 47362+++ linux-2.6.38.2/include/linux/mm_types.h 2011-03-21 18:31:35.000000000 -0400
48468@@ -183,6 +183,8 @@ struct vm_area_struct { 47363@@ -183,6 +183,8 @@ struct vm_area_struct {
48469 #ifdef CONFIG_NUMA 47364 #ifdef CONFIG_NUMA
48470 struct mempolicy *vm_policy; /* NUMA policy for the VMA */ 47365 struct mempolicy *vm_policy; /* NUMA policy for the VMA */
@@ -48499,9 +47394,9 @@ diff -urNp linux-2.6.38.3/include/linux/mm_types.h linux-2.6.38.3/include/linux/
48499 }; 47394 };
48500 47395
48501 /* Future-safe accessor for struct mm_struct's cpu_vm_mask. */ 47396 /* Future-safe accessor for struct mm_struct's cpu_vm_mask. */
48502diff -urNp linux-2.6.38.3/include/linux/mmu_notifier.h linux-2.6.38.3/include/linux/mmu_notifier.h 47397diff -urNp linux-2.6.38.2/include/linux/mmu_notifier.h linux-2.6.38.2/include/linux/mmu_notifier.h
48503--- linux-2.6.38.3/include/linux/mmu_notifier.h 2011-03-14 21:20:32.000000000 -0400 47398--- linux-2.6.38.2/include/linux/mmu_notifier.h 2011-03-14 21:20:32.000000000 -0400
48504+++ linux-2.6.38.3/include/linux/mmu_notifier.h 2011-04-17 15:57:32.000000000 -0400 47399+++ linux-2.6.38.2/include/linux/mmu_notifier.h 2011-03-21 18:31:35.000000000 -0400
48505@@ -255,12 +255,12 @@ static inline void mmu_notifier_mm_destr 47400@@ -255,12 +255,12 @@ static inline void mmu_notifier_mm_destr
48506 */ 47401 */
48507 #define ptep_clear_flush_notify(__vma, __address, __ptep) \ 47402 #define ptep_clear_flush_notify(__vma, __address, __ptep) \
@@ -48518,9 +47413,9 @@ diff -urNp linux-2.6.38.3/include/linux/mmu_notifier.h linux-2.6.38.3/include/li
48518 }) 47413 })
48519 47414
48520 #define pmdp_clear_flush_notify(__vma, __address, __pmdp) \ 47415 #define pmdp_clear_flush_notify(__vma, __address, __pmdp) \
48521diff -urNp linux-2.6.38.3/include/linux/mmzone.h linux-2.6.38.3/include/linux/mmzone.h 47416diff -urNp linux-2.6.38.2/include/linux/mmzone.h linux-2.6.38.2/include/linux/mmzone.h
48522--- linux-2.6.38.3/include/linux/mmzone.h 2011-03-14 21:20:32.000000000 -0400 47417--- linux-2.6.38.2/include/linux/mmzone.h 2011-03-14 21:20:32.000000000 -0400
48523+++ linux-2.6.38.3/include/linux/mmzone.h 2011-04-17 15:57:32.000000000 -0400 47418+++ linux-2.6.38.2/include/linux/mmzone.h 2011-03-21 18:31:35.000000000 -0400
48524@@ -355,7 +355,7 @@ struct zone { 47419@@ -355,7 +355,7 @@ struct zone {
48525 unsigned long flags; /* zone flags, see below */ 47420 unsigned long flags; /* zone flags, see below */
48526 47421
@@ -48530,9 +47425,9 @@ diff -urNp linux-2.6.38.3/include/linux/mmzone.h linux-2.6.38.3/include/linux/mm
48530 47425
48531 /* 47426 /*
48532 * The target ratio of ACTIVE_ANON to INACTIVE_ANON pages on 47427 * The target ratio of ACTIVE_ANON to INACTIVE_ANON pages on
48533diff -urNp linux-2.6.38.3/include/linux/mod_devicetable.h linux-2.6.38.3/include/linux/mod_devicetable.h 47428diff -urNp linux-2.6.38.2/include/linux/mod_devicetable.h linux-2.6.38.2/include/linux/mod_devicetable.h
48534--- linux-2.6.38.3/include/linux/mod_devicetable.h 2011-03-14 21:20:32.000000000 -0400 47429--- linux-2.6.38.2/include/linux/mod_devicetable.h 2011-03-14 21:20:32.000000000 -0400
48535+++ linux-2.6.38.3/include/linux/mod_devicetable.h 2011-04-17 15:57:32.000000000 -0400 47430+++ linux-2.6.38.2/include/linux/mod_devicetable.h 2011-03-21 18:31:35.000000000 -0400
48536@@ -12,7 +12,7 @@ 47431@@ -12,7 +12,7 @@
48537 typedef unsigned long kernel_ulong_t; 47432 typedef unsigned long kernel_ulong_t;
48538 #endif 47433 #endif
@@ -48551,9 +47446,9 @@ diff -urNp linux-2.6.38.3/include/linux/mod_devicetable.h linux-2.6.38.3/include
48551 47446
48552 struct hid_device_id { 47447 struct hid_device_id {
48553 __u16 bus; 47448 __u16 bus;
48554diff -urNp linux-2.6.38.3/include/linux/module.h linux-2.6.38.3/include/linux/module.h 47449diff -urNp linux-2.6.38.2/include/linux/module.h linux-2.6.38.2/include/linux/module.h
48555--- linux-2.6.38.3/include/linux/module.h 2011-03-14 21:20:32.000000000 -0400 47450--- linux-2.6.38.2/include/linux/module.h 2011-03-14 21:20:32.000000000 -0400
48556+++ linux-2.6.38.3/include/linux/module.h 2011-04-17 15:57:32.000000000 -0400 47451+++ linux-2.6.38.2/include/linux/module.h 2011-03-21 18:31:35.000000000 -0400
48557@@ -324,19 +324,16 @@ struct module 47452@@ -324,19 +324,16 @@ struct module
48558 int (*init)(void); 47453 int (*init)(void);
48559 47454
@@ -48629,9 +47524,9 @@ diff -urNp linux-2.6.38.3/include/linux/module.h linux-2.6.38.3/include/linux/mo
48629 } 47524 }
48630 47525
48631 /* Search for module by name: must hold module_mutex. */ 47526 /* Search for module by name: must hold module_mutex. */
48632diff -urNp linux-2.6.38.3/include/linux/moduleloader.h linux-2.6.38.3/include/linux/moduleloader.h 47527diff -urNp linux-2.6.38.2/include/linux/moduleloader.h linux-2.6.38.2/include/linux/moduleloader.h
48633--- linux-2.6.38.3/include/linux/moduleloader.h 2011-03-14 21:20:32.000000000 -0400 47528--- linux-2.6.38.2/include/linux/moduleloader.h 2011-03-14 21:20:32.000000000 -0400
48634+++ linux-2.6.38.3/include/linux/moduleloader.h 2011-04-17 15:57:32.000000000 -0400 47529+++ linux-2.6.38.2/include/linux/moduleloader.h 2011-03-21 18:31:35.000000000 -0400
48635@@ -20,9 +20,21 @@ unsigned int arch_mod_section_prepend(st 47530@@ -20,9 +20,21 @@ unsigned int arch_mod_section_prepend(st
48636 sections. Returns NULL on failure. */ 47531 sections. Returns NULL on failure. */
48637 void *module_alloc(unsigned long size); 47532 void *module_alloc(unsigned long size);
@@ -48654,9 +47549,9 @@ diff -urNp linux-2.6.38.3/include/linux/moduleloader.h linux-2.6.38.3/include/li
48654 /* Apply the given relocation to the (simplified) ELF. Return -error 47549 /* Apply the given relocation to the (simplified) ELF. Return -error
48655 or 0. */ 47550 or 0. */
48656 int apply_relocate(Elf_Shdr *sechdrs, 47551 int apply_relocate(Elf_Shdr *sechdrs,
48657diff -urNp linux-2.6.38.3/include/linux/moduleparam.h linux-2.6.38.3/include/linux/moduleparam.h 47552diff -urNp linux-2.6.38.2/include/linux/moduleparam.h linux-2.6.38.2/include/linux/moduleparam.h
48658--- linux-2.6.38.3/include/linux/moduleparam.h 2011-03-14 21:20:32.000000000 -0400 47553--- linux-2.6.38.2/include/linux/moduleparam.h 2011-03-14 21:20:32.000000000 -0400
48659+++ linux-2.6.38.3/include/linux/moduleparam.h 2011-04-17 15:57:32.000000000 -0400 47554+++ linux-2.6.38.2/include/linux/moduleparam.h 2011-03-21 18:31:35.000000000 -0400
48660@@ -255,7 +255,7 @@ static inline void __kernel_param_unlock 47555@@ -255,7 +255,7 @@ static inline void __kernel_param_unlock
48661 * @len is usually just sizeof(string). 47556 * @len is usually just sizeof(string).
48662 */ 47557 */
@@ -48675,21 +47570,9 @@ diff -urNp linux-2.6.38.3/include/linux/moduleparam.h linux-2.6.38.3/include/lin
48675 = { ARRAY_SIZE(array), nump, &param_ops_##type, \ 47570 = { ARRAY_SIZE(array), nump, &param_ops_##type, \
48676 sizeof(array[0]), array }; \ 47571 sizeof(array[0]), array }; \
48677 __module_param_call(MODULE_PARAM_PREFIX, name, \ 47572 __module_param_call(MODULE_PARAM_PREFIX, name, \
48678diff -urNp linux-2.6.38.3/include/linux/mutex.h linux-2.6.38.3/include/linux/mutex.h 47573diff -urNp linux-2.6.38.2/include/linux/namei.h linux-2.6.38.2/include/linux/namei.h
48679--- linux-2.6.38.3/include/linux/mutex.h 2011-03-14 21:20:32.000000000 -0400 47574--- linux-2.6.38.2/include/linux/namei.h 2011-03-14 21:20:32.000000000 -0400
48680+++ linux-2.6.38.3/include/linux/mutex.h 2011-04-17 17:44:37.000000000 -0400 47575+++ linux-2.6.38.2/include/linux/namei.h 2011-03-21 18:31:35.000000000 -0400
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
48693@@ -25,7 +25,7 @@ struct nameidata { 47576@@ -25,7 +25,7 @@ struct nameidata {
48694 unsigned seq; 47577 unsigned seq;
48695 int last_type; 47578 int last_type;
@@ -48714,9 +47597,9 @@ diff -urNp linux-2.6.38.3/include/linux/namei.h linux-2.6.38.3/include/linux/nam
48714 { 47597 {
48715 return nd->saved_names[nd->depth]; 47598 return nd->saved_names[nd->depth];
48716 } 47599 }
48717diff -urNp linux-2.6.38.3/include/linux/netfilter/xt_gradm.h linux-2.6.38.3/include/linux/netfilter/xt_gradm.h 47600diff -urNp linux-2.6.38.2/include/linux/netfilter/xt_gradm.h linux-2.6.38.2/include/linux/netfilter/xt_gradm.h
48718--- linux-2.6.38.3/include/linux/netfilter/xt_gradm.h 1969-12-31 19:00:00.000000000 -0500 47601--- linux-2.6.38.2/include/linux/netfilter/xt_gradm.h 1969-12-31 19:00:00.000000000 -0500
48719+++ linux-2.6.38.3/include/linux/netfilter/xt_gradm.h 2011-04-17 15:57:32.000000000 -0400 47602+++ linux-2.6.38.2/include/linux/netfilter/xt_gradm.h 2011-03-21 18:31:35.000000000 -0400
48720@@ -0,0 +1,9 @@ 47603@@ -0,0 +1,9 @@
48721+#ifndef _LINUX_NETFILTER_XT_GRADM_H 47604+#ifndef _LINUX_NETFILTER_XT_GRADM_H
48722+#define _LINUX_NETFILTER_XT_GRADM_H 1 47605+#define _LINUX_NETFILTER_XT_GRADM_H 1
@@ -48727,9 +47610,9 @@ diff -urNp linux-2.6.38.3/include/linux/netfilter/xt_gradm.h linux-2.6.38.3/incl
48727+}; 47610+};
48728+ 47611+
48729+#endif 47612+#endif
48730diff -urNp linux-2.6.38.3/include/linux/oprofile.h linux-2.6.38.3/include/linux/oprofile.h 47613diff -urNp linux-2.6.38.2/include/linux/oprofile.h linux-2.6.38.2/include/linux/oprofile.h
48731--- linux-2.6.38.3/include/linux/oprofile.h 2011-03-14 21:20:32.000000000 -0400 47614--- linux-2.6.38.2/include/linux/oprofile.h 2011-03-14 21:20:32.000000000 -0400
48732+++ linux-2.6.38.3/include/linux/oprofile.h 2011-04-17 15:57:32.000000000 -0400 47615+++ linux-2.6.38.2/include/linux/oprofile.h 2011-03-21 18:31:35.000000000 -0400
48733@@ -132,9 +132,9 @@ int oprofilefs_create_ulong(struct super 47616@@ -132,9 +132,9 @@ int oprofilefs_create_ulong(struct super
48734 int oprofilefs_create_ro_ulong(struct super_block * sb, struct dentry * root, 47617 int oprofilefs_create_ro_ulong(struct super_block * sb, struct dentry * root,
48735 char const * name, ulong * val); 47618 char const * name, ulong * val);
@@ -48742,21 +47625,9 @@ diff -urNp linux-2.6.38.3/include/linux/oprofile.h linux-2.6.38.3/include/linux/
48742 47625
48743 /** create a directory */ 47626 /** create a directory */
48744 struct dentry * oprofilefs_mkdir(struct super_block * sb, struct dentry * root, 47627 struct dentry * oprofilefs_mkdir(struct super_block * sb, struct dentry * root,
48745diff -urNp linux-2.6.38.3/include/linux/pid.h linux-2.6.38.3/include/linux/pid.h 47628diff -urNp linux-2.6.38.2/include/linux/pipe_fs_i.h linux-2.6.38.2/include/linux/pipe_fs_i.h
48746--- linux-2.6.38.3/include/linux/pid.h 2011-03-14 21:20:32.000000000 -0400 47629--- linux-2.6.38.2/include/linux/pipe_fs_i.h 2011-03-14 21:20:32.000000000 -0400
48747+++ linux-2.6.38.3/include/linux/pid.h 2011-04-18 19:21:21.000000000 -0400 47630+++ linux-2.6.38.2/include/linux/pipe_fs_i.h 2011-03-21 18:31:35.000000000 -0400
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
48760@@ -46,9 +46,9 @@ struct pipe_buffer { 47631@@ -46,9 +46,9 @@ struct pipe_buffer {
48761 struct pipe_inode_info { 47632 struct pipe_inode_info {
48762 wait_queue_head_t wait; 47633 wait_queue_head_t wait;
@@ -48770,9 +47641,9 @@ diff -urNp linux-2.6.38.3/include/linux/pipe_fs_i.h linux-2.6.38.3/include/linux
48770 unsigned int r_counter; 47641 unsigned int r_counter;
48771 unsigned int w_counter; 47642 unsigned int w_counter;
48772 struct page *tmp_page; 47643 struct page *tmp_page;
48773diff -urNp linux-2.6.38.3/include/linux/pm_runtime.h linux-2.6.38.3/include/linux/pm_runtime.h 47644diff -urNp linux-2.6.38.2/include/linux/pm_runtime.h linux-2.6.38.2/include/linux/pm_runtime.h
48774--- linux-2.6.38.3/include/linux/pm_runtime.h 2011-03-14 21:20:32.000000000 -0400 47645--- linux-2.6.38.2/include/linux/pm_runtime.h 2011-03-14 21:20:32.000000000 -0400
48775+++ linux-2.6.38.3/include/linux/pm_runtime.h 2011-04-17 15:57:32.000000000 -0400 47646+++ linux-2.6.38.2/include/linux/pm_runtime.h 2011-03-21 18:31:35.000000000 -0400
48776@@ -89,7 +89,7 @@ static inline bool pm_runtime_enabled(st 47647@@ -89,7 +89,7 @@ static inline bool pm_runtime_enabled(st
48777 47648
48778 static inline void pm_runtime_mark_last_busy(struct device *dev) 47649 static inline void pm_runtime_mark_last_busy(struct device *dev)
@@ -48782,9 +47653,9 @@ diff -urNp linux-2.6.38.3/include/linux/pm_runtime.h linux-2.6.38.3/include/linu
48782 } 47653 }
48783 47654
48784 #else /* !CONFIG_PM_RUNTIME */ 47655 #else /* !CONFIG_PM_RUNTIME */
48785diff -urNp linux-2.6.38.3/include/linux/poison.h linux-2.6.38.3/include/linux/poison.h 47656diff -urNp linux-2.6.38.2/include/linux/poison.h linux-2.6.38.2/include/linux/poison.h
48786--- linux-2.6.38.3/include/linux/poison.h 2011-03-14 21:20:32.000000000 -0400 47657--- linux-2.6.38.2/include/linux/poison.h 2011-03-14 21:20:32.000000000 -0400
48787+++ linux-2.6.38.3/include/linux/poison.h 2011-04-17 15:57:32.000000000 -0400 47658+++ linux-2.6.38.2/include/linux/poison.h 2011-03-21 18:31:35.000000000 -0400
48788@@ -19,8 +19,8 @@ 47659@@ -19,8 +19,8 @@
48789 * under normal circumstances, used to verify that nobody uses 47660 * under normal circumstances, used to verify that nobody uses
48790 * non-initialized list entries. 47661 * non-initialized list entries.
@@ -48796,9 +47667,9 @@ diff -urNp linux-2.6.38.3/include/linux/poison.h linux-2.6.38.3/include/linux/po
48796 47667
48797 /********** include/linux/timer.h **********/ 47668 /********** include/linux/timer.h **********/
48798 /* 47669 /*
48799diff -urNp linux-2.6.38.3/include/linux/proc_fs.h linux-2.6.38.3/include/linux/proc_fs.h 47670diff -urNp linux-2.6.38.2/include/linux/proc_fs.h linux-2.6.38.2/include/linux/proc_fs.h
48800--- linux-2.6.38.3/include/linux/proc_fs.h 2011-03-14 21:20:32.000000000 -0400 47671--- linux-2.6.38.2/include/linux/proc_fs.h 2011-03-14 21:20:32.000000000 -0400
48801+++ linux-2.6.38.3/include/linux/proc_fs.h 2011-04-17 15:57:32.000000000 -0400 47672+++ linux-2.6.38.2/include/linux/proc_fs.h 2011-03-21 18:31:35.000000000 -0400
48802@@ -155,6 +155,19 @@ static inline struct proc_dir_entry *pro 47673@@ -155,6 +155,19 @@ static inline struct proc_dir_entry *pro
48803 return proc_create_data(name, mode, parent, proc_fops, NULL); 47674 return proc_create_data(name, mode, parent, proc_fops, NULL);
48804 } 47675 }
@@ -48819,9 +47690,9 @@ diff -urNp linux-2.6.38.3/include/linux/proc_fs.h linux-2.6.38.3/include/linux/p
48819 static inline struct proc_dir_entry *create_proc_read_entry(const char *name, 47690 static inline struct proc_dir_entry *create_proc_read_entry(const char *name,
48820 mode_t mode, struct proc_dir_entry *base, 47691 mode_t mode, struct proc_dir_entry *base,
48821 read_proc_t *read_proc, void * data) 47692 read_proc_t *read_proc, void * data)
48822diff -urNp linux-2.6.38.3/include/linux/ptrace.h linux-2.6.38.3/include/linux/ptrace.h 47693diff -urNp linux-2.6.38.2/include/linux/ptrace.h linux-2.6.38.2/include/linux/ptrace.h
48823--- linux-2.6.38.3/include/linux/ptrace.h 2011-03-14 21:20:32.000000000 -0400 47694--- linux-2.6.38.2/include/linux/ptrace.h 2011-03-14 21:20:32.000000000 -0400
48824+++ linux-2.6.38.3/include/linux/ptrace.h 2011-04-17 15:57:32.000000000 -0400 47695+++ linux-2.6.38.2/include/linux/ptrace.h 2011-03-26 11:36:13.000000000 -0400
48825@@ -115,10 +115,10 @@ extern void __ptrace_unlink(struct task_ 47696@@ -115,10 +115,10 @@ extern void __ptrace_unlink(struct task_
48826 extern void exit_ptrace(struct task_struct *tracer); 47697 extern void exit_ptrace(struct task_struct *tracer);
48827 #define PTRACE_MODE_READ 1 47698 #define PTRACE_MODE_READ 1
@@ -48835,9 +47706,9 @@ diff -urNp linux-2.6.38.3/include/linux/ptrace.h linux-2.6.38.3/include/linux/pt
48835 47706
48836 static inline int ptrace_reparented(struct task_struct *child) 47707 static inline int ptrace_reparented(struct task_struct *child)
48837 { 47708 {
48838diff -urNp linux-2.6.38.3/include/linux/random.h linux-2.6.38.3/include/linux/random.h 47709diff -urNp linux-2.6.38.2/include/linux/random.h linux-2.6.38.2/include/linux/random.h
48839--- linux-2.6.38.3/include/linux/random.h 2011-03-14 21:20:32.000000000 -0400 47710--- linux-2.6.38.2/include/linux/random.h 2011-03-14 21:20:32.000000000 -0400
48840+++ linux-2.6.38.3/include/linux/random.h 2011-04-17 15:57:32.000000000 -0400 47711+++ linux-2.6.38.2/include/linux/random.h 2011-03-21 18:31:35.000000000 -0400
48841@@ -80,12 +80,17 @@ void srandom32(u32 seed); 47712@@ -80,12 +80,17 @@ void srandom32(u32 seed);
48842 47713
48843 u32 prandom32(struct rnd_state *); 47714 u32 prandom32(struct rnd_state *);
@@ -48857,9 +47728,9 @@ diff -urNp linux-2.6.38.3/include/linux/random.h linux-2.6.38.3/include/linux/ra
48857 } 47728 }
48858 47729
48859 /** 47730 /**
48860diff -urNp linux-2.6.38.3/include/linux/reiserfs_fs.h linux-2.6.38.3/include/linux/reiserfs_fs.h 47731diff -urNp linux-2.6.38.2/include/linux/reiserfs_fs.h linux-2.6.38.2/include/linux/reiserfs_fs.h
48861--- linux-2.6.38.3/include/linux/reiserfs_fs.h 2011-03-14 21:20:32.000000000 -0400 47732--- linux-2.6.38.2/include/linux/reiserfs_fs.h 2011-03-14 21:20:32.000000000 -0400
48862+++ linux-2.6.38.3/include/linux/reiserfs_fs.h 2011-04-17 15:57:32.000000000 -0400 47733+++ linux-2.6.38.2/include/linux/reiserfs_fs.h 2011-03-21 18:31:35.000000000 -0400
48863@@ -1403,7 +1403,7 @@ static inline loff_t max_reiserfs_offset 47734@@ -1403,7 +1403,7 @@ static inline loff_t max_reiserfs_offset
48864 #define REISERFS_USER_MEM 1 /* reiserfs user memory mode */ 47735 #define REISERFS_USER_MEM 1 /* reiserfs user memory mode */
48865 47736
@@ -48906,9 +47777,9 @@ diff -urNp linux-2.6.38.3/include/linux/reiserfs_fs.h linux-2.6.38.3/include/lin
48906 47777
48907 #define op_bytes_number(ih,bsize) item_ops[le_ih_k_type (ih)]->bytes_number (ih, bsize) 47778 #define op_bytes_number(ih,bsize) item_ops[le_ih_k_type (ih)]->bytes_number (ih, bsize)
48908 #define op_is_left_mergeable(key,bsize) item_ops[le_key_k_type (le_key_version (key), key)]->is_left_mergeable (key, bsize) 47779 #define op_is_left_mergeable(key,bsize) item_ops[le_key_k_type (le_key_version (key), key)]->is_left_mergeable (key, bsize)
48909diff -urNp linux-2.6.38.3/include/linux/reiserfs_fs_sb.h linux-2.6.38.3/include/linux/reiserfs_fs_sb.h 47780diff -urNp linux-2.6.38.2/include/linux/reiserfs_fs_sb.h linux-2.6.38.2/include/linux/reiserfs_fs_sb.h
48910--- linux-2.6.38.3/include/linux/reiserfs_fs_sb.h 2011-03-14 21:20:32.000000000 -0400 47781--- linux-2.6.38.2/include/linux/reiserfs_fs_sb.h 2011-03-14 21:20:32.000000000 -0400
48911+++ linux-2.6.38.3/include/linux/reiserfs_fs_sb.h 2011-04-17 15:57:32.000000000 -0400 47782+++ linux-2.6.38.2/include/linux/reiserfs_fs_sb.h 2011-03-21 18:31:35.000000000 -0400
48912@@ -386,7 +386,7 @@ struct reiserfs_sb_info { 47783@@ -386,7 +386,7 @@ struct reiserfs_sb_info {
48913 /* Comment? -Hans */ 47784 /* Comment? -Hans */
48914 wait_queue_head_t s_wait; 47785 wait_queue_head_t s_wait;
@@ -48918,9 +47789,9 @@ diff -urNp linux-2.6.38.3/include/linux/reiserfs_fs_sb.h linux-2.6.38.3/include/
48918 // tree gets re-balanced 47789 // tree gets re-balanced
48919 unsigned long s_properties; /* File system properties. Currently holds 47790 unsigned long s_properties; /* File system properties. Currently holds
48920 on-disk FS format */ 47791 on-disk FS format */
48921diff -urNp linux-2.6.38.3/include/linux/rmap.h linux-2.6.38.3/include/linux/rmap.h 47792diff -urNp linux-2.6.38.2/include/linux/rmap.h linux-2.6.38.2/include/linux/rmap.h
48922--- linux-2.6.38.3/include/linux/rmap.h 2011-03-14 21:20:32.000000000 -0400 47793--- linux-2.6.38.2/include/linux/rmap.h 2011-03-14 21:20:32.000000000 -0400
48923+++ linux-2.6.38.3/include/linux/rmap.h 2011-04-17 15:57:32.000000000 -0400 47794+++ linux-2.6.38.2/include/linux/rmap.h 2011-03-21 18:31:35.000000000 -0400
48924@@ -145,8 +145,8 @@ static inline void anon_vma_unlock(struc 47795@@ -145,8 +145,8 @@ static inline void anon_vma_unlock(struc
48925 void anon_vma_init(void); /* create anon_vma_cachep */ 47796 void anon_vma_init(void); /* create anon_vma_cachep */
48926 int anon_vma_prepare(struct vm_area_struct *); 47797 int anon_vma_prepare(struct vm_area_struct *);
@@ -48932,9 +47803,9 @@ diff -urNp linux-2.6.38.3/include/linux/rmap.h linux-2.6.38.3/include/linux/rmap
48932 void __anon_vma_link(struct vm_area_struct *); 47803 void __anon_vma_link(struct vm_area_struct *);
48933 void anon_vma_free(struct anon_vma *); 47804 void anon_vma_free(struct anon_vma *);
48934 47805
48935diff -urNp linux-2.6.38.3/include/linux/sched.h linux-2.6.38.3/include/linux/sched.h 47806diff -urNp linux-2.6.38.2/include/linux/sched.h linux-2.6.38.2/include/linux/sched.h
48936--- linux-2.6.38.3/include/linux/sched.h 2011-03-14 21:20:32.000000000 -0400 47807--- linux-2.6.38.2/include/linux/sched.h 2011-03-14 21:20:32.000000000 -0400
48937+++ linux-2.6.38.3/include/linux/sched.h 2011-04-18 22:03:12.000000000 -0400 47808+++ linux-2.6.38.2/include/linux/sched.h 2011-03-26 17:18:15.000000000 -0400
48938@@ -99,6 +99,7 @@ struct robust_list_head; 47809@@ -99,6 +99,7 @@ struct robust_list_head;
48939 struct bio_list; 47810 struct bio_list;
48940 struct fs_struct; 47811 struct fs_struct;
@@ -48943,15 +47814,6 @@ diff -urNp linux-2.6.38.3/include/linux/sched.h linux-2.6.38.3/include/linux/sch
48943 47814
48944 /* 47815 /*
48945 * List of flags we want to share for kernel threads, 47816 * 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;
48955@@ -380,10 +381,13 @@ struct user_namespace; 47817@@ -380,10 +381,13 @@ struct user_namespace;
48956 #define DEFAULT_MAX_MAP_COUNT (USHRT_MAX - MAPCOUNT_ELF_CORE_MARGIN) 47818 #define DEFAULT_MAX_MAP_COUNT (USHRT_MAX - MAPCOUNT_ELF_CORE_MARGIN)
48957 47819
@@ -48984,19 +47846,16 @@ diff -urNp linux-2.6.38.3/include/linux/sched.h linux-2.6.38.3/include/linux/sch
48984 #ifdef CONFIG_AUDIT 47846 #ifdef CONFIG_AUDIT
48985 unsigned audit_tty; 47847 unsigned audit_tty;
48986 struct tty_audit_buf *tty_audit_buf; 47848 struct tty_audit_buf *tty_audit_buf;
48987@@ -700,6 +715,11 @@ struct user_struct { 47849@@ -1192,7 +1207,7 @@ enum perf_event_task_context {
48988 struct key *session_keyring; /* UID's default session keyring */ 47850
48989 #endif 47851 struct task_struct {
48990 47852 volatile long state; /* -1 unrunnable, 0 runnable, >0 stopped */
48991+#if defined(CONFIG_GRKERNSEC_KERN_LOCKOUT) || defined(CONFIG_GRKERNSEC_BRUTE) 47853- void *stack;
48992+ unsigned int banned; 47854+ struct thread_info *stack;
48993+ unsigned long ban_expires; 47855 atomic_t usage;
48994+#endif 47856 unsigned int flags; /* per process flags, defined below */
48995+ 47857 unsigned int ptrace;
48996 /* Hash table maintenance information */ 47858@@ -1307,8 +1322,8 @@ struct task_struct {
48997 struct hlist_node uidhash_node;
48998 uid_t uid;
48999@@ -1307,8 +1327,8 @@ struct task_struct {
49000 struct list_head thread_group; 47859 struct list_head thread_group;
49001 47860
49002 struct completion *vfork_done; /* for vfork() */ 47861 struct completion *vfork_done; /* for vfork() */
@@ -49007,7 +47866,7 @@ diff -urNp linux-2.6.38.3/include/linux/sched.h linux-2.6.38.3/include/linux/sch
49007 47866
49008 cputime_t utime, stime, utimescaled, stimescaled; 47867 cputime_t utime, stime, utimescaled, stimescaled;
49009 cputime_t gtime; 47868 cputime_t gtime;
49010@@ -1324,13 +1344,6 @@ struct task_struct { 47869@@ -1324,13 +1339,6 @@ struct task_struct {
49011 struct task_cputime cputime_expires; 47870 struct task_cputime cputime_expires;
49012 struct list_head cpu_timers[3]; 47871 struct list_head cpu_timers[3];
49013 47872
@@ -49021,14 +47880,8 @@ diff -urNp linux-2.6.38.3/include/linux/sched.h linux-2.6.38.3/include/linux/sch
49021 char comm[TASK_COMM_LEN]; /* executable name excluding path 47880 char comm[TASK_COMM_LEN]; /* executable name excluding path
49022 - access with [gs]et_task_comm (which lock 47881 - access with [gs]et_task_comm (which lock
49023 it with task_lock()) 47882 it with task_lock())
49024@@ -1347,8 +1360,16 @@ struct task_struct { 47883@@ -1349,6 +1357,10 @@ struct task_struct {
49025 #endif
49026 /* CPU-specific state of this task */
49027 struct thread_struct thread; 47884 struct thread_struct thread;
49028+/* thread_info moved to task_struct */
49029+#ifdef CONFIG_X86
49030+ struct thread_info tinfo;
49031+#endif
49032 /* filesystem information */ 47885 /* filesystem information */
49033 struct fs_struct *fs; 47886 struct fs_struct *fs;
49034+ 47887+
@@ -49038,7 +47891,7 @@ diff -urNp linux-2.6.38.3/include/linux/sched.h linux-2.6.38.3/include/linux/sch
49038 /* open file information */ 47891 /* open file information */
49039 struct files_struct *files; 47892 struct files_struct *files;
49040 /* namespaces */ 47893 /* namespaces */
49041@@ -1395,6 +1416,11 @@ struct task_struct { 47894@@ -1395,6 +1407,11 @@ struct task_struct {
49042 struct rt_mutex_waiter *pi_blocked_on; 47895 struct rt_mutex_waiter *pi_blocked_on;
49043 #endif 47896 #endif
49044 47897
@@ -49050,7 +47903,7 @@ diff -urNp linux-2.6.38.3/include/linux/sched.h linux-2.6.38.3/include/linux/sch
49050 #ifdef CONFIG_DEBUG_MUTEXES 47903 #ifdef CONFIG_DEBUG_MUTEXES
49051 /* mutex deadlock detection */ 47904 /* mutex deadlock detection */
49052 struct mutex_waiter *blocked_on; 47905 struct mutex_waiter *blocked_on;
49053@@ -1499,6 +1525,21 @@ struct task_struct { 47906@@ -1499,6 +1516,21 @@ struct task_struct {
49054 unsigned long default_timer_slack_ns; 47907 unsigned long default_timer_slack_ns;
49055 47908
49056 struct list_head *scm_work_list; 47909 struct list_head *scm_work_list;
@@ -49072,7 +47925,7 @@ diff -urNp linux-2.6.38.3/include/linux/sched.h linux-2.6.38.3/include/linux/sch
49072 #ifdef CONFIG_FUNCTION_GRAPH_TRACER 47925 #ifdef CONFIG_FUNCTION_GRAPH_TRACER
49073 /* Index of current stored address in ret_stack */ 47926 /* Index of current stored address in ret_stack */
49074 int curr_ret_stack; 47927 int curr_ret_stack;
49075@@ -1530,6 +1571,51 @@ struct task_struct { 47928@@ -1530,6 +1562,52 @@ struct task_struct {
49076 #endif 47929 #endif
49077 }; 47930 };
49078 47931
@@ -49119,22 +47972,13 @@ diff -urNp linux-2.6.38.3/include/linux/sched.h linux-2.6.38.3/include/linux/sch
49119+void pax_report_fault(struct pt_regs *regs, void *pc, void *sp); 47972+void pax_report_fault(struct pt_regs *regs, void *pc, void *sp);
49120+void pax_report_insns(void *pc, void *sp); 47973+void pax_report_insns(void *pc, void *sp);
49121+void pax_report_refcount_overflow(struct pt_regs *regs); 47974+void pax_report_refcount_overflow(struct pt_regs *regs);
49122+void pax_report_usercopy(const void *ptr, unsigned long len, bool to, const char *type); 47975+void pax_report_leak_to_user(const void *ptr, unsigned long len);
47976+void pax_report_overflow_from_user(const void *ptr, unsigned long len);
49123+ 47977+
49124 /* Future-safe accessor for struct task_struct's cpus_allowed. */ 47978 /* Future-safe accessor for struct task_struct's cpus_allowed. */
49125 #define tsk_cpus_allowed(tsk) (&(tsk)->cpus_allowed) 47979 #define tsk_cpus_allowed(tsk) (&(tsk)->cpus_allowed)
49126 47980
49127@@ -1999,7 +2085,9 @@ void yield(void); 47981@@ -2169,7 +2247,7 @@ extern void __cleanup_sighand(struct sig
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
49138 extern void exit_itimers(struct signal_struct *); 47982 extern void exit_itimers(struct signal_struct *);
49139 extern void flush_itimer_signals(void); 47983 extern void flush_itimer_signals(void);
49140 47984
@@ -49143,7 +47987,18 @@ diff -urNp linux-2.6.38.3/include/linux/sched.h linux-2.6.38.3/include/linux/sch
49143 47987
49144 extern void daemonize(const char *, ...); 47988 extern void daemonize(const char *, ...);
49145 extern int allow_signal(int); 47989 extern int allow_signal(int);
49146@@ -2310,13 +2398,17 @@ static inline unsigned long *end_of_stac 47990@@ -2294,8 +2372,8 @@ static inline void unlock_task_sighand(s
47991
47992 #ifndef __HAVE_THREAD_FUNCTIONS
47993
47994-#define task_thread_info(task) ((struct thread_info *)(task)->stack)
47995-#define task_stack_page(task) ((task)->stack)
47996+#define task_thread_info(task) ((task)->stack)
47997+#define task_stack_page(task) ((void *)(task)->stack)
47998
47999 static inline void setup_thread_stack(struct task_struct *p, struct task_struct *org)
48000 {
48001@@ -2310,13 +2388,17 @@ static inline unsigned long *end_of_stac
49147 48002
49148 #endif 48003 #endif
49149 48004
@@ -49163,9 +48018,9 @@ diff -urNp linux-2.6.38.3/include/linux/sched.h linux-2.6.38.3/include/linux/sch
49163 extern void thread_info_cache_init(void); 48018 extern void thread_info_cache_init(void);
49164 48019
49165 #ifdef CONFIG_DEBUG_STACK_USAGE 48020 #ifdef CONFIG_DEBUG_STACK_USAGE
49166diff -urNp linux-2.6.38.3/include/linux/screen_info.h linux-2.6.38.3/include/linux/screen_info.h 48021diff -urNp linux-2.6.38.2/include/linux/screen_info.h linux-2.6.38.2/include/linux/screen_info.h
49167--- linux-2.6.38.3/include/linux/screen_info.h 2011-03-14 21:20:32.000000000 -0400 48022--- linux-2.6.38.2/include/linux/screen_info.h 2011-03-14 21:20:32.000000000 -0400
49168+++ linux-2.6.38.3/include/linux/screen_info.h 2011-04-17 15:57:32.000000000 -0400 48023+++ linux-2.6.38.2/include/linux/screen_info.h 2011-03-21 18:31:35.000000000 -0400
49169@@ -43,7 +43,8 @@ struct screen_info { 48024@@ -43,7 +43,8 @@ struct screen_info {
49170 __u16 pages; /* 0x32 */ 48025 __u16 pages; /* 0x32 */
49171 __u16 vesa_attributes; /* 0x34 */ 48026 __u16 vesa_attributes; /* 0x34 */
@@ -49176,9 +48031,9 @@ diff -urNp linux-2.6.38.3/include/linux/screen_info.h linux-2.6.38.3/include/lin
49176 } __attribute__((packed)); 48031 } __attribute__((packed));
49177 48032
49178 #define VIDEO_TYPE_MDA 0x10 /* Monochrome Text Display */ 48033 #define VIDEO_TYPE_MDA 0x10 /* Monochrome Text Display */
49179diff -urNp linux-2.6.38.3/include/linux/security.h linux-2.6.38.3/include/linux/security.h 48034diff -urNp linux-2.6.38.2/include/linux/security.h linux-2.6.38.2/include/linux/security.h
49180--- linux-2.6.38.3/include/linux/security.h 2011-03-14 21:20:32.000000000 -0400 48035--- linux-2.6.38.2/include/linux/security.h 2011-03-14 21:20:32.000000000 -0400
49181+++ linux-2.6.38.3/include/linux/security.h 2011-04-17 15:57:32.000000000 -0400 48036+++ linux-2.6.38.2/include/linux/security.h 2011-03-21 18:31:35.000000000 -0400
49182@@ -35,6 +35,7 @@ 48037@@ -35,6 +35,7 @@
49183 #include <linux/key.h> 48038 #include <linux/key.h>
49184 #include <linux/xfrm.h> 48039 #include <linux/xfrm.h>
@@ -49187,9 +48042,9 @@ diff -urNp linux-2.6.38.3/include/linux/security.h linux-2.6.38.3/include/linux/
49187 #include <net/flow.h> 48042 #include <net/flow.h>
49188 48043
49189 /* Maximum number of letters for an LSM name string */ 48044 /* Maximum number of letters for an LSM name string */
49190diff -urNp linux-2.6.38.3/include/linux/shm.h linux-2.6.38.3/include/linux/shm.h 48045diff -urNp linux-2.6.38.2/include/linux/shm.h linux-2.6.38.2/include/linux/shm.h
49191--- linux-2.6.38.3/include/linux/shm.h 2011-03-14 21:20:32.000000000 -0400 48046--- linux-2.6.38.2/include/linux/shm.h 2011-03-14 21:20:32.000000000 -0400
49192+++ linux-2.6.38.3/include/linux/shm.h 2011-04-17 15:57:32.000000000 -0400 48047+++ linux-2.6.38.2/include/linux/shm.h 2011-03-21 18:31:35.000000000 -0400
49193@@ -95,6 +95,10 @@ struct shmid_kernel /* private to the ke 48048@@ -95,6 +95,10 @@ struct shmid_kernel /* private to the ke
49194 pid_t shm_cprid; 48049 pid_t shm_cprid;
49195 pid_t shm_lprid; 48050 pid_t shm_lprid;
@@ -49201,9 +48056,9 @@ diff -urNp linux-2.6.38.3/include/linux/shm.h linux-2.6.38.3/include/linux/shm.h
49201 }; 48056 };
49202 48057
49203 /* shm_mode upper byte flags */ 48058 /* shm_mode upper byte flags */
49204diff -urNp linux-2.6.38.3/include/linux/skbuff.h linux-2.6.38.3/include/linux/skbuff.h 48059diff -urNp linux-2.6.38.2/include/linux/skbuff.h linux-2.6.38.2/include/linux/skbuff.h
49205--- linux-2.6.38.3/include/linux/skbuff.h 2011-03-14 21:20:32.000000000 -0400 48060--- linux-2.6.38.2/include/linux/skbuff.h 2011-03-14 21:20:32.000000000 -0400
49206+++ linux-2.6.38.3/include/linux/skbuff.h 2011-04-17 15:57:32.000000000 -0400 48061+++ linux-2.6.38.2/include/linux/skbuff.h 2011-03-21 18:31:35.000000000 -0400
49207@@ -589,7 +589,7 @@ static inline struct skb_shared_hwtstamp 48062@@ -589,7 +589,7 @@ static inline struct skb_shared_hwtstamp
49208 */ 48063 */
49209 static inline int skb_queue_empty(const struct sk_buff_head *list) 48064 static inline int skb_queue_empty(const struct sk_buff_head *list)
@@ -49231,10 +48086,10 @@ diff -urNp linux-2.6.38.3/include/linux/skbuff.h linux-2.6.38.3/include/linux/sk
49231 } 48086 }
49232 48087
49233 /** 48088 /**
49234diff -urNp linux-2.6.38.3/include/linux/slab.h linux-2.6.38.3/include/linux/slab.h 48089diff -urNp linux-2.6.38.2/include/linux/slab.h linux-2.6.38.2/include/linux/slab.h
49235--- linux-2.6.38.3/include/linux/slab.h 2011-03-14 21:20:32.000000000 -0400 48090--- linux-2.6.38.2/include/linux/slab.h 2011-03-14 21:20:32.000000000 -0400
49236+++ linux-2.6.38.3/include/linux/slab.h 2011-04-17 15:57:32.000000000 -0400 48091+++ linux-2.6.38.2/include/linux/slab.h 2011-03-21 18:31:35.000000000 -0400
49237@@ -11,12 +11,20 @@ 48092@@ -11,6 +11,7 @@
49238 48093
49239 #include <linux/gfp.h> 48094 #include <linux/gfp.h>
49240 #include <linux/types.h> 48095 #include <linux/types.h>
@@ -49242,20 +48097,7 @@ diff -urNp linux-2.6.38.3/include/linux/slab.h linux-2.6.38.3/include/linux/slab
49242 48097
49243 /* 48098 /*
49244 * Flags to pass to kmem_cache_create(). 48099 * Flags to pass to kmem_cache_create().
49245 * The ones marked DEBUG are only valid if CONFIG_SLAB_DEBUG is set. 48100@@ -87,10 +88,13 @@
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 @@
49259 * ZERO_SIZE_PTR can be passed to kfree though in the same way that NULL can. 48101 * ZERO_SIZE_PTR can be passed to kfree though in the same way that NULL can.
49260 * Both make kfree a no-op. 48102 * Both make kfree a no-op.
49261 */ 48103 */
@@ -49272,7 +48114,7 @@ diff -urNp linux-2.6.38.3/include/linux/slab.h linux-2.6.38.3/include/linux/slab
49272 48114
49273 /* 48115 /*
49274 * struct kmem_cache related prototypes 48116 * struct kmem_cache related prototypes
49275@@ -142,6 +153,7 @@ void * __must_check krealloc(const void 48117@@ -142,6 +146,7 @@ void * __must_check krealloc(const void
49276 void kfree(const void *); 48118 void kfree(const void *);
49277 void kzfree(const void *); 48119 void kzfree(const void *);
49278 size_t ksize(const void *); 48120 size_t ksize(const void *);
@@ -49280,7 +48122,7 @@ diff -urNp linux-2.6.38.3/include/linux/slab.h linux-2.6.38.3/include/linux/slab
49280 48122
49281 /* 48123 /*
49282 * Allocator specific definitions. These are mainly used to establish optimized 48124 * Allocator specific definitions. These are mainly used to establish optimized
49283@@ -334,4 +346,37 @@ static inline void *kzalloc_node(size_t 48125@@ -334,4 +339,37 @@ static inline void *kzalloc_node(size_t
49284 48126
49285 void __init kmem_cache_init_late(void); 48127 void __init kmem_cache_init_late(void);
49286 48128
@@ -49318,9 +48160,9 @@ diff -urNp linux-2.6.38.3/include/linux/slab.h linux-2.6.38.3/include/linux/slab
49318+}) 48160+})
49319+ 48161+
49320 #endif /* _LINUX_SLAB_H */ 48162 #endif /* _LINUX_SLAB_H */
49321diff -urNp linux-2.6.38.3/include/linux/slub_def.h linux-2.6.38.3/include/linux/slub_def.h 48163diff -urNp linux-2.6.38.2/include/linux/slub_def.h linux-2.6.38.2/include/linux/slub_def.h
49322--- linux-2.6.38.3/include/linux/slub_def.h 2011-03-14 21:20:32.000000000 -0400 48164--- linux-2.6.38.2/include/linux/slub_def.h 2011-03-14 21:20:32.000000000 -0400
49323+++ linux-2.6.38.3/include/linux/slub_def.h 2011-04-17 15:57:32.000000000 -0400 48165+++ linux-2.6.38.2/include/linux/slub_def.h 2011-03-21 18:31:35.000000000 -0400
49324@@ -79,7 +79,7 @@ struct kmem_cache { 48166@@ -79,7 +79,7 @@ struct kmem_cache {
49325 struct kmem_cache_order_objects max; 48167 struct kmem_cache_order_objects max;
49326 struct kmem_cache_order_objects min; 48168 struct kmem_cache_order_objects min;
@@ -49330,9 +48172,9 @@ diff -urNp linux-2.6.38.3/include/linux/slub_def.h linux-2.6.38.3/include/linux/
49330 void (*ctor)(void *); 48172 void (*ctor)(void *);
49331 int inuse; /* Offset to metadata */ 48173 int inuse; /* Offset to metadata */
49332 int align; /* Alignment */ 48174 int align; /* Alignment */
49333diff -urNp linux-2.6.38.3/include/linux/sonet.h linux-2.6.38.3/include/linux/sonet.h 48175diff -urNp linux-2.6.38.2/include/linux/sonet.h linux-2.6.38.2/include/linux/sonet.h
49334--- linux-2.6.38.3/include/linux/sonet.h 2011-03-14 21:20:32.000000000 -0400 48176--- linux-2.6.38.2/include/linux/sonet.h 2011-03-14 21:20:32.000000000 -0400
49335+++ linux-2.6.38.3/include/linux/sonet.h 2011-04-17 15:57:32.000000000 -0400 48177+++ linux-2.6.38.2/include/linux/sonet.h 2011-03-21 18:31:35.000000000 -0400
49336@@ -61,7 +61,7 @@ struct sonet_stats { 48178@@ -61,7 +61,7 @@ struct sonet_stats {
49337 #include <asm/atomic.h> 48179 #include <asm/atomic.h>
49338 48180
@@ -49342,9 +48184,9 @@ diff -urNp linux-2.6.38.3/include/linux/sonet.h linux-2.6.38.3/include/linux/son
49342 __SONET_ITEMS 48184 __SONET_ITEMS
49343 #undef __HANDLE_ITEM 48185 #undef __HANDLE_ITEM
49344 }; 48186 };
49345diff -urNp linux-2.6.38.3/include/linux/sunrpc/clnt.h linux-2.6.38.3/include/linux/sunrpc/clnt.h 48187diff -urNp linux-2.6.38.2/include/linux/sunrpc/clnt.h linux-2.6.38.2/include/linux/sunrpc/clnt.h
49346--- linux-2.6.38.3/include/linux/sunrpc/clnt.h 2011-03-14 21:20:32.000000000 -0400 48188--- linux-2.6.38.2/include/linux/sunrpc/clnt.h 2011-03-14 21:20:32.000000000 -0400
49347+++ linux-2.6.38.3/include/linux/sunrpc/clnt.h 2011-04-17 15:57:32.000000000 -0400 48189+++ linux-2.6.38.2/include/linux/sunrpc/clnt.h 2011-03-21 18:31:35.000000000 -0400
49348@@ -168,9 +168,9 @@ static inline unsigned short rpc_get_por 48190@@ -168,9 +168,9 @@ static inline unsigned short rpc_get_por
49349 { 48191 {
49350 switch (sap->sa_family) { 48192 switch (sap->sa_family) {
@@ -49375,9 +48217,9 @@ diff -urNp linux-2.6.38.3/include/linux/sunrpc/clnt.h linux-2.6.38.3/include/lin
49375 } 48217 }
49376 48218
49377 #endif /* __KERNEL__ */ 48219 #endif /* __KERNEL__ */
49378diff -urNp linux-2.6.38.3/include/linux/suspend.h linux-2.6.38.3/include/linux/suspend.h 48220diff -urNp linux-2.6.38.2/include/linux/suspend.h linux-2.6.38.2/include/linux/suspend.h
49379--- linux-2.6.38.3/include/linux/suspend.h 2011-03-14 21:20:32.000000000 -0400 48221--- linux-2.6.38.2/include/linux/suspend.h 2011-03-14 21:20:32.000000000 -0400
49380+++ linux-2.6.38.3/include/linux/suspend.h 2011-04-17 15:57:32.000000000 -0400 48222+++ linux-2.6.38.2/include/linux/suspend.h 2011-03-21 18:31:35.000000000 -0400
49381@@ -106,15 +106,15 @@ typedef int __bitwise suspend_state_t; 48223@@ -106,15 +106,15 @@ typedef int __bitwise suspend_state_t;
49382 * which require special recovery actions in that situation. 48224 * which require special recovery actions in that situation.
49383 */ 48225 */
@@ -49430,9 +48272,9 @@ diff -urNp linux-2.6.38.3/include/linux/suspend.h linux-2.6.38.3/include/linux/s
49430 }; 48272 };
49431 48273
49432 #ifdef CONFIG_HIBERNATION 48274 #ifdef CONFIG_HIBERNATION
49433diff -urNp linux-2.6.38.3/include/linux/sysctl.h linux-2.6.38.3/include/linux/sysctl.h 48275diff -urNp linux-2.6.38.2/include/linux/sysctl.h linux-2.6.38.2/include/linux/sysctl.h
49434--- linux-2.6.38.3/include/linux/sysctl.h 2011-03-14 21:20:32.000000000 -0400 48276--- linux-2.6.38.2/include/linux/sysctl.h 2011-03-14 21:20:32.000000000 -0400
49435+++ linux-2.6.38.3/include/linux/sysctl.h 2011-04-17 15:57:32.000000000 -0400 48277+++ linux-2.6.38.2/include/linux/sysctl.h 2011-03-21 18:31:35.000000000 -0400
49436@@ -155,7 +155,11 @@ enum 48278@@ -155,7 +155,11 @@ enum
49437 KERN_PANIC_ON_NMI=76, /* int: whether we will panic on an unrecovered */ 48279 KERN_PANIC_ON_NMI=76, /* int: whether we will panic on an unrecovered */
49438 }; 48280 };
@@ -49455,9 +48297,9 @@ diff -urNp linux-2.6.38.3/include/linux/sysctl.h linux-2.6.38.3/include/linux/sy
49455 extern int proc_dointvec(struct ctl_table *, int, 48297 extern int proc_dointvec(struct ctl_table *, int,
49456 void __user *, size_t *, loff_t *); 48298 void __user *, size_t *, loff_t *);
49457 extern int proc_dointvec_minmax(struct ctl_table *, int, 48299 extern int proc_dointvec_minmax(struct ctl_table *, int,
49458diff -urNp linux-2.6.38.3/include/linux/sysfs.h linux-2.6.38.3/include/linux/sysfs.h 48300diff -urNp linux-2.6.38.2/include/linux/sysfs.h linux-2.6.38.2/include/linux/sysfs.h
49459--- linux-2.6.38.3/include/linux/sysfs.h 2011-03-14 21:20:32.000000000 -0400 48301--- linux-2.6.38.2/include/linux/sysfs.h 2011-03-14 21:20:32.000000000 -0400
49460+++ linux-2.6.38.3/include/linux/sysfs.h 2011-04-17 15:57:32.000000000 -0400 48302+++ linux-2.6.38.2/include/linux/sysfs.h 2011-03-21 18:31:35.000000000 -0400
49461@@ -110,8 +110,8 @@ struct bin_attribute { 48303@@ -110,8 +110,8 @@ struct bin_attribute {
49462 #define sysfs_bin_attr_init(bin_attr) sysfs_attr_init(&(bin_attr)->attr) 48304 #define sysfs_bin_attr_init(bin_attr) sysfs_attr_init(&(bin_attr)->attr)
49463 48305
@@ -49469,9 +48311,9 @@ diff -urNp linux-2.6.38.3/include/linux/sysfs.h linux-2.6.38.3/include/linux/sys
49469 }; 48311 };
49470 48312
49471 struct sysfs_dirent; 48313 struct sysfs_dirent;
49472diff -urNp linux-2.6.38.3/include/linux/tty.h linux-2.6.38.3/include/linux/tty.h 48314diff -urNp linux-2.6.38.2/include/linux/tty.h linux-2.6.38.2/include/linux/tty.h
49473--- linux-2.6.38.3/include/linux/tty.h 2011-03-14 21:20:32.000000000 -0400 48315--- linux-2.6.38.2/include/linux/tty.h 2011-03-14 21:20:32.000000000 -0400
49474+++ linux-2.6.38.3/include/linux/tty.h 2011-04-17 15:57:32.000000000 -0400 48316+++ linux-2.6.38.2/include/linux/tty.h 2011-03-21 18:31:35.000000000 -0400
49475@@ -13,6 +13,8 @@ 48317@@ -13,6 +13,8 @@
49476 #include <linux/tty_driver.h> 48318 #include <linux/tty_driver.h>
49477 #include <linux/tty_ldisc.h> 48319 #include <linux/tty_ldisc.h>
@@ -49508,9 +48350,9 @@ diff -urNp linux-2.6.38.3/include/linux/tty.h linux-2.6.38.3/include/linux/tty.h
49508 48350
49509 /* n_tty.c */ 48351 /* n_tty.c */
49510 extern struct tty_ldisc_ops tty_ldisc_N_TTY; 48352 extern struct tty_ldisc_ops tty_ldisc_N_TTY;
49511diff -urNp linux-2.6.38.3/include/linux/tty_ldisc.h linux-2.6.38.3/include/linux/tty_ldisc.h 48353diff -urNp linux-2.6.38.2/include/linux/tty_ldisc.h linux-2.6.38.2/include/linux/tty_ldisc.h
49512--- linux-2.6.38.3/include/linux/tty_ldisc.h 2011-03-14 21:20:32.000000000 -0400 48354--- linux-2.6.38.2/include/linux/tty_ldisc.h 2011-03-14 21:20:32.000000000 -0400
49513+++ linux-2.6.38.3/include/linux/tty_ldisc.h 2011-04-17 15:57:32.000000000 -0400 48355+++ linux-2.6.38.2/include/linux/tty_ldisc.h 2011-03-21 18:31:35.000000000 -0400
49514@@ -148,7 +148,7 @@ struct tty_ldisc_ops { 48356@@ -148,7 +148,7 @@ struct tty_ldisc_ops {
49515 48357
49516 struct module *owner; 48358 struct module *owner;
@@ -49520,9 +48362,9 @@ diff -urNp linux-2.6.38.3/include/linux/tty_ldisc.h linux-2.6.38.3/include/linux
49520 }; 48362 };
49521 48363
49522 struct tty_ldisc { 48364 struct tty_ldisc {
49523diff -urNp linux-2.6.38.3/include/linux/types.h linux-2.6.38.3/include/linux/types.h 48365diff -urNp linux-2.6.38.2/include/linux/types.h linux-2.6.38.2/include/linux/types.h
49524--- linux-2.6.38.3/include/linux/types.h 2011-03-14 21:20:32.000000000 -0400 48366--- linux-2.6.38.2/include/linux/types.h 2011-03-14 21:20:32.000000000 -0400
49525+++ linux-2.6.38.3/include/linux/types.h 2011-04-17 15:57:32.000000000 -0400 48367+++ linux-2.6.38.2/include/linux/types.h 2011-03-21 18:31:35.000000000 -0400
49526@@ -207,10 +207,26 @@ typedef struct { 48368@@ -207,10 +207,26 @@ typedef struct {
49527 int counter; 48369 int counter;
49528 } atomic_t; 48370 } atomic_t;
@@ -49550,9 +48392,9 @@ diff -urNp linux-2.6.38.3/include/linux/types.h linux-2.6.38.3/include/linux/typ
49550 #endif 48392 #endif
49551 48393
49552 struct list_head { 48394 struct list_head {
49553diff -urNp linux-2.6.38.3/include/linux/uaccess.h linux-2.6.38.3/include/linux/uaccess.h 48395diff -urNp linux-2.6.38.2/include/linux/uaccess.h linux-2.6.38.2/include/linux/uaccess.h
49554--- linux-2.6.38.3/include/linux/uaccess.h 2011-03-14 21:20:32.000000000 -0400 48396--- linux-2.6.38.2/include/linux/uaccess.h 2011-03-14 21:20:32.000000000 -0400
49555+++ linux-2.6.38.3/include/linux/uaccess.h 2011-04-17 15:57:32.000000000 -0400 48397+++ linux-2.6.38.2/include/linux/uaccess.h 2011-03-21 18:31:35.000000000 -0400
49556@@ -76,11 +76,11 @@ static inline unsigned long __copy_from_ 48398@@ -76,11 +76,11 @@ static inline unsigned long __copy_from_
49557 long ret; \ 48399 long ret; \
49558 mm_segment_t old_fs = get_fs(); \ 48400 mm_segment_t old_fs = get_fs(); \
@@ -49588,9 +48430,9 @@ diff -urNp linux-2.6.38.3/include/linux/uaccess.h linux-2.6.38.3/include/linux/u
49588+extern long notrace __probe_kernel_write(void *dst, const void *src, size_t size); 48430+extern long notrace __probe_kernel_write(void *dst, const void *src, size_t size);
49589 48431
49590 #endif /* __LINUX_UACCESS_H__ */ 48432 #endif /* __LINUX_UACCESS_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 48433diff -urNp linux-2.6.38.2/include/linux/unaligned/access_ok.h linux-2.6.38.2/include/linux/unaligned/access_ok.h
49592--- linux-2.6.38.3/include/linux/unaligned/access_ok.h 2011-03-14 21:20:32.000000000 -0400 48434--- linux-2.6.38.2/include/linux/unaligned/access_ok.h 2011-03-14 21:20:32.000000000 -0400
49593+++ linux-2.6.38.3/include/linux/unaligned/access_ok.h 2011-04-17 15:57:32.000000000 -0400 48435+++ linux-2.6.38.2/include/linux/unaligned/access_ok.h 2011-03-21 18:31:35.000000000 -0400
49594@@ -6,32 +6,32 @@ 48436@@ -6,32 +6,32 @@
49595 48437
49596 static inline u16 get_unaligned_le16(const void *p) 48438 static inline u16 get_unaligned_le16(const void *p)
@@ -49630,9 +48472,9 @@ diff -urNp linux-2.6.38.3/include/linux/unaligned/access_ok.h linux-2.6.38.3/inc
49630 } 48472 }
49631 48473
49632 static inline void put_unaligned_le16(u16 val, void *p) 48474 static inline void put_unaligned_le16(u16 val, void *p)
49633diff -urNp linux-2.6.38.3/include/linux/usb/hcd.h linux-2.6.38.3/include/linux/usb/hcd.h 48475diff -urNp linux-2.6.38.2/include/linux/usb/hcd.h linux-2.6.38.2/include/linux/usb/hcd.h
49634--- linux-2.6.38.3/include/linux/usb/hcd.h 2011-04-18 17:27:14.000000000 -0400 48476--- linux-2.6.38.2/include/linux/usb/hcd.h 2011-03-23 17:20:08.000000000 -0400
49635+++ linux-2.6.38.3/include/linux/usb/hcd.h 2011-04-17 15:57:32.000000000 -0400 48477+++ linux-2.6.38.2/include/linux/usb/hcd.h 2011-03-23 17:21:51.000000000 -0400
49636@@ -589,7 +589,7 @@ struct usb_mon_operations { 48478@@ -589,7 +589,7 @@ struct usb_mon_operations {
49637 /* void (*urb_unlink)(struct usb_bus *bus, struct urb *urb); */ 48479 /* void (*urb_unlink)(struct usb_bus *bus, struct urb *urb); */
49638 }; 48480 };
@@ -49651,9 +48493,9 @@ diff -urNp linux-2.6.38.3/include/linux/usb/hcd.h linux-2.6.38.3/include/linux/u
49651 void usb_mon_deregister(void); 48493 void usb_mon_deregister(void);
49652 48494
49653 #else 48495 #else
49654diff -urNp linux-2.6.38.3/include/linux/vmalloc.h linux-2.6.38.3/include/linux/vmalloc.h 48496diff -urNp linux-2.6.38.2/include/linux/vmalloc.h linux-2.6.38.2/include/linux/vmalloc.h
49655--- linux-2.6.38.3/include/linux/vmalloc.h 2011-03-14 21:20:32.000000000 -0400 48497--- linux-2.6.38.2/include/linux/vmalloc.h 2011-03-14 21:20:32.000000000 -0400
49656+++ linux-2.6.38.3/include/linux/vmalloc.h 2011-04-17 15:57:32.000000000 -0400 48498+++ linux-2.6.38.2/include/linux/vmalloc.h 2011-03-21 18:31:35.000000000 -0400
49657@@ -13,6 +13,11 @@ struct vm_area_struct; /* vma defining 48499@@ -13,6 +13,11 @@ struct vm_area_struct; /* vma defining
49658 #define VM_MAP 0x00000004 /* vmap()ed pages */ 48500 #define VM_MAP 0x00000004 /* vmap()ed pages */
49659 #define VM_USERMAP 0x00000008 /* suitable for remap_vmalloc_range */ 48501 #define VM_USERMAP 0x00000008 /* suitable for remap_vmalloc_range */
@@ -49770,9 +48612,9 @@ diff -urNp linux-2.6.38.3/include/linux/vmalloc.h linux-2.6.38.3/include/linux/v
49770+}) 48612+})
49771+ 48613+
49772 #endif /* _LINUX_VMALLOC_H */ 48614 #endif /* _LINUX_VMALLOC_H */
49773diff -urNp linux-2.6.38.3/include/linux/vmstat.h linux-2.6.38.3/include/linux/vmstat.h 48615diff -urNp linux-2.6.38.2/include/linux/vmstat.h linux-2.6.38.2/include/linux/vmstat.h
49774--- linux-2.6.38.3/include/linux/vmstat.h 2011-03-14 21:20:32.000000000 -0400 48616--- linux-2.6.38.2/include/linux/vmstat.h 2011-03-14 21:20:32.000000000 -0400
49775+++ linux-2.6.38.3/include/linux/vmstat.h 2011-04-17 15:57:32.000000000 -0400 48617+++ linux-2.6.38.2/include/linux/vmstat.h 2011-03-21 18:31:35.000000000 -0400
49776@@ -140,18 +140,18 @@ static inline void vm_events_fold_cpu(in 48618@@ -140,18 +140,18 @@ static inline void vm_events_fold_cpu(in
49777 /* 48619 /*
49778 * Zone based page accounting with per cpu differentials. 48620 * Zone based page accounting with per cpu differentials.
@@ -49836,9 +48678,9 @@ diff -urNp linux-2.6.38.3/include/linux/vmstat.h linux-2.6.38.3/include/linux/vm
49836 } 48678 }
49837 48679
49838 static inline void __dec_zone_page_state(struct page *page, 48680 static inline void __dec_zone_page_state(struct page *page,
49839diff -urNp linux-2.6.38.3/include/net/inetpeer.h linux-2.6.38.3/include/net/inetpeer.h 48681diff -urNp linux-2.6.38.2/include/net/inetpeer.h linux-2.6.38.2/include/net/inetpeer.h
49840--- linux-2.6.38.3/include/net/inetpeer.h 2011-03-14 21:20:32.000000000 -0400 48682--- linux-2.6.38.2/include/net/inetpeer.h 2011-03-14 21:20:32.000000000 -0400
49841+++ linux-2.6.38.3/include/net/inetpeer.h 2011-04-17 15:57:32.000000000 -0400 48683+++ linux-2.6.38.2/include/net/inetpeer.h 2011-03-21 18:31:35.000000000 -0400
49842@@ -38,8 +38,8 @@ struct inet_peer { 48684@@ -38,8 +38,8 @@ struct inet_peer {
49843 */ 48685 */
49844 union { 48686 union {
@@ -49859,9 +48701,9 @@ diff -urNp linux-2.6.38.3/include/net/inetpeer.h linux-2.6.38.3/include/net/inet
49859 } 48701 }
49860 48702
49861 #endif /* _NET_INETPEER_H */ 48703 #endif /* _NET_INETPEER_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 48704diff -urNp linux-2.6.38.2/include/net/irda/ircomm_tty.h linux-2.6.38.2/include/net/irda/ircomm_tty.h
49863--- linux-2.6.38.3/include/net/irda/ircomm_tty.h 2011-03-14 21:20:32.000000000 -0400 48705--- linux-2.6.38.2/include/net/irda/ircomm_tty.h 2011-03-14 21:20:32.000000000 -0400
49864+++ linux-2.6.38.3/include/net/irda/ircomm_tty.h 2011-04-17 15:57:32.000000000 -0400 48706+++ linux-2.6.38.2/include/net/irda/ircomm_tty.h 2011-03-21 18:31:35.000000000 -0400
49865@@ -35,6 +35,7 @@ 48707@@ -35,6 +35,7 @@
49866 #include <linux/termios.h> 48708 #include <linux/termios.h>
49867 #include <linux/timer.h> 48709 #include <linux/timer.h>
@@ -49881,9 +48723,9 @@ diff -urNp linux-2.6.38.3/include/net/irda/ircomm_tty.h linux-2.6.38.3/include/n
49881 48723
49882 /* Protect concurent access to : 48724 /* Protect concurent access to :
49883 * o self->open_count 48725 * o self->open_count
49884diff -urNp linux-2.6.38.3/include/net/neighbour.h linux-2.6.38.3/include/net/neighbour.h 48726diff -urNp linux-2.6.38.2/include/net/neighbour.h linux-2.6.38.2/include/net/neighbour.h
49885--- linux-2.6.38.3/include/net/neighbour.h 2011-03-14 21:20:32.000000000 -0400 48727--- linux-2.6.38.2/include/net/neighbour.h 2011-03-14 21:20:32.000000000 -0400
49886+++ linux-2.6.38.3/include/net/neighbour.h 2011-04-17 15:57:32.000000000 -0400 48728+++ linux-2.6.38.2/include/net/neighbour.h 2011-03-21 18:31:35.000000000 -0400
49887@@ -118,12 +118,12 @@ struct neighbour { 48729@@ -118,12 +118,12 @@ struct neighbour {
49888 48730
49889 struct neigh_ops { 48731 struct neigh_ops {
@@ -49903,9 +48745,9 @@ diff -urNp linux-2.6.38.3/include/net/neighbour.h linux-2.6.38.3/include/net/nei
49903 }; 48745 };
49904 48746
49905 struct pneigh_entry { 48747 struct pneigh_entry {
49906diff -urNp linux-2.6.38.3/include/net/netlink.h linux-2.6.38.3/include/net/netlink.h 48748diff -urNp linux-2.6.38.2/include/net/netlink.h linux-2.6.38.2/include/net/netlink.h
49907--- linux-2.6.38.3/include/net/netlink.h 2011-03-14 21:20:32.000000000 -0400 48749--- linux-2.6.38.2/include/net/netlink.h 2011-03-14 21:20:32.000000000 -0400
49908+++ linux-2.6.38.3/include/net/netlink.h 2011-04-17 15:57:32.000000000 -0400 48750+++ linux-2.6.38.2/include/net/netlink.h 2011-03-21 18:31:35.000000000 -0400
49909@@ -562,7 +562,7 @@ static inline void *nlmsg_get_pos(struct 48751@@ -562,7 +562,7 @@ static inline void *nlmsg_get_pos(struct
49910 static inline void nlmsg_trim(struct sk_buff *skb, const void *mark) 48752 static inline void nlmsg_trim(struct sk_buff *skb, const void *mark)
49911 { 48753 {
@@ -49915,9 +48757,9 @@ diff -urNp linux-2.6.38.3/include/net/netlink.h linux-2.6.38.3/include/net/netli
49915 } 48757 }
49916 48758
49917 /** 48759 /**
49918diff -urNp linux-2.6.38.3/include/net/sctp/sctp.h linux-2.6.38.3/include/net/sctp/sctp.h 48760diff -urNp linux-2.6.38.2/include/net/sctp/sctp.h linux-2.6.38.2/include/net/sctp/sctp.h
49919--- linux-2.6.38.3/include/net/sctp/sctp.h 2011-03-14 21:20:32.000000000 -0400 48761--- linux-2.6.38.2/include/net/sctp/sctp.h 2011-03-14 21:20:32.000000000 -0400
49920+++ linux-2.6.38.3/include/net/sctp/sctp.h 2011-04-17 15:57:32.000000000 -0400 48762+++ linux-2.6.38.2/include/net/sctp/sctp.h 2011-03-21 18:31:35.000000000 -0400
49921@@ -316,9 +316,9 @@ do { \ 48763@@ -316,9 +316,9 @@ do { \
49922 48764
49923 #else /* SCTP_DEBUG */ 48765 #else /* SCTP_DEBUG */
@@ -49931,9 +48773,9 @@ diff -urNp linux-2.6.38.3/include/net/sctp/sctp.h linux-2.6.38.3/include/net/sct
49931 #define SCTP_ENABLE_DEBUG 48773 #define SCTP_ENABLE_DEBUG
49932 #define SCTP_DISABLE_DEBUG 48774 #define SCTP_DISABLE_DEBUG
49933 #define SCTP_ASSERT(expr, str, func) 48775 #define SCTP_ASSERT(expr, str, func)
49934diff -urNp linux-2.6.38.3/include/net/tcp.h linux-2.6.38.3/include/net/tcp.h 48776diff -urNp linux-2.6.38.2/include/net/tcp.h linux-2.6.38.2/include/net/tcp.h
49935--- linux-2.6.38.3/include/net/tcp.h 2011-03-14 21:20:32.000000000 -0400 48777--- linux-2.6.38.2/include/net/tcp.h 2011-03-14 21:20:32.000000000 -0400
49936+++ linux-2.6.38.3/include/net/tcp.h 2011-04-17 15:57:32.000000000 -0400 48778+++ linux-2.6.38.2/include/net/tcp.h 2011-03-21 18:31:35.000000000 -0400
49937@@ -1382,7 +1382,7 @@ enum tcp_seq_states { 48779@@ -1382,7 +1382,7 @@ enum tcp_seq_states {
49938 struct tcp_seq_afinfo { 48780 struct tcp_seq_afinfo {
49939 char *name; 48781 char *name;
@@ -49943,9 +48785,9 @@ diff -urNp linux-2.6.38.3/include/net/tcp.h linux-2.6.38.3/include/net/tcp.h
49943 struct seq_operations seq_ops; 48785 struct seq_operations seq_ops;
49944 }; 48786 };
49945 48787
49946diff -urNp linux-2.6.38.3/include/net/udp.h linux-2.6.38.3/include/net/udp.h 48788diff -urNp linux-2.6.38.2/include/net/udp.h linux-2.6.38.2/include/net/udp.h
49947--- linux-2.6.38.3/include/net/udp.h 2011-03-14 21:20:32.000000000 -0400 48789--- linux-2.6.38.2/include/net/udp.h 2011-03-14 21:20:32.000000000 -0400
49948+++ linux-2.6.38.3/include/net/udp.h 2011-04-17 15:57:32.000000000 -0400 48790+++ linux-2.6.38.2/include/net/udp.h 2011-03-21 18:31:35.000000000 -0400
49949@@ -223,7 +223,7 @@ struct udp_seq_afinfo { 48791@@ -223,7 +223,7 @@ struct udp_seq_afinfo {
49950 char *name; 48792 char *name;
49951 sa_family_t family; 48793 sa_family_t family;
@@ -49955,9 +48797,9 @@ diff -urNp linux-2.6.38.3/include/net/udp.h linux-2.6.38.3/include/net/udp.h
49955 struct seq_operations seq_ops; 48797 struct seq_operations seq_ops;
49956 }; 48798 };
49957 48799
49958diff -urNp linux-2.6.38.3/include/sound/ac97_codec.h linux-2.6.38.3/include/sound/ac97_codec.h 48800diff -urNp linux-2.6.38.2/include/sound/ac97_codec.h linux-2.6.38.2/include/sound/ac97_codec.h
49959--- linux-2.6.38.3/include/sound/ac97_codec.h 2011-03-14 21:20:32.000000000 -0400 48801--- linux-2.6.38.2/include/sound/ac97_codec.h 2011-03-14 21:20:32.000000000 -0400
49960+++ linux-2.6.38.3/include/sound/ac97_codec.h 2011-04-17 15:57:32.000000000 -0400 48802+++ linux-2.6.38.2/include/sound/ac97_codec.h 2011-03-21 18:31:35.000000000 -0400
49961@@ -419,15 +419,15 @@ 48803@@ -419,15 +419,15 @@
49962 struct snd_ac97; 48804 struct snd_ac97;
49963 48805
@@ -49981,9 +48823,9 @@ diff -urNp linux-2.6.38.3/include/sound/ac97_codec.h linux-2.6.38.3/include/soun
49981 }; 48823 };
49982 48824
49983 struct snd_ac97_bus_ops { 48825 struct snd_ac97_bus_ops {
49984diff -urNp linux-2.6.38.3/include/trace/events/irq.h linux-2.6.38.3/include/trace/events/irq.h 48826diff -urNp linux-2.6.38.2/include/trace/events/irq.h linux-2.6.38.2/include/trace/events/irq.h
49985--- linux-2.6.38.3/include/trace/events/irq.h 2011-03-14 21:20:32.000000000 -0400 48827--- linux-2.6.38.2/include/trace/events/irq.h 2011-03-14 21:20:32.000000000 -0400
49986+++ linux-2.6.38.3/include/trace/events/irq.h 2011-04-17 15:57:32.000000000 -0400 48828+++ linux-2.6.38.2/include/trace/events/irq.h 2011-03-21 18:31:35.000000000 -0400
49987@@ -36,7 +36,7 @@ struct softirq_action; 48829@@ -36,7 +36,7 @@ struct softirq_action;
49988 */ 48830 */
49989 TRACE_EVENT(irq_handler_entry, 48831 TRACE_EVENT(irq_handler_entry,
@@ -50002,9 +48844,9 @@ diff -urNp linux-2.6.38.3/include/trace/events/irq.h linux-2.6.38.3/include/trac
50002 48844
50003 TP_ARGS(irq, action, ret), 48845 TP_ARGS(irq, action, ret),
50004 48846
50005diff -urNp linux-2.6.38.3/include/video/uvesafb.h linux-2.6.38.3/include/video/uvesafb.h 48847diff -urNp linux-2.6.38.2/include/video/uvesafb.h linux-2.6.38.2/include/video/uvesafb.h
50006--- linux-2.6.38.3/include/video/uvesafb.h 2011-03-14 21:20:32.000000000 -0400 48848--- linux-2.6.38.2/include/video/uvesafb.h 2011-03-14 21:20:32.000000000 -0400
50007+++ linux-2.6.38.3/include/video/uvesafb.h 2011-04-17 15:57:32.000000000 -0400 48849+++ linux-2.6.38.2/include/video/uvesafb.h 2011-03-21 18:31:35.000000000 -0400
50008@@ -177,6 +177,7 @@ struct uvesafb_par { 48850@@ -177,6 +177,7 @@ struct uvesafb_par {
50009 u8 ypan; /* 0 - nothing, 1 - ypan, 2 - ywrap */ 48851 u8 ypan; /* 0 - nothing, 1 - ypan, 2 - ywrap */
50010 u8 pmi_setpal; /* PMI for palette changes */ 48852 u8 pmi_setpal; /* PMI for palette changes */
@@ -50013,9 +48855,9 @@ diff -urNp linux-2.6.38.3/include/video/uvesafb.h linux-2.6.38.3/include/video/u
50013 void *pmi_start; 48855 void *pmi_start;
50014 void *pmi_pal; 48856 void *pmi_pal;
50015 u8 *vbe_state_orig; /* 48857 u8 *vbe_state_orig; /*
50016diff -urNp linux-2.6.38.3/init/do_mounts.c linux-2.6.38.3/init/do_mounts.c 48858diff -urNp linux-2.6.38.2/init/do_mounts.c linux-2.6.38.2/init/do_mounts.c
50017--- linux-2.6.38.3/init/do_mounts.c 2011-03-14 21:20:32.000000000 -0400 48859--- linux-2.6.38.2/init/do_mounts.c 2011-03-14 21:20:32.000000000 -0400
50018+++ linux-2.6.38.3/init/do_mounts.c 2011-04-17 15:57:32.000000000 -0400 48860+++ linux-2.6.38.2/init/do_mounts.c 2011-03-21 18:31:35.000000000 -0400
50019@@ -287,7 +287,7 @@ static void __init get_fs_names(char *pa 48861@@ -287,7 +287,7 @@ static void __init get_fs_names(char *pa
50020 48862
50021 static int __init do_mount_root(char *name, char *fs, int flags, void *data) 48863 static int __init do_mount_root(char *name, char *fs, int flags, void *data)
@@ -50055,9 +48897,9 @@ diff -urNp linux-2.6.38.3/init/do_mounts.c linux-2.6.38.3/init/do_mounts.c
50055+ sys_mount((__force char __user *)".", (__force char __user *)"/", NULL, MS_MOVE, NULL); 48897+ sys_mount((__force char __user *)".", (__force char __user *)"/", NULL, MS_MOVE, NULL);
50056 sys_chroot((const char __user __force *)"."); 48898 sys_chroot((const char __user __force *)".");
50057 } 48899 }
50058diff -urNp linux-2.6.38.3/init/do_mounts.h linux-2.6.38.3/init/do_mounts.h 48900diff -urNp linux-2.6.38.2/init/do_mounts.h linux-2.6.38.2/init/do_mounts.h
50059--- linux-2.6.38.3/init/do_mounts.h 2011-03-14 21:20:32.000000000 -0400 48901--- linux-2.6.38.2/init/do_mounts.h 2011-03-14 21:20:32.000000000 -0400
50060+++ linux-2.6.38.3/init/do_mounts.h 2011-04-17 15:57:32.000000000 -0400 48902+++ linux-2.6.38.2/init/do_mounts.h 2011-03-21 18:31:35.000000000 -0400
50061@@ -15,15 +15,15 @@ extern int root_mountflags; 48903@@ -15,15 +15,15 @@ extern int root_mountflags;
50062 48904
50063 static inline int create_dev(char *name, dev_t dev) 48905 static inline int create_dev(char *name, dev_t dev)
@@ -50077,9 +48919,9 @@ diff -urNp linux-2.6.38.3/init/do_mounts.h linux-2.6.38.3/init/do_mounts.h
50077 return 0; 48919 return 0;
50078 if (!S_ISBLK(stat.st_mode)) 48920 if (!S_ISBLK(stat.st_mode))
50079 return 0; 48921 return 0;
50080diff -urNp linux-2.6.38.3/init/do_mounts_initrd.c linux-2.6.38.3/init/do_mounts_initrd.c 48922diff -urNp linux-2.6.38.2/init/do_mounts_initrd.c linux-2.6.38.2/init/do_mounts_initrd.c
50081--- linux-2.6.38.3/init/do_mounts_initrd.c 2011-03-14 21:20:32.000000000 -0400 48923--- linux-2.6.38.2/init/do_mounts_initrd.c 2011-03-14 21:20:32.000000000 -0400
50082+++ linux-2.6.38.3/init/do_mounts_initrd.c 2011-04-17 15:57:32.000000000 -0400 48924+++ linux-2.6.38.2/init/do_mounts_initrd.c 2011-03-21 18:31:35.000000000 -0400
50083@@ -44,13 +44,13 @@ static void __init handle_initrd(void) 48925@@ -44,13 +44,13 @@ static void __init handle_initrd(void)
50084 create_dev("/dev/root.old", Root_RAM0); 48926 create_dev("/dev/root.old", Root_RAM0);
50085 /* mount initrd on rootfs' /root */ 48927 /* mount initrd on rootfs' /root */
@@ -50154,9 +48996,9 @@ diff -urNp linux-2.6.38.3/init/do_mounts_initrd.c linux-2.6.38.3/init/do_mounts_
50154+ sys_unlink((__force const char __user *)"/initrd.image"); 48996+ sys_unlink((__force const char __user *)"/initrd.image");
50155 return 0; 48997 return 0;
50156 } 48998 }
50157diff -urNp linux-2.6.38.3/init/do_mounts_md.c linux-2.6.38.3/init/do_mounts_md.c 48999diff -urNp linux-2.6.38.2/init/do_mounts_md.c linux-2.6.38.2/init/do_mounts_md.c
50158--- linux-2.6.38.3/init/do_mounts_md.c 2011-03-14 21:20:32.000000000 -0400 49000--- linux-2.6.38.2/init/do_mounts_md.c 2011-03-14 21:20:32.000000000 -0400
50159+++ linux-2.6.38.3/init/do_mounts_md.c 2011-04-17 15:57:32.000000000 -0400 49001+++ linux-2.6.38.2/init/do_mounts_md.c 2011-03-21 18:31:35.000000000 -0400
50160@@ -170,7 +170,7 @@ static void __init md_setup_drive(void) 49002@@ -170,7 +170,7 @@ static void __init md_setup_drive(void)
50161 partitioned ? "_d" : "", minor, 49003 partitioned ? "_d" : "", minor,
50162 md_setup_args[ent].device_names); 49004 md_setup_args[ent].device_names);
@@ -50175,9 +49017,9 @@ diff -urNp linux-2.6.38.3/init/do_mounts_md.c linux-2.6.38.3/init/do_mounts_md.c
50175 sys_ioctl(fd, BLKRRPART, 0); 49017 sys_ioctl(fd, BLKRRPART, 0);
50176 } 49018 }
50177 sys_close(fd); 49019 sys_close(fd);
50178diff -urNp linux-2.6.38.3/init/initramfs.c linux-2.6.38.3/init/initramfs.c 49020diff -urNp linux-2.6.38.2/init/initramfs.c linux-2.6.38.2/init/initramfs.c
50179--- linux-2.6.38.3/init/initramfs.c 2011-03-14 21:20:32.000000000 -0400 49021--- linux-2.6.38.2/init/initramfs.c 2011-03-14 21:20:32.000000000 -0400
50180+++ linux-2.6.38.3/init/initramfs.c 2011-04-17 15:57:32.000000000 -0400 49022+++ linux-2.6.38.2/init/initramfs.c 2011-03-21 18:31:35.000000000 -0400
50181@@ -74,7 +74,7 @@ static void __init free_hash(void) 49023@@ -74,7 +74,7 @@ static void __init free_hash(void)
50182 } 49024 }
50183 } 49025 }
@@ -50286,9 +49128,9 @@ diff -urNp linux-2.6.38.3/init/initramfs.c linux-2.6.38.3/init/initramfs.c
50286 state = SkipIt; 49128 state = SkipIt;
50287 next_state = Reset; 49129 next_state = Reset;
50288 return 0; 49130 return 0;
50289diff -urNp linux-2.6.38.3/init/Kconfig linux-2.6.38.3/init/Kconfig 49131diff -urNp linux-2.6.38.2/init/Kconfig linux-2.6.38.2/init/Kconfig
50290--- linux-2.6.38.3/init/Kconfig 2011-03-14 21:20:32.000000000 -0400 49132--- linux-2.6.38.2/init/Kconfig 2011-03-14 21:20:32.000000000 -0400
50291+++ linux-2.6.38.3/init/Kconfig 2011-04-17 15:57:32.000000000 -0400 49133+++ linux-2.6.38.2/init/Kconfig 2011-03-21 18:31:35.000000000 -0400
50292@@ -1185,7 +1185,7 @@ config SLUB_DEBUG 49134@@ -1185,7 +1185,7 @@ config SLUB_DEBUG
50293 49135
50294 config COMPAT_BRK 49136 config COMPAT_BRK
@@ -50298,9 +49140,9 @@ diff -urNp linux-2.6.38.3/init/Kconfig linux-2.6.38.3/init/Kconfig
50298 help 49140 help
50299 Randomizing heap placement makes heap exploits harder, but it 49141 Randomizing heap placement makes heap exploits harder, but it
50300 also breaks ancient binaries (including anything libc5 based). 49142 also breaks ancient binaries (including anything libc5 based).
50301diff -urNp linux-2.6.38.3/init/main.c linux-2.6.38.3/init/main.c 49143diff -urNp linux-2.6.38.2/init/main.c linux-2.6.38.2/init/main.c
50302--- linux-2.6.38.3/init/main.c 2011-03-14 21:20:32.000000000 -0400 49144--- linux-2.6.38.2/init/main.c 2011-03-14 21:20:32.000000000 -0400
50303+++ linux-2.6.38.3/init/main.c 2011-04-17 15:57:32.000000000 -0400 49145+++ linux-2.6.38.2/init/main.c 2011-03-21 18:31:35.000000000 -0400
50304@@ -96,6 +96,8 @@ static inline void mark_rodata_ro(void) 49146@@ -96,6 +96,8 @@ static inline void mark_rodata_ro(void)
50305 extern void tc_init(void); 49147 extern void tc_init(void);
50306 #endif 49148 #endif
@@ -50410,9 +49252,9 @@ diff -urNp linux-2.6.38.3/init/main.c linux-2.6.38.3/init/main.c
50410 /* 49252 /*
50411 * Ok, we have completed the initial bootup, and 49253 * Ok, we have completed the initial bootup, and
50412 * we're essentially up and running. Get rid of the 49254 * we're essentially up and running. Get rid of the
50413diff -urNp linux-2.6.38.3/ipc/mqueue.c linux-2.6.38.3/ipc/mqueue.c 49255diff -urNp linux-2.6.38.2/ipc/mqueue.c linux-2.6.38.2/ipc/mqueue.c
50414--- linux-2.6.38.3/ipc/mqueue.c 2011-03-14 21:20:32.000000000 -0400 49256--- linux-2.6.38.2/ipc/mqueue.c 2011-03-14 21:20:32.000000000 -0400
50415+++ linux-2.6.38.3/ipc/mqueue.c 2011-04-17 15:57:32.000000000 -0400 49257+++ linux-2.6.38.2/ipc/mqueue.c 2011-03-21 18:31:35.000000000 -0400
50416@@ -154,6 +154,7 @@ static struct inode *mqueue_get_inode(st 49258@@ -154,6 +154,7 @@ static struct inode *mqueue_get_inode(st
50417 mq_bytes = (mq_msg_tblsz + 49259 mq_bytes = (mq_msg_tblsz +
50418 (info->attr.mq_maxmsg * info->attr.mq_msgsize)); 49260 (info->attr.mq_maxmsg * info->attr.mq_msgsize));
@@ -50421,9 +49263,9 @@ diff -urNp linux-2.6.38.3/ipc/mqueue.c linux-2.6.38.3/ipc/mqueue.c
50421 spin_lock(&mq_lock); 49263 spin_lock(&mq_lock);
50422 if (u->mq_bytes + mq_bytes < u->mq_bytes || 49264 if (u->mq_bytes + mq_bytes < u->mq_bytes ||
50423 u->mq_bytes + mq_bytes > 49265 u->mq_bytes + mq_bytes >
50424diff -urNp linux-2.6.38.3/ipc/shm.c linux-2.6.38.3/ipc/shm.c 49266diff -urNp linux-2.6.38.2/ipc/shm.c linux-2.6.38.2/ipc/shm.c
50425--- linux-2.6.38.3/ipc/shm.c 2011-03-14 21:20:32.000000000 -0400 49267--- linux-2.6.38.2/ipc/shm.c 2011-03-14 21:20:32.000000000 -0400
50426+++ linux-2.6.38.3/ipc/shm.c 2011-04-17 15:57:32.000000000 -0400 49268+++ linux-2.6.38.2/ipc/shm.c 2011-03-21 18:31:35.000000000 -0400
50427@@ -69,6 +69,14 @@ static void shm_destroy (struct ipc_name 49269@@ -69,6 +69,14 @@ static void shm_destroy (struct ipc_name
50428 static int sysvipc_shm_proc_show(struct seq_file *s, void *it); 49270 static int sysvipc_shm_proc_show(struct seq_file *s, void *it);
50429 #endif 49271 #endif
@@ -50485,9 +49327,9 @@ diff -urNp linux-2.6.38.3/ipc/shm.c linux-2.6.38.3/ipc/shm.c
50485 size = i_size_read(path.dentry->d_inode); 49327 size = i_size_read(path.dentry->d_inode);
50486 shm_unlock(shp); 49328 shm_unlock(shp);
50487 49329
50488diff -urNp linux-2.6.38.3/kernel/acct.c linux-2.6.38.3/kernel/acct.c 49330diff -urNp linux-2.6.38.2/kernel/acct.c linux-2.6.38.2/kernel/acct.c
50489--- linux-2.6.38.3/kernel/acct.c 2011-03-14 21:20:32.000000000 -0400 49331--- linux-2.6.38.2/kernel/acct.c 2011-03-14 21:20:32.000000000 -0400
50490+++ linux-2.6.38.3/kernel/acct.c 2011-04-17 15:57:32.000000000 -0400 49332+++ linux-2.6.38.2/kernel/acct.c 2011-03-21 18:31:35.000000000 -0400
50491@@ -570,7 +570,7 @@ static void do_acct_process(struct bsd_a 49333@@ -570,7 +570,7 @@ static void do_acct_process(struct bsd_a
50492 */ 49334 */
50493 flim = current->signal->rlim[RLIMIT_FSIZE].rlim_cur; 49335 flim = current->signal->rlim[RLIMIT_FSIZE].rlim_cur;
@@ -50497,9 +49339,9 @@ diff -urNp linux-2.6.38.3/kernel/acct.c linux-2.6.38.3/kernel/acct.c
50497 sizeof(acct_t), &file->f_pos); 49339 sizeof(acct_t), &file->f_pos);
50498 current->signal->rlim[RLIMIT_FSIZE].rlim_cur = flim; 49340 current->signal->rlim[RLIMIT_FSIZE].rlim_cur = flim;
50499 set_fs(fs); 49341 set_fs(fs);
50500diff -urNp linux-2.6.38.3/kernel/capability.c linux-2.6.38.3/kernel/capability.c 49342diff -urNp linux-2.6.38.2/kernel/capability.c linux-2.6.38.2/kernel/capability.c
50501--- linux-2.6.38.3/kernel/capability.c 2011-03-14 21:20:32.000000000 -0400 49343--- linux-2.6.38.2/kernel/capability.c 2011-03-14 21:20:32.000000000 -0400
50502+++ linux-2.6.38.3/kernel/capability.c 2011-04-17 15:57:32.000000000 -0400 49344+++ linux-2.6.38.2/kernel/capability.c 2011-03-21 18:31:35.000000000 -0400
50503@@ -205,6 +205,9 @@ SYSCALL_DEFINE2(capget, cap_user_header_ 49345@@ -205,6 +205,9 @@ SYSCALL_DEFINE2(capget, cap_user_header_
50504 * before modification is attempted and the application 49346 * before modification is attempted and the application
50505 * fails. 49347 * fails.
@@ -50538,9 +49380,9 @@ diff -urNp linux-2.6.38.3/kernel/capability.c linux-2.6.38.3/kernel/capability.c
50538+ 49380+
50539 EXPORT_SYMBOL(capable); 49381 EXPORT_SYMBOL(capable);
50540+EXPORT_SYMBOL(capable_nolog); 49382+EXPORT_SYMBOL(capable_nolog);
50541diff -urNp linux-2.6.38.3/kernel/compat.c linux-2.6.38.3/kernel/compat.c 49383diff -urNp linux-2.6.38.2/kernel/compat.c linux-2.6.38.2/kernel/compat.c
50542--- linux-2.6.38.3/kernel/compat.c 2011-03-14 21:20:32.000000000 -0400 49384--- linux-2.6.38.2/kernel/compat.c 2011-03-14 21:20:32.000000000 -0400
50543+++ linux-2.6.38.3/kernel/compat.c 2011-04-17 15:57:32.000000000 -0400 49385+++ linux-2.6.38.2/kernel/compat.c 2011-03-21 18:31:35.000000000 -0400
50544@@ -13,6 +13,7 @@ 49386@@ -13,6 +13,7 @@
50545 49387
50546 #include <linux/linkage.h> 49388 #include <linux/linkage.h>
@@ -50549,9 +49391,9 @@ diff -urNp linux-2.6.38.3/kernel/compat.c linux-2.6.38.3/kernel/compat.c
50549 #include <linux/errno.h> 49391 #include <linux/errno.h>
50550 #include <linux/time.h> 49392 #include <linux/time.h>
50551 #include <linux/signal.h> 49393 #include <linux/signal.h>
50552diff -urNp linux-2.6.38.3/kernel/configs.c linux-2.6.38.3/kernel/configs.c 49394diff -urNp linux-2.6.38.2/kernel/configs.c linux-2.6.38.2/kernel/configs.c
50553--- linux-2.6.38.3/kernel/configs.c 2011-03-14 21:20:32.000000000 -0400 49395--- linux-2.6.38.2/kernel/configs.c 2011-03-14 21:20:32.000000000 -0400
50554+++ linux-2.6.38.3/kernel/configs.c 2011-04-17 15:57:32.000000000 -0400 49396+++ linux-2.6.38.2/kernel/configs.c 2011-03-21 18:31:35.000000000 -0400
50555@@ -74,8 +74,19 @@ static int __init ikconfig_init(void) 49397@@ -74,8 +74,19 @@ static int __init ikconfig_init(void)
50556 struct proc_dir_entry *entry; 49398 struct proc_dir_entry *entry;
50557 49399
@@ -50572,9 +49414,9 @@ diff -urNp linux-2.6.38.3/kernel/configs.c linux-2.6.38.3/kernel/configs.c
50572 if (!entry) 49414 if (!entry)
50573 return -ENOMEM; 49415 return -ENOMEM;
50574 49416
50575diff -urNp linux-2.6.38.3/kernel/cred.c linux-2.6.38.3/kernel/cred.c 49417diff -urNp linux-2.6.38.2/kernel/cred.c linux-2.6.38.2/kernel/cred.c
50576--- linux-2.6.38.3/kernel/cred.c 2011-03-14 21:20:32.000000000 -0400 49418--- linux-2.6.38.2/kernel/cred.c 2011-03-14 21:20:32.000000000 -0400
50577+++ linux-2.6.38.3/kernel/cred.c 2011-04-17 15:57:32.000000000 -0400 49419+++ linux-2.6.38.2/kernel/cred.c 2011-03-21 18:31:35.000000000 -0400
50578@@ -483,6 +483,8 @@ int commit_creds(struct cred *new) 49420@@ -483,6 +483,8 @@ int commit_creds(struct cred *new)
50579 49421
50580 get_cred(new); /* we will require a ref for the subj creds too */ 49422 get_cred(new); /* we will require a ref for the subj creds too */
@@ -50584,9 +49426,9 @@ diff -urNp linux-2.6.38.3/kernel/cred.c linux-2.6.38.3/kernel/cred.c
50584 /* dumpability changes */ 49426 /* dumpability changes */
50585 if (old->euid != new->euid || 49427 if (old->euid != new->euid ||
50586 old->egid != new->egid || 49428 old->egid != new->egid ||
50587diff -urNp linux-2.6.38.3/kernel/debug/debug_core.c linux-2.6.38.3/kernel/debug/debug_core.c 49429diff -urNp linux-2.6.38.2/kernel/debug/debug_core.c linux-2.6.38.2/kernel/debug/debug_core.c
50588--- linux-2.6.38.3/kernel/debug/debug_core.c 2011-03-14 21:20:32.000000000 -0400 49430--- linux-2.6.38.2/kernel/debug/debug_core.c 2011-03-14 21:20:32.000000000 -0400
50589+++ linux-2.6.38.3/kernel/debug/debug_core.c 2011-04-17 15:57:32.000000000 -0400 49431+++ linux-2.6.38.2/kernel/debug/debug_core.c 2011-03-21 18:31:35.000000000 -0400
50590@@ -72,7 +72,7 @@ int kgdb_io_module_registered; 49432@@ -72,7 +72,7 @@ int kgdb_io_module_registered;
50591 /* Guard for recursive entry */ 49433 /* Guard for recursive entry */
50592 static int exception_level; 49434 static int exception_level;
@@ -50614,9 +49456,9 @@ diff -urNp linux-2.6.38.3/kernel/debug/debug_core.c linux-2.6.38.3/kernel/debug/
50614 { 49456 {
50615 BUG_ON(kgdb_connected); 49457 BUG_ON(kgdb_connected);
50616 49458
50617diff -urNp linux-2.6.38.3/kernel/debug/kdb/kdb_main.c linux-2.6.38.3/kernel/debug/kdb/kdb_main.c 49459diff -urNp linux-2.6.38.2/kernel/debug/kdb/kdb_main.c linux-2.6.38.2/kernel/debug/kdb/kdb_main.c
50618--- linux-2.6.38.3/kernel/debug/kdb/kdb_main.c 2011-03-14 21:20:32.000000000 -0400 49460--- linux-2.6.38.2/kernel/debug/kdb/kdb_main.c 2011-03-14 21:20:32.000000000 -0400
50619+++ linux-2.6.38.3/kernel/debug/kdb/kdb_main.c 2011-04-17 15:57:32.000000000 -0400 49461+++ linux-2.6.38.2/kernel/debug/kdb/kdb_main.c 2011-03-21 18:31:35.000000000 -0400
50620@@ -1980,7 +1980,7 @@ static int kdb_lsmod(int argc, const cha 49462@@ -1980,7 +1980,7 @@ static int kdb_lsmod(int argc, const cha
50621 list_for_each_entry(mod, kdb_modules, list) { 49463 list_for_each_entry(mod, kdb_modules, list) {
50622 49464
@@ -50635,9 +49477,9 @@ diff -urNp linux-2.6.38.3/kernel/debug/kdb/kdb_main.c linux-2.6.38.3/kernel/debu
50635 49477
50636 #ifdef CONFIG_MODULE_UNLOAD 49478 #ifdef CONFIG_MODULE_UNLOAD
50637 { 49479 {
50638diff -urNp linux-2.6.38.3/kernel/exit.c linux-2.6.38.3/kernel/exit.c 49480diff -urNp linux-2.6.38.2/kernel/exit.c linux-2.6.38.2/kernel/exit.c
50639--- linux-2.6.38.3/kernel/exit.c 2011-03-14 21:20:32.000000000 -0400 49481--- linux-2.6.38.2/kernel/exit.c 2011-03-14 21:20:32.000000000 -0400
50640+++ linux-2.6.38.3/kernel/exit.c 2011-04-17 15:57:32.000000000 -0400 49482+++ linux-2.6.38.2/kernel/exit.c 2011-03-21 18:31:35.000000000 -0400
50641@@ -57,6 +57,10 @@ 49483@@ -57,6 +57,10 @@
50642 #include <asm/pgtable.h> 49484 #include <asm/pgtable.h>
50643 #include <asm/mmu_context.h> 49485 #include <asm/mmu_context.h>
@@ -50757,9 +49599,9 @@ diff -urNp linux-2.6.38.3/kernel/exit.c linux-2.6.38.3/kernel/exit.c
50757 exit_mm(tsk); 49599 exit_mm(tsk);
50758 49600
50759 if (group_dead) 49601 if (group_dead)
50760diff -urNp linux-2.6.38.3/kernel/fork.c linux-2.6.38.3/kernel/fork.c 49602diff -urNp linux-2.6.38.2/kernel/fork.c linux-2.6.38.2/kernel/fork.c
50761--- linux-2.6.38.3/kernel/fork.c 2011-03-14 21:20:32.000000000 -0400 49603--- linux-2.6.38.2/kernel/fork.c 2011-03-14 21:20:32.000000000 -0400
50762+++ linux-2.6.38.3/kernel/fork.c 2011-04-17 15:57:32.000000000 -0400 49604+++ linux-2.6.38.2/kernel/fork.c 2011-03-21 18:31:35.000000000 -0400
50763@@ -280,7 +280,7 @@ static struct task_struct *dup_task_stru 49605@@ -280,7 +280,7 @@ static struct task_struct *dup_task_stru
50764 *stackend = STACK_END_MAGIC; /* for overflow detection */ 49606 *stackend = STACK_END_MAGIC; /* for overflow detection */
50765 49607
@@ -51056,9 +49898,9 @@ diff -urNp linux-2.6.38.3/kernel/fork.c linux-2.6.38.3/kernel/fork.c
51056 new_fs = NULL; 49898 new_fs = NULL;
51057 else 49899 else
51058 new_fs = fs; 49900 new_fs = fs;
51059diff -urNp linux-2.6.38.3/kernel/futex.c linux-2.6.38.3/kernel/futex.c 49901diff -urNp linux-2.6.38.2/kernel/futex.c linux-2.6.38.2/kernel/futex.c
51060--- linux-2.6.38.3/kernel/futex.c 2011-03-14 21:20:32.000000000 -0400 49902--- linux-2.6.38.2/kernel/futex.c 2011-03-14 21:20:32.000000000 -0400
51061+++ linux-2.6.38.3/kernel/futex.c 2011-04-17 15:57:32.000000000 -0400 49903+++ linux-2.6.38.2/kernel/futex.c 2011-03-21 18:31:35.000000000 -0400
51062@@ -54,6 +54,7 @@ 49904@@ -54,6 +54,7 @@
51063 #include <linux/mount.h> 49905 #include <linux/mount.h>
51064 #include <linux/pagemap.h> 49906 #include <linux/pagemap.h>
@@ -51125,9 +49967,9 @@ diff -urNp linux-2.6.38.3/kernel/futex.c linux-2.6.38.3/kernel/futex.c
51125 if (curval == -EFAULT) 49967 if (curval == -EFAULT)
51126 futex_cmpxchg_enabled = 1; 49968 futex_cmpxchg_enabled = 1;
51127 49969
51128diff -urNp linux-2.6.38.3/kernel/futex_compat.c linux-2.6.38.3/kernel/futex_compat.c 49970diff -urNp linux-2.6.38.2/kernel/futex_compat.c linux-2.6.38.2/kernel/futex_compat.c
51129--- linux-2.6.38.3/kernel/futex_compat.c 2011-03-14 21:20:32.000000000 -0400 49971--- linux-2.6.38.2/kernel/futex_compat.c 2011-03-14 21:20:32.000000000 -0400
51130+++ linux-2.6.38.3/kernel/futex_compat.c 2011-04-17 15:57:32.000000000 -0400 49972+++ linux-2.6.38.2/kernel/futex_compat.c 2011-03-21 18:31:35.000000000 -0400
51131@@ -10,6 +10,7 @@ 49973@@ -10,6 +10,7 @@
51132 #include <linux/compat.h> 49974 #include <linux/compat.h>
51133 #include <linux/nsproxy.h> 49975 #include <linux/nsproxy.h>
@@ -51165,9 +50007,9 @@ diff -urNp linux-2.6.38.3/kernel/futex_compat.c linux-2.6.38.3/kernel/futex_comp
51165 head = p->compat_robust_list; 50007 head = p->compat_robust_list;
51166 rcu_read_unlock(); 50008 rcu_read_unlock();
51167 } 50009 }
51168diff -urNp linux-2.6.38.3/kernel/gcov/base.c linux-2.6.38.3/kernel/gcov/base.c 50010diff -urNp linux-2.6.38.2/kernel/gcov/base.c linux-2.6.38.2/kernel/gcov/base.c
51169--- linux-2.6.38.3/kernel/gcov/base.c 2011-03-14 21:20:32.000000000 -0400 50011--- linux-2.6.38.2/kernel/gcov/base.c 2011-03-14 21:20:32.000000000 -0400
51170+++ linux-2.6.38.3/kernel/gcov/base.c 2011-04-17 15:57:32.000000000 -0400 50012+++ linux-2.6.38.2/kernel/gcov/base.c 2011-03-21 18:31:35.000000000 -0400
51171@@ -102,11 +102,6 @@ void gcov_enable_events(void) 50013@@ -102,11 +102,6 @@ void gcov_enable_events(void)
51172 } 50014 }
51173 50015
@@ -51189,9 +50031,9 @@ diff -urNp linux-2.6.38.3/kernel/gcov/base.c linux-2.6.38.3/kernel/gcov/base.c
51189 if (prev) 50031 if (prev)
51190 prev->next = info->next; 50032 prev->next = info->next;
51191 else 50033 else
51192diff -urNp linux-2.6.38.3/kernel/hrtimer.c linux-2.6.38.3/kernel/hrtimer.c 50034diff -urNp linux-2.6.38.2/kernel/hrtimer.c linux-2.6.38.2/kernel/hrtimer.c
51193--- linux-2.6.38.3/kernel/hrtimer.c 2011-03-14 21:20:32.000000000 -0400 50035--- linux-2.6.38.2/kernel/hrtimer.c 2011-03-14 21:20:32.000000000 -0400
51194+++ linux-2.6.38.3/kernel/hrtimer.c 2011-04-17 15:57:32.000000000 -0400 50036+++ linux-2.6.38.2/kernel/hrtimer.c 2011-03-21 18:31:35.000000000 -0400
51195@@ -1371,7 +1371,7 @@ void hrtimer_peek_ahead_timers(void) 50037@@ -1371,7 +1371,7 @@ void hrtimer_peek_ahead_timers(void)
51196 local_irq_restore(flags); 50038 local_irq_restore(flags);
51197 } 50039 }
@@ -51201,9 +50043,9 @@ diff -urNp linux-2.6.38.3/kernel/hrtimer.c linux-2.6.38.3/kernel/hrtimer.c
51201 { 50043 {
51202 hrtimer_peek_ahead_timers(); 50044 hrtimer_peek_ahead_timers();
51203 } 50045 }
51204diff -urNp linux-2.6.38.3/kernel/jump_label.c linux-2.6.38.3/kernel/jump_label.c 50046diff -urNp linux-2.6.38.2/kernel/jump_label.c linux-2.6.38.2/kernel/jump_label.c
51205--- linux-2.6.38.3/kernel/jump_label.c 2011-03-14 21:20:32.000000000 -0400 50047--- linux-2.6.38.2/kernel/jump_label.c 2011-03-14 21:20:32.000000000 -0400
51206+++ linux-2.6.38.3/kernel/jump_label.c 2011-04-17 15:57:32.000000000 -0400 50048+++ linux-2.6.38.2/kernel/jump_label.c 2011-03-21 18:31:35.000000000 -0400
51207@@ -49,6 +49,17 @@ void jump_label_unlock(void) 50049@@ -49,6 +49,17 @@ void jump_label_unlock(void)
51208 mutex_unlock(&jump_label_mutex); 50050 mutex_unlock(&jump_label_mutex);
51209 } 50051 }
@@ -51244,9 +50086,9 @@ diff -urNp linux-2.6.38.3/kernel/jump_label.c linux-2.6.38.3/kernel/jump_label.c
51244 iter++; 50086 iter++;
51245 } 50087 }
51246 } 50088 }
51247diff -urNp linux-2.6.38.3/kernel/kallsyms.c linux-2.6.38.3/kernel/kallsyms.c 50089diff -urNp linux-2.6.38.2/kernel/kallsyms.c linux-2.6.38.2/kernel/kallsyms.c
51248--- linux-2.6.38.3/kernel/kallsyms.c 2011-03-14 21:20:32.000000000 -0400 50090--- linux-2.6.38.2/kernel/kallsyms.c 2011-03-14 21:20:32.000000000 -0400
51249+++ linux-2.6.38.3/kernel/kallsyms.c 2011-04-17 15:57:32.000000000 -0400 50091+++ linux-2.6.38.2/kernel/kallsyms.c 2011-03-21 18:31:35.000000000 -0400
51250@@ -11,6 +11,9 @@ 50092@@ -11,6 +11,9 @@
51251 * Changed the compression method from stem compression to "table lookup" 50093 * Changed the compression method from stem compression to "table lookup"
51252 * compression (see scripts/kallsyms.c for a more complete description) 50094 * compression (see scripts/kallsyms.c for a more complete description)
@@ -51349,108 +50191,31 @@ diff -urNp linux-2.6.38.3/kernel/kallsyms.c linux-2.6.38.3/kernel/kallsyms.c
51349 if (!iter) 50191 if (!iter)
51350 return -ENOMEM; 50192 return -ENOMEM;
51351 reset_iter(iter, 0); 50193 reset_iter(iter, 0);
51352diff -urNp linux-2.6.38.3/kernel/kmod.c linux-2.6.38.3/kernel/kmod.c 50194diff -urNp linux-2.6.38.2/kernel/kmod.c linux-2.6.38.2/kernel/kmod.c
51353--- linux-2.6.38.3/kernel/kmod.c 2011-03-14 21:20:32.000000000 -0400 50195--- linux-2.6.38.2/kernel/kmod.c 2011-03-14 21:20:32.000000000 -0400
51354+++ linux-2.6.38.3/kernel/kmod.c 2011-04-17 15:57:32.000000000 -0400 50196+++ linux-2.6.38.2/kernel/kmod.c 2011-03-26 13:28:34.000000000 -0400
51355@@ -65,13 +65,12 @@ char modprobe_path[KMOD_PATH_LEN] = "/sb 50197@@ -90,6 +90,18 @@ int __request_module(bool wait, const ch
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
51383 if (ret) 50198 if (ret)
51384 return ret; 50199 return ret;
51385 50200
51386+#ifdef CONFIG_GRKERNSEC_MODHARDEN 50201+#ifdef CONFIG_GRKERNSEC_MODHARDEN
51387+ if (!current_uid()) { 50202+ /* we could do a tighter check here, but some distros
51388+ /* hack to workaround consolekit/udisks stupidity */ 50203+ are taking it upon themselves to remove CAP_SYS_MODULE
51389+ read_lock(&tasklist_lock); 50204+ from even root-running apps which cause modules to be
51390+ if (!strcmp(current->comm, "mount") && 50205+ auto-loaded
51391+ current->real_parent && !strncmp(current->real_parent->comm, "udisk", 5)) { 50206+ */
51392+ read_unlock(&tasklist_lock); 50207+ if (current_uid()) {
51393+ printk(KERN_ALERT "grsec: denied attempt to auto-load fs module %.64s by udisks\n", module_name); 50208+ gr_log_nonroot_mod_load(module_name);
51394+ return -EPERM; 50209+ return -EPERM;
51395+ }
51396+ read_unlock(&tasklist_lock);
51397+ } 50210+ }
51398+#endif 50211+#endif
51399+ 50212+
51400 /* If modprobe needs a service that is in a module, we get a recursive 50213 /* If modprobe needs a service that is in a module, we get a recursive
51401 * loop. Limit the number of running kmod threads to max_threads/2 or 50214 * loop. Limit the number of running kmod threads to max_threads/2 or
51402 * MAX_KMOD_CONCURRENT, whichever is the smaller. A cleaner method 50215 * MAX_KMOD_CONCURRENT, whichever is the smaller. A cleaner method
51403@@ -123,6 +134,47 @@ int __request_module(bool wait, const ch 50216diff -urNp linux-2.6.38.2/kernel/kprobes.c linux-2.6.38.2/kernel/kprobes.c
51404 atomic_dec(&kmod_concurrent); 50217--- linux-2.6.38.2/kernel/kprobes.c 2011-03-14 21:20:32.000000000 -0400
51405 return ret; 50218+++ linux-2.6.38.2/kernel/kprobes.c 2011-03-21 18:31:35.000000000 -0400
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
51454@@ -185,7 +185,7 @@ static kprobe_opcode_t __kprobes *__get_ 50219@@ -185,7 +185,7 @@ static kprobe_opcode_t __kprobes *__get_
51455 * kernel image and loaded module images reside. This is required 50220 * kernel image and loaded module images reside. This is required
51456 * so x86_64 can correctly handle the %rip-relative fixups. 50221 * so x86_64 can correctly handle the %rip-relative fixups.
@@ -51487,9 +50252,9 @@ diff -urNp linux-2.6.38.3/kernel/kprobes.c linux-2.6.38.3/kernel/kprobes.c
51487 50252
51488 head = &kprobe_table[i]; 50253 head = &kprobe_table[i];
51489 preempt_disable(); 50254 preempt_disable();
51490diff -urNp linux-2.6.38.3/kernel/lockdep.c linux-2.6.38.3/kernel/lockdep.c 50255diff -urNp linux-2.6.38.2/kernel/lockdep.c linux-2.6.38.2/kernel/lockdep.c
51491--- linux-2.6.38.3/kernel/lockdep.c 2011-03-14 21:20:32.000000000 -0400 50256--- linux-2.6.38.2/kernel/lockdep.c 2011-03-14 21:20:32.000000000 -0400
51492+++ linux-2.6.38.3/kernel/lockdep.c 2011-04-17 15:57:32.000000000 -0400 50257+++ linux-2.6.38.2/kernel/lockdep.c 2011-03-21 18:31:35.000000000 -0400
51493@@ -571,6 +571,10 @@ static int static_obj(void *obj) 50258@@ -571,6 +571,10 @@ static int static_obj(void *obj)
51494 end = (unsigned long) &_end, 50259 end = (unsigned long) &_end,
51495 addr = (unsigned long) obj; 50260 addr = (unsigned long) obj;
@@ -51518,9 +50283,9 @@ diff -urNp linux-2.6.38.3/kernel/lockdep.c linux-2.6.38.3/kernel/lockdep.c
51518 if (very_verbose(class)) { 50283 if (very_verbose(class)) {
51519 printk("\nacquire class [%p] %s", class->key, class->name); 50284 printk("\nacquire class [%p] %s", class->key, class->name);
51520 if (class->name_version > 1) 50285 if (class->name_version > 1)
51521diff -urNp linux-2.6.38.3/kernel/lockdep_proc.c linux-2.6.38.3/kernel/lockdep_proc.c 50286diff -urNp linux-2.6.38.2/kernel/lockdep_proc.c linux-2.6.38.2/kernel/lockdep_proc.c
51522--- linux-2.6.38.3/kernel/lockdep_proc.c 2011-03-14 21:20:32.000000000 -0400 50287--- linux-2.6.38.2/kernel/lockdep_proc.c 2011-03-14 21:20:32.000000000 -0400
51523+++ linux-2.6.38.3/kernel/lockdep_proc.c 2011-04-17 15:57:32.000000000 -0400 50288+++ linux-2.6.38.2/kernel/lockdep_proc.c 2011-03-21 18:31:35.000000000 -0400
51524@@ -39,7 +39,7 @@ static void l_stop(struct seq_file *m, v 50289@@ -39,7 +39,7 @@ static void l_stop(struct seq_file *m, v
51525 50290
51526 static void print_name(struct seq_file *m, struct lock_class *class) 50291 static void print_name(struct seq_file *m, struct lock_class *class)
@@ -51530,18 +50295,10 @@ diff -urNp linux-2.6.38.3/kernel/lockdep_proc.c linux-2.6.38.3/kernel/lockdep_pr
51530 const char *name = class->name; 50295 const char *name = class->name;
51531 50296
51532 if (!name) { 50297 if (!name) {
51533diff -urNp linux-2.6.38.3/kernel/module.c linux-2.6.38.3/kernel/module.c 50298diff -urNp linux-2.6.38.2/kernel/module.c linux-2.6.38.2/kernel/module.c
51534--- linux-2.6.38.3/kernel/module.c 2011-03-14 21:20:32.000000000 -0400 50299--- linux-2.6.38.2/kernel/module.c 2011-03-14 21:20:32.000000000 -0400
51535+++ linux-2.6.38.3/kernel/module.c 2011-04-17 16:05:04.000000000 -0400 50300+++ linux-2.6.38.2/kernel/module.c 2011-03-21 18:31:35.000000000 -0400
51536@@ -57,6 +57,7 @@ 50301@@ -118,7 +118,8 @@ static BLOCKING_NOTIFIER_HEAD(module_not
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
51545 50302
51546 /* Bounds of module allocation, for speeding __module_address. 50303 /* Bounds of module allocation, for speeding __module_address.
51547 * Protected by module_mutex. */ 50304 * Protected by module_mutex. */
@@ -51551,7 +50308,7 @@ diff -urNp linux-2.6.38.3/kernel/module.c linux-2.6.38.3/kernel/module.c
51551 50308
51552 int register_module_notifier(struct notifier_block * nb) 50309 int register_module_notifier(struct notifier_block * nb)
51553 { 50310 {
51554@@ -282,7 +284,7 @@ bool each_symbol(bool (*fn)(const struct 50311@@ -282,7 +283,7 @@ bool each_symbol(bool (*fn)(const struct
51555 return true; 50312 return true;
51556 50313
51557 list_for_each_entry_rcu(mod, &modules, list) { 50314 list_for_each_entry_rcu(mod, &modules, list) {
@@ -51560,7 +50317,7 @@ diff -urNp linux-2.6.38.3/kernel/module.c linux-2.6.38.3/kernel/module.c
51560 { mod->syms, mod->syms + mod->num_syms, mod->crcs, 50317 { mod->syms, mod->syms + mod->num_syms, mod->crcs,
51561 NOT_GPL_ONLY, false }, 50318 NOT_GPL_ONLY, false },
51562 { mod->gpl_syms, mod->gpl_syms + mod->num_gpl_syms, 50319 { mod->gpl_syms, mod->gpl_syms + mod->num_gpl_syms,
51563@@ -304,7 +306,7 @@ bool each_symbol(bool (*fn)(const struct 50320@@ -304,7 +305,7 @@ bool each_symbol(bool (*fn)(const struct
51564 #endif 50321 #endif
51565 }; 50322 };
51566 50323
@@ -51569,7 +50326,7 @@ diff -urNp linux-2.6.38.3/kernel/module.c linux-2.6.38.3/kernel/module.c
51569 return true; 50326 return true;
51570 } 50327 }
51571 return false; 50328 return false;
51572@@ -415,7 +417,7 @@ static inline void __percpu *mod_percpu( 50329@@ -415,7 +416,7 @@ static inline void __percpu *mod_percpu(
51573 static int percpu_modalloc(struct module *mod, 50330 static int percpu_modalloc(struct module *mod,
51574 unsigned long size, unsigned long align) 50331 unsigned long size, unsigned long align)
51575 { 50332 {
@@ -51578,7 +50335,7 @@ diff -urNp linux-2.6.38.3/kernel/module.c linux-2.6.38.3/kernel/module.c
51578 printk(KERN_WARNING "%s: per-cpu alignment %li > %li\n", 50335 printk(KERN_WARNING "%s: per-cpu alignment %li > %li\n",
51579 mod->name, align, PAGE_SIZE); 50336 mod->name, align, PAGE_SIZE);
51580 align = PAGE_SIZE; 50337 align = PAGE_SIZE;
51581@@ -1143,7 +1145,7 @@ resolve_symbol_wait(struct module *mod, 50338@@ -1143,7 +1144,7 @@ resolve_symbol_wait(struct module *mod,
51582 */ 50339 */
51583 #ifdef CONFIG_SYSFS 50340 #ifdef CONFIG_SYSFS
51584 50341
@@ -51587,7 +50344,7 @@ diff -urNp linux-2.6.38.3/kernel/module.c linux-2.6.38.3/kernel/module.c
51587 static inline bool sect_empty(const Elf_Shdr *sect) 50344 static inline bool sect_empty(const Elf_Shdr *sect)
51588 { 50345 {
51589 return !(sect->sh_flags & SHF_ALLOC) || sect->sh_size == 0; 50346 return !(sect->sh_flags & SHF_ALLOC) || sect->sh_size == 0;
51590@@ -1612,17 +1614,17 @@ void unset_section_ro_nx(struct module * 50347@@ -1612,17 +1613,17 @@ void unset_section_ro_nx(struct module *
51591 { 50348 {
51592 unsigned long total_pages; 50349 unsigned long total_pages;
51593 50350
@@ -51613,7 +50370,7 @@ diff -urNp linux-2.6.38.3/kernel/module.c linux-2.6.38.3/kernel/module.c
51613 } 50370 }
51614 } 50371 }
51615 50372
51616@@ -1633,14 +1635,14 @@ void set_all_modules_text_rw() 50373@@ -1633,14 +1634,14 @@ void set_all_modules_text_rw()
51617 50374
51618 mutex_lock(&module_mutex); 50375 mutex_lock(&module_mutex);
51619 list_for_each_entry_rcu(mod, &modules, list) { 50376 list_for_each_entry_rcu(mod, &modules, list) {
@@ -51634,7 +50391,7 @@ diff -urNp linux-2.6.38.3/kernel/module.c linux-2.6.38.3/kernel/module.c
51634 set_memory_rw); 50391 set_memory_rw);
51635 } 50392 }
51636 } 50393 }
51637@@ -1654,14 +1656,14 @@ void set_all_modules_text_ro() 50394@@ -1654,14 +1655,14 @@ void set_all_modules_text_ro()
51638 50395
51639 mutex_lock(&module_mutex); 50396 mutex_lock(&module_mutex);
51640 list_for_each_entry_rcu(mod, &modules, list) { 50397 list_for_each_entry_rcu(mod, &modules, list) {
@@ -51655,7 +50412,7 @@ diff -urNp linux-2.6.38.3/kernel/module.c linux-2.6.38.3/kernel/module.c
51655 set_memory_ro); 50412 set_memory_ro);
51656 } 50413 }
51657 } 50414 }
51658@@ -1696,17 +1698,20 @@ static void free_module(struct module *m 50415@@ -1696,17 +1697,20 @@ static void free_module(struct module *m
51659 destroy_params(mod->kp, mod->num_kp); 50416 destroy_params(mod->kp, mod->num_kp);
51660 50417
51661 /* This may be NULL, but that's OK */ 50418 /* This may be NULL, but that's OK */
@@ -51681,33 +50438,7 @@ diff -urNp linux-2.6.38.3/kernel/module.c linux-2.6.38.3/kernel/module.c
51681 50438
51682 #ifdef CONFIG_MPU 50439 #ifdef CONFIG_MPU
51683 update_protections(current->mm); 50440 update_protections(current->mm);
51684@@ -1775,10 +1780,25 @@ static int simplify_symbols(struct modul 50441@@ -1799,7 +1803,9 @@ 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
51711 ksym = resolve_symbol_wait(mod, info, name); 50442 ksym = resolve_symbol_wait(mod, info, name);
51712 /* Ok if resolved. */ 50443 /* Ok if resolved. */
51713 if (ksym && !IS_ERR(ksym)) { 50444 if (ksym && !IS_ERR(ksym)) {
@@ -51717,7 +50448,7 @@ diff -urNp linux-2.6.38.3/kernel/module.c linux-2.6.38.3/kernel/module.c
51717 break; 50448 break;
51718 } 50449 }
51719 50450
51720@@ -1818,11 +1840,20 @@ static int simplify_symbols(struct modul 50451@@ -1818,7 +1824,9 @@ static int simplify_symbols(struct modul
51721 secbase = (unsigned long)mod_percpu(mod); 50452 secbase = (unsigned long)mod_percpu(mod);
51722 else 50453 else
51723 secbase = info->sechdrs[sym[i].st_shndx].sh_addr; 50454 secbase = info->sechdrs[sym[i].st_shndx].sh_addr;
@@ -51727,18 +50458,7 @@ diff -urNp linux-2.6.38.3/kernel/module.c linux-2.6.38.3/kernel/module.c
51727 break; 50458 break;
51728 } 50459 }
51729 } 50460 }
51730 50461@@ -1906,22 +1914,12 @@ static void layout_sections(struct modul
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
51742 || s->sh_entsize != ~0UL 50462 || s->sh_entsize != ~0UL
51743 || strstarts(sname, ".init")) 50463 || strstarts(sname, ".init"))
51744 continue; 50464 continue;
@@ -51765,7 +50485,7 @@ diff -urNp linux-2.6.38.3/kernel/module.c linux-2.6.38.3/kernel/module.c
51765 } 50485 }
51766 50486
51767 DEBUGP("Init section allocation order:\n"); 50487 DEBUGP("Init section allocation order:\n");
51768@@ -1935,23 +1956,13 @@ static void layout_sections(struct modul 50488@@ -1935,23 +1933,13 @@ static void layout_sections(struct modul
51769 || s->sh_entsize != ~0UL 50489 || s->sh_entsize != ~0UL
51770 || !strstarts(sname, ".init")) 50490 || !strstarts(sname, ".init"))
51771 continue; 50491 continue;
@@ -51794,7 +50514,7 @@ diff -urNp linux-2.6.38.3/kernel/module.c linux-2.6.38.3/kernel/module.c
51794 } 50514 }
51795 } 50515 }
51796 50516
51797@@ -2119,7 +2130,7 @@ static void layout_symtab(struct module 50517@@ -2119,7 +2107,7 @@ static void layout_symtab(struct module
51798 50518
51799 /* Put symbol section at end of init part of module. */ 50519 /* Put symbol section at end of init part of module. */
51800 symsect->sh_flags |= SHF_ALLOC; 50520 symsect->sh_flags |= SHF_ALLOC;
@@ -51803,7 +50523,7 @@ diff -urNp linux-2.6.38.3/kernel/module.c linux-2.6.38.3/kernel/module.c
51803 info->index.sym) | INIT_OFFSET_MASK; 50523 info->index.sym) | INIT_OFFSET_MASK;
51804 DEBUGP("\t%s\n", info->secstrings + symsect->sh_name); 50524 DEBUGP("\t%s\n", info->secstrings + symsect->sh_name);
51805 50525
51806@@ -2136,19 +2147,19 @@ static void layout_symtab(struct module 50526@@ -2136,19 +2124,19 @@ static void layout_symtab(struct module
51807 } 50527 }
51808 50528
51809 /* Append room for core symbols at end of core part. */ 50529 /* Append room for core symbols at end of core part. */
@@ -51828,7 +50548,7 @@ diff -urNp linux-2.6.38.3/kernel/module.c linux-2.6.38.3/kernel/module.c
51828 } 50548 }
51829 50549
51830 static void add_kallsyms(struct module *mod, const struct load_info *info) 50550 static void add_kallsyms(struct module *mod, const struct load_info *info)
51831@@ -2164,11 +2175,13 @@ static void add_kallsyms(struct module * 50551@@ -2164,11 +2152,13 @@ static void add_kallsyms(struct module *
51832 /* Make sure we get permanent strtab: don't use info->strtab. */ 50552 /* Make sure we get permanent strtab: don't use info->strtab. */
51833 mod->strtab = (void *)info->sechdrs[info->index.str].sh_addr; 50553 mod->strtab = (void *)info->sechdrs[info->index.str].sh_addr;
51834 50554
@@ -51843,7 +50563,7 @@ diff -urNp linux-2.6.38.3/kernel/module.c linux-2.6.38.3/kernel/module.c
51843 src = mod->symtab; 50563 src = mod->symtab;
51844 *dst = *src; 50564 *dst = *src;
51845 for (ndst = i = 1; i < mod->num_symtab; ++i, ++src) { 50565 for (ndst = i = 1; i < mod->num_symtab; ++i, ++src) {
51846@@ -2181,10 +2194,12 @@ static void add_kallsyms(struct module * 50566@@ -2181,10 +2171,12 @@ static void add_kallsyms(struct module *
51847 } 50567 }
51848 mod->core_num_syms = ndst; 50568 mod->core_num_syms = ndst;
51849 50569
@@ -51857,7 +50577,7 @@ diff -urNp linux-2.6.38.3/kernel/module.c linux-2.6.38.3/kernel/module.c
51857 } 50577 }
51858 #else 50578 #else
51859 static inline void layout_symtab(struct module *mod, struct load_info *info) 50579 static inline void layout_symtab(struct module *mod, struct load_info *info)
51860@@ -2213,17 +2228,33 @@ static void dynamic_debug_remove(struct 50580@@ -2213,17 +2205,33 @@ static void dynamic_debug_remove(struct
51861 ddebug_remove_module(debug->modname); 50581 ddebug_remove_module(debug->modname);
51862 } 50582 }
51863 50583
@@ -51896,7 +50616,7 @@ diff -urNp linux-2.6.38.3/kernel/module.c linux-2.6.38.3/kernel/module.c
51896 mutex_unlock(&module_mutex); 50616 mutex_unlock(&module_mutex);
51897 } 50617 }
51898 return ret; 50618 return ret;
51899@@ -2516,7 +2547,7 @@ static int move_module(struct module *mo 50619@@ -2516,7 +2524,7 @@ static int move_module(struct module *mo
51900 void *ptr; 50620 void *ptr;
51901 50621
51902 /* Do the allocs. */ 50622 /* Do the allocs. */
@@ -51905,7 +50625,7 @@ diff -urNp linux-2.6.38.3/kernel/module.c linux-2.6.38.3/kernel/module.c
51905 /* 50625 /*
51906 * The pointer to this block is stored in the module structure 50626 * The pointer to this block is stored in the module structure
51907 * which is inside the block. Just mark it as not being a 50627 * which is inside the block. Just mark it as not being a
51908@@ -2526,23 +2557,50 @@ static int move_module(struct module *mo 50628@@ -2526,23 +2534,50 @@ static int move_module(struct module *mo
51909 if (!ptr) 50629 if (!ptr)
51910 return -ENOMEM; 50630 return -ENOMEM;
51911 50631
@@ -51964,7 +50684,7 @@ diff -urNp linux-2.6.38.3/kernel/module.c linux-2.6.38.3/kernel/module.c
51964 50684
51965 /* Transfer each section which specifies SHF_ALLOC */ 50685 /* Transfer each section which specifies SHF_ALLOC */
51966 DEBUGP("final section addresses:\n"); 50686 DEBUGP("final section addresses:\n");
51967@@ -2553,16 +2611,45 @@ static int move_module(struct module *mo 50687@@ -2553,16 +2588,45 @@ static int move_module(struct module *mo
51968 if (!(shdr->sh_flags & SHF_ALLOC)) 50688 if (!(shdr->sh_flags & SHF_ALLOC))
51969 continue; 50689 continue;
51970 50690
@@ -52017,7 +50737,7 @@ diff -urNp linux-2.6.38.3/kernel/module.c linux-2.6.38.3/kernel/module.c
52017 DEBUGP("\t0x%lx %s\n", 50737 DEBUGP("\t0x%lx %s\n",
52018 shdr->sh_addr, info->secstrings + shdr->sh_name); 50738 shdr->sh_addr, info->secstrings + shdr->sh_name);
52019 } 50739 }
52020@@ -2613,12 +2700,12 @@ static void flush_module_icache(const st 50740@@ -2613,12 +2677,12 @@ static void flush_module_icache(const st
52021 * Do it before processing of module parameters, so the module 50741 * Do it before processing of module parameters, so the module
52022 * can provide parameter accessor functions of its own. 50742 * can provide parameter accessor functions of its own.
52023 */ 50743 */
@@ -52036,7 +50756,7 @@ diff -urNp linux-2.6.38.3/kernel/module.c linux-2.6.38.3/kernel/module.c
52036 50756
52037 set_fs(old_fs); 50757 set_fs(old_fs);
52038 } 50758 }
52039@@ -2690,8 +2777,10 @@ static void module_deallocate(struct mod 50759@@ -2690,8 +2754,10 @@ static void module_deallocate(struct mod
52040 { 50760 {
52041 kfree(info->strmap); 50761 kfree(info->strmap);
52042 percpu_modfree(mod); 50762 percpu_modfree(mod);
@@ -52049,73 +50769,7 @@ diff -urNp linux-2.6.38.3/kernel/module.c linux-2.6.38.3/kernel/module.c
52049 } 50769 }
52050 50770
52051 static int post_relocation(struct module *mod, const struct load_info *info) 50771 static int post_relocation(struct module *mod, const struct load_info *info)
52052@@ -2748,9 +2837,38 @@ static struct module *load_module(void _ 50772@@ -2877,16 +2943,16 @@ SYSCALL_DEFINE3(init_module, void __user
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
52119 MODULE_STATE_COMING, mod); 50773 MODULE_STATE_COMING, mod);
52120 50774
52121 /* Set RO and NX regions for core */ 50775 /* Set RO and NX regions for core */
@@ -52140,7 +50794,7 @@ diff -urNp linux-2.6.38.3/kernel/module.c linux-2.6.38.3/kernel/module.c
52140 50794
52141 do_mod_ctors(mod); 50795 do_mod_ctors(mod);
52142 /* Start the module */ 50796 /* Start the module */
52143@@ -2931,11 +3041,13 @@ SYSCALL_DEFINE3(init_module, void __user 50797@@ -2931,11 +2997,13 @@ SYSCALL_DEFINE3(init_module, void __user
52144 mod->symtab = mod->core_symtab; 50798 mod->symtab = mod->core_symtab;
52145 mod->strtab = mod->core_strtab; 50799 mod->strtab = mod->core_strtab;
52146 #endif 50800 #endif
@@ -52159,7 +50813,7 @@ diff -urNp linux-2.6.38.3/kernel/module.c linux-2.6.38.3/kernel/module.c
52159 mutex_unlock(&module_mutex); 50813 mutex_unlock(&module_mutex);
52160 50814
52161 return 0; 50815 return 0;
52162@@ -2966,10 +3078,16 @@ static const char *get_ksymbol(struct mo 50816@@ -2966,10 +3034,16 @@ static const char *get_ksymbol(struct mo
52163 unsigned long nextval; 50817 unsigned long nextval;
52164 50818
52165 /* At worse, next value is at end of module */ 50819 /* At worse, next value is at end of module */
@@ -52179,7 +50833,7 @@ diff -urNp linux-2.6.38.3/kernel/module.c linux-2.6.38.3/kernel/module.c
52179 50833
52180 /* Scan for closest preceeding symbol, and next symbol. (ELF 50834 /* Scan for closest preceeding symbol, and next symbol. (ELF
52181 starts real symbols at 1). */ 50835 starts real symbols at 1). */
52182@@ -3215,7 +3333,7 @@ static int m_show(struct seq_file *m, vo 50836@@ -3215,7 +3289,7 @@ static int m_show(struct seq_file *m, vo
52183 char buf[8]; 50837 char buf[8];
52184 50838
52185 seq_printf(m, "%s %u", 50839 seq_printf(m, "%s %u",
@@ -52188,7 +50842,7 @@ diff -urNp linux-2.6.38.3/kernel/module.c linux-2.6.38.3/kernel/module.c
52188 print_unload_info(m, mod); 50842 print_unload_info(m, mod);
52189 50843
52190 /* Informative for users. */ 50844 /* Informative for users. */
52191@@ -3224,7 +3342,7 @@ static int m_show(struct seq_file *m, vo 50845@@ -3224,7 +3298,7 @@ static int m_show(struct seq_file *m, vo
52192 mod->state == MODULE_STATE_COMING ? "Loading": 50846 mod->state == MODULE_STATE_COMING ? "Loading":
52193 "Live"); 50847 "Live");
52194 /* Used by oprofile and other similar tools. */ 50848 /* Used by oprofile and other similar tools. */
@@ -52197,7 +50851,7 @@ diff -urNp linux-2.6.38.3/kernel/module.c linux-2.6.38.3/kernel/module.c
52197 50851
52198 /* Taints info */ 50852 /* Taints info */
52199 if (mod->taints) 50853 if (mod->taints)
52200@@ -3260,7 +3378,17 @@ static const struct file_operations proc 50854@@ -3260,7 +3334,17 @@ static const struct file_operations proc
52201 50855
52202 static int __init proc_modules_init(void) 50856 static int __init proc_modules_init(void)
52203 { 50857 {
@@ -52215,7 +50869,7 @@ diff -urNp linux-2.6.38.3/kernel/module.c linux-2.6.38.3/kernel/module.c
52215 return 0; 50869 return 0;
52216 } 50870 }
52217 module_init(proc_modules_init); 50871 module_init(proc_modules_init);
52218@@ -3319,12 +3447,12 @@ struct module *__module_address(unsigned 50872@@ -3319,12 +3403,12 @@ struct module *__module_address(unsigned
52219 { 50873 {
52220 struct module *mod; 50874 struct module *mod;
52221 50875
@@ -52231,7 +50885,7 @@ diff -urNp linux-2.6.38.3/kernel/module.c linux-2.6.38.3/kernel/module.c
52231 return mod; 50885 return mod;
52232 return NULL; 50886 return NULL;
52233 } 50887 }
52234@@ -3358,11 +3486,20 @@ bool is_module_text_address(unsigned lon 50888@@ -3358,11 +3442,20 @@ bool is_module_text_address(unsigned lon
52235 */ 50889 */
52236 struct module *__module_text_address(unsigned long addr) 50890 struct module *__module_text_address(unsigned long addr)
52237 { 50891 {
@@ -52255,124 +50909,9 @@ diff -urNp linux-2.6.38.3/kernel/module.c linux-2.6.38.3/kernel/module.c
52255 mod = NULL; 50909 mod = NULL;
52256 } 50910 }
52257 return mod; 50911 return mod;
52258diff -urNp linux-2.6.38.3/kernel/mutex.c linux-2.6.38.3/kernel/mutex.c 50912diff -urNp linux-2.6.38.2/kernel/panic.c linux-2.6.38.2/kernel/panic.c
52259--- linux-2.6.38.3/kernel/mutex.c 2011-03-14 21:20:32.000000000 -0400 50913--- linux-2.6.38.2/kernel/panic.c 2011-03-14 21:20:32.000000000 -0400
52260+++ linux-2.6.38.3/kernel/mutex.c 2011-04-17 16:24:38.000000000 -0400 50914+++ linux-2.6.38.2/kernel/panic.c 2011-03-21 18:31:35.000000000 -0400
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
52376@@ -369,7 +369,7 @@ static void warn_slowpath_common(const c 50915@@ -369,7 +369,7 @@ static void warn_slowpath_common(const c
52377 const char *board; 50916 const char *board;
52378 50917
@@ -52392,9 +50931,9 @@ diff -urNp linux-2.6.38.3/kernel/panic.c linux-2.6.38.3/kernel/panic.c
52392 __builtin_return_address(0)); 50931 __builtin_return_address(0));
52393 } 50932 }
52394 EXPORT_SYMBOL(__stack_chk_fail); 50933 EXPORT_SYMBOL(__stack_chk_fail);
52395diff -urNp linux-2.6.38.3/kernel/pid.c linux-2.6.38.3/kernel/pid.c 50934diff -urNp linux-2.6.38.2/kernel/pid.c linux-2.6.38.2/kernel/pid.c
52396--- linux-2.6.38.3/kernel/pid.c 2011-03-14 21:20:32.000000000 -0400 50935--- linux-2.6.38.2/kernel/pid.c 2011-03-14 21:20:32.000000000 -0400
52397+++ linux-2.6.38.3/kernel/pid.c 2011-04-18 19:22:06.000000000 -0400 50936+++ linux-2.6.38.2/kernel/pid.c 2011-03-21 18:31:35.000000000 -0400
52398@@ -33,6 +33,7 @@ 50937@@ -33,6 +33,7 @@
52399 #include <linux/rculist.h> 50938 #include <linux/rculist.h>
52400 #include <linux/bootmem.h> 50939 #include <linux/bootmem.h>
@@ -52412,23 +50951,7 @@ diff -urNp linux-2.6.38.3/kernel/pid.c linux-2.6.38.3/kernel/pid.c
52412 50951
52413 int pid_max_min = RESERVED_PIDS + 1; 50952 int pid_max_min = RESERVED_PIDS + 1;
52414 int pid_max_max = PID_MAX_LIMIT; 50953 int pid_max_max = PID_MAX_LIMIT;
52415@@ -217,11 +218,14 @@ static int alloc_pidmap(struct pid_names 50954@@ -416,8 +417,15 @@ EXPORT_SYMBOL(pid_task);
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);
52432 */ 50955 */
52433 struct task_struct *find_task_by_pid_ns(pid_t nr, struct pid_namespace *ns) 50956 struct task_struct *find_task_by_pid_ns(pid_t nr, struct pid_namespace *ns)
52434 { 50957 {
@@ -52445,9 +50968,9 @@ diff -urNp linux-2.6.38.3/kernel/pid.c linux-2.6.38.3/kernel/pid.c
52445 } 50968 }
52446 50969
52447 struct task_struct *find_task_by_vpid(pid_t vnr) 50970 struct task_struct *find_task_by_vpid(pid_t vnr)
52448diff -urNp linux-2.6.38.3/kernel/posix-cpu-timers.c linux-2.6.38.3/kernel/posix-cpu-timers.c 50971diff -urNp linux-2.6.38.2/kernel/posix-cpu-timers.c linux-2.6.38.2/kernel/posix-cpu-timers.c
52449--- linux-2.6.38.3/kernel/posix-cpu-timers.c 2011-03-14 21:20:32.000000000 -0400 50972--- linux-2.6.38.2/kernel/posix-cpu-timers.c 2011-03-14 21:20:32.000000000 -0400
52450+++ linux-2.6.38.3/kernel/posix-cpu-timers.c 2011-04-17 15:57:32.000000000 -0400 50973+++ linux-2.6.38.2/kernel/posix-cpu-timers.c 2011-03-21 18:31:35.000000000 -0400
52451@@ -6,6 +6,7 @@ 50974@@ -6,6 +6,7 @@
52452 #include <linux/posix-timers.h> 50975 #include <linux/posix-timers.h>
52453 #include <linux/errno.h> 50976 #include <linux/errno.h>
@@ -52456,9 +50979,9 @@ diff -urNp linux-2.6.38.3/kernel/posix-cpu-timers.c linux-2.6.38.3/kernel/posix-
52456 #include <asm/uaccess.h> 50979 #include <asm/uaccess.h>
52457 #include <linux/kernel_stat.h> 50980 #include <linux/kernel_stat.h>
52458 #include <trace/events/timer.h> 50981 #include <trace/events/timer.h>
52459diff -urNp linux-2.6.38.3/kernel/posix-timers.c linux-2.6.38.3/kernel/posix-timers.c 50982diff -urNp linux-2.6.38.2/kernel/posix-timers.c linux-2.6.38.2/kernel/posix-timers.c
52460--- linux-2.6.38.3/kernel/posix-timers.c 2011-03-14 21:20:32.000000000 -0400 50983--- linux-2.6.38.2/kernel/posix-timers.c 2011-03-14 21:20:32.000000000 -0400
52461+++ linux-2.6.38.3/kernel/posix-timers.c 2011-04-17 15:57:33.000000000 -0400 50984+++ linux-2.6.38.2/kernel/posix-timers.c 2011-03-21 18:31:35.000000000 -0400
52462@@ -42,6 +42,7 @@ 50985@@ -42,6 +42,7 @@
52463 #include <linux/compiler.h> 50986 #include <linux/compiler.h>
52464 #include <linux/idr.h> 50987 #include <linux/idr.h>
@@ -52481,9 +51004,9 @@ diff -urNp linux-2.6.38.3/kernel/posix-timers.c linux-2.6.38.3/kernel/posix-time
52481 return CLOCK_DISPATCH(which_clock, clock_set, (which_clock, &new_tp)); 51004 return CLOCK_DISPATCH(which_clock, clock_set, (which_clock, &new_tp));
52482 } 51005 }
52483 51006
52484diff -urNp linux-2.6.38.3/kernel/power/poweroff.c linux-2.6.38.3/kernel/power/poweroff.c 51007diff -urNp linux-2.6.38.2/kernel/power/poweroff.c linux-2.6.38.2/kernel/power/poweroff.c
52485--- linux-2.6.38.3/kernel/power/poweroff.c 2011-03-14 21:20:32.000000000 -0400 51008--- linux-2.6.38.2/kernel/power/poweroff.c 2011-03-14 21:20:32.000000000 -0400
52486+++ linux-2.6.38.3/kernel/power/poweroff.c 2011-04-17 15:57:33.000000000 -0400 51009+++ linux-2.6.38.2/kernel/power/poweroff.c 2011-03-21 18:31:35.000000000 -0400
52487@@ -37,7 +37,7 @@ static struct sysrq_key_op sysrq_powerof 51010@@ -37,7 +37,7 @@ static struct sysrq_key_op sysrq_powerof
52488 .enable_mask = SYSRQ_ENABLE_BOOT, 51011 .enable_mask = SYSRQ_ENABLE_BOOT,
52489 }; 51012 };
@@ -52493,9 +51016,9 @@ diff -urNp linux-2.6.38.3/kernel/power/poweroff.c linux-2.6.38.3/kernel/power/po
52493 { 51016 {
52494 register_sysrq_key('o', &sysrq_poweroff_op); 51017 register_sysrq_key('o', &sysrq_poweroff_op);
52495 return 0; 51018 return 0;
52496diff -urNp linux-2.6.38.3/kernel/power/process.c linux-2.6.38.3/kernel/power/process.c 51019diff -urNp linux-2.6.38.2/kernel/power/process.c linux-2.6.38.2/kernel/power/process.c
52497--- linux-2.6.38.3/kernel/power/process.c 2011-03-14 21:20:32.000000000 -0400 51020--- linux-2.6.38.2/kernel/power/process.c 2011-03-14 21:20:32.000000000 -0400
52498+++ linux-2.6.38.3/kernel/power/process.c 2011-04-17 15:57:33.000000000 -0400 51021+++ linux-2.6.38.2/kernel/power/process.c 2011-03-21 18:31:35.000000000 -0400
52499@@ -41,6 +41,7 @@ static int try_to_freeze_tasks(bool sig_ 51022@@ -41,6 +41,7 @@ static int try_to_freeze_tasks(bool sig_
52500 u64 elapsed_csecs64; 51023 u64 elapsed_csecs64;
52501 unsigned int elapsed_csecs; 51024 unsigned int elapsed_csecs;
@@ -52538,9 +51061,9 @@ diff -urNp linux-2.6.38.3/kernel/power/process.c linux-2.6.38.3/kernel/power/pro
52538 break; 51061 break;
52539 51062
52540 if (pm_wakeup_pending()) { 51063 if (pm_wakeup_pending()) {
52541diff -urNp linux-2.6.38.3/kernel/printk.c linux-2.6.38.3/kernel/printk.c 51064diff -urNp linux-2.6.38.2/kernel/printk.c linux-2.6.38.2/kernel/printk.c
52542--- linux-2.6.38.3/kernel/printk.c 2011-03-14 21:20:32.000000000 -0400 51065--- linux-2.6.38.2/kernel/printk.c 2011-03-14 21:20:32.000000000 -0400
52543+++ linux-2.6.38.3/kernel/printk.c 2011-04-17 15:57:33.000000000 -0400 51066+++ linux-2.6.38.2/kernel/printk.c 2011-03-23 22:30:08.000000000 -0400
52544@@ -279,12 +279,17 @@ static int check_syslog_permissions(int 51067@@ -279,12 +279,17 @@ static int check_syslog_permissions(int
52545 if (from_file && type != SYSLOG_ACTION_OPEN) 51068 if (from_file && type != SYSLOG_ACTION_OPEN)
52546 return 0; 51069 return 0;
@@ -52560,9 +51083,9 @@ diff -urNp linux-2.6.38.3/kernel/printk.c linux-2.6.38.3/kernel/printk.c
52560 "but no CAP_SYSLOG (deprecated).\n"); 51083 "but no CAP_SYSLOG (deprecated).\n");
52561 return 0; 51084 return 0;
52562 } 51085 }
52563diff -urNp linux-2.6.38.3/kernel/ptrace.c linux-2.6.38.3/kernel/ptrace.c 51086diff -urNp linux-2.6.38.2/kernel/ptrace.c linux-2.6.38.2/kernel/ptrace.c
52564--- linux-2.6.38.3/kernel/ptrace.c 2011-03-14 21:20:32.000000000 -0400 51087--- linux-2.6.38.2/kernel/ptrace.c 2011-03-14 21:20:32.000000000 -0400
52565+++ linux-2.6.38.3/kernel/ptrace.c 2011-04-17 15:57:33.000000000 -0400 51088+++ linux-2.6.38.2/kernel/ptrace.c 2011-03-26 11:42:34.000000000 -0400
52566@@ -116,7 +116,8 @@ int ptrace_check_attach(struct task_stru 51089@@ -116,7 +116,8 @@ int ptrace_check_attach(struct task_stru
52567 return ret; 51090 return ret;
52568 } 51091 }
@@ -52704,9 +51227,9 @@ diff -urNp linux-2.6.38.3/kernel/ptrace.c linux-2.6.38.3/kernel/ptrace.c
52704 goto out_put_task_struct; 51227 goto out_put_task_struct;
52705 } 51228 }
52706 51229
52707diff -urNp linux-2.6.38.3/kernel/rcutree.c linux-2.6.38.3/kernel/rcutree.c 51230diff -urNp linux-2.6.38.2/kernel/rcutree.c linux-2.6.38.2/kernel/rcutree.c
52708--- linux-2.6.38.3/kernel/rcutree.c 2011-03-14 21:20:32.000000000 -0400 51231--- linux-2.6.38.2/kernel/rcutree.c 2011-03-14 21:20:32.000000000 -0400
52709+++ linux-2.6.38.3/kernel/rcutree.c 2011-04-17 15:57:33.000000000 -0400 51232+++ linux-2.6.38.2/kernel/rcutree.c 2011-03-21 18:31:35.000000000 -0400
52710@@ -1389,7 +1389,7 @@ __rcu_process_callbacks(struct rcu_state 51233@@ -1389,7 +1389,7 @@ __rcu_process_callbacks(struct rcu_state
52711 /* 51234 /*
52712 * Do softirq processing for the current CPU. 51235 * Do softirq processing for the current CPU.
@@ -52716,9 +51239,9 @@ diff -urNp linux-2.6.38.3/kernel/rcutree.c linux-2.6.38.3/kernel/rcutree.c
52716 { 51239 {
52717 /* 51240 /*
52718 * Memory references from any prior RCU read-side critical sections 51241 * Memory references from any prior RCU read-side critical sections
52719diff -urNp linux-2.6.38.3/kernel/rcutree_plugin.h linux-2.6.38.3/kernel/rcutree_plugin.h 51242diff -urNp linux-2.6.38.2/kernel/rcutree_plugin.h linux-2.6.38.2/kernel/rcutree_plugin.h
52720--- linux-2.6.38.3/kernel/rcutree_plugin.h 2011-03-14 21:20:32.000000000 -0400 51243--- linux-2.6.38.2/kernel/rcutree_plugin.h 2011-03-14 21:20:32.000000000 -0400
52721+++ linux-2.6.38.3/kernel/rcutree_plugin.h 2011-04-17 15:57:33.000000000 -0400 51244+++ linux-2.6.38.2/kernel/rcutree_plugin.h 2011-03-21 18:31:35.000000000 -0400
52722@@ -730,7 +730,7 @@ void synchronize_rcu_expedited(void) 51245@@ -730,7 +730,7 @@ void synchronize_rcu_expedited(void)
52723 51246
52724 /* Clean up and exit. */ 51247 /* Clean up and exit. */
@@ -52728,9 +51251,9 @@ diff -urNp linux-2.6.38.3/kernel/rcutree_plugin.h linux-2.6.38.3/kernel/rcutree_
52728 unlock_mb_ret: 51251 unlock_mb_ret:
52729 mutex_unlock(&sync_rcu_preempt_exp_mutex); 51252 mutex_unlock(&sync_rcu_preempt_exp_mutex);
52730 mb_ret: 51253 mb_ret:
52731diff -urNp linux-2.6.38.3/kernel/resource.c linux-2.6.38.3/kernel/resource.c 51254diff -urNp linux-2.6.38.2/kernel/resource.c linux-2.6.38.2/kernel/resource.c
52732--- linux-2.6.38.3/kernel/resource.c 2011-03-14 21:20:32.000000000 -0400 51255--- linux-2.6.38.2/kernel/resource.c 2011-03-14 21:20:32.000000000 -0400
52733+++ linux-2.6.38.3/kernel/resource.c 2011-04-17 15:57:33.000000000 -0400 51256+++ linux-2.6.38.2/kernel/resource.c 2011-03-21 18:31:35.000000000 -0400
52734@@ -133,8 +133,18 @@ static const struct file_operations proc 51257@@ -133,8 +133,18 @@ static const struct file_operations proc
52735 51258
52736 static int __init ioresources_init(void) 51259 static int __init ioresources_init(void)
@@ -52750,9 +51273,9 @@ diff -urNp linux-2.6.38.3/kernel/resource.c linux-2.6.38.3/kernel/resource.c
52750 return 0; 51273 return 0;
52751 } 51274 }
52752 __initcall(ioresources_init); 51275 __initcall(ioresources_init);
52753diff -urNp linux-2.6.38.3/kernel/rtmutex.c linux-2.6.38.3/kernel/rtmutex.c 51276diff -urNp linux-2.6.38.2/kernel/rtmutex.c linux-2.6.38.2/kernel/rtmutex.c
52754--- linux-2.6.38.3/kernel/rtmutex.c 2011-03-14 21:20:32.000000000 -0400 51277--- linux-2.6.38.2/kernel/rtmutex.c 2011-03-14 21:20:32.000000000 -0400
52755+++ linux-2.6.38.3/kernel/rtmutex.c 2011-04-17 15:57:33.000000000 -0400 51278+++ linux-2.6.38.2/kernel/rtmutex.c 2011-03-21 18:31:35.000000000 -0400
52756@@ -511,7 +511,7 @@ static void wakeup_next_waiter(struct rt 51279@@ -511,7 +511,7 @@ static void wakeup_next_waiter(struct rt
52757 */ 51280 */
52758 raw_spin_lock_irqsave(&pendowner->pi_lock, flags); 51281 raw_spin_lock_irqsave(&pendowner->pi_lock, flags);
@@ -52762,40 +51285,9 @@ diff -urNp linux-2.6.38.3/kernel/rtmutex.c linux-2.6.38.3/kernel/rtmutex.c
52762 WARN_ON(pendowner->pi_blocked_on != waiter); 51285 WARN_ON(pendowner->pi_blocked_on != waiter);
52763 WARN_ON(pendowner->pi_blocked_on->lock != lock); 51286 WARN_ON(pendowner->pi_blocked_on->lock != lock);
52764 51287
52765diff -urNp linux-2.6.38.3/kernel/sched.c linux-2.6.38.3/kernel/sched.c 51288diff -urNp linux-2.6.38.2/kernel/sched.c linux-2.6.38.2/kernel/sched.c
52766--- linux-2.6.38.3/kernel/sched.c 2011-04-18 17:27:14.000000000 -0400 51289--- linux-2.6.38.2/kernel/sched.c 2011-03-23 17:20:08.000000000 -0400
52767+++ linux-2.6.38.3/kernel/sched.c 2011-04-17 16:29:21.000000000 -0400 51290+++ linux-2.6.38.2/kernel/sched.c 2011-03-23 17:21:51.000000000 -0400
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();
52799@@ -4638,6 +4638,8 @@ int can_nice(const struct task_struct *p 51291@@ -4638,6 +4638,8 @@ int can_nice(const struct task_struct *p
52800 /* convert nice value [19,-20] to rlimit style value [1,40] */ 51292 /* convert nice value [19,-20] to rlimit style value [1,40] */
52801 int nice_rlim = 20 - nice; 51293 int nice_rlim = 20 - nice;
@@ -52832,9 +51324,9 @@ diff -urNp linux-2.6.38.3/kernel/sched.c linux-2.6.38.3/kernel/sched.c
52832 51324
52833 if (cpu != group_first_cpu(sd->groups)) 51325 if (cpu != group_first_cpu(sd->groups))
52834 return; 51326 return;
52835diff -urNp linux-2.6.38.3/kernel/sched_fair.c linux-2.6.38.3/kernel/sched_fair.c 51327diff -urNp linux-2.6.38.2/kernel/sched_fair.c linux-2.6.38.2/kernel/sched_fair.c
52836--- linux-2.6.38.3/kernel/sched_fair.c 2011-03-14 21:20:32.000000000 -0400 51328--- linux-2.6.38.2/kernel/sched_fair.c 2011-03-14 21:20:32.000000000 -0400
52837+++ linux-2.6.38.3/kernel/sched_fair.c 2011-04-17 15:57:33.000000000 -0400 51329+++ linux-2.6.38.2/kernel/sched_fair.c 2011-03-21 18:31:35.000000000 -0400
52838@@ -3960,7 +3960,7 @@ static void nohz_idle_balance(int this_c 51330@@ -3960,7 +3960,7 @@ static void nohz_idle_balance(int this_c
52839 * run_rebalance_domains is triggered when needed from the scheduler tick. 51331 * run_rebalance_domains is triggered when needed from the scheduler tick.
52840 * Also triggered for nohz idle balancing (with nohz_balancing_kick set). 51332 * Also triggered for nohz idle balancing (with nohz_balancing_kick set).
@@ -52844,9 +51336,9 @@ diff -urNp linux-2.6.38.3/kernel/sched_fair.c linux-2.6.38.3/kernel/sched_fair.c
52844 { 51336 {
52845 int this_cpu = smp_processor_id(); 51337 int this_cpu = smp_processor_id();
52846 struct rq *this_rq = cpu_rq(this_cpu); 51338 struct rq *this_rq = cpu_rq(this_cpu);
52847diff -urNp linux-2.6.38.3/kernel/signal.c linux-2.6.38.3/kernel/signal.c 51339diff -urNp linux-2.6.38.2/kernel/signal.c linux-2.6.38.2/kernel/signal.c
52848--- linux-2.6.38.3/kernel/signal.c 2011-04-18 17:27:18.000000000 -0400 51340--- linux-2.6.38.2/kernel/signal.c 2011-03-28 17:42:40.000000000 -0400
52849+++ linux-2.6.38.3/kernel/signal.c 2011-04-17 16:53:48.000000000 -0400 51341+++ linux-2.6.38.2/kernel/signal.c 2011-03-28 17:42:53.000000000 -0400
52850@@ -45,12 +45,12 @@ static struct kmem_cache *sigqueue_cache 51342@@ -45,12 +45,12 @@ static struct kmem_cache *sigqueue_cache
52851 51343
52852 int print_fatal_signals __read_mostly; 51344 int print_fatal_signals __read_mostly;
@@ -52949,9 +51441,9 @@ diff -urNp linux-2.6.38.3/kernel/signal.c linux-2.6.38.3/kernel/signal.c
52949 51441
52950 return ret; 51442 return ret;
52951 } 51443 }
52952diff -urNp linux-2.6.38.3/kernel/smp.c linux-2.6.38.3/kernel/smp.c 51444diff -urNp linux-2.6.38.2/kernel/smp.c linux-2.6.38.2/kernel/smp.c
52953--- linux-2.6.38.3/kernel/smp.c 2011-04-18 17:27:14.000000000 -0400 51445--- linux-2.6.38.2/kernel/smp.c 2011-03-23 17:20:08.000000000 -0400
52954+++ linux-2.6.38.3/kernel/smp.c 2011-04-17 15:57:33.000000000 -0400 51446+++ linux-2.6.38.2/kernel/smp.c 2011-03-26 20:50:44.000000000 -0400
52955@@ -583,22 +583,22 @@ int smp_call_function(smp_call_func_t fu 51447@@ -583,22 +583,22 @@ int smp_call_function(smp_call_func_t fu
52956 } 51448 }
52957 EXPORT_SYMBOL(smp_call_function); 51449 EXPORT_SYMBOL(smp_call_function);
@@ -52979,9 +51471,9 @@ diff -urNp linux-2.6.38.3/kernel/smp.c linux-2.6.38.3/kernel/smp.c
52979 { 51471 {
52980 raw_spin_unlock_irq(&call_function.lock); 51472 raw_spin_unlock_irq(&call_function.lock);
52981 } 51473 }
52982diff -urNp linux-2.6.38.3/kernel/softirq.c linux-2.6.38.3/kernel/softirq.c 51474diff -urNp linux-2.6.38.2/kernel/softirq.c linux-2.6.38.2/kernel/softirq.c
52983--- linux-2.6.38.3/kernel/softirq.c 2011-03-14 21:20:32.000000000 -0400 51475--- linux-2.6.38.2/kernel/softirq.c 2011-03-14 21:20:32.000000000 -0400
52984+++ linux-2.6.38.3/kernel/softirq.c 2011-04-17 15:57:33.000000000 -0400 51476+++ linux-2.6.38.2/kernel/softirq.c 2011-03-21 18:31:35.000000000 -0400
52985@@ -56,7 +56,7 @@ static struct softirq_action softirq_vec 51477@@ -56,7 +56,7 @@ static struct softirq_action softirq_vec
52986 51478
52987 static DEFINE_PER_CPU(struct task_struct *, ksoftirqd); 51479 static DEFINE_PER_CPU(struct task_struct *, ksoftirqd);
@@ -53036,9 +51528,9 @@ diff -urNp linux-2.6.38.3/kernel/softirq.c linux-2.6.38.3/kernel/softirq.c
53036 { 51528 {
53037 struct tasklet_struct *list; 51529 struct tasklet_struct *list;
53038 51530
53039diff -urNp linux-2.6.38.3/kernel/sys.c linux-2.6.38.3/kernel/sys.c 51531diff -urNp linux-2.6.38.2/kernel/sys.c linux-2.6.38.2/kernel/sys.c
53040--- linux-2.6.38.3/kernel/sys.c 2011-03-14 21:20:32.000000000 -0400 51532--- linux-2.6.38.2/kernel/sys.c 2011-03-14 21:20:32.000000000 -0400
53041+++ linux-2.6.38.3/kernel/sys.c 2011-04-17 15:57:33.000000000 -0400 51533+++ linux-2.6.38.2/kernel/sys.c 2011-03-21 18:31:35.000000000 -0400
53042@@ -136,6 +136,12 @@ static int set_one_prio(struct task_stru 51534@@ -136,6 +136,12 @@ static int set_one_prio(struct task_stru
53043 error = -EACCES; 51535 error = -EACCES;
53044 goto out; 51536 goto out;
@@ -53160,9 +51652,9 @@ diff -urNp linux-2.6.38.3/kernel/sys.c linux-2.6.38.3/kernel/sys.c
53160 error = -EINVAL; 51652 error = -EINVAL;
53161 break; 51653 break;
53162 } 51654 }
53163diff -urNp linux-2.6.38.3/kernel/sysctl.c linux-2.6.38.3/kernel/sysctl.c 51655diff -urNp linux-2.6.38.2/kernel/sysctl.c linux-2.6.38.2/kernel/sysctl.c
53164--- linux-2.6.38.3/kernel/sysctl.c 2011-04-18 17:27:16.000000000 -0400 51656--- linux-2.6.38.2/kernel/sysctl.c 2011-03-28 17:42:40.000000000 -0400
53165+++ linux-2.6.38.3/kernel/sysctl.c 2011-04-17 15:57:33.000000000 -0400 51657+++ linux-2.6.38.2/kernel/sysctl.c 2011-03-28 17:49:17.000000000 -0400
53166@@ -84,6 +84,13 @@ 51658@@ -84,6 +84,13 @@
53167 51659
53168 51660
@@ -53351,9 +51843,9 @@ diff -urNp linux-2.6.38.3/kernel/sysctl.c linux-2.6.38.3/kernel/sysctl.c
53351 EXPORT_SYMBOL(proc_doulongvec_minmax); 51843 EXPORT_SYMBOL(proc_doulongvec_minmax);
53352 EXPORT_SYMBOL(proc_doulongvec_ms_jiffies_minmax); 51844 EXPORT_SYMBOL(proc_doulongvec_ms_jiffies_minmax);
53353 EXPORT_SYMBOL(register_sysctl_table); 51845 EXPORT_SYMBOL(register_sysctl_table);
53354diff -urNp linux-2.6.38.3/kernel/sysctl_check.c linux-2.6.38.3/kernel/sysctl_check.c 51846diff -urNp linux-2.6.38.2/kernel/sysctl_check.c linux-2.6.38.2/kernel/sysctl_check.c
53355--- linux-2.6.38.3/kernel/sysctl_check.c 2011-03-14 21:20:32.000000000 -0400 51847--- linux-2.6.38.2/kernel/sysctl_check.c 2011-03-14 21:20:32.000000000 -0400
53356+++ linux-2.6.38.3/kernel/sysctl_check.c 2011-04-17 15:57:33.000000000 -0400 51848+++ linux-2.6.38.2/kernel/sysctl_check.c 2011-03-21 18:31:35.000000000 -0400
53357@@ -131,6 +131,7 @@ int sysctl_check_table(struct nsproxy *n 51849@@ -131,6 +131,7 @@ int sysctl_check_table(struct nsproxy *n
53358 set_fail(&fail, table, "Directory with extra2"); 51850 set_fail(&fail, table, "Directory with extra2");
53359 } else { 51851 } else {
@@ -53362,9 +51854,9 @@ diff -urNp linux-2.6.38.3/kernel/sysctl_check.c linux-2.6.38.3/kernel/sysctl_che
53362 (table->proc_handler == proc_dointvec) || 51854 (table->proc_handler == proc_dointvec) ||
53363 (table->proc_handler == proc_dointvec_minmax) || 51855 (table->proc_handler == proc_dointvec_minmax) ||
53364 (table->proc_handler == proc_dointvec_jiffies) || 51856 (table->proc_handler == proc_dointvec_jiffies) ||
53365diff -urNp linux-2.6.38.3/kernel/taskstats.c linux-2.6.38.3/kernel/taskstats.c 51857diff -urNp linux-2.6.38.2/kernel/taskstats.c linux-2.6.38.2/kernel/taskstats.c
53366--- linux-2.6.38.3/kernel/taskstats.c 2011-03-14 21:20:32.000000000 -0400 51858--- linux-2.6.38.2/kernel/taskstats.c 2011-03-14 21:20:32.000000000 -0400
53367+++ linux-2.6.38.3/kernel/taskstats.c 2011-04-17 15:57:33.000000000 -0400 51859+++ linux-2.6.38.2/kernel/taskstats.c 2011-03-21 18:31:35.000000000 -0400
53368@@ -27,9 +27,12 @@ 51860@@ -27,9 +27,12 @@
53369 #include <linux/cgroup.h> 51861 #include <linux/cgroup.h>
53370 #include <linux/fs.h> 51862 #include <linux/fs.h>
@@ -53388,9 +51880,9 @@ diff -urNp linux-2.6.38.3/kernel/taskstats.c linux-2.6.38.3/kernel/taskstats.c
53388 if (info->attrs[TASKSTATS_CMD_ATTR_REGISTER_CPUMASK]) 51880 if (info->attrs[TASKSTATS_CMD_ATTR_REGISTER_CPUMASK])
53389 return cmd_attr_register_cpumask(info); 51881 return cmd_attr_register_cpumask(info);
53390 else if (info->attrs[TASKSTATS_CMD_ATTR_DEREGISTER_CPUMASK]) 51882 else if (info->attrs[TASKSTATS_CMD_ATTR_DEREGISTER_CPUMASK])
53391diff -urNp linux-2.6.38.3/kernel/time/tick-broadcast.c linux-2.6.38.3/kernel/time/tick-broadcast.c 51883diff -urNp linux-2.6.38.2/kernel/time/tick-broadcast.c linux-2.6.38.2/kernel/time/tick-broadcast.c
53392--- linux-2.6.38.3/kernel/time/tick-broadcast.c 2011-03-14 21:20:32.000000000 -0400 51884--- linux-2.6.38.2/kernel/time/tick-broadcast.c 2011-03-14 21:20:32.000000000 -0400
53393+++ linux-2.6.38.3/kernel/time/tick-broadcast.c 2011-04-17 15:57:33.000000000 -0400 51885+++ linux-2.6.38.2/kernel/time/tick-broadcast.c 2011-03-21 18:31:35.000000000 -0400
53394@@ -116,7 +116,7 @@ int tick_device_uses_broadcast(struct cl 51886@@ -116,7 +116,7 @@ int tick_device_uses_broadcast(struct cl
53395 * then clear the broadcast bit. 51887 * then clear the broadcast bit.
53396 */ 51888 */
@@ -53400,9 +51892,9 @@ diff -urNp linux-2.6.38.3/kernel/time/tick-broadcast.c linux-2.6.38.3/kernel/tim
53400 51892
53401 cpumask_clear_cpu(cpu, tick_get_broadcast_mask()); 51893 cpumask_clear_cpu(cpu, tick_get_broadcast_mask());
53402 tick_broadcast_clear_oneshot(cpu); 51894 tick_broadcast_clear_oneshot(cpu);
53403diff -urNp linux-2.6.38.3/kernel/time/timekeeping.c linux-2.6.38.3/kernel/time/timekeeping.c 51895diff -urNp linux-2.6.38.2/kernel/time/timekeeping.c linux-2.6.38.2/kernel/time/timekeeping.c
53404--- linux-2.6.38.3/kernel/time/timekeeping.c 2011-03-14 21:20:32.000000000 -0400 51896--- linux-2.6.38.2/kernel/time/timekeeping.c 2011-03-14 21:20:32.000000000 -0400
53405+++ linux-2.6.38.3/kernel/time/timekeeping.c 2011-04-17 15:57:33.000000000 -0400 51897+++ linux-2.6.38.2/kernel/time/timekeeping.c 2011-03-21 18:31:35.000000000 -0400
53406@@ -14,6 +14,7 @@ 51898@@ -14,6 +14,7 @@
53407 #include <linux/init.h> 51899 #include <linux/init.h>
53408 #include <linux/mm.h> 51900 #include <linux/mm.h>
@@ -53420,9 +51912,9 @@ diff -urNp linux-2.6.38.3/kernel/time/timekeeping.c linux-2.6.38.3/kernel/time/t
53420 write_seqlock_irqsave(&xtime_lock, flags); 51912 write_seqlock_irqsave(&xtime_lock, flags);
53421 51913
53422 timekeeping_forward_now(); 51914 timekeeping_forward_now();
53423diff -urNp linux-2.6.38.3/kernel/time/timer_list.c linux-2.6.38.3/kernel/time/timer_list.c 51915diff -urNp linux-2.6.38.2/kernel/time/timer_list.c linux-2.6.38.2/kernel/time/timer_list.c
53424--- linux-2.6.38.3/kernel/time/timer_list.c 2011-03-14 21:20:32.000000000 -0400 51916--- linux-2.6.38.2/kernel/time/timer_list.c 2011-03-14 21:20:32.000000000 -0400
53425+++ linux-2.6.38.3/kernel/time/timer_list.c 2011-04-17 15:57:33.000000000 -0400 51917+++ linux-2.6.38.2/kernel/time/timer_list.c 2011-03-21 18:31:35.000000000 -0400
53426@@ -38,12 +38,16 @@ DECLARE_PER_CPU(struct hrtimer_cpu_base, 51918@@ -38,12 +38,16 @@ DECLARE_PER_CPU(struct hrtimer_cpu_base,
53427 51919
53428 static void print_name_offset(struct seq_file *m, void *sym) 51920 static void print_name_offset(struct seq_file *m, void *sym)
@@ -53464,9 +51956,9 @@ diff -urNp linux-2.6.38.3/kernel/time/timer_list.c linux-2.6.38.3/kernel/time/ti
53464 if (!pe) 51956 if (!pe)
53465 return -ENOMEM; 51957 return -ENOMEM;
53466 return 0; 51958 return 0;
53467diff -urNp linux-2.6.38.3/kernel/time/timer_stats.c linux-2.6.38.3/kernel/time/timer_stats.c 51959diff -urNp linux-2.6.38.2/kernel/time/timer_stats.c linux-2.6.38.2/kernel/time/timer_stats.c
53468--- linux-2.6.38.3/kernel/time/timer_stats.c 2011-03-14 21:20:32.000000000 -0400 51960--- linux-2.6.38.2/kernel/time/timer_stats.c 2011-03-14 21:20:32.000000000 -0400
53469+++ linux-2.6.38.3/kernel/time/timer_stats.c 2011-04-17 15:57:33.000000000 -0400 51961+++ linux-2.6.38.2/kernel/time/timer_stats.c 2011-03-21 18:31:35.000000000 -0400
53470@@ -269,12 +269,16 @@ void timer_stats_update_stats(void *time 51962@@ -269,12 +269,16 @@ void timer_stats_update_stats(void *time
53471 51963
53472 static void print_name_offset(struct seq_file *m, unsigned long addr) 51964 static void print_name_offset(struct seq_file *m, unsigned long addr)
@@ -53496,9 +51988,9 @@ diff -urNp linux-2.6.38.3/kernel/time/timer_stats.c linux-2.6.38.3/kernel/time/t
53496 if (!pe) 51988 if (!pe)
53497 return -ENOMEM; 51989 return -ENOMEM;
53498 return 0; 51990 return 0;
53499diff -urNp linux-2.6.38.3/kernel/time.c linux-2.6.38.3/kernel/time.c 51991diff -urNp linux-2.6.38.2/kernel/time.c linux-2.6.38.2/kernel/time.c
53500--- linux-2.6.38.3/kernel/time.c 2011-03-14 21:20:32.000000000 -0400 51992--- linux-2.6.38.2/kernel/time.c 2011-03-14 21:20:32.000000000 -0400
53501+++ linux-2.6.38.3/kernel/time.c 2011-04-17 15:57:33.000000000 -0400 51993+++ linux-2.6.38.2/kernel/time.c 2011-03-21 18:31:35.000000000 -0400
53502@@ -163,6 +163,11 @@ int do_sys_settimeofday(struct timespec 51994@@ -163,6 +163,11 @@ int do_sys_settimeofday(struct timespec
53503 return error; 51995 return error;
53504 51996
@@ -53511,9 +52003,9 @@ diff -urNp linux-2.6.38.3/kernel/time.c linux-2.6.38.3/kernel/time.c
53511 /* SMP safe, global irq locking makes it work. */ 52003 /* SMP safe, global irq locking makes it work. */
53512 sys_tz = *tz; 52004 sys_tz = *tz;
53513 update_vsyscall_tz(); 52005 update_vsyscall_tz();
53514diff -urNp linux-2.6.38.3/kernel/timer.c linux-2.6.38.3/kernel/timer.c 52006diff -urNp linux-2.6.38.2/kernel/timer.c linux-2.6.38.2/kernel/timer.c
53515--- linux-2.6.38.3/kernel/timer.c 2011-03-14 21:20:32.000000000 -0400 52007--- linux-2.6.38.2/kernel/timer.c 2011-03-14 21:20:32.000000000 -0400
53516+++ linux-2.6.38.3/kernel/timer.c 2011-04-17 15:57:33.000000000 -0400 52008+++ linux-2.6.38.2/kernel/timer.c 2011-03-21 18:31:35.000000000 -0400
53517@@ -1276,7 +1276,7 @@ void update_process_times(int user_tick) 52009@@ -1276,7 +1276,7 @@ void update_process_times(int user_tick)
53518 /* 52010 /*
53519 * This function runs timers and the timer-tq in bottom half context. 52011 * This function runs timers and the timer-tq in bottom half context.
@@ -53523,9 +52015,9 @@ diff -urNp linux-2.6.38.3/kernel/timer.c linux-2.6.38.3/kernel/timer.c
53523 { 52015 {
53524 struct tvec_base *base = __this_cpu_read(tvec_bases); 52016 struct tvec_base *base = __this_cpu_read(tvec_bases);
53525 52017
53526diff -urNp linux-2.6.38.3/kernel/trace/ftrace.c linux-2.6.38.3/kernel/trace/ftrace.c 52018diff -urNp linux-2.6.38.2/kernel/trace/ftrace.c linux-2.6.38.2/kernel/trace/ftrace.c
53527--- linux-2.6.38.3/kernel/trace/ftrace.c 2011-04-18 17:27:14.000000000 -0400 52019--- linux-2.6.38.2/kernel/trace/ftrace.c 2011-03-23 17:20:08.000000000 -0400
53528+++ linux-2.6.38.3/kernel/trace/ftrace.c 2011-04-17 15:57:33.000000000 -0400 52020+++ linux-2.6.38.2/kernel/trace/ftrace.c 2011-03-23 17:21:51.000000000 -0400
53529@@ -1107,13 +1107,18 @@ ftrace_code_disable(struct module *mod, 52021@@ -1107,13 +1107,18 @@ ftrace_code_disable(struct module *mod,
53530 52022
53531 ip = rec->ip; 52023 ip = rec->ip;
@@ -53547,9 +52039,9 @@ diff -urNp linux-2.6.38.3/kernel/trace/ftrace.c linux-2.6.38.3/kernel/trace/ftra
53547 } 52039 }
53548 52040
53549 /* 52041 /*
53550diff -urNp linux-2.6.38.3/kernel/trace/ring_buffer.c linux-2.6.38.3/kernel/trace/ring_buffer.c 52042diff -urNp linux-2.6.38.2/kernel/trace/ring_buffer.c linux-2.6.38.2/kernel/trace/ring_buffer.c
53551--- linux-2.6.38.3/kernel/trace/ring_buffer.c 2011-03-14 21:20:32.000000000 -0400 52043--- linux-2.6.38.2/kernel/trace/ring_buffer.c 2011-03-14 21:20:32.000000000 -0400
53552+++ linux-2.6.38.3/kernel/trace/ring_buffer.c 2011-04-17 15:57:33.000000000 -0400 52044+++ linux-2.6.38.2/kernel/trace/ring_buffer.c 2011-03-21 18:31:35.000000000 -0400
53553@@ -669,7 +669,7 @@ static struct list_head *rb_list_head(st 52045@@ -669,7 +669,7 @@ static struct list_head *rb_list_head(st
53554 * the reader page). But if the next page is a header page, 52046 * the reader page). But if the next page is a header page,
53555 * its flags will be non zero. 52047 * its flags will be non zero.
@@ -53559,9 +52051,9 @@ diff -urNp linux-2.6.38.3/kernel/trace/ring_buffer.c linux-2.6.38.3/kernel/trace
53559 rb_is_head_page(struct ring_buffer_per_cpu *cpu_buffer, 52051 rb_is_head_page(struct ring_buffer_per_cpu *cpu_buffer,
53560 struct buffer_page *page, struct list_head *list) 52052 struct buffer_page *page, struct list_head *list)
53561 { 52053 {
53562diff -urNp linux-2.6.38.3/kernel/trace/trace.c linux-2.6.38.3/kernel/trace/trace.c 52054diff -urNp linux-2.6.38.2/kernel/trace/trace.c linux-2.6.38.2/kernel/trace/trace.c
53563--- linux-2.6.38.3/kernel/trace/trace.c 2011-03-14 21:20:32.000000000 -0400 52055--- linux-2.6.38.2/kernel/trace/trace.c 2011-03-14 21:20:32.000000000 -0400
53564+++ linux-2.6.38.3/kernel/trace/trace.c 2011-04-17 15:57:33.000000000 -0400 52056+++ linux-2.6.38.2/kernel/trace/trace.c 2011-03-21 18:31:35.000000000 -0400
53565@@ -3967,10 +3967,9 @@ static const struct file_operations trac 52057@@ -3967,10 +3967,9 @@ static const struct file_operations trac
53566 }; 52058 };
53567 #endif 52059 #endif
@@ -53586,9 +52078,9 @@ diff -urNp linux-2.6.38.3/kernel/trace/trace.c linux-2.6.38.3/kernel/trace/trace
53586 static int once; 52078 static int once;
53587 struct dentry *d_tracer; 52079 struct dentry *d_tracer;
53588 52080
53589diff -urNp linux-2.6.38.3/kernel/trace/trace_events.c linux-2.6.38.3/kernel/trace/trace_events.c 52081diff -urNp linux-2.6.38.2/kernel/trace/trace_events.c linux-2.6.38.2/kernel/trace/trace_events.c
53590--- linux-2.6.38.3/kernel/trace/trace_events.c 2011-03-14 21:20:32.000000000 -0400 52082--- linux-2.6.38.2/kernel/trace/trace_events.c 2011-03-14 21:20:32.000000000 -0400
53591+++ linux-2.6.38.3/kernel/trace/trace_events.c 2011-04-17 15:57:33.000000000 -0400 52083+++ linux-2.6.38.2/kernel/trace/trace_events.c 2011-03-21 18:31:35.000000000 -0400
53592@@ -1240,10 +1240,10 @@ static LIST_HEAD(ftrace_module_file_list 52084@@ -1240,10 +1240,10 @@ static LIST_HEAD(ftrace_module_file_list
53593 struct ftrace_module_file_ops { 52085 struct ftrace_module_file_ops {
53594 struct list_head list; 52086 struct list_head list;
@@ -53604,9 +52096,9 @@ diff -urNp linux-2.6.38.3/kernel/trace/trace_events.c linux-2.6.38.3/kernel/trac
53604 }; 52096 };
53605 52097
53606 static struct ftrace_module_file_ops * 52098 static struct ftrace_module_file_ops *
53607diff -urNp linux-2.6.38.3/kernel/trace/trace_output.c linux-2.6.38.3/kernel/trace/trace_output.c 52099diff -urNp linux-2.6.38.2/kernel/trace/trace_output.c linux-2.6.38.2/kernel/trace/trace_output.c
53608--- linux-2.6.38.3/kernel/trace/trace_output.c 2011-03-14 21:20:32.000000000 -0400 52100--- linux-2.6.38.2/kernel/trace/trace_output.c 2011-03-14 21:20:32.000000000 -0400
53609+++ linux-2.6.38.3/kernel/trace/trace_output.c 2011-04-17 15:57:33.000000000 -0400 52101+++ linux-2.6.38.2/kernel/trace/trace_output.c 2011-03-21 18:31:35.000000000 -0400
53610@@ -278,7 +278,7 @@ int trace_seq_path(struct trace_seq *s, 52102@@ -278,7 +278,7 @@ int trace_seq_path(struct trace_seq *s,
53611 52103
53612 p = d_path(path, s->buffer + s->len, PAGE_SIZE - s->len); 52104 p = d_path(path, s->buffer + s->len, PAGE_SIZE - s->len);
@@ -53616,9 +52108,9 @@ diff -urNp linux-2.6.38.3/kernel/trace/trace_output.c linux-2.6.38.3/kernel/trac
53616 if (p) { 52108 if (p) {
53617 s->len = p - s->buffer; 52109 s->len = p - s->buffer;
53618 return 1; 52110 return 1;
53619diff -urNp linux-2.6.38.3/kernel/trace/trace_stack.c linux-2.6.38.3/kernel/trace/trace_stack.c 52111diff -urNp linux-2.6.38.2/kernel/trace/trace_stack.c linux-2.6.38.2/kernel/trace/trace_stack.c
53620--- linux-2.6.38.3/kernel/trace/trace_stack.c 2011-03-14 21:20:32.000000000 -0400 52112--- linux-2.6.38.2/kernel/trace/trace_stack.c 2011-03-14 21:20:32.000000000 -0400
53621+++ linux-2.6.38.3/kernel/trace/trace_stack.c 2011-04-17 15:57:33.000000000 -0400 52113+++ linux-2.6.38.2/kernel/trace/trace_stack.c 2011-03-21 18:31:35.000000000 -0400
53622@@ -50,7 +50,7 @@ static inline void check_stack(void) 52114@@ -50,7 +50,7 @@ static inline void check_stack(void)
53623 return; 52115 return;
53624 52116
@@ -53628,39 +52120,9 @@ diff -urNp linux-2.6.38.3/kernel/trace/trace_stack.c linux-2.6.38.3/kernel/trace
53628 return; 52120 return;
53629 52121
53630 local_irq_save(flags); 52122 local_irq_save(flags);
53631diff -urNp linux-2.6.38.3/kernel/trace/trace_workqueue.c linux-2.6.38.3/kernel/trace/trace_workqueue.c 52123diff -urNp linux-2.6.38.2/lib/bug.c linux-2.6.38.2/lib/bug.c
53632--- linux-2.6.38.3/kernel/trace/trace_workqueue.c 2011-03-14 21:20:32.000000000 -0400 52124--- linux-2.6.38.2/lib/bug.c 2011-03-14 21:20:32.000000000 -0400
53633+++ linux-2.6.38.3/kernel/trace/trace_workqueue.c 2011-04-17 15:57:33.000000000 -0400 52125+++ linux-2.6.38.2/lib/bug.c 2011-03-21 18:31:35.000000000 -0400
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
53664@@ -133,6 +133,8 @@ enum bug_trap_type report_bug(unsigned l 52126@@ -133,6 +133,8 @@ enum bug_trap_type report_bug(unsigned l
53665 return BUG_TRAP_TYPE_NONE; 52127 return BUG_TRAP_TYPE_NONE;
53666 52128
@@ -53670,9 +52132,9 @@ diff -urNp linux-2.6.38.3/lib/bug.c linux-2.6.38.3/lib/bug.c
53670 52132
53671 file = NULL; 52133 file = NULL;
53672 line = 0; 52134 line = 0;
53673diff -urNp linux-2.6.38.3/lib/debugobjects.c linux-2.6.38.3/lib/debugobjects.c 52135diff -urNp linux-2.6.38.2/lib/debugobjects.c linux-2.6.38.2/lib/debugobjects.c
53674--- linux-2.6.38.3/lib/debugobjects.c 2011-03-14 21:20:32.000000000 -0400 52136--- linux-2.6.38.2/lib/debugobjects.c 2011-03-14 21:20:32.000000000 -0400
53675+++ linux-2.6.38.3/lib/debugobjects.c 2011-04-17 15:57:33.000000000 -0400 52137+++ linux-2.6.38.2/lib/debugobjects.c 2011-03-21 18:31:35.000000000 -0400
53676@@ -281,7 +281,7 @@ static void debug_object_is_on_stack(voi 52138@@ -281,7 +281,7 @@ static void debug_object_is_on_stack(voi
53677 if (limit > 4) 52139 if (limit > 4)
53678 return; 52140 return;
@@ -53682,9 +52144,9 @@ diff -urNp linux-2.6.38.3/lib/debugobjects.c linux-2.6.38.3/lib/debugobjects.c
53682 if (is_on_stack == onstack) 52144 if (is_on_stack == onstack)
53683 return; 52145 return;
53684 52146
53685diff -urNp linux-2.6.38.3/lib/dma-debug.c linux-2.6.38.3/lib/dma-debug.c 52147diff -urNp linux-2.6.38.2/lib/dma-debug.c linux-2.6.38.2/lib/dma-debug.c
53686--- linux-2.6.38.3/lib/dma-debug.c 2011-03-14 21:20:32.000000000 -0400 52148--- linux-2.6.38.2/lib/dma-debug.c 2011-03-14 21:20:32.000000000 -0400
53687+++ linux-2.6.38.3/lib/dma-debug.c 2011-04-17 15:57:33.000000000 -0400 52149+++ linux-2.6.38.2/lib/dma-debug.c 2011-03-21 18:31:35.000000000 -0400
53688@@ -862,7 +862,7 @@ out: 52150@@ -862,7 +862,7 @@ out:
53689 52151
53690 static void check_for_stack(struct device *dev, void *addr) 52152 static void check_for_stack(struct device *dev, void *addr)
@@ -53694,9 +52156,9 @@ diff -urNp linux-2.6.38.3/lib/dma-debug.c linux-2.6.38.3/lib/dma-debug.c
53694 err_printk(dev, NULL, "DMA-API: device driver maps memory from" 52156 err_printk(dev, NULL, "DMA-API: device driver maps memory from"
53695 "stack [addr=%p]\n", addr); 52157 "stack [addr=%p]\n", addr);
53696 } 52158 }
53697diff -urNp linux-2.6.38.3/lib/inflate.c linux-2.6.38.3/lib/inflate.c 52159diff -urNp linux-2.6.38.2/lib/inflate.c linux-2.6.38.2/lib/inflate.c
53698--- linux-2.6.38.3/lib/inflate.c 2011-03-14 21:20:32.000000000 -0400 52160--- linux-2.6.38.2/lib/inflate.c 2011-03-14 21:20:32.000000000 -0400
53699+++ linux-2.6.38.3/lib/inflate.c 2011-04-17 15:57:33.000000000 -0400 52161+++ linux-2.6.38.2/lib/inflate.c 2011-03-21 18:31:35.000000000 -0400
53700@@ -269,7 +269,7 @@ static void free(void *where) 52162@@ -269,7 +269,7 @@ static void free(void *where)
53701 malloc_ptr = free_mem_ptr; 52163 malloc_ptr = free_mem_ptr;
53702 } 52164 }
@@ -53706,9 +52168,9 @@ diff -urNp linux-2.6.38.3/lib/inflate.c linux-2.6.38.3/lib/inflate.c
53706 #define free(a) kfree(a) 52168 #define free(a) kfree(a)
53707 #endif 52169 #endif
53708 52170
53709diff -urNp linux-2.6.38.3/lib/Kconfig.debug linux-2.6.38.3/lib/Kconfig.debug 52171diff -urNp linux-2.6.38.2/lib/Kconfig.debug linux-2.6.38.2/lib/Kconfig.debug
53710--- linux-2.6.38.3/lib/Kconfig.debug 2011-03-14 21:20:32.000000000 -0400 52172--- linux-2.6.38.2/lib/Kconfig.debug 2011-03-14 21:20:32.000000000 -0400
53711+++ linux-2.6.38.3/lib/Kconfig.debug 2011-04-17 15:57:33.000000000 -0400 52173+++ linux-2.6.38.2/lib/Kconfig.debug 2011-03-21 18:31:35.000000000 -0400
53712@@ -1066,6 +1066,7 @@ config LATENCYTOP 52174@@ -1066,6 +1066,7 @@ config LATENCYTOP
53713 depends on DEBUG_KERNEL 52175 depends on DEBUG_KERNEL
53714 depends on STACKTRACE_SUPPORT 52176 depends on STACKTRACE_SUPPORT
@@ -53717,9 +52179,9 @@ diff -urNp linux-2.6.38.3/lib/Kconfig.debug linux-2.6.38.3/lib/Kconfig.debug
53717 select FRAME_POINTER if !MIPS && !PPC && !S390 && !MICROBLAZE 52179 select FRAME_POINTER if !MIPS && !PPC && !S390 && !MICROBLAZE
53718 select KALLSYMS 52180 select KALLSYMS
53719 select KALLSYMS_ALL 52181 select KALLSYMS_ALL
53720diff -urNp linux-2.6.38.3/lib/kref.c linux-2.6.38.3/lib/kref.c 52182diff -urNp linux-2.6.38.2/lib/kref.c linux-2.6.38.2/lib/kref.c
53721--- linux-2.6.38.3/lib/kref.c 2011-03-14 21:20:32.000000000 -0400 52183--- linux-2.6.38.2/lib/kref.c 2011-03-14 21:20:32.000000000 -0400
53722+++ linux-2.6.38.3/lib/kref.c 2011-04-17 15:57:33.000000000 -0400 52184+++ linux-2.6.38.2/lib/kref.c 2011-03-21 18:31:35.000000000 -0400
53723@@ -52,7 +52,7 @@ void kref_get(struct kref *kref) 52185@@ -52,7 +52,7 @@ void kref_get(struct kref *kref)
53724 */ 52186 */
53725 int kref_put(struct kref *kref, void (*release)(struct kref *kref)) 52187 int kref_put(struct kref *kref, void (*release)(struct kref *kref))
@@ -53729,9 +52191,9 @@ diff -urNp linux-2.6.38.3/lib/kref.c linux-2.6.38.3/lib/kref.c
53729 WARN_ON(release == (void (*)(struct kref *))kfree); 52191 WARN_ON(release == (void (*)(struct kref *))kfree);
53730 52192
53731 if (atomic_dec_and_test(&kref->refcount)) { 52193 if (atomic_dec_and_test(&kref->refcount)) {
53732diff -urNp linux-2.6.38.3/lib/radix-tree.c linux-2.6.38.3/lib/radix-tree.c 52194diff -urNp linux-2.6.38.2/lib/radix-tree.c linux-2.6.38.2/lib/radix-tree.c
53733--- linux-2.6.38.3/lib/radix-tree.c 2011-03-14 21:20:32.000000000 -0400 52195--- linux-2.6.38.2/lib/radix-tree.c 2011-03-14 21:20:32.000000000 -0400
53734+++ linux-2.6.38.3/lib/radix-tree.c 2011-04-17 15:57:33.000000000 -0400 52196+++ linux-2.6.38.2/lib/radix-tree.c 2011-03-21 18:31:35.000000000 -0400
53735@@ -80,7 +80,7 @@ struct radix_tree_preload { 52197@@ -80,7 +80,7 @@ struct radix_tree_preload {
53736 int nr; 52198 int nr;
53737 struct radix_tree_node *nodes[RADIX_TREE_MAX_PATH]; 52199 struct radix_tree_node *nodes[RADIX_TREE_MAX_PATH];
@@ -53741,9 +52203,9 @@ diff -urNp linux-2.6.38.3/lib/radix-tree.c linux-2.6.38.3/lib/radix-tree.c
53741 52203
53742 static inline void *ptr_to_indirect(void *ptr) 52204 static inline void *ptr_to_indirect(void *ptr)
53743 { 52205 {
53744diff -urNp linux-2.6.38.3/lib/vsprintf.c linux-2.6.38.3/lib/vsprintf.c 52206diff -urNp linux-2.6.38.2/lib/vsprintf.c linux-2.6.38.2/lib/vsprintf.c
53745--- linux-2.6.38.3/lib/vsprintf.c 2011-03-14 21:20:32.000000000 -0400 52207--- linux-2.6.38.2/lib/vsprintf.c 2011-03-14 21:20:32.000000000 -0400
53746+++ linux-2.6.38.3/lib/vsprintf.c 2011-04-17 15:57:33.000000000 -0400 52208+++ linux-2.6.38.2/lib/vsprintf.c 2011-03-21 18:31:35.000000000 -0400
53747@@ -16,6 +16,9 @@ 52209@@ -16,6 +16,9 @@
53748 * - scnprintf and vscnprintf 52210 * - scnprintf and vscnprintf
53749 */ 52211 */
@@ -53837,14 +52299,14 @@ diff -urNp linux-2.6.38.3/lib/vsprintf.c linux-2.6.38.3/lib/vsprintf.c
53837 break; 52299 break;
53838 } 52300 }
53839 52301
53840diff -urNp linux-2.6.38.3/localversion-grsec linux-2.6.38.3/localversion-grsec 52302diff -urNp linux-2.6.38.2/localversion-grsec linux-2.6.38.2/localversion-grsec
53841--- linux-2.6.38.3/localversion-grsec 1969-12-31 19:00:00.000000000 -0500 52303--- linux-2.6.38.2/localversion-grsec 1969-12-31 19:00:00.000000000 -0500
53842+++ linux-2.6.38.3/localversion-grsec 2011-04-17 15:57:33.000000000 -0400 52304+++ linux-2.6.38.2/localversion-grsec 2011-03-21 18:31:35.000000000 -0400
53843@@ -0,0 +1 @@ 52305@@ -0,0 +1 @@
53844+-grsec 52306+-grsec
53845diff -urNp linux-2.6.38.3/Makefile linux-2.6.38.3/Makefile 52307diff -urNp linux-2.6.38.2/Makefile linux-2.6.38.2/Makefile
53846--- linux-2.6.38.3/Makefile 2011-04-18 17:27:18.000000000 -0400 52308--- linux-2.6.38.2/Makefile 2011-03-28 17:42:40.000000000 -0400
53847+++ linux-2.6.38.3/Makefile 2011-04-17 16:53:16.000000000 -0400 52309+++ linux-2.6.38.2/Makefile 2011-03-28 17:42:53.000000000 -0400
53848@@ -233,8 +233,8 @@ CONFIG_SHELL := $(shell if [ -x "$$BASH" 52310@@ -233,8 +233,8 @@ CONFIG_SHELL := $(shell if [ -x "$$BASH"
53849 52311
53850 HOSTCC = gcc 52312 HOSTCC = gcc
@@ -53865,9 +52327,9 @@ diff -urNp linux-2.6.38.3/Makefile linux-2.6.38.3/Makefile
53865 52327
53866 vmlinux-dirs := $(patsubst %/,%,$(filter %/, $(init-y) $(init-m) \ 52328 vmlinux-dirs := $(patsubst %/,%,$(filter %/, $(init-y) $(init-m) \
53867 $(core-y) $(core-m) $(drivers-y) $(drivers-m) \ 52329 $(core-y) $(core-m) $(drivers-y) $(drivers-m) \
53868diff -urNp linux-2.6.38.3/mm/bootmem.c linux-2.6.38.3/mm/bootmem.c 52330diff -urNp linux-2.6.38.2/mm/bootmem.c linux-2.6.38.2/mm/bootmem.c
53869--- linux-2.6.38.3/mm/bootmem.c 2011-03-14 21:20:32.000000000 -0400 52331--- linux-2.6.38.2/mm/bootmem.c 2011-03-14 21:20:32.000000000 -0400
53870+++ linux-2.6.38.3/mm/bootmem.c 2011-04-17 15:57:33.000000000 -0400 52332+++ linux-2.6.38.2/mm/bootmem.c 2011-03-21 18:31:35.000000000 -0400
53871@@ -201,19 +201,30 @@ static void __init __free_pages_memory(u 52333@@ -201,19 +201,30 @@ static void __init __free_pages_memory(u
53872 unsigned long __init free_all_memory_core_early(int nodeid) 52334 unsigned long __init free_all_memory_core_early(int nodeid)
53873 { 52335 {
@@ -53901,9 +52363,9 @@ diff -urNp linux-2.6.38.3/mm/bootmem.c linux-2.6.38.3/mm/bootmem.c
53901 52363
53902 return count; 52364 return count;
53903 } 52365 }
53904diff -urNp linux-2.6.38.3/mm/filemap.c linux-2.6.38.3/mm/filemap.c 52366diff -urNp linux-2.6.38.2/mm/filemap.c linux-2.6.38.2/mm/filemap.c
53905--- linux-2.6.38.3/mm/filemap.c 2011-03-14 21:20:32.000000000 -0400 52367--- linux-2.6.38.2/mm/filemap.c 2011-03-14 21:20:32.000000000 -0400
53906+++ linux-2.6.38.3/mm/filemap.c 2011-04-17 15:57:33.000000000 -0400 52368+++ linux-2.6.38.2/mm/filemap.c 2011-03-21 18:31:35.000000000 -0400
53907@@ -1664,7 +1664,7 @@ int generic_file_mmap(struct file * file 52369@@ -1664,7 +1664,7 @@ int generic_file_mmap(struct file * file
53908 struct address_space *mapping = file->f_mapping; 52370 struct address_space *mapping = file->f_mapping;
53909 52371
@@ -53921,9 +52383,9 @@ diff -urNp linux-2.6.38.3/mm/filemap.c linux-2.6.38.3/mm/filemap.c
53921 if (*pos >= limit) { 52383 if (*pos >= limit) {
53922 send_sig(SIGXFSZ, current, 0); 52384 send_sig(SIGXFSZ, current, 0);
53923 return -EFBIG; 52385 return -EFBIG;
53924diff -urNp linux-2.6.38.3/mm/fremap.c linux-2.6.38.3/mm/fremap.c 52386diff -urNp linux-2.6.38.2/mm/fremap.c linux-2.6.38.2/mm/fremap.c
53925--- linux-2.6.38.3/mm/fremap.c 2011-03-14 21:20:32.000000000 -0400 52387--- linux-2.6.38.2/mm/fremap.c 2011-03-14 21:20:32.000000000 -0400
53926+++ linux-2.6.38.3/mm/fremap.c 2011-04-17 15:57:33.000000000 -0400 52388+++ linux-2.6.38.2/mm/fremap.c 2011-03-21 18:31:35.000000000 -0400
53927@@ -156,6 +156,11 @@ SYSCALL_DEFINE5(remap_file_pages, unsign 52389@@ -156,6 +156,11 @@ SYSCALL_DEFINE5(remap_file_pages, unsign
53928 retry: 52390 retry:
53929 vma = find_vma(mm, start); 52391 vma = find_vma(mm, start);
@@ -53945,9 +52407,9 @@ diff -urNp linux-2.6.38.3/mm/fremap.c linux-2.6.38.3/mm/fremap.c
53945 munlock_vma_pages_range(vma, start, start + size); 52407 munlock_vma_pages_range(vma, start, start + size);
53946 vma->vm_flags = saved_flags; 52408 vma->vm_flags = saved_flags;
53947 } 52409 }
53948diff -urNp linux-2.6.38.3/mm/highmem.c linux-2.6.38.3/mm/highmem.c 52410diff -urNp linux-2.6.38.2/mm/highmem.c linux-2.6.38.2/mm/highmem.c
53949--- linux-2.6.38.3/mm/highmem.c 2011-03-14 21:20:32.000000000 -0400 52411--- linux-2.6.38.2/mm/highmem.c 2011-03-14 21:20:32.000000000 -0400
53950+++ linux-2.6.38.3/mm/highmem.c 2011-04-17 15:57:33.000000000 -0400 52412+++ linux-2.6.38.2/mm/highmem.c 2011-03-21 18:31:35.000000000 -0400
53951@@ -125,9 +125,10 @@ static void flush_all_zero_pkmaps(void) 52413@@ -125,9 +125,10 @@ static void flush_all_zero_pkmaps(void)
53952 * So no dangers, even with speculative execution. 52414 * So no dangers, even with speculative execution.
53953 */ 52415 */
@@ -53973,9 +52435,9 @@ diff -urNp linux-2.6.38.3/mm/highmem.c linux-2.6.38.3/mm/highmem.c
53973 pkmap_count[last_pkmap_nr] = 1; 52435 pkmap_count[last_pkmap_nr] = 1;
53974 set_page_address(page, (void *)vaddr); 52436 set_page_address(page, (void *)vaddr);
53975 52437
53976diff -urNp linux-2.6.38.3/mm/hugetlb.c linux-2.6.38.3/mm/hugetlb.c 52438diff -urNp linux-2.6.38.2/mm/hugetlb.c linux-2.6.38.2/mm/hugetlb.c
53977--- linux-2.6.38.3/mm/hugetlb.c 2011-03-14 21:20:32.000000000 -0400 52439--- linux-2.6.38.2/mm/hugetlb.c 2011-03-14 21:20:32.000000000 -0400
53978+++ linux-2.6.38.3/mm/hugetlb.c 2011-04-17 15:57:33.000000000 -0400 52440+++ linux-2.6.38.2/mm/hugetlb.c 2011-03-21 18:31:35.000000000 -0400
53979@@ -2333,6 +2333,27 @@ static int unmap_ref_private(struct mm_s 52441@@ -2333,6 +2333,27 @@ static int unmap_ref_private(struct mm_s
53980 return 1; 52442 return 1;
53981 } 52443 }
@@ -54065,9 +52527,9 @@ diff -urNp linux-2.6.38.3/mm/hugetlb.c linux-2.6.38.3/mm/hugetlb.c
54065 ptep = huge_pte_alloc(mm, address, huge_page_size(h)); 52527 ptep = huge_pte_alloc(mm, address, huge_page_size(h));
54066 if (!ptep) 52528 if (!ptep)
54067 return VM_FAULT_OOM; 52529 return VM_FAULT_OOM;
54068diff -urNp linux-2.6.38.3/mm/Kconfig linux-2.6.38.3/mm/Kconfig 52530diff -urNp linux-2.6.38.2/mm/Kconfig linux-2.6.38.2/mm/Kconfig
54069--- linux-2.6.38.3/mm/Kconfig 2011-03-14 21:20:32.000000000 -0400 52531--- linux-2.6.38.2/mm/Kconfig 2011-03-14 21:20:32.000000000 -0400
54070+++ linux-2.6.38.3/mm/Kconfig 2011-04-17 15:57:33.000000000 -0400 52532+++ linux-2.6.38.2/mm/Kconfig 2011-03-21 18:31:35.000000000 -0400
54071@@ -240,7 +240,7 @@ config KSM 52533@@ -240,7 +240,7 @@ config KSM
54072 config DEFAULT_MMAP_MIN_ADDR 52534 config DEFAULT_MMAP_MIN_ADDR
54073 int "Low address space to protect from user allocation" 52535 int "Low address space to protect from user allocation"
@@ -54077,9 +52539,9 @@ diff -urNp linux-2.6.38.3/mm/Kconfig linux-2.6.38.3/mm/Kconfig
54077 help 52539 help
54078 This is the portion of low virtual memory which should be protected 52540 This is the portion of low virtual memory which should be protected
54079 from userspace allocation. Keeping a user from writing to low pages 52541 from userspace allocation. Keeping a user from writing to low pages
54080diff -urNp linux-2.6.38.3/mm/kmemleak.c linux-2.6.38.3/mm/kmemleak.c 52542diff -urNp linux-2.6.38.2/mm/kmemleak.c linux-2.6.38.2/mm/kmemleak.c
54081--- linux-2.6.38.3/mm/kmemleak.c 2011-03-14 21:20:32.000000000 -0400 52543--- linux-2.6.38.2/mm/kmemleak.c 2011-03-14 21:20:32.000000000 -0400
54082+++ linux-2.6.38.3/mm/kmemleak.c 2011-04-17 15:57:33.000000000 -0400 52544+++ linux-2.6.38.2/mm/kmemleak.c 2011-03-21 18:31:35.000000000 -0400
54083@@ -357,7 +357,7 @@ static void print_unreferenced(struct se 52545@@ -357,7 +357,7 @@ static void print_unreferenced(struct se
54084 52546
54085 for (i = 0; i < object->trace_len; i++) { 52547 for (i = 0; i < object->trace_len; i++) {
@@ -54089,9 +52551,9 @@ diff -urNp linux-2.6.38.3/mm/kmemleak.c linux-2.6.38.3/mm/kmemleak.c
54089 } 52551 }
54090 } 52552 }
54091 52553
54092diff -urNp linux-2.6.38.3/mm/maccess.c linux-2.6.38.3/mm/maccess.c 52554diff -urNp linux-2.6.38.2/mm/maccess.c linux-2.6.38.2/mm/maccess.c
54093--- linux-2.6.38.3/mm/maccess.c 2011-03-14 21:20:32.000000000 -0400 52555--- linux-2.6.38.2/mm/maccess.c 2011-03-14 21:20:32.000000000 -0400
54094+++ linux-2.6.38.3/mm/maccess.c 2011-04-17 15:57:33.000000000 -0400 52556+++ linux-2.6.38.2/mm/maccess.c 2011-03-21 18:31:35.000000000 -0400
54095@@ -15,10 +15,10 @@ 52557@@ -15,10 +15,10 @@
54096 * happens, handle that and return -EFAULT. 52558 * happens, handle that and return -EFAULT.
54097 */ 52559 */
@@ -54118,9 +52580,9 @@ diff -urNp linux-2.6.38.3/mm/maccess.c linux-2.6.38.3/mm/maccess.c
54118 { 52580 {
54119 long ret; 52581 long ret;
54120 mm_segment_t old_fs = get_fs(); 52582 mm_segment_t old_fs = get_fs();
54121diff -urNp linux-2.6.38.3/mm/madvise.c linux-2.6.38.3/mm/madvise.c 52583diff -urNp linux-2.6.38.2/mm/madvise.c linux-2.6.38.2/mm/madvise.c
54122--- linux-2.6.38.3/mm/madvise.c 2011-03-14 21:20:32.000000000 -0400 52584--- linux-2.6.38.2/mm/madvise.c 2011-03-14 21:20:32.000000000 -0400
54123+++ linux-2.6.38.3/mm/madvise.c 2011-04-17 15:57:33.000000000 -0400 52585+++ linux-2.6.38.2/mm/madvise.c 2011-03-21 18:31:35.000000000 -0400
54124@@ -45,6 +45,10 @@ static long madvise_behavior(struct vm_a 52586@@ -45,6 +45,10 @@ static long madvise_behavior(struct vm_a
54125 pgoff_t pgoff; 52587 pgoff_t pgoff;
54126 unsigned long new_flags = vma->vm_flags; 52588 unsigned long new_flags = vma->vm_flags;
@@ -54197,9 +52659,9 @@ diff -urNp linux-2.6.38.3/mm/madvise.c linux-2.6.38.3/mm/madvise.c
54197 error = 0; 52659 error = 0;
54198 if (end == start) 52660 if (end == start)
54199 goto out; 52661 goto out;
54200diff -urNp linux-2.6.38.3/mm/memory.c linux-2.6.38.3/mm/memory.c 52662diff -urNp linux-2.6.38.2/mm/memory.c linux-2.6.38.2/mm/memory.c
54201--- linux-2.6.38.3/mm/memory.c 2011-03-14 21:20:32.000000000 -0400 52663--- linux-2.6.38.2/mm/memory.c 2011-03-14 21:20:32.000000000 -0400
54202+++ linux-2.6.38.3/mm/memory.c 2011-04-17 15:57:33.000000000 -0400 52664+++ linux-2.6.38.2/mm/memory.c 2011-03-21 18:31:35.000000000 -0400
54203@@ -259,8 +259,12 @@ static inline void free_pmd_range(struct 52665@@ -259,8 +259,12 @@ static inline void free_pmd_range(struct
54204 return; 52666 return;
54205 52667
@@ -54729,9 +53191,9 @@ diff -urNp linux-2.6.38.3/mm/memory.c linux-2.6.38.3/mm/memory.c
54729 /* 53191 /*
54730 * Make sure the vDSO gets into every core dump. 53192 * Make sure the vDSO gets into every core dump.
54731 * Dumping its contents makes post-mortem fully interpretable later 53193 * Dumping its contents makes post-mortem fully interpretable later
54732diff -urNp linux-2.6.38.3/mm/memory-failure.c linux-2.6.38.3/mm/memory-failure.c 53194diff -urNp linux-2.6.38.2/mm/memory-failure.c linux-2.6.38.2/mm/memory-failure.c
54733--- linux-2.6.38.3/mm/memory-failure.c 2011-03-14 21:20:32.000000000 -0400 53195--- linux-2.6.38.2/mm/memory-failure.c 2011-03-14 21:20:32.000000000 -0400
54734+++ linux-2.6.38.3/mm/memory-failure.c 2011-04-17 15:57:33.000000000 -0400 53196+++ linux-2.6.38.2/mm/memory-failure.c 2011-03-21 18:31:35.000000000 -0400
54735@@ -58,7 +58,7 @@ int sysctl_memory_failure_early_kill __r 53197@@ -58,7 +58,7 @@ int sysctl_memory_failure_early_kill __r
54736 53198
54737 int sysctl_memory_failure_recovery __read_mostly = 1; 53199 int sysctl_memory_failure_recovery __read_mostly = 1;
@@ -54804,9 +53266,9 @@ diff -urNp linux-2.6.38.3/mm/memory-failure.c linux-2.6.38.3/mm/memory-failure.c
54804 SetPageHWPoison(page); 53266 SetPageHWPoison(page);
54805 /* keep elevated page count for bad page */ 53267 /* keep elevated page count for bad page */
54806 return ret; 53268 return ret;
54807diff -urNp linux-2.6.38.3/mm/mempolicy.c linux-2.6.38.3/mm/mempolicy.c 53269diff -urNp linux-2.6.38.2/mm/mempolicy.c linux-2.6.38.2/mm/mempolicy.c
54808--- linux-2.6.38.3/mm/mempolicy.c 2011-03-14 21:20:32.000000000 -0400 53270--- linux-2.6.38.2/mm/mempolicy.c 2011-03-14 21:20:32.000000000 -0400
54809+++ linux-2.6.38.3/mm/mempolicy.c 2011-04-17 15:57:33.000000000 -0400 53271+++ linux-2.6.38.2/mm/mempolicy.c 2011-03-21 18:31:35.000000000 -0400
54810@@ -643,6 +643,10 @@ static int mbind_range(struct mm_struct 53272@@ -643,6 +643,10 @@ static int mbind_range(struct mm_struct
54811 unsigned long vmstart; 53273 unsigned long vmstart;
54812 unsigned long vmend; 53274 unsigned long vmend;
@@ -54887,9 +53349,9 @@ diff -urNp linux-2.6.38.3/mm/mempolicy.c linux-2.6.38.3/mm/mempolicy.c
54887 } else if (vma->vm_start <= mm->brk && vma->vm_end >= mm->start_brk) { 53349 } else if (vma->vm_start <= mm->brk && vma->vm_end >= mm->start_brk) {
54888 seq_printf(m, " heap"); 53350 seq_printf(m, " heap");
54889 } else if (vma->vm_start <= mm->start_stack && 53351 } else if (vma->vm_start <= mm->start_stack &&
54890diff -urNp linux-2.6.38.3/mm/migrate.c linux-2.6.38.3/mm/migrate.c 53352diff -urNp linux-2.6.38.2/mm/migrate.c linux-2.6.38.2/mm/migrate.c
54891--- linux-2.6.38.3/mm/migrate.c 2011-03-14 21:20:32.000000000 -0400 53353--- linux-2.6.38.2/mm/migrate.c 2011-03-14 21:20:32.000000000 -0400
54892+++ linux-2.6.38.3/mm/migrate.c 2011-04-17 15:57:33.000000000 -0400 53354+++ linux-2.6.38.2/mm/migrate.c 2011-03-21 18:31:35.000000000 -0400
54893@@ -1299,6 +1299,14 @@ SYSCALL_DEFINE6(move_pages, pid_t, pid, 53355@@ -1299,6 +1299,14 @@ SYSCALL_DEFINE6(move_pages, pid_t, pid,
54894 if (!mm) 53356 if (!mm)
54895 return -EINVAL; 53357 return -EINVAL;
@@ -54915,9 +53377,9 @@ diff -urNp linux-2.6.38.3/mm/migrate.c linux-2.6.38.3/mm/migrate.c
54915 rcu_read_unlock(); 53377 rcu_read_unlock();
54916 err = -EPERM; 53378 err = -EPERM;
54917 goto out; 53379 goto out;
54918diff -urNp linux-2.6.38.3/mm/mlock.c linux-2.6.38.3/mm/mlock.c 53380diff -urNp linux-2.6.38.2/mm/mlock.c linux-2.6.38.2/mm/mlock.c
54919--- linux-2.6.38.3/mm/mlock.c 2011-03-14 21:20:32.000000000 -0400 53381--- linux-2.6.38.2/mm/mlock.c 2011-03-14 21:20:32.000000000 -0400
54920+++ linux-2.6.38.3/mm/mlock.c 2011-04-17 15:57:33.000000000 -0400 53382+++ linux-2.6.38.2/mm/mlock.c 2011-03-21 18:31:35.000000000 -0400
54921@@ -13,6 +13,7 @@ 53383@@ -13,6 +13,7 @@
54922 #include <linux/pagemap.h> 53384 #include <linux/pagemap.h>
54923 #include <linux/mempolicy.h> 53385 #include <linux/mempolicy.h>
@@ -55019,9 +53481,9 @@ diff -urNp linux-2.6.38.3/mm/mlock.c linux-2.6.38.3/mm/mlock.c
55019 if (!(flags & MCL_CURRENT) || (current->mm->total_vm <= lock_limit) || 53481 if (!(flags & MCL_CURRENT) || (current->mm->total_vm <= lock_limit) ||
55020 capable(CAP_IPC_LOCK)) 53482 capable(CAP_IPC_LOCK))
55021 ret = do_mlockall(flags); 53483 ret = do_mlockall(flags);
55022diff -urNp linux-2.6.38.3/mm/mmap.c linux-2.6.38.3/mm/mmap.c 53484diff -urNp linux-2.6.38.2/mm/mmap.c linux-2.6.38.2/mm/mmap.c
55023--- linux-2.6.38.3/mm/mmap.c 2011-03-14 21:20:32.000000000 -0400 53485--- linux-2.6.38.2/mm/mmap.c 2011-03-14 21:20:32.000000000 -0400
55024+++ linux-2.6.38.3/mm/mmap.c 2011-04-17 15:57:33.000000000 -0400 53486+++ linux-2.6.38.2/mm/mmap.c 2011-03-21 23:47:41.000000000 -0400
55025@@ -46,6 +46,16 @@ 53487@@ -46,6 +46,16 @@
55026 #define arch_rebalance_pgtables(addr, len) (addr) 53488 #define arch_rebalance_pgtables(addr, len) (addr)
55027 #endif 53489 #endif
@@ -56282,9 +54744,9 @@ diff -urNp linux-2.6.38.3/mm/mmap.c linux-2.6.38.3/mm/mmap.c
56282 vma->vm_flags = vm_flags | mm->def_flags | VM_DONTEXPAND; 54744 vma->vm_flags = vm_flags | mm->def_flags | VM_DONTEXPAND;
56283 vma->vm_page_prot = vm_get_page_prot(vma->vm_flags); 54745 vma->vm_page_prot = vm_get_page_prot(vma->vm_flags);
56284 54746
56285diff -urNp linux-2.6.38.3/mm/mprotect.c linux-2.6.38.3/mm/mprotect.c 54747diff -urNp linux-2.6.38.2/mm/mprotect.c linux-2.6.38.2/mm/mprotect.c
56286--- linux-2.6.38.3/mm/mprotect.c 2011-03-14 21:20:32.000000000 -0400 54748--- linux-2.6.38.2/mm/mprotect.c 2011-03-14 21:20:32.000000000 -0400
56287+++ linux-2.6.38.3/mm/mprotect.c 2011-04-17 15:57:33.000000000 -0400 54749+++ linux-2.6.38.2/mm/mprotect.c 2011-03-21 18:31:35.000000000 -0400
56288@@ -23,10 +23,16 @@ 54750@@ -23,10 +23,16 @@
56289 #include <linux/mmu_notifier.h> 54751 #include <linux/mmu_notifier.h>
56290 #include <linux/migrate.h> 54752 #include <linux/migrate.h>
@@ -56511,9 +54973,9 @@ diff -urNp linux-2.6.38.3/mm/mprotect.c linux-2.6.38.3/mm/mprotect.c
56511 nstart = tmp; 54973 nstart = tmp;
56512 54974
56513 if (nstart < prev->vm_end) 54975 if (nstart < prev->vm_end)
56514diff -urNp linux-2.6.38.3/mm/mremap.c linux-2.6.38.3/mm/mremap.c 54976diff -urNp linux-2.6.38.2/mm/mremap.c linux-2.6.38.2/mm/mremap.c
56515--- linux-2.6.38.3/mm/mremap.c 2011-04-18 17:27:18.000000000 -0400 54977--- linux-2.6.38.2/mm/mremap.c 2011-03-14 21:20:32.000000000 -0400
56516+++ linux-2.6.38.3/mm/mremap.c 2011-04-17 16:53:48.000000000 -0400 54978+++ linux-2.6.38.2/mm/mremap.c 2011-03-21 18:31:35.000000000 -0400
56517@@ -114,6 +114,12 @@ static void move_ptes(struct vm_area_str 54979@@ -114,6 +114,12 @@ static void move_ptes(struct vm_area_str
56518 continue; 54980 continue;
56519 pte = ptep_clear_flush(vma, old_addr, old_pte); 54981 pte = ptep_clear_flush(vma, old_addr, old_pte);
@@ -56539,7 +55001,7 @@ diff -urNp linux-2.6.38.3/mm/mremap.c linux-2.6.38.3/mm/mremap.c
56539 /* We can't remap across vm area boundaries */ 55001 /* We can't remap across vm area boundaries */
56540 if (old_len > vma->vm_end - addr) 55002 if (old_len > vma->vm_end - addr)
56541 goto Efault; 55003 goto Efault;
56542@@ -329,20 +340,25 @@ static unsigned long mremap_to(unsigned 55004@@ -322,20 +333,25 @@ static unsigned long mremap_to(unsigned
56543 unsigned long ret = -EINVAL; 55005 unsigned long ret = -EINVAL;
56544 unsigned long charged = 0; 55006 unsigned long charged = 0;
56545 unsigned long map_flags; 55007 unsigned long map_flags;
@@ -56570,7 +55032,7 @@ diff -urNp linux-2.6.38.3/mm/mremap.c linux-2.6.38.3/mm/mremap.c
56570 goto out; 55032 goto out;
56571 55033
56572 ret = security_file_mmap(NULL, 0, 0, 0, new_addr, 1); 55034 ret = security_file_mmap(NULL, 0, 0, 0, new_addr, 1);
56573@@ -414,6 +430,7 @@ unsigned long do_mremap(unsigned long ad 55035@@ -407,6 +423,7 @@ unsigned long do_mremap(unsigned long ad
56574 struct vm_area_struct *vma; 55036 struct vm_area_struct *vma;
56575 unsigned long ret = -EINVAL; 55037 unsigned long ret = -EINVAL;
56576 unsigned long charged = 0; 55038 unsigned long charged = 0;
@@ -56578,7 +55040,7 @@ diff -urNp linux-2.6.38.3/mm/mremap.c linux-2.6.38.3/mm/mremap.c
56578 55040
56579 if (flags & ~(MREMAP_FIXED | MREMAP_MAYMOVE)) 55041 if (flags & ~(MREMAP_FIXED | MREMAP_MAYMOVE))
56580 goto out; 55042 goto out;
56581@@ -432,6 +449,17 @@ unsigned long do_mremap(unsigned long ad 55043@@ -425,6 +442,17 @@ unsigned long do_mremap(unsigned long ad
56582 if (!new_len) 55044 if (!new_len)
56583 goto out; 55045 goto out;
56584 55046
@@ -56596,7 +55058,7 @@ diff -urNp linux-2.6.38.3/mm/mremap.c linux-2.6.38.3/mm/mremap.c
56596 if (flags & MREMAP_FIXED) { 55058 if (flags & MREMAP_FIXED) {
56597 if (flags & MREMAP_MAYMOVE) 55059 if (flags & MREMAP_MAYMOVE)
56598 ret = mremap_to(addr, old_len, new_addr, new_len); 55060 ret = mremap_to(addr, old_len, new_addr, new_len);
56599@@ -481,6 +509,7 @@ unsigned long do_mremap(unsigned long ad 55061@@ -474,6 +502,7 @@ unsigned long do_mremap(unsigned long ad
56600 addr + new_len); 55062 addr + new_len);
56601 } 55063 }
56602 ret = addr; 55064 ret = addr;
@@ -56604,7 +55066,7 @@ diff -urNp linux-2.6.38.3/mm/mremap.c linux-2.6.38.3/mm/mremap.c
56604 goto out; 55066 goto out;
56605 } 55067 }
56606 } 55068 }
56607@@ -507,7 +536,13 @@ unsigned long do_mremap(unsigned long ad 55069@@ -500,7 +529,13 @@ unsigned long do_mremap(unsigned long ad
56608 ret = security_file_mmap(NULL, 0, 0, 0, new_addr, 1); 55070 ret = security_file_mmap(NULL, 0, 0, 0, new_addr, 1);
56609 if (ret) 55071 if (ret)
56610 goto out; 55072 goto out;
@@ -56618,9 +55080,9 @@ diff -urNp linux-2.6.38.3/mm/mremap.c linux-2.6.38.3/mm/mremap.c
56618 } 55080 }
56619 out: 55081 out:
56620 if (ret & ~PAGE_MASK) 55082 if (ret & ~PAGE_MASK)
56621diff -urNp linux-2.6.38.3/mm/nommu.c linux-2.6.38.3/mm/nommu.c 55083diff -urNp linux-2.6.38.2/mm/nommu.c linux-2.6.38.2/mm/nommu.c
56622--- linux-2.6.38.3/mm/nommu.c 2011-03-14 21:20:32.000000000 -0400 55084--- linux-2.6.38.2/mm/nommu.c 2011-03-14 21:20:32.000000000 -0400
56623+++ linux-2.6.38.3/mm/nommu.c 2011-04-17 15:57:33.000000000 -0400 55085+++ linux-2.6.38.2/mm/nommu.c 2011-03-21 18:31:35.000000000 -0400
56624@@ -63,7 +63,6 @@ int sysctl_overcommit_memory = OVERCOMMI 55086@@ -63,7 +63,6 @@ int sysctl_overcommit_memory = OVERCOMMI
56625 int sysctl_overcommit_ratio = 50; /* default is 50% */ 55087 int sysctl_overcommit_ratio = 50; /* default is 50% */
56626 int sysctl_max_map_count = DEFAULT_MAX_MAP_COUNT; 55088 int sysctl_max_map_count = DEFAULT_MAX_MAP_COUNT;
@@ -56653,9 +55115,9 @@ diff -urNp linux-2.6.38.3/mm/nommu.c linux-2.6.38.3/mm/nommu.c
56653 *region = *vma->vm_region; 55115 *region = *vma->vm_region;
56654 new->vm_region = region; 55116 new->vm_region = region;
56655 55117
56656diff -urNp linux-2.6.38.3/mm/page_alloc.c linux-2.6.38.3/mm/page_alloc.c 55118diff -urNp linux-2.6.38.2/mm/page_alloc.c linux-2.6.38.2/mm/page_alloc.c
56657--- linux-2.6.38.3/mm/page_alloc.c 2011-04-18 17:27:16.000000000 -0400 55119--- linux-2.6.38.2/mm/page_alloc.c 2011-03-28 17:42:40.000000000 -0400
56658+++ linux-2.6.38.3/mm/page_alloc.c 2011-04-17 15:57:33.000000000 -0400 55120+++ linux-2.6.38.2/mm/page_alloc.c 2011-03-28 17:42:53.000000000 -0400
56659@@ -644,6 +644,10 @@ static bool free_pages_prepare(struct pa 55121@@ -644,6 +644,10 @@ static bool free_pages_prepare(struct pa
56660 int i; 55122 int i;
56661 int bad = 0; 55123 int bad = 0;
@@ -56691,9 +55153,9 @@ diff -urNp linux-2.6.38.3/mm/page_alloc.c linux-2.6.38.3/mm/page_alloc.c
56691 55153
56692 if (order && (gfp_flags & __GFP_COMP)) 55154 if (order && (gfp_flags & __GFP_COMP))
56693 prep_compound_page(page, order); 55155 prep_compound_page(page, order);
56694diff -urNp linux-2.6.38.3/mm/percpu.c linux-2.6.38.3/mm/percpu.c 55156diff -urNp linux-2.6.38.2/mm/percpu.c linux-2.6.38.2/mm/percpu.c
56695--- linux-2.6.38.3/mm/percpu.c 2011-03-14 21:20:32.000000000 -0400 55157--- linux-2.6.38.2/mm/percpu.c 2011-03-14 21:20:32.000000000 -0400
56696+++ linux-2.6.38.3/mm/percpu.c 2011-04-17 15:57:33.000000000 -0400 55158+++ linux-2.6.38.2/mm/percpu.c 2011-03-21 18:31:35.000000000 -0400
56697@@ -121,7 +121,7 @@ static unsigned int pcpu_first_unit_cpu 55159@@ -121,7 +121,7 @@ static unsigned int pcpu_first_unit_cpu
56698 static unsigned int pcpu_last_unit_cpu __read_mostly; 55160 static unsigned int pcpu_last_unit_cpu __read_mostly;
56699 55161
@@ -56703,9 +55165,9 @@ diff -urNp linux-2.6.38.3/mm/percpu.c linux-2.6.38.3/mm/percpu.c
56703 EXPORT_SYMBOL_GPL(pcpu_base_addr); 55165 EXPORT_SYMBOL_GPL(pcpu_base_addr);
56704 55166
56705 static const int *pcpu_unit_map __read_mostly; /* cpu -> unit */ 55167 static const int *pcpu_unit_map __read_mostly; /* cpu -> unit */
56706diff -urNp linux-2.6.38.3/mm/rmap.c linux-2.6.38.3/mm/rmap.c 55168diff -urNp linux-2.6.38.2/mm/rmap.c linux-2.6.38.2/mm/rmap.c
56707--- linux-2.6.38.3/mm/rmap.c 2011-03-14 21:20:32.000000000 -0400 55169--- linux-2.6.38.2/mm/rmap.c 2011-03-14 21:20:32.000000000 -0400
56708+++ linux-2.6.38.3/mm/rmap.c 2011-04-17 15:57:33.000000000 -0400 55170+++ linux-2.6.38.2/mm/rmap.c 2011-03-21 18:31:35.000000000 -0400
56709@@ -117,6 +117,10 @@ int anon_vma_prepare(struct vm_area_stru 55171@@ -117,6 +117,10 @@ int anon_vma_prepare(struct vm_area_stru
56710 struct anon_vma *anon_vma = vma->anon_vma; 55172 struct anon_vma *anon_vma = vma->anon_vma;
56711 struct anon_vma_chain *avc; 55173 struct anon_vma_chain *avc;
@@ -56795,9 +55257,9 @@ diff -urNp linux-2.6.38.3/mm/rmap.c linux-2.6.38.3/mm/rmap.c
56795 { 55257 {
56796 struct anon_vma_chain *avc; 55258 struct anon_vma_chain *avc;
56797 struct anon_vma *anon_vma; 55259 struct anon_vma *anon_vma;
56798diff -urNp linux-2.6.38.3/mm/shmem.c linux-2.6.38.3/mm/shmem.c 55260diff -urNp linux-2.6.38.2/mm/shmem.c linux-2.6.38.2/mm/shmem.c
56799--- linux-2.6.38.3/mm/shmem.c 2011-04-18 17:27:16.000000000 -0400 55261--- linux-2.6.38.2/mm/shmem.c 2011-03-28 17:42:40.000000000 -0400
56800+++ linux-2.6.38.3/mm/shmem.c 2011-04-18 22:03:12.000000000 -0400 55262+++ linux-2.6.38.2/mm/shmem.c 2011-03-28 17:42:53.000000000 -0400
56801@@ -31,7 +31,7 @@ 55263@@ -31,7 +31,7 @@
56802 #include <linux/percpu_counter.h> 55264 #include <linux/percpu_counter.h>
56803 #include <linux/swap.h> 55265 #include <linux/swap.h>
@@ -56816,36 +55278,9 @@ diff -urNp linux-2.6.38.3/mm/shmem.c linux-2.6.38.3/mm/shmem.c
56816 if (entry->val) { 55278 if (entry->val) {
56817 /* 55279 /*
56818 * The more uptodate page coming down from a stacked 55280 * The more uptodate page coming down from a stacked
56819@@ -1995,7 +1997,7 @@ static int shmem_symlink(struct inode *d 55281diff -urNp linux-2.6.38.2/mm/slab.c linux-2.6.38.2/mm/slab.c
56820 55282--- linux-2.6.38.2/mm/slab.c 2011-03-28 17:42:40.000000000 -0400
56821 info = SHMEM_I(inode); 55283+++ linux-2.6.38.2/mm/slab.c 2011-03-28 17:42:53.000000000 -0400
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 | \
56849@@ -284,7 +284,7 @@ struct kmem_list3 { 55284@@ -284,7 +284,7 @@ struct kmem_list3 {
56850 * Need this for bootstrapping a per node allocator. 55285 * Need this for bootstrapping a per node allocator.
56851 */ 55286 */
@@ -56882,33 +55317,6 @@ diff -urNp linux-2.6.38.3/mm/slab.c linux-2.6.38.3/mm/slab.c
56882 55317
56883 /* internal cache of cache description objs */ 55318 /* internal cache of cache description objs */
56884 static struct kmem_cache cache_cache = { 55319 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
56912@@ -4535,15 +4535,66 @@ static const struct file_operations proc 55320@@ -4535,15 +4535,66 @@ static const struct file_operations proc
56913 55321
56914 static int __init slab_proc_init(void) 55322 static int __init slab_proc_init(void)
@@ -56934,9 +55342,9 @@ diff -urNp linux-2.6.38.3/mm/slab.c linux-2.6.38.3/mm/slab.c
56934+{ 55342+{
56935+ 55343+
56936+#ifdef CONFIG_PAX_USERCOPY 55344+#ifdef CONFIG_PAX_USERCOPY
56937+ struct page *page; 55345+ struct kmem_cache *cachep;
56938+ struct kmem_cache *cachep = NULL;
56939+ struct slab *slabp; 55346+ struct slab *slabp;
55347+ struct page *page;
56940+ unsigned int objnr; 55348+ unsigned int objnr;
56941+ unsigned long offset; 55349+ unsigned long offset;
56942+ 55350+
@@ -56958,9 +55366,6 @@ diff -urNp linux-2.6.38.3/mm/slab.c linux-2.6.38.3/mm/slab.c
56958+ } 55366+ }
56959+ 55367+
56960+ cachep = page_get_cache(page); 55368+ cachep = page_get_cache(page);
56961+ if (!(cachep->flags & SLAB_USERCOPY))
56962+ goto report;
56963+
56964+ slabp = page_get_slab(page); 55369+ slabp = page_get_slab(page);
56965+ objnr = obj_to_index(cachep, slabp, ptr); 55370+ objnr = obj_to_index(cachep, slabp, ptr);
56966+ BUG_ON(objnr >= cachep->num); 55371+ BUG_ON(objnr >= cachep->num);
@@ -56969,7 +55374,10 @@ diff -urNp linux-2.6.38.3/mm/slab.c linux-2.6.38.3/mm/slab.c
56969+ return; 55374+ return;
56970+ 55375+
56971+report: 55376+report:
56972+ pax_report_usercopy(ptr, n, to, cachep ? cachep->name : NULL); 55377+ if (to)
55378+ pax_report_leak_to_user(ptr, n);
55379+ else
55380+ pax_report_overflow_from_user(ptr, n);
56973+#endif 55381+#endif
56974+ 55382+
56975+} 55383+}
@@ -56978,9 +55386,9 @@ diff -urNp linux-2.6.38.3/mm/slab.c linux-2.6.38.3/mm/slab.c
56978 /** 55386 /**
56979 * ksize - get the actual amount of memory allocated for a given object 55387 * ksize - get the actual amount of memory allocated for a given object
56980 * @objp: Pointer to the object 55388 * @objp: Pointer to the object
56981diff -urNp linux-2.6.38.3/mm/slob.c linux-2.6.38.3/mm/slob.c 55389diff -urNp linux-2.6.38.2/mm/slob.c linux-2.6.38.2/mm/slob.c
56982--- linux-2.6.38.3/mm/slob.c 2011-03-14 21:20:32.000000000 -0400 55390--- linux-2.6.38.2/mm/slob.c 2011-03-14 21:20:32.000000000 -0400
56983+++ linux-2.6.38.3/mm/slob.c 2011-04-17 15:57:33.000000000 -0400 55391+++ linux-2.6.38.2/mm/slob.c 2011-03-21 18:31:35.000000000 -0400
56984@@ -29,7 +29,7 @@ 55392@@ -29,7 +29,7 @@
56985 * If kmalloc is asked for objects of PAGE_SIZE or larger, it calls 55393 * If kmalloc is asked for objects of PAGE_SIZE or larger, it calls
56986 * alloc_pages() directly, allocating compound pages so the page order 55394 * alloc_pages() directly, allocating compound pages so the page order
@@ -57126,7 +55534,7 @@ diff -urNp linux-2.6.38.3/mm/slob.c linux-2.6.38.3/mm/slob.c
57126 EXPORT_SYMBOL(__kmalloc_node); 55534 EXPORT_SYMBOL(__kmalloc_node);
57127 55535
57128 void kfree(const void *block) 55536 void kfree(const void *block)
57129@@ -531,13 +543,81 @@ void kfree(const void *block) 55537@@ -531,13 +543,84 @@ void kfree(const void *block)
57130 sp = slob_page(block); 55538 sp = slob_page(block);
57131 if (is_slob_page(sp)) { 55539 if (is_slob_page(sp)) {
57132 int align = max(ARCH_KMALLOC_MINALIGN, ARCH_SLAB_MINALIGN); 55540 int align = max(ARCH_KMALLOC_MINALIGN, ARCH_SLAB_MINALIGN);
@@ -57202,7 +55610,10 @@ diff -urNp linux-2.6.38.3/mm/slob.c linux-2.6.38.3/mm/slob.c
57202+ } 55610+ }
57203+ 55611+
57204+report: 55612+report:
57205+ pax_report_usercopy(ptr, n, to, NULL); 55613+ if (to)
55614+ pax_report_leak_to_user(ptr, n);
55615+ else
55616+ pax_report_overflow_from_user(ptr, n);
57206+#endif 55617+#endif
57207+ 55618+
57208+} 55619+}
@@ -57211,7 +55622,7 @@ diff -urNp linux-2.6.38.3/mm/slob.c linux-2.6.38.3/mm/slob.c
57211 /* can't use ksize for kmem_cache_alloc memory, only kmalloc */ 55622 /* can't use ksize for kmem_cache_alloc memory, only kmalloc */
57212 size_t ksize(const void *block) 55623 size_t ksize(const void *block)
57213 { 55624 {
57214@@ -550,10 +630,10 @@ size_t ksize(const void *block) 55625@@ -550,10 +633,10 @@ size_t ksize(const void *block)
57215 sp = slob_page(block); 55626 sp = slob_page(block);
57216 if (is_slob_page(sp)) { 55627 if (is_slob_page(sp)) {
57217 int align = max(ARCH_KMALLOC_MINALIGN, ARCH_SLAB_MINALIGN); 55628 int align = max(ARCH_KMALLOC_MINALIGN, ARCH_SLAB_MINALIGN);
@@ -57225,7 +55636,7 @@ diff -urNp linux-2.6.38.3/mm/slob.c linux-2.6.38.3/mm/slob.c
57225 } 55636 }
57226 EXPORT_SYMBOL(ksize); 55637 EXPORT_SYMBOL(ksize);
57227 55638
57228@@ -608,17 +688,25 @@ void *kmem_cache_alloc_node(struct kmem_ 55639@@ -608,17 +691,25 @@ void *kmem_cache_alloc_node(struct kmem_
57229 { 55640 {
57230 void *b; 55641 void *b;
57231 55642
@@ -57251,7 +55662,7 @@ diff -urNp linux-2.6.38.3/mm/slob.c linux-2.6.38.3/mm/slob.c
57251 55662
57252 if (c->ctor) 55663 if (c->ctor)
57253 c->ctor(b); 55664 c->ctor(b);
57254@@ -630,10 +718,16 @@ EXPORT_SYMBOL(kmem_cache_alloc_node); 55665@@ -630,10 +721,16 @@ EXPORT_SYMBOL(kmem_cache_alloc_node);
57255 55666
57256 static void __kmem_cache_free(void *b, int size) 55667 static void __kmem_cache_free(void *b, int size)
57257 { 55668 {
@@ -57270,7 +55681,7 @@ diff -urNp linux-2.6.38.3/mm/slob.c linux-2.6.38.3/mm/slob.c
57270 } 55681 }
57271 55682
57272 static void kmem_rcu_free(struct rcu_head *head) 55683 static void kmem_rcu_free(struct rcu_head *head)
57273@@ -646,14 +740,23 @@ static void kmem_rcu_free(struct rcu_hea 55684@@ -646,14 +743,23 @@ static void kmem_rcu_free(struct rcu_hea
57274 55685
57275 void kmem_cache_free(struct kmem_cache *c, void *b) 55686 void kmem_cache_free(struct kmem_cache *c, void *b)
57276 { 55687 {
@@ -57297,9 +55708,9 @@ diff -urNp linux-2.6.38.3/mm/slob.c linux-2.6.38.3/mm/slob.c
57297 } 55708 }
57298 55709
57299 trace_kmem_cache_free(_RET_IP_, b); 55710 trace_kmem_cache_free(_RET_IP_, b);
57300diff -urNp linux-2.6.38.3/mm/slub.c linux-2.6.38.3/mm/slub.c 55711diff -urNp linux-2.6.38.2/mm/slub.c linux-2.6.38.2/mm/slub.c
57301--- linux-2.6.38.3/mm/slub.c 2011-03-14 21:20:32.000000000 -0400 55712--- linux-2.6.38.2/mm/slub.c 2011-03-14 21:20:32.000000000 -0400
57302+++ linux-2.6.38.3/mm/slub.c 2011-04-17 15:57:33.000000000 -0400 55713+++ linux-2.6.38.2/mm/slub.c 2011-03-21 18:31:35.000000000 -0400
57303@@ -390,7 +390,7 @@ static void print_track(const char *s, s 55714@@ -390,7 +390,7 @@ static void print_track(const char *s, s
57304 if (!t->addr) 55715 if (!t->addr)
57305 return; 55716 return;
@@ -57355,7 +55766,7 @@ diff -urNp linux-2.6.38.3/mm/slub.c linux-2.6.38.3/mm/slub.c
57355+ 55766+
57356+#ifdef CONFIG_PAX_USERCOPY 55767+#ifdef CONFIG_PAX_USERCOPY
57357+ struct page *page; 55768+ struct page *page;
57358+ struct kmem_cache *s = NULL; 55769+ struct kmem_cache *s;
57359+ unsigned long offset; 55770+ unsigned long offset;
57360+ 55771+
57361+ if (!n) 55772+ if (!n)
@@ -57376,15 +55787,15 @@ diff -urNp linux-2.6.38.3/mm/slub.c linux-2.6.38.3/mm/slub.c
57376+ } 55787+ }
57377+ 55788+
57378+ s = page->slab; 55789+ s = page->slab;
57379+ if (!(s->flags & SLAB_USERCOPY))
57380+ goto report;
57381+
57382+ offset = (ptr - page_address(page)) % s->size; 55790+ offset = (ptr - page_address(page)) % s->size;
57383+ if (offset <= s->objsize && n <= s->objsize - offset) 55791+ if (offset <= s->objsize && n <= s->objsize - offset)
57384+ return; 55792+ return;
57385+ 55793+
57386+report: 55794+report:
57387+ pax_report_usercopy(ptr, n, to, s ? s->name : NULL); 55795+ if (to)
55796+ pax_report_leak_to_user(ptr, n);
55797+ else
55798+ pax_report_overflow_from_user(ptr, n);
57388+#endif 55799+#endif
57389+ 55800+
57390+} 55801+}
@@ -57402,27 +55813,6 @@ diff -urNp linux-2.6.38.3/mm/slub.c linux-2.6.38.3/mm/slub.c
57402 55813
57403 for_each_node_state(node, N_NORMAL_MEMORY) { 55814 for_each_node_state(node, N_NORMAL_MEMORY) {
57404 struct kmem_cache_node *n = get_node(s, node); 55815 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
57426@@ -3153,7 +3194,7 @@ static int slab_unmergeable(struct kmem_ 55816@@ -3153,7 +3194,7 @@ static int slab_unmergeable(struct kmem_
57427 /* 55817 /*
57428 * We may have set a slab to be unmergeable during bootstrap. 55818 * We may have set a slab to be unmergeable during bootstrap.
@@ -57474,9 +55864,9 @@ diff -urNp linux-2.6.38.3/mm/slub.c linux-2.6.38.3/mm/slub.c
57474 return 0; 55864 return 0;
57475 } 55865 }
57476 module_init(slab_proc_init); 55866 module_init(slab_proc_init);
57477diff -urNp linux-2.6.38.3/mm/util.c linux-2.6.38.3/mm/util.c 55867diff -urNp linux-2.6.38.2/mm/util.c linux-2.6.38.2/mm/util.c
57478--- linux-2.6.38.3/mm/util.c 2011-03-14 21:20:32.000000000 -0400 55868--- linux-2.6.38.2/mm/util.c 2011-03-14 21:20:32.000000000 -0400
57479+++ linux-2.6.38.3/mm/util.c 2011-04-17 15:57:33.000000000 -0400 55869+++ linux-2.6.38.2/mm/util.c 2011-03-21 18:31:35.000000000 -0400
57480@@ -219,6 +219,12 @@ EXPORT_SYMBOL(strndup_user); 55870@@ -219,6 +219,12 @@ EXPORT_SYMBOL(strndup_user);
57481 void arch_pick_mmap_layout(struct mm_struct *mm) 55871 void arch_pick_mmap_layout(struct mm_struct *mm)
57482 { 55872 {
@@ -57490,9 +55880,9 @@ diff -urNp linux-2.6.38.3/mm/util.c linux-2.6.38.3/mm/util.c
57490 mm->get_unmapped_area = arch_get_unmapped_area; 55880 mm->get_unmapped_area = arch_get_unmapped_area;
57491 mm->unmap_area = arch_unmap_area; 55881 mm->unmap_area = arch_unmap_area;
57492 } 55882 }
57493diff -urNp linux-2.6.38.3/mm/vmalloc.c linux-2.6.38.3/mm/vmalloc.c 55883diff -urNp linux-2.6.38.2/mm/vmalloc.c linux-2.6.38.2/mm/vmalloc.c
57494--- linux-2.6.38.3/mm/vmalloc.c 2011-03-14 21:20:32.000000000 -0400 55884--- linux-2.6.38.2/mm/vmalloc.c 2011-03-14 21:20:32.000000000 -0400
57495+++ linux-2.6.38.3/mm/vmalloc.c 2011-04-17 15:57:33.000000000 -0400 55885+++ linux-2.6.38.2/mm/vmalloc.c 2011-03-21 18:31:35.000000000 -0400
57496@@ -39,8 +39,19 @@ static void vunmap_pte_range(pmd_t *pmd, 55886@@ -39,8 +39,19 @@ static void vunmap_pte_range(pmd_t *pmd,
57497 55887
57498 pte = pte_offset_kernel(pmd, addr); 55888 pte = pte_offset_kernel(pmd, addr);
@@ -57725,9 +56115,9 @@ diff -urNp linux-2.6.38.3/mm/vmalloc.c linux-2.6.38.3/mm/vmalloc.c
57725 if ((PAGE_SIZE-1) & (unsigned long)addr) 56115 if ((PAGE_SIZE-1) & (unsigned long)addr)
57726 return -EINVAL; 56116 return -EINVAL;
57727 56117
57728diff -urNp linux-2.6.38.3/mm/vmstat.c linux-2.6.38.3/mm/vmstat.c 56118diff -urNp linux-2.6.38.2/mm/vmstat.c linux-2.6.38.2/mm/vmstat.c
57729--- linux-2.6.38.3/mm/vmstat.c 2011-03-14 21:20:32.000000000 -0400 56119--- linux-2.6.38.2/mm/vmstat.c 2011-03-14 21:20:32.000000000 -0400
57730+++ linux-2.6.38.3/mm/vmstat.c 2011-04-17 15:57:33.000000000 -0400 56120+++ linux-2.6.38.2/mm/vmstat.c 2011-03-21 18:31:35.000000000 -0400
57731@@ -78,7 +78,7 @@ void vm_events_fold_cpu(int cpu) 56121@@ -78,7 +78,7 @@ void vm_events_fold_cpu(int cpu)
57732 * 56122 *
57733 * vm_stat contains the global counters 56123 * vm_stat contains the global counters
@@ -57780,9 +56170,9 @@ diff -urNp linux-2.6.38.3/mm/vmstat.c linux-2.6.38.3/mm/vmstat.c
57780 #endif 56170 #endif
57781 return 0; 56171 return 0;
57782 } 56172 }
57783diff -urNp linux-2.6.38.3/net/8021q/vlan.c linux-2.6.38.3/net/8021q/vlan.c 56173diff -urNp linux-2.6.38.2/net/8021q/vlan.c linux-2.6.38.2/net/8021q/vlan.c
57784--- linux-2.6.38.3/net/8021q/vlan.c 2011-03-14 21:20:32.000000000 -0400 56174--- linux-2.6.38.2/net/8021q/vlan.c 2011-03-14 21:20:32.000000000 -0400
57785+++ linux-2.6.38.3/net/8021q/vlan.c 2011-04-17 15:57:33.000000000 -0400 56175+++ linux-2.6.38.2/net/8021q/vlan.c 2011-03-21 18:31:35.000000000 -0400
57786@@ -589,8 +589,7 @@ static int vlan_ioctl_handler(struct net 56176@@ -589,8 +589,7 @@ static int vlan_ioctl_handler(struct net
57787 err = -EPERM; 56177 err = -EPERM;
57788 if (!capable(CAP_NET_ADMIN)) 56178 if (!capable(CAP_NET_ADMIN))
@@ -57793,9 +56183,9 @@ diff -urNp linux-2.6.38.3/net/8021q/vlan.c linux-2.6.38.3/net/8021q/vlan.c
57793 struct vlan_net *vn; 56183 struct vlan_net *vn;
57794 56184
57795 vn = net_generic(net, vlan_net_id); 56185 vn = net_generic(net, vlan_net_id);
57796diff -urNp linux-2.6.38.3/net/atm/atm_misc.c linux-2.6.38.3/net/atm/atm_misc.c 56186diff -urNp linux-2.6.38.2/net/atm/atm_misc.c linux-2.6.38.2/net/atm/atm_misc.c
57797--- linux-2.6.38.3/net/atm/atm_misc.c 2011-03-14 21:20:32.000000000 -0400 56187--- linux-2.6.38.2/net/atm/atm_misc.c 2011-03-14 21:20:32.000000000 -0400
57798+++ linux-2.6.38.3/net/atm/atm_misc.c 2011-04-17 15:57:33.000000000 -0400 56188+++ linux-2.6.38.2/net/atm/atm_misc.c 2011-03-21 18:31:35.000000000 -0400
57799@@ -17,7 +17,7 @@ int atm_charge(struct atm_vcc *vcc, int 56189@@ -17,7 +17,7 @@ int atm_charge(struct atm_vcc *vcc, int
57800 if (atomic_read(&sk_atm(vcc)->sk_rmem_alloc) <= sk_atm(vcc)->sk_rcvbuf) 56190 if (atomic_read(&sk_atm(vcc)->sk_rmem_alloc) <= sk_atm(vcc)->sk_rcvbuf)
57801 return 1; 56191 return 1;
@@ -57832,9 +56222,9 @@ diff -urNp linux-2.6.38.3/net/atm/atm_misc.c linux-2.6.38.3/net/atm/atm_misc.c
57832 __SONET_ITEMS 56222 __SONET_ITEMS
57833 #undef __HANDLE_ITEM 56223 #undef __HANDLE_ITEM
57834 } 56224 }
57835diff -urNp linux-2.6.38.3/net/atm/proc.c linux-2.6.38.3/net/atm/proc.c 56225diff -urNp linux-2.6.38.2/net/atm/proc.c linux-2.6.38.2/net/atm/proc.c
57836--- linux-2.6.38.3/net/atm/proc.c 2011-03-14 21:20:32.000000000 -0400 56226--- linux-2.6.38.2/net/atm/proc.c 2011-03-14 21:20:32.000000000 -0400
57837+++ linux-2.6.38.3/net/atm/proc.c 2011-04-17 15:57:33.000000000 -0400 56227+++ linux-2.6.38.2/net/atm/proc.c 2011-03-21 18:31:35.000000000 -0400
57838@@ -45,9 +45,9 @@ static void add_stats(struct seq_file *s 56228@@ -45,9 +45,9 @@ static void add_stats(struct seq_file *s
57839 const struct k_atm_aal_stats *stats) 56229 const struct k_atm_aal_stats *stats)
57840 { 56230 {
@@ -57873,9 +56263,9 @@ diff -urNp linux-2.6.38.3/net/atm/proc.c linux-2.6.38.3/net/atm/proc.c
57873 else 56263 else
57874 seq_printf(seq, "%3d %3d %5d ", 56264 seq_printf(seq, "%3d %3d %5d ",
57875 vcc->dev->number, vcc->vpi, vcc->vci); 56265 vcc->dev->number, vcc->vpi, vcc->vci);
57876diff -urNp linux-2.6.38.3/net/atm/resources.c linux-2.6.38.3/net/atm/resources.c 56266diff -urNp linux-2.6.38.2/net/atm/resources.c linux-2.6.38.2/net/atm/resources.c
57877--- linux-2.6.38.3/net/atm/resources.c 2011-03-14 21:20:32.000000000 -0400 56267--- linux-2.6.38.2/net/atm/resources.c 2011-03-14 21:20:32.000000000 -0400
57878+++ linux-2.6.38.3/net/atm/resources.c 2011-04-17 15:57:33.000000000 -0400 56268+++ linux-2.6.38.2/net/atm/resources.c 2011-03-21 18:31:35.000000000 -0400
57879@@ -160,7 +160,7 @@ EXPORT_SYMBOL(atm_dev_deregister); 56269@@ -160,7 +160,7 @@ EXPORT_SYMBOL(atm_dev_deregister);
57880 static void copy_aal_stats(struct k_atm_aal_stats *from, 56270 static void copy_aal_stats(struct k_atm_aal_stats *from,
57881 struct atm_aal_stats *to) 56271 struct atm_aal_stats *to)
@@ -57894,9 +56284,31 @@ diff -urNp linux-2.6.38.3/net/atm/resources.c linux-2.6.38.3/net/atm/resources.c
57894 __AAL_STAT_ITEMS 56284 __AAL_STAT_ITEMS
57895 #undef __HANDLE_ITEM 56285 #undef __HANDLE_ITEM
57896 } 56286 }
57897diff -urNp linux-2.6.38.3/net/bridge/br_multicast.c linux-2.6.38.3/net/bridge/br_multicast.c 56287diff -urNp linux-2.6.38.2/net/bluetooth/bnep/sock.c linux-2.6.38.2/net/bluetooth/bnep/sock.c
57898--- linux-2.6.38.3/net/bridge/br_multicast.c 2011-03-14 21:20:32.000000000 -0400 56288--- linux-2.6.38.2/net/bluetooth/bnep/sock.c 2011-03-14 21:20:32.000000000 -0400
57899+++ linux-2.6.38.3/net/bridge/br_multicast.c 2011-04-17 15:57:33.000000000 -0400 56289+++ linux-2.6.38.2/net/bluetooth/bnep/sock.c 2011-03-21 18:31:35.000000000 -0400
56290@@ -88,6 +88,7 @@ static int bnep_sock_ioctl(struct socket
56291 sockfd_put(nsock);
56292 return -EBADFD;
56293 }
56294+ ca.device[sizeof(ca.device)-1] = 0;
56295
56296 err = bnep_add_connection(&ca, nsock);
56297 if (!err) {
56298diff -urNp linux-2.6.38.2/net/bluetooth/sco.c linux-2.6.38.2/net/bluetooth/sco.c
56299--- linux-2.6.38.2/net/bluetooth/sco.c 2011-03-14 21:20:32.000000000 -0400
56300+++ linux-2.6.38.2/net/bluetooth/sco.c 2011-03-21 18:31:35.000000000 -0400
56301@@ -703,6 +703,7 @@ static int sco_sock_getsockopt_old(struc
56302 break;
56303 }
56304
56305+ memset(&cinfo, 0, sizeof(cinfo));
56306 cinfo.hci_handle = sco_pi(sk)->conn->hcon->handle;
56307 memcpy(cinfo.dev_class, sco_pi(sk)->conn->hcon->dev_class, 3);
56308
56309diff -urNp linux-2.6.38.2/net/bridge/br_multicast.c linux-2.6.38.2/net/bridge/br_multicast.c
56310--- linux-2.6.38.2/net/bridge/br_multicast.c 2011-03-14 21:20:32.000000000 -0400
56311+++ linux-2.6.38.2/net/bridge/br_multicast.c 2011-03-21 18:31:35.000000000 -0400
57900@@ -1482,7 +1482,7 @@ static int br_multicast_ipv6_rcv(struct 56312@@ -1482,7 +1482,7 @@ static int br_multicast_ipv6_rcv(struct
57901 nexthdr = ip6h->nexthdr; 56313 nexthdr = ip6h->nexthdr;
57902 offset = ipv6_skip_exthdr(skb, sizeof(*ip6h), &nexthdr); 56314 offset = ipv6_skip_exthdr(skb, sizeof(*ip6h), &nexthdr);
@@ -57906,10 +56318,19 @@ diff -urNp linux-2.6.38.3/net/bridge/br_multicast.c linux-2.6.38.3/net/bridge/br
57906 return 0; 56318 return 0;
57907 56319
57908 /* Okay, we found ICMPv6 header */ 56320 /* Okay, we found ICMPv6 header */
57909diff -urNp linux-2.6.38.3/net/bridge/netfilter/ebtables.c linux-2.6.38.3/net/bridge/netfilter/ebtables.c 56321diff -urNp linux-2.6.38.2/net/bridge/netfilter/ebtables.c linux-2.6.38.2/net/bridge/netfilter/ebtables.c
57910--- linux-2.6.38.3/net/bridge/netfilter/ebtables.c 2011-04-18 17:27:18.000000000 -0400 56322--- linux-2.6.38.2/net/bridge/netfilter/ebtables.c 2011-03-14 21:20:32.000000000 -0400
57911+++ linux-2.6.38.3/net/bridge/netfilter/ebtables.c 2011-04-17 17:00:29.000000000 -0400 56323+++ linux-2.6.38.2/net/bridge/netfilter/ebtables.c 2011-03-21 18:31:35.000000000 -0400
57912@@ -1512,7 +1512,7 @@ static int do_ebt_get_ctl(struct sock *s 56324@@ -1107,6 +1107,8 @@ static int do_replace(struct net *net, c
56325 if (tmp.num_counters >= INT_MAX / sizeof(struct ebt_counter))
56326 return -ENOMEM;
56327
56328+ tmp.name[sizeof(tmp.name)-1] = 0;
56329+
56330 countersize = COUNTER_OFFSET(tmp.nentries) * nr_cpu_ids;
56331 newinfo = vmalloc(sizeof(*newinfo) + countersize);
56332 if (!newinfo)
56333@@ -1510,7 +1512,7 @@ static int do_ebt_get_ctl(struct sock *s
57913 tmp.valid_hooks = t->table->valid_hooks; 56334 tmp.valid_hooks = t->table->valid_hooks;
57914 } 56335 }
57915 mutex_unlock(&ebt_mutex); 56336 mutex_unlock(&ebt_mutex);
@@ -57918,9 +56339,9 @@ diff -urNp linux-2.6.38.3/net/bridge/netfilter/ebtables.c linux-2.6.38.3/net/bri
57918 BUGPRINT("c2u Didn't work\n"); 56339 BUGPRINT("c2u Didn't work\n");
57919 ret = -EFAULT; 56340 ret = -EFAULT;
57920 break; 56341 break;
57921diff -urNp linux-2.6.38.3/net/can/bcm.c linux-2.6.38.3/net/can/bcm.c 56342diff -urNp linux-2.6.38.2/net/can/bcm.c linux-2.6.38.2/net/can/bcm.c
57922--- linux-2.6.38.3/net/can/bcm.c 2011-03-14 21:20:32.000000000 -0400 56343--- linux-2.6.38.2/net/can/bcm.c 2011-03-14 21:20:32.000000000 -0400
57923+++ linux-2.6.38.3/net/can/bcm.c 2011-04-17 15:57:33.000000000 -0400 56344+++ linux-2.6.38.2/net/can/bcm.c 2011-03-21 18:31:35.000000000 -0400
57924@@ -165,9 +165,15 @@ static int bcm_proc_show(struct seq_file 56345@@ -165,9 +165,15 @@ static int bcm_proc_show(struct seq_file
57925 struct bcm_sock *bo = bcm_sk(sk); 56346 struct bcm_sock *bo = bcm_sk(sk);
57926 struct bcm_op *op; 56347 struct bcm_op *op;
@@ -57937,25 +56358,19 @@ diff -urNp linux-2.6.38.3/net/can/bcm.c linux-2.6.38.3/net/can/bcm.c
57937 seq_printf(m, " / dropped %lu", bo->dropped_usr_msgs); 56358 seq_printf(m, " / dropped %lu", bo->dropped_usr_msgs);
57938 seq_printf(m, " / bound %s", bcm_proc_getifname(ifname, bo->ifindex)); 56359 seq_printf(m, " / bound %s", bcm_proc_getifname(ifname, bo->ifindex));
57939 seq_printf(m, " <<<\n"); 56360 seq_printf(m, " <<<\n");
57940diff -urNp linux-2.6.38.3/net/core/dev.c linux-2.6.38.3/net/core/dev.c 56361diff -urNp linux-2.6.38.2/net/core/dev.c linux-2.6.38.2/net/core/dev.c
57941--- linux-2.6.38.3/net/core/dev.c 2011-03-14 21:20:32.000000000 -0400 56362--- linux-2.6.38.2/net/core/dev.c 2011-03-14 21:20:32.000000000 -0400
57942+++ linux-2.6.38.3/net/core/dev.c 2011-04-17 15:57:33.000000000 -0400 56363+++ linux-2.6.38.2/net/core/dev.c 2011-03-21 18:31:35.000000000 -0400
57943@@ -1124,10 +1124,14 @@ void dev_load(struct net *net, const cha 56364@@ -1124,7 +1124,7 @@ void dev_load(struct net *net, const cha
57944 if (no_module && capable(CAP_NET_ADMIN)) 56365 if (no_module && capable(CAP_NET_ADMIN))
57945 no_module = request_module("netdev-%s", name); 56366 no_module = request_module("netdev-%s", name);
57946 if (no_module && capable(CAP_SYS_MODULE)) { 56367 if (no_module && capable(CAP_SYS_MODULE)) {
57947+#ifdef CONFIG_GRKERNSEC_MODHARDEN 56368- if (!request_module("%s", name))
57948+ ___request_module(true, "grsec_modharden_netdev", "%s", name); 56369+ if (!request_module("%s", name))
57949+#else
57950 if (!request_module("%s", name))
57951 pr_err("Loading kernel module for a network device " 56370 pr_err("Loading kernel module for a network device "
57952 "with CAP_SYS_MODULE (deprecated). Use CAP_NET_ADMIN and alias netdev-%s " 56371 "with CAP_SYS_MODULE (deprecated). Use CAP_NET_ADMIN and alias netdev-%s "
57953 "instead\n", name); 56372 "instead\n", name);
57954+#endif 56373@@ -2787,7 +2787,7 @@ int netif_rx_ni(struct sk_buff *skb)
57955 }
57956 }
57957 EXPORT_SYMBOL(dev_load);
57958@@ -2787,7 +2791,7 @@ int netif_rx_ni(struct sk_buff *skb)
57959 } 56374 }
57960 EXPORT_SYMBOL(netif_rx_ni); 56375 EXPORT_SYMBOL(netif_rx_ni);
57961 56376
@@ -57964,7 +56379,7 @@ diff -urNp linux-2.6.38.3/net/core/dev.c linux-2.6.38.3/net/core/dev.c
57964 { 56379 {
57965 struct softnet_data *sd = &__get_cpu_var(softnet_data); 56380 struct softnet_data *sd = &__get_cpu_var(softnet_data);
57966 56381
57967@@ -3697,7 +3701,7 @@ void netif_napi_del(struct napi_struct * 56382@@ -3697,7 +3697,7 @@ void netif_napi_del(struct napi_struct *
57968 } 56383 }
57969 EXPORT_SYMBOL(netif_napi_del); 56384 EXPORT_SYMBOL(netif_napi_del);
57970 56385
@@ -57973,9 +56388,9 @@ diff -urNp linux-2.6.38.3/net/core/dev.c linux-2.6.38.3/net/core/dev.c
57973 { 56388 {
57974 struct softnet_data *sd = &__get_cpu_var(softnet_data); 56389 struct softnet_data *sd = &__get_cpu_var(softnet_data);
57975 unsigned long time_limit = jiffies + 2; 56390 unsigned long time_limit = jiffies + 2;
57976diff -urNp linux-2.6.38.3/net/core/sock.c linux-2.6.38.3/net/core/sock.c 56391diff -urNp linux-2.6.38.2/net/core/sock.c linux-2.6.38.2/net/core/sock.c
57977--- linux-2.6.38.3/net/core/sock.c 2011-03-14 21:20:32.000000000 -0400 56392--- linux-2.6.38.2/net/core/sock.c 2011-03-14 21:20:32.000000000 -0400
57978+++ linux-2.6.38.3/net/core/sock.c 2011-04-17 15:57:33.000000000 -0400 56393+++ linux-2.6.38.2/net/core/sock.c 2011-03-21 18:31:35.000000000 -0400
57979@@ -934,7 +934,7 @@ int sock_getsockopt(struct socket *sock, 56394@@ -934,7 +934,7 @@ int sock_getsockopt(struct socket *sock,
57980 return -ENOTCONN; 56395 return -ENOTCONN;
57981 if (lv < len) 56396 if (lv < len)
@@ -57994,9 +56409,9 @@ diff -urNp linux-2.6.38.3/net/core/sock.c linux-2.6.38.3/net/core/sock.c
57994 return -EFAULT; 56409 return -EFAULT;
57995 lenout: 56410 lenout:
57996 if (put_user(len, optlen)) 56411 if (put_user(len, optlen))
57997diff -urNp linux-2.6.38.3/net/dccp/ccids/ccid3.c linux-2.6.38.3/net/dccp/ccids/ccid3.c 56412diff -urNp linux-2.6.38.2/net/dccp/ccids/ccid3.c linux-2.6.38.2/net/dccp/ccids/ccid3.c
57998--- linux-2.6.38.3/net/dccp/ccids/ccid3.c 2011-03-14 21:20:32.000000000 -0400 56413--- linux-2.6.38.2/net/dccp/ccids/ccid3.c 2011-03-14 21:20:32.000000000 -0400
57999+++ linux-2.6.38.3/net/dccp/ccids/ccid3.c 2011-04-17 15:57:33.000000000 -0400 56414+++ linux-2.6.38.2/net/dccp/ccids/ccid3.c 2011-03-21 18:31:35.000000000 -0400
58000@@ -41,7 +41,7 @@ 56415@@ -41,7 +41,7 @@
58001 static int ccid3_debug; 56416 static int ccid3_debug;
58002 #define ccid3_pr_debug(format, a...) DCCP_PR_DEBUG(ccid3_debug, format, ##a) 56417 #define ccid3_pr_debug(format, a...) DCCP_PR_DEBUG(ccid3_debug, format, ##a)
@@ -58006,9 +56421,9 @@ diff -urNp linux-2.6.38.3/net/dccp/ccids/ccid3.c linux-2.6.38.3/net/dccp/ccids/c
58006 #endif 56421 #endif
58007 56422
58008 /* 56423 /*
58009diff -urNp linux-2.6.38.3/net/dccp/dccp.h linux-2.6.38.3/net/dccp/dccp.h 56424diff -urNp linux-2.6.38.2/net/dccp/dccp.h linux-2.6.38.2/net/dccp/dccp.h
58010--- linux-2.6.38.3/net/dccp/dccp.h 2011-03-14 21:20:32.000000000 -0400 56425--- linux-2.6.38.2/net/dccp/dccp.h 2011-03-14 21:20:32.000000000 -0400
58011+++ linux-2.6.38.3/net/dccp/dccp.h 2011-04-17 15:57:33.000000000 -0400 56426+++ linux-2.6.38.2/net/dccp/dccp.h 2011-03-21 18:31:35.000000000 -0400
58012@@ -44,9 +44,9 @@ extern int dccp_debug; 56427@@ -44,9 +44,9 @@ extern int dccp_debug;
58013 #define dccp_pr_debug_cat(format, a...) DCCP_PRINTK(dccp_debug, format, ##a) 56428 #define dccp_pr_debug_cat(format, a...) DCCP_PRINTK(dccp_debug, format, ##a)
58014 #define dccp_debug(fmt, a...) dccp_pr_debug_cat(KERN_DEBUG fmt, ##a) 56429 #define dccp_debug(fmt, a...) dccp_pr_debug_cat(KERN_DEBUG fmt, ##a)
@@ -58022,9 +56437,9 @@ diff -urNp linux-2.6.38.3/net/dccp/dccp.h linux-2.6.38.3/net/dccp/dccp.h
58022 #endif 56437 #endif
58023 56438
58024 extern struct inet_hashinfo dccp_hashinfo; 56439 extern struct inet_hashinfo dccp_hashinfo;
58025diff -urNp linux-2.6.38.3/net/decnet/sysctl_net_decnet.c linux-2.6.38.3/net/decnet/sysctl_net_decnet.c 56440diff -urNp linux-2.6.38.2/net/decnet/sysctl_net_decnet.c linux-2.6.38.2/net/decnet/sysctl_net_decnet.c
58026--- linux-2.6.38.3/net/decnet/sysctl_net_decnet.c 2011-03-14 21:20:32.000000000 -0400 56441--- linux-2.6.38.2/net/decnet/sysctl_net_decnet.c 2011-03-14 21:20:32.000000000 -0400
58027+++ linux-2.6.38.3/net/decnet/sysctl_net_decnet.c 2011-04-17 15:57:33.000000000 -0400 56442+++ linux-2.6.38.2/net/decnet/sysctl_net_decnet.c 2011-03-21 18:31:35.000000000 -0400
58028@@ -173,7 +173,7 @@ static int dn_node_address_handler(ctl_t 56443@@ -173,7 +173,7 @@ static int dn_node_address_handler(ctl_t
58029 56444
58030 if (len > *lenp) len = *lenp; 56445 if (len > *lenp) len = *lenp;
@@ -58043,9 +56458,9 @@ diff -urNp linux-2.6.38.3/net/decnet/sysctl_net_decnet.c linux-2.6.38.3/net/decn
58043 return -EFAULT; 56458 return -EFAULT;
58044 56459
58045 *lenp = len; 56460 *lenp = len;
58046diff -urNp linux-2.6.38.3/net/econet/Kconfig linux-2.6.38.3/net/econet/Kconfig 56461diff -urNp linux-2.6.38.2/net/econet/Kconfig linux-2.6.38.2/net/econet/Kconfig
58047--- linux-2.6.38.3/net/econet/Kconfig 2011-03-14 21:20:32.000000000 -0400 56462--- linux-2.6.38.2/net/econet/Kconfig 2011-03-14 21:20:32.000000000 -0400
58048+++ linux-2.6.38.3/net/econet/Kconfig 2011-04-17 15:57:33.000000000 -0400 56463+++ linux-2.6.38.2/net/econet/Kconfig 2011-03-21 18:31:35.000000000 -0400
58049@@ -4,7 +4,7 @@ 56464@@ -4,7 +4,7 @@
58050 56465
58051 config ECONET 56466 config ECONET
@@ -58055,9 +56470,9 @@ diff -urNp linux-2.6.38.3/net/econet/Kconfig linux-2.6.38.3/net/econet/Kconfig
58055 ---help--- 56470 ---help---
58056 Econet is a fairly old and slow networking protocol mainly used by 56471 Econet is a fairly old and slow networking protocol mainly used by
58057 Acorn computers to access file and print servers. It uses native 56472 Acorn computers to access file and print servers. It uses native
58058diff -urNp linux-2.6.38.3/net/ipv4/inet_diag.c linux-2.6.38.3/net/ipv4/inet_diag.c 56473diff -urNp linux-2.6.38.2/net/ipv4/inet_diag.c linux-2.6.38.2/net/ipv4/inet_diag.c
58059--- linux-2.6.38.3/net/ipv4/inet_diag.c 2011-03-14 21:20:32.000000000 -0400 56474--- linux-2.6.38.2/net/ipv4/inet_diag.c 2011-03-14 21:20:32.000000000 -0400
58060+++ linux-2.6.38.3/net/ipv4/inet_diag.c 2011-04-17 15:57:33.000000000 -0400 56475+++ linux-2.6.38.2/net/ipv4/inet_diag.c 2011-03-21 18:31:35.000000000 -0400
58061@@ -114,8 +114,14 @@ static int inet_csk_diag_fill(struct soc 56476@@ -114,8 +114,14 @@ static int inet_csk_diag_fill(struct soc
58062 r->idiag_retrans = 0; 56477 r->idiag_retrans = 0;
58063 56478
@@ -58119,9 +56534,9 @@ diff -urNp linux-2.6.38.3/net/ipv4/inet_diag.c linux-2.6.38.3/net/ipv4/inet_diag
58119 56534
58120 tmo = req->expires - jiffies; 56535 tmo = req->expires - jiffies;
58121 if (tmo < 0) 56536 if (tmo < 0)
58122diff -urNp linux-2.6.38.3/net/ipv4/inet_hashtables.c linux-2.6.38.3/net/ipv4/inet_hashtables.c 56537diff -urNp linux-2.6.38.2/net/ipv4/inet_hashtables.c linux-2.6.38.2/net/ipv4/inet_hashtables.c
58123--- linux-2.6.38.3/net/ipv4/inet_hashtables.c 2011-03-14 21:20:32.000000000 -0400 56538--- linux-2.6.38.2/net/ipv4/inet_hashtables.c 2011-03-14 21:20:32.000000000 -0400
58124+++ linux-2.6.38.3/net/ipv4/inet_hashtables.c 2011-04-17 15:57:33.000000000 -0400 56539+++ linux-2.6.38.2/net/ipv4/inet_hashtables.c 2011-03-21 18:31:35.000000000 -0400
58125@@ -18,11 +18,14 @@ 56540@@ -18,11 +18,14 @@
58126 #include <linux/sched.h> 56541 #include <linux/sched.h>
58127 #include <linux/slab.h> 56542 #include <linux/slab.h>
@@ -58146,9 +56561,9 @@ diff -urNp linux-2.6.38.3/net/ipv4/inet_hashtables.c linux-2.6.38.3/net/ipv4/ine
58146 if (tw) { 56561 if (tw) {
58147 inet_twsk_deschedule(tw, death_row); 56562 inet_twsk_deschedule(tw, death_row);
58148 while (twrefcnt) { 56563 while (twrefcnt) {
58149diff -urNp linux-2.6.38.3/net/ipv4/inetpeer.c linux-2.6.38.3/net/ipv4/inetpeer.c 56564diff -urNp linux-2.6.38.2/net/ipv4/inetpeer.c linux-2.6.38.2/net/ipv4/inetpeer.c
58150--- linux-2.6.38.3/net/ipv4/inetpeer.c 2011-03-14 21:20:32.000000000 -0400 56565--- linux-2.6.38.2/net/ipv4/inetpeer.c 2011-03-14 21:20:32.000000000 -0400
58151+++ linux-2.6.38.3/net/ipv4/inetpeer.c 2011-04-17 15:57:33.000000000 -0400 56566+++ linux-2.6.38.2/net/ipv4/inetpeer.c 2011-03-21 18:31:35.000000000 -0400
58152@@ -509,8 +509,8 @@ struct inet_peer *inet_getpeer(struct in 56567@@ -509,8 +509,8 @@ struct inet_peer *inet_getpeer(struct in
58153 if (p) { 56568 if (p) {
58154 p->daddr = *daddr; 56569 p->daddr = *daddr;
@@ -58160,9 +56575,9 @@ diff -urNp linux-2.6.38.3/net/ipv4/inetpeer.c linux-2.6.38.3/net/ipv4/inetpeer.c
58160 p->tcp_ts_stamp = 0; 56575 p->tcp_ts_stamp = 0;
58161 INIT_LIST_HEAD(&p->unused); 56576 INIT_LIST_HEAD(&p->unused);
58162 56577
58163diff -urNp linux-2.6.38.3/net/ipv4/ip_fragment.c linux-2.6.38.3/net/ipv4/ip_fragment.c 56578diff -urNp linux-2.6.38.2/net/ipv4/ip_fragment.c linux-2.6.38.2/net/ipv4/ip_fragment.c
58164--- linux-2.6.38.3/net/ipv4/ip_fragment.c 2011-03-14 21:20:32.000000000 -0400 56579--- linux-2.6.38.2/net/ipv4/ip_fragment.c 2011-03-14 21:20:32.000000000 -0400
58165+++ linux-2.6.38.3/net/ipv4/ip_fragment.c 2011-04-17 15:57:33.000000000 -0400 56580+++ linux-2.6.38.2/net/ipv4/ip_fragment.c 2011-03-21 18:31:35.000000000 -0400
58166@@ -298,7 +298,7 @@ static inline int ip_frag_too_far(struct 56581@@ -298,7 +298,7 @@ static inline int ip_frag_too_far(struct
58167 return 0; 56582 return 0;
58168 56583
@@ -58172,9 +56587,9 @@ diff -urNp linux-2.6.38.3/net/ipv4/ip_fragment.c linux-2.6.38.3/net/ipv4/ip_frag
58172 qp->rid = end; 56587 qp->rid = end;
58173 56588
58174 rc = qp->q.fragments && (end - start) > max; 56589 rc = qp->q.fragments && (end - start) > max;
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 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
58176--- linux-2.6.38.3/net/ipv4/netfilter/nf_nat_snmp_basic.c 2011-03-14 21:20:32.000000000 -0400 56591--- linux-2.6.38.2/net/ipv4/netfilter/nf_nat_snmp_basic.c 2011-03-14 21:20:32.000000000 -0400
58177+++ linux-2.6.38.3/net/ipv4/netfilter/nf_nat_snmp_basic.c 2011-04-17 15:57:33.000000000 -0400 56592+++ linux-2.6.38.2/net/ipv4/netfilter/nf_nat_snmp_basic.c 2011-03-21 18:31:35.000000000 -0400
58178@@ -398,7 +398,7 @@ static unsigned char asn1_octets_decode( 56593@@ -398,7 +398,7 @@ static unsigned char asn1_octets_decode(
58179 56594
58180 *len = 0; 56595 *len = 0;
@@ -58184,44 +56599,9 @@ diff -urNp linux-2.6.38.3/net/ipv4/netfilter/nf_nat_snmp_basic.c linux-2.6.38.3/
58184 if (*octets == NULL) { 56599 if (*octets == NULL) {
58185 if (net_ratelimit()) 56600 if (net_ratelimit())
58186 pr_notice("OOM in bsalg (%d)\n", __LINE__); 56601 pr_notice("OOM in bsalg (%d)\n", __LINE__);
58187diff -urNp linux-2.6.38.3/net/ipv4/raw.c linux-2.6.38.3/net/ipv4/raw.c 56602diff -urNp linux-2.6.38.2/net/ipv4/route.c linux-2.6.38.2/net/ipv4/route.c
58188--- linux-2.6.38.3/net/ipv4/raw.c 2011-03-14 21:20:32.000000000 -0400 56603--- linux-2.6.38.2/net/ipv4/route.c 2011-03-14 21:20:32.000000000 -0400
58189+++ linux-2.6.38.3/net/ipv4/raw.c 2011-04-17 15:57:33.000000000 -0400 56604+++ linux-2.6.38.2/net/ipv4/route.c 2011-03-21 18:31:35.000000000 -0400
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
58225@@ -2857,7 +2857,7 @@ static int rt_fill_info(struct net *net, 56605@@ -2857,7 +2857,7 @@ static int rt_fill_info(struct net *net,
58226 expires = rt->dst.expires ? rt->dst.expires - jiffies : 0; 56606 expires = rt->dst.expires ? rt->dst.expires - jiffies : 0;
58227 if (rt->peer) { 56607 if (rt->peer) {
@@ -58231,9 +56611,9 @@ diff -urNp linux-2.6.38.3/net/ipv4/route.c linux-2.6.38.3/net/ipv4/route.c
58231 if (rt->peer->tcp_ts_stamp) { 56611 if (rt->peer->tcp_ts_stamp) {
58232 ts = rt->peer->tcp_ts; 56612 ts = rt->peer->tcp_ts;
58233 tsage = get_seconds() - rt->peer->tcp_ts_stamp; 56613 tsage = get_seconds() - rt->peer->tcp_ts_stamp;
58234diff -urNp linux-2.6.38.3/net/ipv4/tcp_ipv4.c linux-2.6.38.3/net/ipv4/tcp_ipv4.c 56614diff -urNp linux-2.6.38.2/net/ipv4/tcp_ipv4.c linux-2.6.38.2/net/ipv4/tcp_ipv4.c
58235--- linux-2.6.38.3/net/ipv4/tcp_ipv4.c 2011-03-14 21:20:32.000000000 -0400 56615--- linux-2.6.38.2/net/ipv4/tcp_ipv4.c 2011-03-14 21:20:32.000000000 -0400
58236+++ linux-2.6.38.3/net/ipv4/tcp_ipv4.c 2011-04-17 15:57:33.000000000 -0400 56616+++ linux-2.6.38.2/net/ipv4/tcp_ipv4.c 2011-03-21 18:31:35.000000000 -0400
58237@@ -86,6 +86,9 @@ int sysctl_tcp_tw_reuse __read_mostly; 56617@@ -86,6 +86,9 @@ int sysctl_tcp_tw_reuse __read_mostly;
58238 int sysctl_tcp_low_latency __read_mostly; 56618 int sysctl_tcp_low_latency __read_mostly;
58239 EXPORT_SYMBOL(sysctl_tcp_low_latency); 56619 EXPORT_SYMBOL(sysctl_tcp_low_latency);
@@ -58329,9 +56709,9 @@ diff -urNp linux-2.6.38.3/net/ipv4/tcp_ipv4.c linux-2.6.38.3/net/ipv4/tcp_ipv4.c
58329 } 56709 }
58330 56710
58331 #define TMPSZ 150 56711 #define TMPSZ 150
58332diff -urNp linux-2.6.38.3/net/ipv4/tcp_minisocks.c linux-2.6.38.3/net/ipv4/tcp_minisocks.c 56712diff -urNp linux-2.6.38.2/net/ipv4/tcp_minisocks.c linux-2.6.38.2/net/ipv4/tcp_minisocks.c
58333--- linux-2.6.38.3/net/ipv4/tcp_minisocks.c 2011-03-14 21:20:32.000000000 -0400 56713--- linux-2.6.38.2/net/ipv4/tcp_minisocks.c 2011-03-14 21:20:32.000000000 -0400
58334+++ linux-2.6.38.3/net/ipv4/tcp_minisocks.c 2011-04-17 15:57:33.000000000 -0400 56714+++ linux-2.6.38.2/net/ipv4/tcp_minisocks.c 2011-03-21 18:31:35.000000000 -0400
58335@@ -27,6 +27,10 @@ 56715@@ -27,6 +27,10 @@
58336 #include <net/inet_common.h> 56716 #include <net/inet_common.h>
58337 #include <net/xfrm.h> 56717 #include <net/xfrm.h>
@@ -58354,9 +56734,9 @@ diff -urNp linux-2.6.38.3/net/ipv4/tcp_minisocks.c linux-2.6.38.3/net/ipv4/tcp_m
58354 if (!(flg & TCP_FLAG_RST)) 56734 if (!(flg & TCP_FLAG_RST))
58355 req->rsk_ops->send_reset(sk, skb); 56735 req->rsk_ops->send_reset(sk, skb);
58356 56736
58357diff -urNp linux-2.6.38.3/net/ipv4/tcp_probe.c linux-2.6.38.3/net/ipv4/tcp_probe.c 56737diff -urNp linux-2.6.38.2/net/ipv4/tcp_probe.c linux-2.6.38.2/net/ipv4/tcp_probe.c
58358--- linux-2.6.38.3/net/ipv4/tcp_probe.c 2011-03-14 21:20:32.000000000 -0400 56738--- linux-2.6.38.2/net/ipv4/tcp_probe.c 2011-03-14 21:20:32.000000000 -0400
58359+++ linux-2.6.38.3/net/ipv4/tcp_probe.c 2011-04-17 15:57:33.000000000 -0400 56739+++ linux-2.6.38.2/net/ipv4/tcp_probe.c 2011-03-21 18:31:35.000000000 -0400
58360@@ -202,7 +202,7 @@ static ssize_t tcpprobe_read(struct file 56740@@ -202,7 +202,7 @@ static ssize_t tcpprobe_read(struct file
58361 if (cnt + width >= len) 56741 if (cnt + width >= len)
58362 break; 56742 break;
@@ -58366,9 +56746,9 @@ diff -urNp linux-2.6.38.3/net/ipv4/tcp_probe.c linux-2.6.38.3/net/ipv4/tcp_probe
58366 return -EFAULT; 56746 return -EFAULT;
58367 cnt += width; 56747 cnt += width;
58368 } 56748 }
58369diff -urNp linux-2.6.38.3/net/ipv4/tcp_timer.c linux-2.6.38.3/net/ipv4/tcp_timer.c 56749diff -urNp linux-2.6.38.2/net/ipv4/tcp_timer.c linux-2.6.38.2/net/ipv4/tcp_timer.c
58370--- linux-2.6.38.3/net/ipv4/tcp_timer.c 2011-03-14 21:20:32.000000000 -0400 56750--- linux-2.6.38.2/net/ipv4/tcp_timer.c 2011-03-14 21:20:32.000000000 -0400
58371+++ linux-2.6.38.3/net/ipv4/tcp_timer.c 2011-04-17 15:57:33.000000000 -0400 56751+++ linux-2.6.38.2/net/ipv4/tcp_timer.c 2011-03-21 18:31:35.000000000 -0400
58372@@ -22,6 +22,10 @@ 56752@@ -22,6 +22,10 @@
58373 #include <linux/gfp.h> 56753 #include <linux/gfp.h>
58374 #include <net/tcp.h> 56754 #include <net/tcp.h>
@@ -58394,9 +56774,9 @@ diff -urNp linux-2.6.38.3/net/ipv4/tcp_timer.c linux-2.6.38.3/net/ipv4/tcp_timer
58394 if (retransmits_timed_out(sk, retry_until, 56774 if (retransmits_timed_out(sk, retry_until,
58395 syn_set ? 0 : icsk->icsk_user_timeout, syn_set)) { 56775 syn_set ? 0 : icsk->icsk_user_timeout, syn_set)) {
58396 /* Has it gone just too far? */ 56776 /* Has it gone just too far? */
58397diff -urNp linux-2.6.38.3/net/ipv4/udp.c linux-2.6.38.3/net/ipv4/udp.c 56777diff -urNp linux-2.6.38.2/net/ipv4/udp.c linux-2.6.38.2/net/ipv4/udp.c
58398--- linux-2.6.38.3/net/ipv4/udp.c 2011-03-14 21:20:32.000000000 -0400 56778--- linux-2.6.38.2/net/ipv4/udp.c 2011-03-14 21:20:32.000000000 -0400
58399+++ linux-2.6.38.3/net/ipv4/udp.c 2011-04-17 15:57:33.000000000 -0400 56779+++ linux-2.6.38.2/net/ipv4/udp.c 2011-03-21 18:31:35.000000000 -0400
58400@@ -86,6 +86,7 @@ 56780@@ -86,6 +86,7 @@
58401 #include <linux/types.h> 56781 #include <linux/types.h>
58402 #include <linux/fcntl.h> 56782 #include <linux/fcntl.h>
@@ -58480,9 +56860,9 @@ diff -urNp linux-2.6.38.3/net/ipv4/udp.c linux-2.6.38.3/net/ipv4/udp.c
58480 atomic_read(&sp->sk_drops), len); 56860 atomic_read(&sp->sk_drops), len);
58481 } 56861 }
58482 56862
58483diff -urNp linux-2.6.38.3/net/ipv6/exthdrs.c linux-2.6.38.3/net/ipv6/exthdrs.c 56863diff -urNp linux-2.6.38.2/net/ipv6/exthdrs.c linux-2.6.38.2/net/ipv6/exthdrs.c
58484--- linux-2.6.38.3/net/ipv6/exthdrs.c 2011-03-14 21:20:32.000000000 -0400 56864--- linux-2.6.38.2/net/ipv6/exthdrs.c 2011-03-14 21:20:32.000000000 -0400
58485+++ linux-2.6.38.3/net/ipv6/exthdrs.c 2011-04-17 15:57:33.000000000 -0400 56865+++ linux-2.6.38.2/net/ipv6/exthdrs.c 2011-03-21 18:31:35.000000000 -0400
58486@@ -634,7 +634,7 @@ static struct tlvtype_proc tlvprochopopt 56866@@ -634,7 +634,7 @@ static struct tlvtype_proc tlvprochopopt
58487 .type = IPV6_TLV_JUMBO, 56867 .type = IPV6_TLV_JUMBO,
58488 .func = ipv6_hop_jumbo, 56868 .func = ipv6_hop_jumbo,
@@ -58492,9 +56872,9 @@ diff -urNp linux-2.6.38.3/net/ipv6/exthdrs.c linux-2.6.38.3/net/ipv6/exthdrs.c
58492 }; 56872 };
58493 56873
58494 int ipv6_parse_hopopts(struct sk_buff *skb) 56874 int ipv6_parse_hopopts(struct sk_buff *skb)
58495diff -urNp linux-2.6.38.3/net/ipv6/raw.c linux-2.6.38.3/net/ipv6/raw.c 56875diff -urNp linux-2.6.38.2/net/ipv6/raw.c linux-2.6.38.2/net/ipv6/raw.c
58496--- linux-2.6.38.3/net/ipv6/raw.c 2011-03-14 21:20:32.000000000 -0400 56876--- linux-2.6.38.2/net/ipv6/raw.c 2011-03-14 21:20:32.000000000 -0400
58497+++ linux-2.6.38.3/net/ipv6/raw.c 2011-04-17 15:57:33.000000000 -0400 56877+++ linux-2.6.38.2/net/ipv6/raw.c 2011-03-21 18:31:35.000000000 -0400
58498@@ -602,7 +602,7 @@ out: 56878@@ -602,7 +602,7 @@ out:
58499 return err; 56879 return err;
58500 } 56880 }
@@ -58504,42 +56884,7 @@ diff -urNp linux-2.6.38.3/net/ipv6/raw.c linux-2.6.38.3/net/ipv6/raw.c
58504 struct flowi *fl, struct dst_entry **dstp, 56884 struct flowi *fl, struct dst_entry **dstp,
58505 unsigned int flags) 56885 unsigned int flags)
58506 { 56886 {
58507@@ -919,12 +919,15 @@ do_confirm: 56887@@ -1262,7 +1262,13 @@ static void raw6_sock_seq_show(struct se
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
58543 0, 0L, 0, 56888 0, 0L, 0,
58544 sock_i_uid(sp), 0, 56889 sock_i_uid(sp), 0,
58545 sock_i_ino(sp), 56890 sock_i_ino(sp),
@@ -58554,9 +56899,9 @@ diff -urNp linux-2.6.38.3/net/ipv6/raw.c linux-2.6.38.3/net/ipv6/raw.c
58554 } 56899 }
58555 56900
58556 static int raw6_seq_show(struct seq_file *seq, void *v) 56901 static int raw6_seq_show(struct seq_file *seq, void *v)
58557diff -urNp linux-2.6.38.3/net/ipv6/tcp_ipv6.c linux-2.6.38.3/net/ipv6/tcp_ipv6.c 56902diff -urNp linux-2.6.38.2/net/ipv6/tcp_ipv6.c linux-2.6.38.2/net/ipv6/tcp_ipv6.c
58558--- linux-2.6.38.3/net/ipv6/tcp_ipv6.c 2011-03-14 21:20:32.000000000 -0400 56903--- linux-2.6.38.2/net/ipv6/tcp_ipv6.c 2011-03-14 21:20:32.000000000 -0400
58559+++ linux-2.6.38.3/net/ipv6/tcp_ipv6.c 2011-04-17 15:57:33.000000000 -0400 56904+++ linux-2.6.38.2/net/ipv6/tcp_ipv6.c 2011-03-21 18:31:35.000000000 -0400
58560@@ -92,6 +92,10 @@ static struct tcp_md5sig_key *tcp_v6_md5 56905@@ -92,6 +92,10 @@ static struct tcp_md5sig_key *tcp_v6_md5
58561 } 56906 }
58562 #endif 56907 #endif
@@ -58656,9 +57001,9 @@ diff -urNp linux-2.6.38.3/net/ipv6/tcp_ipv6.c linux-2.6.38.3/net/ipv6/tcp_ipv6.c
58656 } 57001 }
58657 57002
58658 static int tcp6_seq_show(struct seq_file *seq, void *v) 57003 static int tcp6_seq_show(struct seq_file *seq, void *v)
58659diff -urNp linux-2.6.38.3/net/ipv6/udp.c linux-2.6.38.3/net/ipv6/udp.c 57004diff -urNp linux-2.6.38.2/net/ipv6/udp.c linux-2.6.38.2/net/ipv6/udp.c
58660--- linux-2.6.38.3/net/ipv6/udp.c 2011-03-14 21:20:32.000000000 -0400 57005--- linux-2.6.38.2/net/ipv6/udp.c 2011-03-14 21:20:32.000000000 -0400
58661+++ linux-2.6.38.3/net/ipv6/udp.c 2011-04-17 15:57:33.000000000 -0400 57006+++ linux-2.6.38.2/net/ipv6/udp.c 2011-03-21 18:31:35.000000000 -0400
58662@@ -50,6 +50,10 @@ 57007@@ -50,6 +50,10 @@
58663 #include <linux/seq_file.h> 57008 #include <linux/seq_file.h>
58664 #include "udp_impl.h" 57009 #include "udp_impl.h"
@@ -58694,9 +57039,9 @@ diff -urNp linux-2.6.38.3/net/ipv6/udp.c linux-2.6.38.3/net/ipv6/udp.c
58694 atomic_read(&sp->sk_drops)); 57039 atomic_read(&sp->sk_drops));
58695 } 57040 }
58696 57041
58697diff -urNp linux-2.6.38.3/net/irda/ircomm/ircomm_tty.c linux-2.6.38.3/net/irda/ircomm/ircomm_tty.c 57042diff -urNp linux-2.6.38.2/net/irda/ircomm/ircomm_tty.c linux-2.6.38.2/net/irda/ircomm/ircomm_tty.c
58698--- linux-2.6.38.3/net/irda/ircomm/ircomm_tty.c 2011-03-14 21:20:32.000000000 -0400 57043--- linux-2.6.38.2/net/irda/ircomm/ircomm_tty.c 2011-03-14 21:20:32.000000000 -0400
58699+++ linux-2.6.38.3/net/irda/ircomm/ircomm_tty.c 2011-04-17 15:57:33.000000000 -0400 57044+++ linux-2.6.38.2/net/irda/ircomm/ircomm_tty.c 2011-03-21 18:31:35.000000000 -0400
58700@@ -281,16 +281,16 @@ static int ircomm_tty_block_til_ready(st 57045@@ -281,16 +281,16 @@ static int ircomm_tty_block_til_ready(st
58701 add_wait_queue(&self->open_wait, &wait); 57046 add_wait_queue(&self->open_wait, &wait);
58702 57047
@@ -58819,9 +57164,9 @@ diff -urNp linux-2.6.38.3/net/irda/ircomm/ircomm_tty.c linux-2.6.38.3/net/irda/i
58819 seq_printf(m, "Max data size: %d\n", self->max_data_size); 57164 seq_printf(m, "Max data size: %d\n", self->max_data_size);
58820 seq_printf(m, "Max header size: %d\n", self->max_header_size); 57165 seq_printf(m, "Max header size: %d\n", self->max_header_size);
58821 57166
58822diff -urNp linux-2.6.38.3/net/key/af_key.c linux-2.6.38.3/net/key/af_key.c 57167diff -urNp linux-2.6.38.2/net/key/af_key.c linux-2.6.38.2/net/key/af_key.c
58823--- linux-2.6.38.3/net/key/af_key.c 2011-03-14 21:20:32.000000000 -0400 57168--- linux-2.6.38.2/net/key/af_key.c 2011-03-14 21:20:32.000000000 -0400
58824+++ linux-2.6.38.3/net/key/af_key.c 2011-04-17 15:57:33.000000000 -0400 57169+++ linux-2.6.38.2/net/key/af_key.c 2011-03-21 18:31:35.000000000 -0400
58825@@ -3644,7 +3644,11 @@ static int pfkey_seq_show(struct seq_fil 57170@@ -3644,7 +3644,11 @@ static int pfkey_seq_show(struct seq_fil
58826 seq_printf(f ,"sk RefCnt Rmem Wmem User Inode\n"); 57171 seq_printf(f ,"sk RefCnt Rmem Wmem User Inode\n");
58827 else 57172 else
@@ -58834,32 +57179,9 @@ diff -urNp linux-2.6.38.3/net/key/af_key.c linux-2.6.38.3/net/key/af_key.c
58834 atomic_read(&s->sk_refcnt), 57179 atomic_read(&s->sk_refcnt),
58835 sk_rmem_alloc_get(s), 57180 sk_rmem_alloc_get(s),
58836 sk_wmem_alloc_get(s), 57181 sk_wmem_alloc_get(s),
58837diff -urNp linux-2.6.38.3/net/mac80211/cfg.c linux-2.6.38.3/net/mac80211/cfg.c 57182diff -urNp linux-2.6.38.2/net/mac80211/ieee80211_i.h linux-2.6.38.2/net/mac80211/ieee80211_i.h
58838--- linux-2.6.38.3/net/mac80211/cfg.c 2011-03-14 21:20:32.000000000 -0400 57183--- linux-2.6.38.2/net/mac80211/ieee80211_i.h 2011-03-14 21:20:32.000000000 -0400
58839+++ linux-2.6.38.3/net/mac80211/cfg.c 2011-04-17 15:57:33.000000000 -0400 57184+++ linux-2.6.38.2/net/mac80211/ieee80211_i.h 2011-03-21 18:31:35.000000000 -0400
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
58863@@ -27,6 +27,7 @@ 57185@@ -27,6 +27,7 @@
58864 #include <net/ieee80211_radiotap.h> 57186 #include <net/ieee80211_radiotap.h>
58865 #include <net/cfg80211.h> 57187 #include <net/cfg80211.h>
@@ -58877,9 +57199,9 @@ diff -urNp linux-2.6.38.3/net/mac80211/ieee80211_i.h linux-2.6.38.3/net/mac80211
58877 int monitors, cooked_mntrs; 57199 int monitors, cooked_mntrs;
58878 /* number of interfaces with corresponding FIF_ flags */ 57200 /* number of interfaces with corresponding FIF_ flags */
58879 int fif_fcsfail, fif_plcpfail, fif_control, fif_other_bss, fif_pspoll, 57201 int fif_fcsfail, fif_plcpfail, fif_control, fif_other_bss, fif_pspoll,
58880diff -urNp linux-2.6.38.3/net/mac80211/iface.c linux-2.6.38.3/net/mac80211/iface.c 57202diff -urNp linux-2.6.38.2/net/mac80211/iface.c linux-2.6.38.2/net/mac80211/iface.c
58881--- linux-2.6.38.3/net/mac80211/iface.c 2011-03-14 21:20:32.000000000 -0400 57203--- linux-2.6.38.2/net/mac80211/iface.c 2011-03-14 21:20:32.000000000 -0400
58882+++ linux-2.6.38.3/net/mac80211/iface.c 2011-04-17 15:57:33.000000000 -0400 57204+++ linux-2.6.38.2/net/mac80211/iface.c 2011-03-21 18:31:35.000000000 -0400
58883@@ -211,7 +211,7 @@ static int ieee80211_do_open(struct net_ 57205@@ -211,7 +211,7 @@ static int ieee80211_do_open(struct net_
58884 break; 57206 break;
58885 } 57207 }
@@ -58934,9 +57256,9 @@ diff -urNp linux-2.6.38.3/net/mac80211/iface.c linux-2.6.38.3/net/mac80211/iface
58934 if (local->ops->napi_poll) 57256 if (local->ops->napi_poll)
58935 napi_disable(&local->napi); 57257 napi_disable(&local->napi);
58936 ieee80211_clear_tx_pending(local); 57258 ieee80211_clear_tx_pending(local);
58937diff -urNp linux-2.6.38.3/net/mac80211/main.c linux-2.6.38.3/net/mac80211/main.c 57259diff -urNp linux-2.6.38.2/net/mac80211/main.c linux-2.6.38.2/net/mac80211/main.c
58938--- linux-2.6.38.3/net/mac80211/main.c 2011-03-14 21:20:32.000000000 -0400 57260--- linux-2.6.38.2/net/mac80211/main.c 2011-03-14 21:20:32.000000000 -0400
58939+++ linux-2.6.38.3/net/mac80211/main.c 2011-04-17 15:57:33.000000000 -0400 57261+++ linux-2.6.38.2/net/mac80211/main.c 2011-03-21 18:31:35.000000000 -0400
58940@@ -161,7 +161,7 @@ int ieee80211_hw_config(struct ieee80211 57262@@ -161,7 +161,7 @@ int ieee80211_hw_config(struct ieee80211
58941 local->hw.conf.power_level = power; 57263 local->hw.conf.power_level = power;
58942 } 57264 }
@@ -58946,9 +57268,9 @@ diff -urNp linux-2.6.38.3/net/mac80211/main.c linux-2.6.38.3/net/mac80211/main.c
58946 ret = drv_config(local, changed); 57268 ret = drv_config(local, changed);
58947 /* 57269 /*
58948 * Goal: 57270 * Goal:
58949diff -urNp linux-2.6.38.3/net/mac80211/pm.c linux-2.6.38.3/net/mac80211/pm.c 57271diff -urNp linux-2.6.38.2/net/mac80211/pm.c linux-2.6.38.2/net/mac80211/pm.c
58950--- linux-2.6.38.3/net/mac80211/pm.c 2011-03-14 21:20:32.000000000 -0400 57272--- linux-2.6.38.2/net/mac80211/pm.c 2011-03-14 21:20:32.000000000 -0400
58951+++ linux-2.6.38.3/net/mac80211/pm.c 2011-04-17 15:57:33.000000000 -0400 57273+++ linux-2.6.38.2/net/mac80211/pm.c 2011-03-21 18:31:35.000000000 -0400
58952@@ -95,7 +95,7 @@ int __ieee80211_suspend(struct ieee80211 57274@@ -95,7 +95,7 @@ int __ieee80211_suspend(struct ieee80211
58953 } 57275 }
58954 57276
@@ -58958,9 +57280,9 @@ diff -urNp linux-2.6.38.3/net/mac80211/pm.c linux-2.6.38.3/net/mac80211/pm.c
58958 ieee80211_stop_device(local); 57280 ieee80211_stop_device(local);
58959 57281
58960 local->suspended = true; 57282 local->suspended = true;
58961diff -urNp linux-2.6.38.3/net/mac80211/rate.c linux-2.6.38.3/net/mac80211/rate.c 57283diff -urNp linux-2.6.38.2/net/mac80211/rate.c linux-2.6.38.2/net/mac80211/rate.c
58962--- linux-2.6.38.3/net/mac80211/rate.c 2011-03-14 21:20:32.000000000 -0400 57284--- linux-2.6.38.2/net/mac80211/rate.c 2011-03-14 21:20:32.000000000 -0400
58963+++ linux-2.6.38.3/net/mac80211/rate.c 2011-04-17 15:57:33.000000000 -0400 57285+++ linux-2.6.38.2/net/mac80211/rate.c 2011-03-21 18:31:35.000000000 -0400
58964@@ -371,7 +371,7 @@ int ieee80211_init_rate_ctrl_alg(struct 57286@@ -371,7 +371,7 @@ int ieee80211_init_rate_ctrl_alg(struct
58965 57287
58966 ASSERT_RTNL(); 57288 ASSERT_RTNL();
@@ -58970,9 +57292,9 @@ diff -urNp linux-2.6.38.3/net/mac80211/rate.c linux-2.6.38.3/net/mac80211/rate.c
58970 return -EBUSY; 57292 return -EBUSY;
58971 57293
58972 if (local->hw.flags & IEEE80211_HW_HAS_RATE_CONTROL) { 57294 if (local->hw.flags & IEEE80211_HW_HAS_RATE_CONTROL) {
58973diff -urNp linux-2.6.38.3/net/mac80211/rc80211_pid_debugfs.c linux-2.6.38.3/net/mac80211/rc80211_pid_debugfs.c 57295diff -urNp linux-2.6.38.2/net/mac80211/rc80211_pid_debugfs.c linux-2.6.38.2/net/mac80211/rc80211_pid_debugfs.c
58974--- linux-2.6.38.3/net/mac80211/rc80211_pid_debugfs.c 2011-03-14 21:20:32.000000000 -0400 57296--- linux-2.6.38.2/net/mac80211/rc80211_pid_debugfs.c 2011-03-14 21:20:32.000000000 -0400
58975+++ linux-2.6.38.3/net/mac80211/rc80211_pid_debugfs.c 2011-04-17 15:57:33.000000000 -0400 57297+++ linux-2.6.38.2/net/mac80211/rc80211_pid_debugfs.c 2011-03-21 18:31:35.000000000 -0400
58976@@ -192,7 +192,7 @@ static ssize_t rate_control_pid_events_r 57298@@ -192,7 +192,7 @@ static ssize_t rate_control_pid_events_r
58977 57299
58978 spin_unlock_irqrestore(&events->lock, status); 57300 spin_unlock_irqrestore(&events->lock, status);
@@ -58982,9 +57304,9 @@ diff -urNp linux-2.6.38.3/net/mac80211/rc80211_pid_debugfs.c linux-2.6.38.3/net/
58982 return -EFAULT; 57304 return -EFAULT;
58983 57305
58984 return p; 57306 return p;
58985diff -urNp linux-2.6.38.3/net/mac80211/tx.c linux-2.6.38.3/net/mac80211/tx.c 57307diff -urNp linux-2.6.38.2/net/mac80211/tx.c linux-2.6.38.2/net/mac80211/tx.c
58986--- linux-2.6.38.3/net/mac80211/tx.c 2011-03-14 21:20:32.000000000 -0400 57308--- linux-2.6.38.2/net/mac80211/tx.c 2011-03-14 21:20:32.000000000 -0400
58987+++ linux-2.6.38.3/net/mac80211/tx.c 2011-04-17 15:57:33.000000000 -0400 57309+++ linux-2.6.38.2/net/mac80211/tx.c 2011-03-21 18:31:35.000000000 -0400
58988@@ -173,7 +173,7 @@ static __le16 ieee80211_duration(struct 57310@@ -173,7 +173,7 @@ static __le16 ieee80211_duration(struct
58989 return cpu_to_le16(dur); 57311 return cpu_to_le16(dur);
58990 } 57312 }
@@ -58994,9 +57316,9 @@ diff -urNp linux-2.6.38.3/net/mac80211/tx.c linux-2.6.38.3/net/mac80211/tx.c
58994 struct net_device *dev) 57316 struct net_device *dev)
58995 { 57317 {
58996 return local == wdev_priv(dev->ieee80211_ptr); 57318 return local == wdev_priv(dev->ieee80211_ptr);
58997diff -urNp linux-2.6.38.3/net/mac80211/util.c linux-2.6.38.3/net/mac80211/util.c 57319diff -urNp linux-2.6.38.2/net/mac80211/util.c linux-2.6.38.2/net/mac80211/util.c
58998--- linux-2.6.38.3/net/mac80211/util.c 2011-03-14 21:20:32.000000000 -0400 57320--- linux-2.6.38.2/net/mac80211/util.c 2011-03-14 21:20:32.000000000 -0400
58999+++ linux-2.6.38.3/net/mac80211/util.c 2011-04-17 15:57:33.000000000 -0400 57321+++ linux-2.6.38.2/net/mac80211/util.c 2011-03-21 18:31:35.000000000 -0400
59000@@ -1135,7 +1135,7 @@ int ieee80211_reconfig(struct ieee80211_ 57322@@ -1135,7 +1135,7 @@ int ieee80211_reconfig(struct ieee80211_
59001 local->resuming = true; 57323 local->resuming = true;
59002 57324
@@ -59006,9 +57328,9 @@ diff -urNp linux-2.6.38.3/net/mac80211/util.c linux-2.6.38.3/net/mac80211/util.c
59006 /* 57328 /*
59007 * Upon resume hardware can sometimes be goofy due to 57329 * Upon resume hardware can sometimes be goofy due to
59008 * various platform / driver / bus issues, so restarting 57330 * various platform / driver / bus issues, so restarting
59009diff -urNp linux-2.6.38.3/net/netfilter/Kconfig linux-2.6.38.3/net/netfilter/Kconfig 57331diff -urNp linux-2.6.38.2/net/netfilter/Kconfig linux-2.6.38.2/net/netfilter/Kconfig
59010--- linux-2.6.38.3/net/netfilter/Kconfig 2011-03-14 21:20:32.000000000 -0400 57332--- linux-2.6.38.2/net/netfilter/Kconfig 2011-03-14 21:20:32.000000000 -0400
59011+++ linux-2.6.38.3/net/netfilter/Kconfig 2011-04-17 15:57:33.000000000 -0400 57333+++ linux-2.6.38.2/net/netfilter/Kconfig 2011-03-21 18:31:35.000000000 -0400
59012@@ -709,6 +709,16 @@ config NETFILTER_XT_MATCH_ESP 57334@@ -709,6 +709,16 @@ config NETFILTER_XT_MATCH_ESP
59013 57335
59014 To compile it as a module, choose M here. If unsure, say N. 57336 To compile it as a module, choose M here. If unsure, say N.
@@ -59026,9 +57348,9 @@ diff -urNp linux-2.6.38.3/net/netfilter/Kconfig linux-2.6.38.3/net/netfilter/Kco
59026 config NETFILTER_XT_MATCH_HASHLIMIT 57348 config NETFILTER_XT_MATCH_HASHLIMIT
59027 tristate '"hashlimit" match support' 57349 tristate '"hashlimit" match support'
59028 depends on (IP6_NF_IPTABLES || IP6_NF_IPTABLES=n) 57350 depends on (IP6_NF_IPTABLES || IP6_NF_IPTABLES=n)
59029diff -urNp linux-2.6.38.3/net/netfilter/Makefile linux-2.6.38.3/net/netfilter/Makefile 57351diff -urNp linux-2.6.38.2/net/netfilter/Makefile linux-2.6.38.2/net/netfilter/Makefile
59030--- linux-2.6.38.3/net/netfilter/Makefile 2011-03-14 21:20:32.000000000 -0400 57352--- linux-2.6.38.2/net/netfilter/Makefile 2011-03-14 21:20:32.000000000 -0400
59031+++ linux-2.6.38.3/net/netfilter/Makefile 2011-04-17 15:57:33.000000000 -0400 57353+++ linux-2.6.38.2/net/netfilter/Makefile 2011-03-21 18:31:35.000000000 -0400
59032@@ -74,6 +74,7 @@ obj-$(CONFIG_NETFILTER_XT_MATCH_CPU) += 57354@@ -74,6 +74,7 @@ obj-$(CONFIG_NETFILTER_XT_MATCH_CPU) +=
59033 obj-$(CONFIG_NETFILTER_XT_MATCH_DCCP) += xt_dccp.o 57355 obj-$(CONFIG_NETFILTER_XT_MATCH_DCCP) += xt_dccp.o
59034 obj-$(CONFIG_NETFILTER_XT_MATCH_DSCP) += xt_dscp.o 57356 obj-$(CONFIG_NETFILTER_XT_MATCH_DSCP) += xt_dscp.o
@@ -59037,9 +57359,9 @@ diff -urNp linux-2.6.38.3/net/netfilter/Makefile linux-2.6.38.3/net/netfilter/Ma
59037 obj-$(CONFIG_NETFILTER_XT_MATCH_HASHLIMIT) += xt_hashlimit.o 57359 obj-$(CONFIG_NETFILTER_XT_MATCH_HASHLIMIT) += xt_hashlimit.o
59038 obj-$(CONFIG_NETFILTER_XT_MATCH_HELPER) += xt_helper.o 57360 obj-$(CONFIG_NETFILTER_XT_MATCH_HELPER) += xt_helper.o
59039 obj-$(CONFIG_NETFILTER_XT_MATCH_HL) += xt_hl.o 57361 obj-$(CONFIG_NETFILTER_XT_MATCH_HL) += xt_hl.o
59040diff -urNp linux-2.6.38.3/net/netfilter/nf_conntrack_netlink.c linux-2.6.38.3/net/netfilter/nf_conntrack_netlink.c 57362diff -urNp linux-2.6.38.2/net/netfilter/nf_conntrack_netlink.c linux-2.6.38.2/net/netfilter/nf_conntrack_netlink.c
59041--- linux-2.6.38.3/net/netfilter/nf_conntrack_netlink.c 2011-03-14 21:20:32.000000000 -0400 57363--- linux-2.6.38.2/net/netfilter/nf_conntrack_netlink.c 2011-03-14 21:20:32.000000000 -0400
59042+++ linux-2.6.38.3/net/netfilter/nf_conntrack_netlink.c 2011-04-17 15:57:33.000000000 -0400 57364+++ linux-2.6.38.2/net/netfilter/nf_conntrack_netlink.c 2011-03-21 18:31:35.000000000 -0400
59043@@ -761,7 +761,7 @@ static const struct nla_policy tuple_nla 57365@@ -761,7 +761,7 @@ static const struct nla_policy tuple_nla
59044 static int 57366 static int
59045 ctnetlink_parse_tuple(const struct nlattr * const cda[], 57367 ctnetlink_parse_tuple(const struct nlattr * const cda[],
@@ -59049,9 +57371,9 @@ diff -urNp linux-2.6.38.3/net/netfilter/nf_conntrack_netlink.c linux-2.6.38.3/ne
59049 { 57371 {
59050 struct nlattr *tb[CTA_TUPLE_MAX+1]; 57372 struct nlattr *tb[CTA_TUPLE_MAX+1];
59051 int err; 57373 int err;
59052diff -urNp linux-2.6.38.3/net/netfilter/xt_gradm.c linux-2.6.38.3/net/netfilter/xt_gradm.c 57374diff -urNp linux-2.6.38.2/net/netfilter/xt_gradm.c linux-2.6.38.2/net/netfilter/xt_gradm.c
59053--- linux-2.6.38.3/net/netfilter/xt_gradm.c 1969-12-31 19:00:00.000000000 -0500 57375--- linux-2.6.38.2/net/netfilter/xt_gradm.c 1969-12-31 19:00:00.000000000 -0500
59054+++ linux-2.6.38.3/net/netfilter/xt_gradm.c 2011-04-17 15:57:33.000000000 -0400 57376+++ linux-2.6.38.2/net/netfilter/xt_gradm.c 2011-03-21 18:31:35.000000000 -0400
59055@@ -0,0 +1,51 @@ 57377@@ -0,0 +1,51 @@
59056+/* 57378+/*
59057+ * gradm match for netfilter 57379+ * gradm match for netfilter
@@ -59104,9 +57426,9 @@ diff -urNp linux-2.6.38.3/net/netfilter/xt_gradm.c linux-2.6.38.3/net/netfilter/
59104+MODULE_LICENSE("GPL"); 57426+MODULE_LICENSE("GPL");
59105+MODULE_ALIAS("ipt_gradm"); 57427+MODULE_ALIAS("ipt_gradm");
59106+MODULE_ALIAS("ip6t_gradm"); 57428+MODULE_ALIAS("ip6t_gradm");
59107diff -urNp linux-2.6.38.3/net/netlink/af_netlink.c linux-2.6.38.3/net/netlink/af_netlink.c 57429diff -urNp linux-2.6.38.2/net/netlink/af_netlink.c linux-2.6.38.2/net/netlink/af_netlink.c
59108--- linux-2.6.38.3/net/netlink/af_netlink.c 2011-03-14 21:20:32.000000000 -0400 57430--- linux-2.6.38.2/net/netlink/af_netlink.c 2011-03-14 21:20:32.000000000 -0400
59109+++ linux-2.6.38.3/net/netlink/af_netlink.c 2011-04-17 15:57:33.000000000 -0400 57431+++ linux-2.6.38.2/net/netlink/af_netlink.c 2011-03-21 18:31:35.000000000 -0400
59110@@ -2001,13 +2001,21 @@ static int netlink_seq_show(struct seq_f 57432@@ -2001,13 +2001,21 @@ static int netlink_seq_show(struct seq_f
59111 struct netlink_sock *nlk = nlk_sk(s); 57433 struct netlink_sock *nlk = nlk_sk(s);
59112 57434
@@ -59129,9 +57451,9 @@ diff -urNp linux-2.6.38.3/net/netlink/af_netlink.c linux-2.6.38.3/net/netlink/af
59129 atomic_read(&s->sk_refcnt), 57451 atomic_read(&s->sk_refcnt),
59130 atomic_read(&s->sk_drops), 57452 atomic_read(&s->sk_drops),
59131 sock_i_ino(s) 57453 sock_i_ino(s)
59132diff -urNp linux-2.6.38.3/net/netrom/af_netrom.c linux-2.6.38.3/net/netrom/af_netrom.c 57454diff -urNp linux-2.6.38.2/net/netrom/af_netrom.c linux-2.6.38.2/net/netrom/af_netrom.c
59133--- linux-2.6.38.3/net/netrom/af_netrom.c 2011-03-14 21:20:32.000000000 -0400 57455--- linux-2.6.38.2/net/netrom/af_netrom.c 2011-03-14 21:20:32.000000000 -0400
59134+++ linux-2.6.38.3/net/netrom/af_netrom.c 2011-04-17 15:57:33.000000000 -0400 57456+++ linux-2.6.38.2/net/netrom/af_netrom.c 2011-03-21 18:31:35.000000000 -0400
59135@@ -840,6 +840,7 @@ static int nr_getname(struct socket *soc 57457@@ -840,6 +840,7 @@ static int nr_getname(struct socket *soc
59136 struct sock *sk = sock->sk; 57458 struct sock *sk = sock->sk;
59137 struct nr_sock *nr = nr_sk(sk); 57459 struct nr_sock *nr = nr_sk(sk);
@@ -59148,9 +57470,9 @@ diff -urNp linux-2.6.38.3/net/netrom/af_netrom.c linux-2.6.38.3/net/netrom/af_ne
59148 sax->fsa_ax25.sax25_call = nr->source_addr; 57470 sax->fsa_ax25.sax25_call = nr->source_addr;
59149 *uaddr_len = sizeof(struct sockaddr_ax25); 57471 *uaddr_len = sizeof(struct sockaddr_ax25);
59150 } 57472 }
59151diff -urNp linux-2.6.38.3/net/packet/af_packet.c linux-2.6.38.3/net/packet/af_packet.c 57473diff -urNp linux-2.6.38.2/net/packet/af_packet.c linux-2.6.38.2/net/packet/af_packet.c
59152--- linux-2.6.38.3/net/packet/af_packet.c 2011-03-14 21:20:32.000000000 -0400 57474--- linux-2.6.38.2/net/packet/af_packet.c 2011-03-14 21:20:32.000000000 -0400
59153+++ linux-2.6.38.3/net/packet/af_packet.c 2011-04-17 15:57:33.000000000 -0400 57475+++ linux-2.6.38.2/net/packet/af_packet.c 2011-03-21 18:31:35.000000000 -0400
59154@@ -2134,7 +2134,7 @@ static int packet_getsockopt(struct sock 57476@@ -2134,7 +2134,7 @@ static int packet_getsockopt(struct sock
59155 case PACKET_HDRLEN: 57477 case PACKET_HDRLEN:
59156 if (len > sizeof(int)) 57478 if (len > sizeof(int))
@@ -59181,9 +57503,9 @@ diff -urNp linux-2.6.38.3/net/packet/af_packet.c linux-2.6.38.3/net/packet/af_pa
59181 atomic_read(&s->sk_refcnt), 57503 atomic_read(&s->sk_refcnt),
59182 s->sk_type, 57504 s->sk_type,
59183 ntohs(po->num), 57505 ntohs(po->num),
59184diff -urNp linux-2.6.38.3/net/phonet/af_phonet.c linux-2.6.38.3/net/phonet/af_phonet.c 57506diff -urNp linux-2.6.38.2/net/phonet/af_phonet.c linux-2.6.38.2/net/phonet/af_phonet.c
59185--- linux-2.6.38.3/net/phonet/af_phonet.c 2011-03-14 21:20:32.000000000 -0400 57507--- linux-2.6.38.2/net/phonet/af_phonet.c 2011-03-14 21:20:32.000000000 -0400
59186+++ linux-2.6.38.3/net/phonet/af_phonet.c 2011-04-17 15:57:33.000000000 -0400 57508+++ linux-2.6.38.2/net/phonet/af_phonet.c 2011-03-21 18:31:35.000000000 -0400
59187@@ -41,7 +41,7 @@ static struct phonet_protocol *phonet_pr 57509@@ -41,7 +41,7 @@ static struct phonet_protocol *phonet_pr
59188 { 57510 {
59189 struct phonet_protocol *pp; 57511 struct phonet_protocol *pp;
@@ -59202,9 +57524,9 @@ diff -urNp linux-2.6.38.3/net/phonet/af_phonet.c linux-2.6.38.3/net/phonet/af_ph
59202 return -EINVAL; 57524 return -EINVAL;
59203 57525
59204 err = proto_register(pp->prot, 1); 57526 err = proto_register(pp->prot, 1);
59205diff -urNp linux-2.6.38.3/net/phonet/socket.c linux-2.6.38.3/net/phonet/socket.c 57527diff -urNp linux-2.6.38.2/net/phonet/socket.c linux-2.6.38.2/net/phonet/socket.c
59206--- linux-2.6.38.3/net/phonet/socket.c 2011-03-14 21:20:32.000000000 -0400 57528--- linux-2.6.38.2/net/phonet/socket.c 2011-03-14 21:20:32.000000000 -0400
59207+++ linux-2.6.38.3/net/phonet/socket.c 2011-04-17 15:57:33.000000000 -0400 57529+++ linux-2.6.38.2/net/phonet/socket.c 2011-03-21 18:31:35.000000000 -0400
59208@@ -637,7 +637,12 @@ static int pn_sock_seq_show(struct seq_f 57530@@ -637,7 +637,12 @@ static int pn_sock_seq_show(struct seq_f
59209 sk->sk_state, 57531 sk->sk_state,
59210 sk_wmem_alloc_get(sk), sk_rmem_alloc_get(sk), 57532 sk_wmem_alloc_get(sk), sk_rmem_alloc_get(sk),
@@ -59219,9 +57541,9 @@ diff -urNp linux-2.6.38.3/net/phonet/socket.c linux-2.6.38.3/net/phonet/socket.c
59219 atomic_read(&sk->sk_drops), &len); 57541 atomic_read(&sk->sk_drops), &len);
59220 } 57542 }
59221 seq_printf(seq, "%*s\n", 127 - len, ""); 57543 seq_printf(seq, "%*s\n", 127 - len, "");
59222diff -urNp linux-2.6.38.3/net/sctp/proc.c linux-2.6.38.3/net/sctp/proc.c 57544diff -urNp linux-2.6.38.2/net/sctp/proc.c linux-2.6.38.2/net/sctp/proc.c
59223--- linux-2.6.38.3/net/sctp/proc.c 2011-03-14 21:20:32.000000000 -0400 57545--- linux-2.6.38.2/net/sctp/proc.c 2011-03-14 21:20:32.000000000 -0400
59224+++ linux-2.6.38.3/net/sctp/proc.c 2011-04-17 15:57:33.000000000 -0400 57546+++ linux-2.6.38.2/net/sctp/proc.c 2011-03-21 18:31:35.000000000 -0400
59225@@ -212,7 +212,12 @@ static int sctp_eps_seq_show(struct seq_ 57547@@ -212,7 +212,12 @@ static int sctp_eps_seq_show(struct seq_
59226 sctp_for_each_hentry(epb, node, &head->chain) { 57548 sctp_for_each_hentry(epb, node, &head->chain) {
59227 ep = sctp_ep(epb); 57549 ep = sctp_ep(epb);
@@ -59250,9 +57572,9 @@ diff -urNp linux-2.6.38.3/net/sctp/proc.c linux-2.6.38.3/net/sctp/proc.c
59250 assoc->state, hash, 57572 assoc->state, hash,
59251 assoc->assoc_id, 57573 assoc->assoc_id,
59252 assoc->sndbuf_used, 57574 assoc->sndbuf_used,
59253diff -urNp linux-2.6.38.3/net/sctp/socket.c linux-2.6.38.3/net/sctp/socket.c 57575diff -urNp linux-2.6.38.2/net/sctp/socket.c linux-2.6.38.2/net/sctp/socket.c
59254--- linux-2.6.38.3/net/sctp/socket.c 2011-03-14 21:20:32.000000000 -0400 57576--- linux-2.6.38.2/net/sctp/socket.c 2011-03-14 21:20:32.000000000 -0400
59255+++ linux-2.6.38.3/net/sctp/socket.c 2011-04-17 15:57:33.000000000 -0400 57577+++ linux-2.6.38.2/net/sctp/socket.c 2011-03-21 18:31:35.000000000 -0400
59256@@ -1496,7 +1496,7 @@ SCTP_STATIC int sctp_sendmsg(struct kioc 57578@@ -1496,7 +1496,7 @@ SCTP_STATIC int sctp_sendmsg(struct kioc
59257 struct sctp_sndrcvinfo *sinfo; 57579 struct sctp_sndrcvinfo *sinfo;
59258 struct sctp_initmsg *sinit; 57580 struct sctp_initmsg *sinit;
@@ -59271,9 +57593,9 @@ diff -urNp linux-2.6.38.3/net/sctp/socket.c linux-2.6.38.3/net/sctp/socket.c
59271 return -EFAULT; 57593 return -EFAULT;
59272 to += addrlen; 57594 to += addrlen;
59273 cnt++; 57595 cnt++;
59274diff -urNp linux-2.6.38.3/net/socket.c linux-2.6.38.3/net/socket.c 57596diff -urNp linux-2.6.38.2/net/socket.c linux-2.6.38.2/net/socket.c
59275--- linux-2.6.38.3/net/socket.c 2011-04-18 17:27:16.000000000 -0400 57597--- linux-2.6.38.2/net/socket.c 2011-03-28 17:42:40.000000000 -0400
59276+++ linux-2.6.38.3/net/socket.c 2011-04-17 15:57:33.000000000 -0400 57598+++ linux-2.6.38.2/net/socket.c 2011-03-28 17:42:53.000000000 -0400
59277@@ -88,6 +88,7 @@ 57599@@ -88,6 +88,7 @@
59278 #include <linux/nsproxy.h> 57600 #include <linux/nsproxy.h>
59279 #include <linux/magic.h> 57601 #include <linux/magic.h>
@@ -59424,9 +57746,9 @@ diff -urNp linux-2.6.38.3/net/socket.c linux-2.6.38.3/net/socket.c
59424 err = 57746 err =
59425 security_socket_connect(sock, (struct sockaddr *)&address, addrlen); 57747 security_socket_connect(sock, (struct sockaddr *)&address, addrlen);
59426 if (err) 57748 if (err)
59427diff -urNp linux-2.6.38.3/net/sunrpc/sched.c linux-2.6.38.3/net/sunrpc/sched.c 57749diff -urNp linux-2.6.38.2/net/sunrpc/sched.c linux-2.6.38.2/net/sunrpc/sched.c
59428--- linux-2.6.38.3/net/sunrpc/sched.c 2011-04-18 17:27:14.000000000 -0400 57750--- linux-2.6.38.2/net/sunrpc/sched.c 2011-03-23 17:20:08.000000000 -0400
59429+++ linux-2.6.38.3/net/sunrpc/sched.c 2011-04-17 15:57:33.000000000 -0400 57751+++ linux-2.6.38.2/net/sunrpc/sched.c 2011-03-23 17:21:51.000000000 -0400
59430@@ -234,9 +234,9 @@ static int rpc_wait_bit_killable(void *w 57752@@ -234,9 +234,9 @@ static int rpc_wait_bit_killable(void *w
59431 #ifdef RPC_DEBUG 57753 #ifdef RPC_DEBUG
59432 static void rpc_task_set_debuginfo(struct rpc_task *task) 57754 static void rpc_task_set_debuginfo(struct rpc_task *task)
@@ -59439,9 +57761,9 @@ diff -urNp linux-2.6.38.3/net/sunrpc/sched.c linux-2.6.38.3/net/sunrpc/sched.c
59439 } 57761 }
59440 #else 57762 #else
59441 static inline void rpc_task_set_debuginfo(struct rpc_task *task) 57763 static inline void rpc_task_set_debuginfo(struct rpc_task *task)
59442diff -urNp linux-2.6.38.3/net/sunrpc/xprtrdma/svc_rdma.c linux-2.6.38.3/net/sunrpc/xprtrdma/svc_rdma.c 57764diff -urNp linux-2.6.38.2/net/sunrpc/xprtrdma/svc_rdma.c linux-2.6.38.2/net/sunrpc/xprtrdma/svc_rdma.c
59443--- linux-2.6.38.3/net/sunrpc/xprtrdma/svc_rdma.c 2011-03-14 21:20:32.000000000 -0400 57765--- linux-2.6.38.2/net/sunrpc/xprtrdma/svc_rdma.c 2011-03-14 21:20:32.000000000 -0400
59444+++ linux-2.6.38.3/net/sunrpc/xprtrdma/svc_rdma.c 2011-04-17 15:57:33.000000000 -0400 57766+++ linux-2.6.38.2/net/sunrpc/xprtrdma/svc_rdma.c 2011-03-21 18:31:35.000000000 -0400
59445@@ -109,7 +109,7 @@ static int read_reset_stat(ctl_table *ta 57767@@ -109,7 +109,7 @@ static int read_reset_stat(ctl_table *ta
59446 len -= *ppos; 57768 len -= *ppos;
59447 if (len > *lenp) 57769 if (len > *lenp)
@@ -59451,9 +57773,9 @@ diff -urNp linux-2.6.38.3/net/sunrpc/xprtrdma/svc_rdma.c linux-2.6.38.3/net/sunr
59451 return -EFAULT; 57773 return -EFAULT;
59452 *lenp = len; 57774 *lenp = len;
59453 *ppos += len; 57775 *ppos += len;
59454diff -urNp linux-2.6.38.3/net/sysctl_net.c linux-2.6.38.3/net/sysctl_net.c 57776diff -urNp linux-2.6.38.2/net/sysctl_net.c linux-2.6.38.2/net/sysctl_net.c
59455--- linux-2.6.38.3/net/sysctl_net.c 2011-03-14 21:20:32.000000000 -0400 57777--- linux-2.6.38.2/net/sysctl_net.c 2011-03-14 21:20:32.000000000 -0400
59456+++ linux-2.6.38.3/net/sysctl_net.c 2011-04-17 15:57:33.000000000 -0400 57778+++ linux-2.6.38.2/net/sysctl_net.c 2011-03-21 18:31:35.000000000 -0400
59457@@ -46,7 +46,7 @@ static int net_ctl_permissions(struct ct 57779@@ -46,7 +46,7 @@ static int net_ctl_permissions(struct ct
59458 struct ctl_table *table) 57780 struct ctl_table *table)
59459 { 57781 {
@@ -59463,9 +57785,9 @@ diff -urNp linux-2.6.38.3/net/sysctl_net.c linux-2.6.38.3/net/sysctl_net.c
59463 int mode = (table->mode >> 6) & 7; 57785 int mode = (table->mode >> 6) & 7;
59464 return (mode << 6) | (mode << 3) | mode; 57786 return (mode << 6) | (mode << 3) | mode;
59465 } 57787 }
59466diff -urNp linux-2.6.38.3/net/tipc/socket.c linux-2.6.38.3/net/tipc/socket.c 57788diff -urNp linux-2.6.38.2/net/tipc/socket.c linux-2.6.38.2/net/tipc/socket.c
59467--- linux-2.6.38.3/net/tipc/socket.c 2011-03-14 21:20:32.000000000 -0400 57789--- linux-2.6.38.2/net/tipc/socket.c 2011-03-14 21:20:32.000000000 -0400
59468+++ linux-2.6.38.3/net/tipc/socket.c 2011-04-17 15:57:33.000000000 -0400 57790+++ linux-2.6.38.2/net/tipc/socket.c 2011-03-21 18:31:35.000000000 -0400
59469@@ -1447,8 +1447,9 @@ static int connect(struct socket *sock, 57791@@ -1447,8 +1447,9 @@ static int connect(struct socket *sock,
59470 } else { 57792 } else {
59471 if (res == 0) 57793 if (res == 0)
@@ -59478,9 +57800,9 @@ diff -urNp linux-2.6.38.3/net/tipc/socket.c linux-2.6.38.3/net/tipc/socket.c
59478 sock->state = SS_DISCONNECTING; 57800 sock->state = SS_DISCONNECTING;
59479 } 57801 }
59480 57802
59481diff -urNp linux-2.6.38.3/net/unix/af_unix.c linux-2.6.38.3/net/unix/af_unix.c 57803diff -urNp linux-2.6.38.2/net/unix/af_unix.c linux-2.6.38.2/net/unix/af_unix.c
59482--- linux-2.6.38.3/net/unix/af_unix.c 2011-03-14 21:20:32.000000000 -0400 57804--- linux-2.6.38.2/net/unix/af_unix.c 2011-03-14 21:20:32.000000000 -0400
59483+++ linux-2.6.38.3/net/unix/af_unix.c 2011-04-17 15:57:33.000000000 -0400 57805+++ linux-2.6.38.2/net/unix/af_unix.c 2011-03-21 18:31:35.000000000 -0400
59484@@ -765,6 +765,12 @@ static struct sock *unix_find_other(stru 57806@@ -765,6 +765,12 @@ static struct sock *unix_find_other(stru
59485 err = -ECONNREFUSED; 57807 err = -ECONNREFUSED;
59486 if (!S_ISSOCK(inode->i_mode)) 57808 if (!S_ISSOCK(inode->i_mode))
@@ -59551,9 +57873,9 @@ diff -urNp linux-2.6.38.3/net/unix/af_unix.c linux-2.6.38.3/net/unix/af_unix.c
59551 atomic_read(&s->sk_refcnt), 57873 atomic_read(&s->sk_refcnt),
59552 0, 57874 0,
59553 s->sk_state == TCP_LISTEN ? __SO_ACCEPTCON : 0, 57875 s->sk_state == TCP_LISTEN ? __SO_ACCEPTCON : 0,
59554diff -urNp linux-2.6.38.3/net/wireless/reg.c linux-2.6.38.3/net/wireless/reg.c 57876diff -urNp linux-2.6.38.2/net/wireless/reg.c linux-2.6.38.2/net/wireless/reg.c
59555--- linux-2.6.38.3/net/wireless/reg.c 2011-03-14 21:20:32.000000000 -0400 57877--- linux-2.6.38.2/net/wireless/reg.c 2011-03-14 21:20:32.000000000 -0400
59556+++ linux-2.6.38.3/net/wireless/reg.c 2011-04-17 15:57:33.000000000 -0400 57878+++ linux-2.6.38.2/net/wireless/reg.c 2011-03-21 18:31:35.000000000 -0400
59557@@ -54,7 +54,7 @@ 57879@@ -54,7 +54,7 @@
59558 printk(KERN_DEBUG pr_fmt(format), ##args); \ 57880 printk(KERN_DEBUG pr_fmt(format), ##args); \
59559 } while (0) 57881 } while (0)
@@ -59563,9 +57885,9 @@ diff -urNp linux-2.6.38.3/net/wireless/reg.c linux-2.6.38.3/net/wireless/reg.c
59563 #endif 57885 #endif
59564 57886
59565 /* Receipt of information from last regulatory request */ 57887 /* Receipt of information from last regulatory request */
59566diff -urNp linux-2.6.38.3/net/wireless/wext-core.c linux-2.6.38.3/net/wireless/wext-core.c 57888diff -urNp linux-2.6.38.2/net/wireless/wext-core.c linux-2.6.38.2/net/wireless/wext-core.c
59567--- linux-2.6.38.3/net/wireless/wext-core.c 2011-03-14 21:20:32.000000000 -0400 57889--- linux-2.6.38.2/net/wireless/wext-core.c 2011-03-14 21:20:32.000000000 -0400
59568+++ linux-2.6.38.3/net/wireless/wext-core.c 2011-04-17 15:57:33.000000000 -0400 57890+++ linux-2.6.38.2/net/wireless/wext-core.c 2011-03-21 18:31:35.000000000 -0400
59569@@ -746,8 +746,7 @@ static int ioctl_standard_iw_point(struc 57891@@ -746,8 +746,7 @@ static int ioctl_standard_iw_point(struc
59570 */ 57892 */
59571 57893
@@ -59599,9 +57921,9 @@ diff -urNp linux-2.6.38.3/net/wireless/wext-core.c linux-2.6.38.3/net/wireless/w
59599 err = handler(dev, info, (union iwreq_data *) iwp, extra); 57921 err = handler(dev, info, (union iwreq_data *) iwp, extra);
59600 57922
59601 iwp->length += essid_compat; 57923 iwp->length += essid_compat;
59602diff -urNp linux-2.6.38.3/net/x25/x25_facilities.c linux-2.6.38.3/net/x25/x25_facilities.c 57924diff -urNp linux-2.6.38.2/net/x25/x25_facilities.c linux-2.6.38.2/net/x25/x25_facilities.c
59603--- linux-2.6.38.3/net/x25/x25_facilities.c 2011-03-14 21:20:32.000000000 -0400 57925--- linux-2.6.38.2/net/x25/x25_facilities.c 2011-03-14 21:20:32.000000000 -0400
59604+++ linux-2.6.38.3/net/x25/x25_facilities.c 2011-04-17 15:57:33.000000000 -0400 57926+++ linux-2.6.38.2/net/x25/x25_facilities.c 2011-03-21 18:31:35.000000000 -0400
59605@@ -167,7 +167,8 @@ int x25_parse_facilities(struct sk_buff 57927@@ -167,7 +167,8 @@ int x25_parse_facilities(struct sk_buff
59606 break; 57928 break;
59607 default: 57929 default:
@@ -59612,9 +57934,9 @@ diff -urNp linux-2.6.38.3/net/x25/x25_facilities.c linux-2.6.38.3/net/x25/x25_fa
59612 break; 57934 break;
59613 } 57935 }
59614 len -= p[1] + 2; 57936 len -= p[1] + 2;
59615diff -urNp linux-2.6.38.3/net/xfrm/xfrm_policy.c linux-2.6.38.3/net/xfrm/xfrm_policy.c 57937diff -urNp linux-2.6.38.2/net/xfrm/xfrm_policy.c linux-2.6.38.2/net/xfrm/xfrm_policy.c
59616--- linux-2.6.38.3/net/xfrm/xfrm_policy.c 2011-03-14 21:20:32.000000000 -0400 57938--- linux-2.6.38.2/net/xfrm/xfrm_policy.c 2011-03-14 21:20:32.000000000 -0400
59617+++ linux-2.6.38.3/net/xfrm/xfrm_policy.c 2011-04-17 15:57:33.000000000 -0400 57939+++ linux-2.6.38.2/net/xfrm/xfrm_policy.c 2011-03-21 18:31:35.000000000 -0400
59618@@ -1507,7 +1507,7 @@ free_dst: 57940@@ -1507,7 +1507,7 @@ free_dst:
59619 goto out; 57941 goto out;
59620 } 57942 }
@@ -59642,9 +57964,9 @@ diff -urNp linux-2.6.38.3/net/xfrm/xfrm_policy.c linux-2.6.38.3/net/xfrm/xfrm_po
59642 xfrm_dst_update_origin(struct dst_entry *dst, struct flowi *fl) 57964 xfrm_dst_update_origin(struct dst_entry *dst, struct flowi *fl)
59643 { 57965 {
59644 #ifdef CONFIG_XFRM_SUB_POLICY 57966 #ifdef CONFIG_XFRM_SUB_POLICY
59645diff -urNp linux-2.6.38.3/scripts/basic/fixdep.c linux-2.6.38.3/scripts/basic/fixdep.c 57967diff -urNp linux-2.6.38.2/scripts/basic/fixdep.c linux-2.6.38.2/scripts/basic/fixdep.c
59646--- linux-2.6.38.3/scripts/basic/fixdep.c 2011-03-14 21:20:32.000000000 -0400 57968--- linux-2.6.38.2/scripts/basic/fixdep.c 2011-03-14 21:20:32.000000000 -0400
59647+++ linux-2.6.38.3/scripts/basic/fixdep.c 2011-04-17 15:57:33.000000000 -0400 57969+++ linux-2.6.38.2/scripts/basic/fixdep.c 2011-03-21 18:31:35.000000000 -0400
59648@@ -235,9 +235,9 @@ static void use_config(const char *m, in 57970@@ -235,9 +235,9 @@ static void use_config(const char *m, in
59649 57971
59650 static void parse_config_file(const char *map, size_t len) 57972 static void parse_config_file(const char *map, size_t len)
@@ -59666,9 +57988,9 @@ diff -urNp linux-2.6.38.3/scripts/basic/fixdep.c linux-2.6.38.3/scripts/basic/fi
59666 57988
59667 if (*p != INT_CONF) { 57989 if (*p != INT_CONF) {
59668 fprintf(stderr, "fixdep: sizeof(int) != 4 or wrong endianess? %#x\n", 57990 fprintf(stderr, "fixdep: sizeof(int) != 4 or wrong endianess? %#x\n",
59669diff -urNp linux-2.6.38.3/scripts/kallsyms.c linux-2.6.38.3/scripts/kallsyms.c 57991diff -urNp linux-2.6.38.2/scripts/kallsyms.c linux-2.6.38.2/scripts/kallsyms.c
59670--- linux-2.6.38.3/scripts/kallsyms.c 2011-03-14 21:20:32.000000000 -0400 57992--- linux-2.6.38.2/scripts/kallsyms.c 2011-03-14 21:20:32.000000000 -0400
59671+++ linux-2.6.38.3/scripts/kallsyms.c 2011-04-17 15:57:33.000000000 -0400 57993+++ linux-2.6.38.2/scripts/kallsyms.c 2011-03-21 18:31:35.000000000 -0400
59672@@ -43,10 +43,10 @@ struct text_range { 57994@@ -43,10 +43,10 @@ struct text_range {
59673 57995
59674 static unsigned long long _text; 57996 static unsigned long long _text;
@@ -59684,9 +58006,9 @@ diff -urNp linux-2.6.38.3/scripts/kallsyms.c linux-2.6.38.3/scripts/kallsyms.c
59684 }; 58006 };
59685 #define text_range_text (&text_ranges[0]) 58007 #define text_range_text (&text_ranges[0])
59686 #define text_range_inittext (&text_ranges[1]) 58008 #define text_range_inittext (&text_ranges[1])
59687diff -urNp linux-2.6.38.3/scripts/mod/file2alias.c linux-2.6.38.3/scripts/mod/file2alias.c 58009diff -urNp linux-2.6.38.2/scripts/mod/file2alias.c linux-2.6.38.2/scripts/mod/file2alias.c
59688--- linux-2.6.38.3/scripts/mod/file2alias.c 2011-03-14 21:20:32.000000000 -0400 58010--- linux-2.6.38.2/scripts/mod/file2alias.c 2011-03-14 21:20:32.000000000 -0400
59689+++ linux-2.6.38.3/scripts/mod/file2alias.c 2011-04-17 15:57:33.000000000 -0400 58011+++ linux-2.6.38.2/scripts/mod/file2alias.c 2011-03-21 18:31:35.000000000 -0400
59690@@ -72,7 +72,7 @@ static void device_id_check(const char * 58012@@ -72,7 +72,7 @@ static void device_id_check(const char *
59691 unsigned long size, unsigned long id_size, 58013 unsigned long size, unsigned long id_size,
59692 void *symval) 58014 void *symval)
@@ -59741,9 +58063,9 @@ diff -urNp linux-2.6.38.3/scripts/mod/file2alias.c linux-2.6.38.3/scripts/mod/fi
59741 58063
59742 sprintf(alias, "dmi*"); 58064 sprintf(alias, "dmi*");
59743 58065
59744diff -urNp linux-2.6.38.3/scripts/mod/modpost.c linux-2.6.38.3/scripts/mod/modpost.c 58066diff -urNp linux-2.6.38.2/scripts/mod/modpost.c linux-2.6.38.2/scripts/mod/modpost.c
59745--- linux-2.6.38.3/scripts/mod/modpost.c 2011-03-14 21:20:32.000000000 -0400 58067--- linux-2.6.38.2/scripts/mod/modpost.c 2011-03-14 21:20:32.000000000 -0400
59746+++ linux-2.6.38.3/scripts/mod/modpost.c 2011-04-17 15:57:33.000000000 -0400 58068+++ linux-2.6.38.2/scripts/mod/modpost.c 2011-03-21 18:31:35.000000000 -0400
59747@@ -896,6 +896,7 @@ enum mismatch { 58069@@ -896,6 +896,7 @@ enum mismatch {
59748 ANY_INIT_TO_ANY_EXIT, 58070 ANY_INIT_TO_ANY_EXIT,
59749 ANY_EXIT_TO_ANY_INIT, 58071 ANY_EXIT_TO_ANY_INIT,
@@ -59811,9 +58133,9 @@ diff -urNp linux-2.6.38.3/scripts/mod/modpost.c linux-2.6.38.3/scripts/mod/modpo
59811 goto close_write; 58133 goto close_write;
59812 58134
59813 tmp = NOFAIL(malloc(b->pos)); 58135 tmp = NOFAIL(malloc(b->pos));
59814diff -urNp linux-2.6.38.3/scripts/mod/modpost.h linux-2.6.38.3/scripts/mod/modpost.h 58136diff -urNp linux-2.6.38.2/scripts/mod/modpost.h linux-2.6.38.2/scripts/mod/modpost.h
59815--- linux-2.6.38.3/scripts/mod/modpost.h 2011-03-14 21:20:32.000000000 -0400 58137--- linux-2.6.38.2/scripts/mod/modpost.h 2011-03-14 21:20:32.000000000 -0400
59816+++ linux-2.6.38.3/scripts/mod/modpost.h 2011-04-17 15:57:33.000000000 -0400 58138+++ linux-2.6.38.2/scripts/mod/modpost.h 2011-03-21 18:31:35.000000000 -0400
59817@@ -92,15 +92,15 @@ void *do_nofail(void *ptr, const char *e 58139@@ -92,15 +92,15 @@ void *do_nofail(void *ptr, const char *e
59818 58140
59819 struct buffer { 58141 struct buffer {
@@ -59833,9 +58155,9 @@ diff -urNp linux-2.6.38.3/scripts/mod/modpost.h linux-2.6.38.3/scripts/mod/modpo
59833 58155
59834 struct module { 58156 struct module {
59835 struct module *next; 58157 struct module *next;
59836diff -urNp linux-2.6.38.3/scripts/mod/sumversion.c linux-2.6.38.3/scripts/mod/sumversion.c 58158diff -urNp linux-2.6.38.2/scripts/mod/sumversion.c linux-2.6.38.2/scripts/mod/sumversion.c
59837--- linux-2.6.38.3/scripts/mod/sumversion.c 2011-03-14 21:20:32.000000000 -0400 58159--- linux-2.6.38.2/scripts/mod/sumversion.c 2011-03-14 21:20:32.000000000 -0400
59838+++ linux-2.6.38.3/scripts/mod/sumversion.c 2011-04-17 15:57:33.000000000 -0400 58160+++ linux-2.6.38.2/scripts/mod/sumversion.c 2011-03-21 18:31:35.000000000 -0400
59839@@ -470,7 +470,7 @@ static void write_version(const char *fi 58161@@ -470,7 +470,7 @@ static void write_version(const char *fi
59840 goto out; 58162 goto out;
59841 } 58163 }
@@ -59845,9 +58167,9 @@ diff -urNp linux-2.6.38.3/scripts/mod/sumversion.c linux-2.6.38.3/scripts/mod/su
59845 warn("writing sum in %s failed: %s\n", 58167 warn("writing sum in %s failed: %s\n",
59846 filename, strerror(errno)); 58168 filename, strerror(errno));
59847 goto out; 58169 goto out;
59848diff -urNp linux-2.6.38.3/scripts/pnmtologo.c linux-2.6.38.3/scripts/pnmtologo.c 58170diff -urNp linux-2.6.38.2/scripts/pnmtologo.c linux-2.6.38.2/scripts/pnmtologo.c
59849--- linux-2.6.38.3/scripts/pnmtologo.c 2011-03-14 21:20:32.000000000 -0400 58171--- linux-2.6.38.2/scripts/pnmtologo.c 2011-03-14 21:20:32.000000000 -0400
59850+++ linux-2.6.38.3/scripts/pnmtologo.c 2011-04-17 15:57:33.000000000 -0400 58172+++ linux-2.6.38.2/scripts/pnmtologo.c 2011-03-21 18:31:35.000000000 -0400
59851@@ -237,14 +237,14 @@ static void write_header(void) 58173@@ -237,14 +237,14 @@ static void write_header(void)
59852 fprintf(out, " * Linux logo %s\n", logoname); 58174 fprintf(out, " * Linux logo %s\n", logoname);
59853 fputs(" */\n\n", out); 58175 fputs(" */\n\n", out);
@@ -59874,9 +58196,9 @@ diff -urNp linux-2.6.38.3/scripts/pnmtologo.c linux-2.6.38.3/scripts/pnmtologo.c
59874 logoname); 58196 logoname);
59875 write_hex_cnt = 0; 58197 write_hex_cnt = 0;
59876 for (i = 0; i < logo_clutsize; i++) { 58198 for (i = 0; i < logo_clutsize; i++) {
59877diff -urNp linux-2.6.38.3/security/apparmor/lsm.c linux-2.6.38.3/security/apparmor/lsm.c 58199diff -urNp linux-2.6.38.2/security/apparmor/lsm.c linux-2.6.38.2/security/apparmor/lsm.c
59878--- linux-2.6.38.3/security/apparmor/lsm.c 2011-03-14 21:20:32.000000000 -0400 58200--- linux-2.6.38.2/security/apparmor/lsm.c 2011-03-14 21:20:32.000000000 -0400
59879+++ linux-2.6.38.3/security/apparmor/lsm.c 2011-04-17 15:57:33.000000000 -0400 58201+++ linux-2.6.38.2/security/apparmor/lsm.c 2011-03-21 18:31:35.000000000 -0400
59880@@ -619,7 +619,7 @@ static int apparmor_task_setrlimit(struc 58202@@ -619,7 +619,7 @@ static int apparmor_task_setrlimit(struc
59881 return error; 58203 return error;
59882 } 58204 }
@@ -59886,9 +58208,9 @@ diff -urNp linux-2.6.38.3/security/apparmor/lsm.c linux-2.6.38.3/security/apparm
59886 .name = "apparmor", 58208 .name = "apparmor",
59887 58209
59888 .ptrace_access_check = apparmor_ptrace_access_check, 58210 .ptrace_access_check = apparmor_ptrace_access_check,
59889diff -urNp linux-2.6.38.3/security/commoncap.c linux-2.6.38.3/security/commoncap.c 58211diff -urNp linux-2.6.38.2/security/commoncap.c linux-2.6.38.2/security/commoncap.c
59890--- linux-2.6.38.3/security/commoncap.c 2011-03-14 21:20:32.000000000 -0400 58212--- linux-2.6.38.2/security/commoncap.c 2011-03-14 21:20:32.000000000 -0400
59891+++ linux-2.6.38.3/security/commoncap.c 2011-04-17 15:57:33.000000000 -0400 58213+++ linux-2.6.38.2/security/commoncap.c 2011-03-21 18:31:35.000000000 -0400
59892@@ -27,6 +27,7 @@ 58214@@ -27,6 +27,7 @@
59893 #include <linux/sched.h> 58215 #include <linux/sched.h>
59894 #include <linux/prctl.h> 58216 #include <linux/prctl.h>
@@ -59920,9 +58242,9 @@ diff -urNp linux-2.6.38.3/security/commoncap.c linux-2.6.38.3/security/commoncap
59920 if (cred->uid != 0) { 58242 if (cred->uid != 0) {
59921 if (bprm->cap_effective) 58243 if (bprm->cap_effective)
59922 return 1; 58244 return 1;
59923diff -urNp linux-2.6.38.3/security/integrity/ima/ima_api.c linux-2.6.38.3/security/integrity/ima/ima_api.c 58245diff -urNp linux-2.6.38.2/security/integrity/ima/ima_api.c linux-2.6.38.2/security/integrity/ima/ima_api.c
59924--- linux-2.6.38.3/security/integrity/ima/ima_api.c 2011-03-14 21:20:32.000000000 -0400 58246--- linux-2.6.38.2/security/integrity/ima/ima_api.c 2011-03-14 21:20:32.000000000 -0400
59925+++ linux-2.6.38.3/security/integrity/ima/ima_api.c 2011-04-17 15:57:33.000000000 -0400 58247+++ linux-2.6.38.2/security/integrity/ima/ima_api.c 2011-03-21 18:31:35.000000000 -0400
59926@@ -75,7 +75,7 @@ void ima_add_violation(struct inode *ino 58248@@ -75,7 +75,7 @@ void ima_add_violation(struct inode *ino
59927 int result; 58249 int result;
59928 58250
@@ -59932,9 +58254,9 @@ diff -urNp linux-2.6.38.3/security/integrity/ima/ima_api.c linux-2.6.38.3/securi
59932 58254
59933 entry = kmalloc(sizeof(*entry), GFP_KERNEL); 58255 entry = kmalloc(sizeof(*entry), GFP_KERNEL);
59934 if (!entry) { 58256 if (!entry) {
59935diff -urNp linux-2.6.38.3/security/integrity/ima/ima_fs.c linux-2.6.38.3/security/integrity/ima/ima_fs.c 58257diff -urNp linux-2.6.38.2/security/integrity/ima/ima_fs.c linux-2.6.38.2/security/integrity/ima/ima_fs.c
59936--- linux-2.6.38.3/security/integrity/ima/ima_fs.c 2011-03-14 21:20:32.000000000 -0400 58258--- linux-2.6.38.2/security/integrity/ima/ima_fs.c 2011-03-14 21:20:32.000000000 -0400
59937+++ linux-2.6.38.3/security/integrity/ima/ima_fs.c 2011-04-17 15:57:33.000000000 -0400 58259+++ linux-2.6.38.2/security/integrity/ima/ima_fs.c 2011-03-21 18:31:35.000000000 -0400
59938@@ -28,12 +28,12 @@ 58260@@ -28,12 +28,12 @@
59939 static int valid_policy = 1; 58261 static int valid_policy = 1;
59940 #define TMPBUFLEN 12 58262 #define TMPBUFLEN 12
@@ -59950,9 +58272,9 @@ diff -urNp linux-2.6.38.3/security/integrity/ima/ima_fs.c linux-2.6.38.3/securit
59950 return simple_read_from_buffer(buf, count, ppos, tmpbuf, len); 58272 return simple_read_from_buffer(buf, count, ppos, tmpbuf, len);
59951 } 58273 }
59952 58274
59953diff -urNp linux-2.6.38.3/security/integrity/ima/ima.h linux-2.6.38.3/security/integrity/ima/ima.h 58275diff -urNp linux-2.6.38.2/security/integrity/ima/ima.h linux-2.6.38.2/security/integrity/ima/ima.h
59954--- linux-2.6.38.3/security/integrity/ima/ima.h 2011-03-14 21:20:32.000000000 -0400 58276--- linux-2.6.38.2/security/integrity/ima/ima.h 2011-03-14 21:20:32.000000000 -0400
59955+++ linux-2.6.38.3/security/integrity/ima/ima.h 2011-04-17 15:57:33.000000000 -0400 58277+++ linux-2.6.38.2/security/integrity/ima/ima.h 2011-03-21 18:31:35.000000000 -0400
59956@@ -85,8 +85,8 @@ void ima_add_violation(struct inode *ino 58278@@ -85,8 +85,8 @@ void ima_add_violation(struct inode *ino
59957 extern spinlock_t ima_queue_lock; 58279 extern spinlock_t ima_queue_lock;
59958 58280
@@ -59964,9 +58286,9 @@ diff -urNp linux-2.6.38.3/security/integrity/ima/ima.h linux-2.6.38.3/security/i
59964 struct hlist_head queue[IMA_MEASURE_HTABLE_SIZE]; 58286 struct hlist_head queue[IMA_MEASURE_HTABLE_SIZE];
59965 }; 58287 };
59966 extern struct ima_h_table ima_htable; 58288 extern struct ima_h_table ima_htable;
59967diff -urNp linux-2.6.38.3/security/integrity/ima/ima_queue.c linux-2.6.38.3/security/integrity/ima/ima_queue.c 58289diff -urNp linux-2.6.38.2/security/integrity/ima/ima_queue.c linux-2.6.38.2/security/integrity/ima/ima_queue.c
59968--- linux-2.6.38.3/security/integrity/ima/ima_queue.c 2011-03-14 21:20:32.000000000 -0400 58290--- linux-2.6.38.2/security/integrity/ima/ima_queue.c 2011-03-14 21:20:32.000000000 -0400
59969+++ linux-2.6.38.3/security/integrity/ima/ima_queue.c 2011-04-17 15:57:33.000000000 -0400 58291+++ linux-2.6.38.2/security/integrity/ima/ima_queue.c 2011-03-21 18:31:35.000000000 -0400
59970@@ -79,7 +79,7 @@ static int ima_add_digest_entry(struct i 58292@@ -79,7 +79,7 @@ static int ima_add_digest_entry(struct i
59971 INIT_LIST_HEAD(&qe->later); 58293 INIT_LIST_HEAD(&qe->later);
59972 list_add_tail_rcu(&qe->later, &ima_measurements); 58294 list_add_tail_rcu(&qe->later, &ima_measurements);
@@ -59976,9 +58298,9 @@ diff -urNp linux-2.6.38.3/security/integrity/ima/ima_queue.c linux-2.6.38.3/secu
59976 key = ima_hash_key(entry->digest); 58298 key = ima_hash_key(entry->digest);
59977 hlist_add_head_rcu(&qe->hnext, &ima_htable.queue[key]); 58299 hlist_add_head_rcu(&qe->hnext, &ima_htable.queue[key]);
59978 return 0; 58300 return 0;
59979diff -urNp linux-2.6.38.3/security/Kconfig linux-2.6.38.3/security/Kconfig 58301diff -urNp linux-2.6.38.2/security/Kconfig linux-2.6.38.2/security/Kconfig
59980--- linux-2.6.38.3/security/Kconfig 2011-03-14 21:20:32.000000000 -0400 58302--- linux-2.6.38.2/security/Kconfig 2011-03-14 21:20:32.000000000 -0400
59981+++ linux-2.6.38.3/security/Kconfig 2011-04-17 15:57:33.000000000 -0400 58303+++ linux-2.6.38.2/security/Kconfig 2011-03-21 18:31:35.000000000 -0400
59982@@ -4,6 +4,527 @@ 58304@@ -4,6 +4,527 @@
59983 58305
59984 menu "Security options" 58306 menu "Security options"
@@ -60038,6 +58360,10 @@ diff -urNp linux-2.6.38.3/security/Kconfig linux-2.6.38.3/security/Kconfig
60038+ know about the non-standard use of the ELF header) therefore it 58360+ know about the non-standard use of the ELF header) therefore it
60039+ has been deprecated in favour of PT_PAX_FLAGS support. 58361+ has been deprecated in favour of PT_PAX_FLAGS support.
60040+ 58362+
58363+ If you have applications not marked by the PT_PAX_FLAGS ELF
58364+ program header then you MUST enable this option otherwise they
58365+ will not get any protection.
58366+
60041+ Note that if you enable PT_PAX_FLAGS marking support as well, 58367+ Note that if you enable PT_PAX_FLAGS marking support as well,
60042+ the PT_PAX_FLAG marks will override the legacy EI_PAX marks. 58368+ the PT_PAX_FLAG marks will override the legacy EI_PAX marks.
60043+ 58369+
@@ -60052,8 +58378,9 @@ diff -urNp linux-2.6.38.3/security/Kconfig linux-2.6.38.3/security/Kconfig
60052+ integrated into the toolchain (the binutils patch is available 58378+ integrated into the toolchain (the binutils patch is available
60053+ from http://pax.grsecurity.net). 58379+ from http://pax.grsecurity.net).
60054+ 58380+
60055+ If your toolchain does not support PT_PAX_FLAGS markings, 58381+ If you have applications not marked by the PT_PAX_FLAGS ELF
60056+ you can create one in most cases with 'paxctl -C'. 58382+ program header then you MUST enable the EI_PAX marking support
58383+ otherwise they will not get any protection.
60057+ 58384+
60058+ Note that if you enable the legacy EI_PAX marking support as well, 58385+ Note that if you enable the legacy EI_PAX marking support as well,
60059+ the EI_PAX marks will be overridden by the PT_PAX_FLAGS marks. 58386+ the EI_PAX marks will be overridden by the PT_PAX_FLAGS marks.
@@ -60362,7 +58689,7 @@ diff -urNp linux-2.6.38.3/security/Kconfig linux-2.6.38.3/security/Kconfig
60362+ 58689+
60363+config PAX_RANDKSTACK 58690+config PAX_RANDKSTACK
60364+ bool "Randomize kernel stack base" 58691+ bool "Randomize kernel stack base"
60365+ depends on PAX_ASLR && X86_TSC && X86 58692+ depends on PAX_ASLR && X86_TSC && X86_32
60366+ help 58693+ help
60367+ By saying Y here the kernel will randomize every task's kernel 58694+ By saying Y here the kernel will randomize every task's kernel
60368+ stack on every system call. This will not only force an attacker 58695+ stack on every system call. This will not only force an attacker
@@ -60472,9 +58799,9 @@ diff -urNp linux-2.6.38.3/security/Kconfig linux-2.6.38.3/security/Kconfig
60472+ this feature. 58799+ this feature.
60473+ 58800+
60474+config PAX_USERCOPY 58801+config PAX_USERCOPY
60475+ bool "Harden heap object copies between kernel and userland" 58802+ bool "Bounds check heap object copies between kernel and userland"
60476+ depends on X86 || PPC || SPARC 58803+ depends on X86 || PPC || SPARC
60477+ depends on GRKERNSEC && (SLAB || SLUB) 58804+ depends on GRKERNSEC && (SLAB || SLUB || SLOB)
60478+ help 58805+ help
60479+ By saying Y here the kernel will enforce the size of heap objects 58806+ By saying Y here the kernel will enforce the size of heap objects
60480+ when they are copied in either direction between the kernel and 58807+ when they are copied in either direction between the kernel and
@@ -60485,13 +58812,8 @@ diff -urNp linux-2.6.38.3/security/Kconfig linux-2.6.38.3/security/Kconfig
60485+ object is otherwise fully initialized) and prevents kernel heap 58812+ object is otherwise fully initialized) and prevents kernel heap
60486+ overflows during userland to kernel copies. 58813+ overflows during userland to kernel copies.
60487+ 58814+
60488+ Note that the current implementation provides the strictest bounds 58815+ Note that the current implementation provides the strictest checks
60489+ checks for the SLUB allocator. 58816+ 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.
60495+ 58817+
60496+ If frame pointers are enabled on x86, this option will also restrict 58818+ If frame pointers are enabled on x86, this option will also restrict
60497+ copies into and out of the kernel stack to local variables within a 58819+ copies into and out of the kernel stack to local variables within a
@@ -60516,31 +58838,9 @@ diff -urNp linux-2.6.38.3/security/Kconfig linux-2.6.38.3/security/Kconfig
60516 help 58838 help
60517 This is the portion of low virtual memory which should be protected 58839 This is the portion of low virtual memory which should be protected
60518 from userspace allocation. Keeping a user from writing to low pages 58840 from userspace allocation. Keeping a user from writing to low pages
60519diff -urNp linux-2.6.38.3/security/keys/keyring.c linux-2.6.38.3/security/keys/keyring.c 58841diff -urNp linux-2.6.38.2/security/min_addr.c linux-2.6.38.2/security/min_addr.c
60520--- linux-2.6.38.3/security/keys/keyring.c 2011-03-14 21:20:32.000000000 -0400 58842--- linux-2.6.38.2/security/min_addr.c 2011-03-14 21:20:32.000000000 -0400
60521+++ linux-2.6.38.3/security/keys/keyring.c 2011-04-18 22:03:12.000000000 -0400 58843+++ linux-2.6.38.2/security/min_addr.c 2011-03-21 18:31:35.000000000 -0400
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
60544@@ -14,6 +14,7 @@ unsigned long dac_mmap_min_addr = CONFIG 58844@@ -14,6 +14,7 @@ unsigned long dac_mmap_min_addr = CONFIG
60545 */ 58845 */
60546 static void update_mmap_min_addr(void) 58846 static void update_mmap_min_addr(void)
@@ -60557,9 +58857,9 @@ diff -urNp linux-2.6.38.3/security/min_addr.c linux-2.6.38.3/security/min_addr.c
60557 } 58857 }
60558 58858
60559 /* 58859 /*
60560diff -urNp linux-2.6.38.3/security/security.c linux-2.6.38.3/security/security.c 58860diff -urNp linux-2.6.38.2/security/security.c linux-2.6.38.2/security/security.c
60561--- linux-2.6.38.3/security/security.c 2011-03-14 21:20:32.000000000 -0400 58861--- linux-2.6.38.2/security/security.c 2011-03-14 21:20:32.000000000 -0400
60562+++ linux-2.6.38.3/security/security.c 2011-04-17 15:57:33.000000000 -0400 58862+++ linux-2.6.38.2/security/security.c 2011-03-21 18:31:35.000000000 -0400
60563@@ -25,8 +25,8 @@ static __initdata char chosen_lsm[SECURI 58863@@ -25,8 +25,8 @@ static __initdata char chosen_lsm[SECURI
60564 /* things that live in capability.c */ 58864 /* things that live in capability.c */
60565 extern void __init security_fixup_ops(struct security_operations *ops); 58865 extern void __init security_fixup_ops(struct security_operations *ops);
@@ -60581,9 +58881,9 @@ diff -urNp linux-2.6.38.3/security/security.c linux-2.6.38.3/security/security.c
60581 } 58881 }
60582 58882
60583 /* Save user chosen LSM */ 58883 /* Save user chosen LSM */
60584diff -urNp linux-2.6.38.3/security/selinux/hooks.c linux-2.6.38.3/security/selinux/hooks.c 58884diff -urNp linux-2.6.38.2/security/selinux/hooks.c linux-2.6.38.2/security/selinux/hooks.c
60585--- linux-2.6.38.3/security/selinux/hooks.c 2011-03-14 21:20:32.000000000 -0400 58885--- linux-2.6.38.2/security/selinux/hooks.c 2011-03-14 21:20:32.000000000 -0400
60586+++ linux-2.6.38.3/security/selinux/hooks.c 2011-04-17 15:57:33.000000000 -0400 58886+++ linux-2.6.38.2/security/selinux/hooks.c 2011-03-21 18:31:35.000000000 -0400
60587@@ -90,7 +90,6 @@ 58887@@ -90,7 +90,6 @@
60588 #define NUM_SEL_MNT_OPTS 5 58888 #define NUM_SEL_MNT_OPTS 5
60589 58889
@@ -60601,9 +58901,9 @@ diff -urNp linux-2.6.38.3/security/selinux/hooks.c linux-2.6.38.3/security/selin
60601 .name = "selinux", 58901 .name = "selinux",
60602 58902
60603 .ptrace_access_check = selinux_ptrace_access_check, 58903 .ptrace_access_check = selinux_ptrace_access_check,
60604diff -urNp linux-2.6.38.3/security/smack/smack_lsm.c linux-2.6.38.3/security/smack/smack_lsm.c 58904diff -urNp linux-2.6.38.2/security/smack/smack_lsm.c linux-2.6.38.2/security/smack/smack_lsm.c
60605--- linux-2.6.38.3/security/smack/smack_lsm.c 2011-03-14 21:20:32.000000000 -0400 58905--- linux-2.6.38.2/security/smack/smack_lsm.c 2011-03-14 21:20:32.000000000 -0400
60606+++ linux-2.6.38.3/security/smack/smack_lsm.c 2011-04-17 15:57:33.000000000 -0400 58906+++ linux-2.6.38.2/security/smack/smack_lsm.c 2011-03-21 18:31:35.000000000 -0400
60607@@ -3179,7 +3179,7 @@ static int smack_inode_getsecctx(struct 58907@@ -3179,7 +3179,7 @@ static int smack_inode_getsecctx(struct
60608 return 0; 58908 return 0;
60609 } 58909 }
@@ -60613,9 +58913,9 @@ diff -urNp linux-2.6.38.3/security/smack/smack_lsm.c linux-2.6.38.3/security/sma
60613 .name = "smack", 58913 .name = "smack",
60614 58914
60615 .ptrace_access_check = smack_ptrace_access_check, 58915 .ptrace_access_check = smack_ptrace_access_check,
60616diff -urNp linux-2.6.38.3/security/tomoyo/tomoyo.c linux-2.6.38.3/security/tomoyo/tomoyo.c 58916diff -urNp linux-2.6.38.2/security/tomoyo/tomoyo.c linux-2.6.38.2/security/tomoyo/tomoyo.c
60617--- linux-2.6.38.3/security/tomoyo/tomoyo.c 2011-03-14 21:20:32.000000000 -0400 58917--- linux-2.6.38.2/security/tomoyo/tomoyo.c 2011-03-14 21:20:32.000000000 -0400
60618+++ linux-2.6.38.3/security/tomoyo/tomoyo.c 2011-04-17 15:57:33.000000000 -0400 58918+++ linux-2.6.38.2/security/tomoyo/tomoyo.c 2011-03-21 18:31:35.000000000 -0400
60619@@ -240,7 +240,7 @@ static int tomoyo_sb_pivotroot(struct pa 58919@@ -240,7 +240,7 @@ static int tomoyo_sb_pivotroot(struct pa
60620 * tomoyo_security_ops is a "struct security_operations" which is used for 58920 * tomoyo_security_ops is a "struct security_operations" which is used for
60621 * registering TOMOYO. 58921 * registering TOMOYO.
@@ -60625,9 +58925,9 @@ diff -urNp linux-2.6.38.3/security/tomoyo/tomoyo.c linux-2.6.38.3/security/tomoy
60625 .name = "tomoyo", 58925 .name = "tomoyo",
60626 .cred_alloc_blank = tomoyo_cred_alloc_blank, 58926 .cred_alloc_blank = tomoyo_cred_alloc_blank,
60627 .cred_prepare = tomoyo_cred_prepare, 58927 .cred_prepare = tomoyo_cred_prepare,
60628diff -urNp linux-2.6.38.3/sound/aoa/codecs/onyx.c linux-2.6.38.3/sound/aoa/codecs/onyx.c 58928diff -urNp linux-2.6.38.2/sound/aoa/codecs/onyx.c linux-2.6.38.2/sound/aoa/codecs/onyx.c
60629--- linux-2.6.38.3/sound/aoa/codecs/onyx.c 2011-03-14 21:20:32.000000000 -0400 58929--- linux-2.6.38.2/sound/aoa/codecs/onyx.c 2011-03-14 21:20:32.000000000 -0400
60630+++ linux-2.6.38.3/sound/aoa/codecs/onyx.c 2011-04-17 15:57:33.000000000 -0400 58930+++ linux-2.6.38.2/sound/aoa/codecs/onyx.c 2011-03-21 18:31:35.000000000 -0400
60631@@ -54,7 +54,7 @@ struct onyx { 58931@@ -54,7 +54,7 @@ struct onyx {
60632 spdif_locked:1, 58932 spdif_locked:1,
60633 analog_locked:1, 58933 analog_locked:1,
@@ -60656,9 +58956,9 @@ diff -urNp linux-2.6.38.3/sound/aoa/codecs/onyx.c linux-2.6.38.3/sound/aoa/codec
60656 onyx->spdif_locked = onyx->analog_locked = 0; 58956 onyx->spdif_locked = onyx->analog_locked = 0;
60657 mutex_unlock(&onyx->mutex); 58957 mutex_unlock(&onyx->mutex);
60658 58958
60659diff -urNp linux-2.6.38.3/sound/aoa/codecs/onyx.h linux-2.6.38.3/sound/aoa/codecs/onyx.h 58959diff -urNp linux-2.6.38.2/sound/aoa/codecs/onyx.h linux-2.6.38.2/sound/aoa/codecs/onyx.h
60660--- linux-2.6.38.3/sound/aoa/codecs/onyx.h 2011-03-14 21:20:32.000000000 -0400 58960--- linux-2.6.38.2/sound/aoa/codecs/onyx.h 2011-03-14 21:20:32.000000000 -0400
60661+++ linux-2.6.38.3/sound/aoa/codecs/onyx.h 2011-04-17 15:57:33.000000000 -0400 58961+++ linux-2.6.38.2/sound/aoa/codecs/onyx.h 2011-03-21 18:31:35.000000000 -0400
60662@@ -11,6 +11,7 @@ 58962@@ -11,6 +11,7 @@
60663 #include <linux/i2c.h> 58963 #include <linux/i2c.h>
60664 #include <asm/pmac_low_i2c.h> 58964 #include <asm/pmac_low_i2c.h>
@@ -60667,9 +58967,9 @@ diff -urNp linux-2.6.38.3/sound/aoa/codecs/onyx.h linux-2.6.38.3/sound/aoa/codec
60667 58967
60668 /* PCM3052 register definitions */ 58968 /* PCM3052 register definitions */
60669 58969
60670diff -urNp linux-2.6.38.3/sound/core/oss/pcm_oss.c linux-2.6.38.3/sound/core/oss/pcm_oss.c 58970diff -urNp linux-2.6.38.2/sound/core/oss/pcm_oss.c linux-2.6.38.2/sound/core/oss/pcm_oss.c
60671--- linux-2.6.38.3/sound/core/oss/pcm_oss.c 2011-03-14 21:20:32.000000000 -0400 58971--- linux-2.6.38.2/sound/core/oss/pcm_oss.c 2011-03-14 21:20:32.000000000 -0400
60672+++ linux-2.6.38.3/sound/core/oss/pcm_oss.c 2011-04-17 15:57:33.000000000 -0400 58972+++ linux-2.6.38.2/sound/core/oss/pcm_oss.c 2011-03-21 18:31:35.000000000 -0400
60673@@ -2971,8 +2971,8 @@ static void snd_pcm_oss_proc_done(struct 58973@@ -2971,8 +2971,8 @@ static void snd_pcm_oss_proc_done(struct
60674 } 58974 }
60675 } 58975 }
@@ -60681,9 +58981,9 @@ diff -urNp linux-2.6.38.3/sound/core/oss/pcm_oss.c linux-2.6.38.3/sound/core/oss
60681 #endif /* CONFIG_SND_VERBOSE_PROCFS */ 58981 #endif /* CONFIG_SND_VERBOSE_PROCFS */
60682 58982
60683 /* 58983 /*
60684diff -urNp linux-2.6.38.3/sound/core/seq/seq_lock.h linux-2.6.38.3/sound/core/seq/seq_lock.h 58984diff -urNp linux-2.6.38.2/sound/core/seq/seq_lock.h linux-2.6.38.2/sound/core/seq/seq_lock.h
60685--- linux-2.6.38.3/sound/core/seq/seq_lock.h 2011-03-14 21:20:32.000000000 -0400 58985--- linux-2.6.38.2/sound/core/seq/seq_lock.h 2011-03-14 21:20:32.000000000 -0400
60686+++ linux-2.6.38.3/sound/core/seq/seq_lock.h 2011-04-17 15:57:33.000000000 -0400 58986+++ linux-2.6.38.2/sound/core/seq/seq_lock.h 2011-03-21 18:31:35.000000000 -0400
60687@@ -23,10 +23,10 @@ void snd_use_lock_sync_helper(snd_use_lo 58987@@ -23,10 +23,10 @@ void snd_use_lock_sync_helper(snd_use_lo
60688 #else /* SMP || CONFIG_SND_DEBUG */ 58988 #else /* SMP || CONFIG_SND_DEBUG */
60689 58989
@@ -60699,9 +58999,9 @@ diff -urNp linux-2.6.38.3/sound/core/seq/seq_lock.h linux-2.6.38.3/sound/core/se
60699 58999
60700 #endif /* SMP || CONFIG_SND_DEBUG */ 59000 #endif /* SMP || CONFIG_SND_DEBUG */
60701 59001
60702diff -urNp linux-2.6.38.3/sound/drivers/mts64.c linux-2.6.38.3/sound/drivers/mts64.c 59002diff -urNp linux-2.6.38.2/sound/drivers/mts64.c linux-2.6.38.2/sound/drivers/mts64.c
60703--- linux-2.6.38.3/sound/drivers/mts64.c 2011-03-14 21:20:32.000000000 -0400 59003--- linux-2.6.38.2/sound/drivers/mts64.c 2011-03-14 21:20:32.000000000 -0400
60704+++ linux-2.6.38.3/sound/drivers/mts64.c 2011-04-17 15:57:33.000000000 -0400 59004+++ linux-2.6.38.2/sound/drivers/mts64.c 2011-03-21 18:31:35.000000000 -0400
60705@@ -28,6 +28,7 @@ 59005@@ -28,6 +28,7 @@
60706 #include <sound/initval.h> 59006 #include <sound/initval.h>
60707 #include <sound/rawmidi.h> 59007 #include <sound/rawmidi.h>
@@ -60758,9 +59058,9 @@ diff -urNp linux-2.6.38.3/sound/drivers/mts64.c linux-2.6.38.3/sound/drivers/mts
60758 59058
60759 return 0; 59059 return 0;
60760 } 59060 }
60761diff -urNp linux-2.6.38.3/sound/drivers/portman2x4.c linux-2.6.38.3/sound/drivers/portman2x4.c 59061diff -urNp linux-2.6.38.2/sound/drivers/portman2x4.c linux-2.6.38.2/sound/drivers/portman2x4.c
60762--- linux-2.6.38.3/sound/drivers/portman2x4.c 2011-03-14 21:20:32.000000000 -0400 59062--- linux-2.6.38.2/sound/drivers/portman2x4.c 2011-03-14 21:20:32.000000000 -0400
60763+++ linux-2.6.38.3/sound/drivers/portman2x4.c 2011-04-17 15:57:33.000000000 -0400 59063+++ linux-2.6.38.2/sound/drivers/portman2x4.c 2011-03-21 18:31:35.000000000 -0400
60764@@ -47,6 +47,7 @@ 59064@@ -47,6 +47,7 @@
60765 #include <sound/initval.h> 59065 #include <sound/initval.h>
60766 #include <sound/rawmidi.h> 59066 #include <sound/rawmidi.h>
@@ -60778,9 +59078,9 @@ diff -urNp linux-2.6.38.3/sound/drivers/portman2x4.c linux-2.6.38.3/sound/driver
60778 int mode[PORTMAN_NUM_INPUT_PORTS]; 59078 int mode[PORTMAN_NUM_INPUT_PORTS];
60779 struct snd_rawmidi_substream *midi_input[PORTMAN_NUM_INPUT_PORTS]; 59079 struct snd_rawmidi_substream *midi_input[PORTMAN_NUM_INPUT_PORTS];
60780 }; 59080 };
60781diff -urNp linux-2.6.38.3/sound/oss/sb_audio.c linux-2.6.38.3/sound/oss/sb_audio.c 59081diff -urNp linux-2.6.38.2/sound/oss/sb_audio.c linux-2.6.38.2/sound/oss/sb_audio.c
60782--- linux-2.6.38.3/sound/oss/sb_audio.c 2011-03-14 21:20:32.000000000 -0400 59082--- linux-2.6.38.2/sound/oss/sb_audio.c 2011-03-14 21:20:32.000000000 -0400
60783+++ linux-2.6.38.3/sound/oss/sb_audio.c 2011-04-17 15:57:33.000000000 -0400 59083+++ linux-2.6.38.2/sound/oss/sb_audio.c 2011-03-21 18:31:35.000000000 -0400
60784@@ -901,7 +901,7 @@ sb16_copy_from_user(int dev, 59084@@ -901,7 +901,7 @@ sb16_copy_from_user(int dev,
60785 buf16 = (signed short *)(localbuf + localoffs); 59085 buf16 = (signed short *)(localbuf + localoffs);
60786 while (c) 59086 while (c)
@@ -60790,9 +59090,9 @@ diff -urNp linux-2.6.38.3/sound/oss/sb_audio.c linux-2.6.38.3/sound/oss/sb_audio
60790 if (copy_from_user(lbuf8, 59090 if (copy_from_user(lbuf8,
60791 userbuf+useroffs + p, 59091 userbuf+useroffs + p,
60792 locallen)) 59092 locallen))
60793diff -urNp linux-2.6.38.3/sound/oss/swarm_cs4297a.c linux-2.6.38.3/sound/oss/swarm_cs4297a.c 59093diff -urNp linux-2.6.38.2/sound/oss/swarm_cs4297a.c linux-2.6.38.2/sound/oss/swarm_cs4297a.c
60794--- linux-2.6.38.3/sound/oss/swarm_cs4297a.c 2011-03-14 21:20:32.000000000 -0400 59094--- linux-2.6.38.2/sound/oss/swarm_cs4297a.c 2011-03-14 21:20:32.000000000 -0400
60795+++ linux-2.6.38.3/sound/oss/swarm_cs4297a.c 2011-04-17 15:57:33.000000000 -0400 59095+++ linux-2.6.38.2/sound/oss/swarm_cs4297a.c 2011-03-21 18:31:35.000000000 -0400
60796@@ -2606,7 +2606,6 @@ static int __init cs4297a_init(void) 59096@@ -2606,7 +2606,6 @@ static int __init cs4297a_init(void)
60797 { 59097 {
60798 struct cs4297a_state *s; 59098 struct cs4297a_state *s;
@@ -60827,9 +59127,9 @@ diff -urNp linux-2.6.38.3/sound/oss/swarm_cs4297a.c linux-2.6.38.3/sound/oss/swa
60827 59127
60828 list_add(&s->list, &cs4297a_devs); 59128 list_add(&s->list, &cs4297a_devs);
60829 59129
60830diff -urNp linux-2.6.38.3/sound/pci/ac97/ac97_patch.c linux-2.6.38.3/sound/pci/ac97/ac97_patch.c 59130diff -urNp linux-2.6.38.2/sound/pci/ac97/ac97_patch.c linux-2.6.38.2/sound/pci/ac97/ac97_patch.c
60831--- linux-2.6.38.3/sound/pci/ac97/ac97_patch.c 2011-03-14 21:20:32.000000000 -0400 59131--- linux-2.6.38.2/sound/pci/ac97/ac97_patch.c 2011-03-14 21:20:32.000000000 -0400
60832+++ linux-2.6.38.3/sound/pci/ac97/ac97_patch.c 2011-04-17 15:57:33.000000000 -0400 59132+++ linux-2.6.38.2/sound/pci/ac97/ac97_patch.c 2011-03-21 18:31:35.000000000 -0400
60833@@ -1486,7 +1486,7 @@ static const struct snd_ac97_res_table a 59133@@ -1486,7 +1486,7 @@ static const struct snd_ac97_res_table a
60834 { AC97_VIDEO, 0x9f1f }, 59134 { AC97_VIDEO, 0x9f1f },
60835 { AC97_AUX, 0x9f1f }, 59135 { AC97_AUX, 0x9f1f },
@@ -60848,10 +59148,10 @@ diff -urNp linux-2.6.38.3/sound/pci/ac97/ac97_patch.c linux-2.6.38.3/sound/pci/a
60848 }; 59148 };
60849 59149
60850 static int patch_lm4550(struct snd_ac97 *ac97) 59150 static int patch_lm4550(struct snd_ac97 *ac97)
60851diff -urNp linux-2.6.38.3/sound/pci/ens1370.c linux-2.6.38.3/sound/pci/ens1370.c 59151diff -urNp linux-2.6.38.2/sound/pci/ens1370.c linux-2.6.38.2/sound/pci/ens1370.c
60852--- linux-2.6.38.3/sound/pci/ens1370.c 2011-04-18 17:27:18.000000000 -0400 59152--- linux-2.6.38.2/sound/pci/ens1370.c 2011-03-14 21:20:32.000000000 -0400
60853+++ linux-2.6.38.3/sound/pci/ens1370.c 2011-04-17 16:54:08.000000000 -0400 59153+++ linux-2.6.38.2/sound/pci/ens1370.c 2011-03-21 18:31:35.000000000 -0400
60854@@ -453,7 +453,7 @@ static DEFINE_PCI_DEVICE_TABLE(snd_audio 59154@@ -452,7 +452,7 @@ static DEFINE_PCI_DEVICE_TABLE(snd_audio
60855 { PCI_VDEVICE(ENSONIQ, 0x5880), 0, }, /* ES1373 - CT5880 */ 59155 { PCI_VDEVICE(ENSONIQ, 0x5880), 0, }, /* ES1373 - CT5880 */
60856 { PCI_VDEVICE(ECTIVA, 0x8938), 0, }, /* Ectiva EV1938 */ 59156 { PCI_VDEVICE(ECTIVA, 0x8938), 0, }, /* Ectiva EV1938 */
60857 #endif 59157 #endif
@@ -60860,9 +59160,9 @@ diff -urNp linux-2.6.38.3/sound/pci/ens1370.c linux-2.6.38.3/sound/pci/ens1370.c
60860 }; 59160 };
60861 59161
60862 MODULE_DEVICE_TABLE(pci, snd_audiopci_ids); 59162 MODULE_DEVICE_TABLE(pci, snd_audiopci_ids);
60863diff -urNp linux-2.6.38.3/sound/pci/hda/patch_hdmi.c linux-2.6.38.3/sound/pci/hda/patch_hdmi.c 59163diff -urNp linux-2.6.38.2/sound/pci/hda/patch_hdmi.c linux-2.6.38.2/sound/pci/hda/patch_hdmi.c
60864--- linux-2.6.38.3/sound/pci/hda/patch_hdmi.c 2011-04-18 17:27:18.000000000 -0400 59164--- linux-2.6.38.2/sound/pci/hda/patch_hdmi.c 2011-03-14 21:20:32.000000000 -0400
60865+++ linux-2.6.38.3/sound/pci/hda/patch_hdmi.c 2011-04-17 16:54:08.000000000 -0400 59165+++ linux-2.6.38.2/sound/pci/hda/patch_hdmi.c 2011-03-21 18:31:35.000000000 -0400
60866@@ -733,10 +733,10 @@ static void hdmi_non_intrinsic_event(str 59166@@ -733,10 +733,10 @@ static void hdmi_non_intrinsic_event(str
60867 cp_ready); 59167 cp_ready);
60868 59168
@@ -60878,9 +59178,9 @@ diff -urNp linux-2.6.38.3/sound/pci/hda/patch_hdmi.c linux-2.6.38.3/sound/pci/hd
60878 } 59178 }
60879 59179
60880 59180
60881diff -urNp linux-2.6.38.3/sound/pci/intel8x0.c linux-2.6.38.3/sound/pci/intel8x0.c 59181diff -urNp linux-2.6.38.2/sound/pci/intel8x0.c linux-2.6.38.2/sound/pci/intel8x0.c
60882--- linux-2.6.38.3/sound/pci/intel8x0.c 2011-03-14 21:20:32.000000000 -0400 59182--- linux-2.6.38.2/sound/pci/intel8x0.c 2011-03-14 21:20:32.000000000 -0400
60883+++ linux-2.6.38.3/sound/pci/intel8x0.c 2011-04-17 15:57:33.000000000 -0400 59183+++ linux-2.6.38.2/sound/pci/intel8x0.c 2011-03-21 18:31:35.000000000 -0400
60884@@ -444,7 +444,7 @@ static DEFINE_PCI_DEVICE_TABLE(snd_intel 59184@@ -444,7 +444,7 @@ static DEFINE_PCI_DEVICE_TABLE(snd_intel
60885 { PCI_VDEVICE(AMD, 0x746d), DEVICE_INTEL }, /* AMD8111 */ 59185 { PCI_VDEVICE(AMD, 0x746d), DEVICE_INTEL }, /* AMD8111 */
60886 { PCI_VDEVICE(AMD, 0x7445), DEVICE_INTEL }, /* AMD768 */ 59186 { PCI_VDEVICE(AMD, 0x7445), DEVICE_INTEL }, /* AMD768 */
@@ -60899,9 +59199,9 @@ diff -urNp linux-2.6.38.3/sound/pci/intel8x0.c linux-2.6.38.3/sound/pci/intel8x0
60899 }; 59199 };
60900 59200
60901 static int __devinit snd_intel8x0_mixer(struct intel8x0 *chip, int ac97_clock, 59201 static int __devinit snd_intel8x0_mixer(struct intel8x0 *chip, int ac97_clock,
60902diff -urNp linux-2.6.38.3/sound/pci/intel8x0m.c linux-2.6.38.3/sound/pci/intel8x0m.c 59202diff -urNp linux-2.6.38.2/sound/pci/intel8x0m.c linux-2.6.38.2/sound/pci/intel8x0m.c
60903--- linux-2.6.38.3/sound/pci/intel8x0m.c 2011-03-14 21:20:32.000000000 -0400 59203--- linux-2.6.38.2/sound/pci/intel8x0m.c 2011-03-14 21:20:32.000000000 -0400
60904+++ linux-2.6.38.3/sound/pci/intel8x0m.c 2011-04-17 15:57:33.000000000 -0400 59204+++ linux-2.6.38.2/sound/pci/intel8x0m.c 2011-03-21 18:31:35.000000000 -0400
60905@@ -239,7 +239,7 @@ static DEFINE_PCI_DEVICE_TABLE(snd_intel 59205@@ -239,7 +239,7 @@ static DEFINE_PCI_DEVICE_TABLE(snd_intel
60906 { PCI_VDEVICE(AMD, 0x746d), DEVICE_INTEL }, /* AMD8111 */ 59206 { PCI_VDEVICE(AMD, 0x746d), DEVICE_INTEL }, /* AMD8111 */
60907 { PCI_VDEVICE(AL, 0x5455), DEVICE_ALI }, /* Ali5455 */ 59207 { PCI_VDEVICE(AL, 0x5455), DEVICE_ALI }, /* Ali5455 */
@@ -60920,9 +59220,9 @@ diff -urNp linux-2.6.38.3/sound/pci/intel8x0m.c linux-2.6.38.3/sound/pci/intel8x
60920 }; 59220 };
60921 59221
60922 static int __devinit snd_intel8x0m_probe(struct pci_dev *pci, 59222 static int __devinit snd_intel8x0m_probe(struct pci_dev *pci,
60923diff -urNp linux-2.6.38.3/usr/gen_init_cpio.c linux-2.6.38.3/usr/gen_init_cpio.c 59223diff -urNp linux-2.6.38.2/usr/gen_init_cpio.c linux-2.6.38.2/usr/gen_init_cpio.c
60924--- linux-2.6.38.3/usr/gen_init_cpio.c 2011-03-14 21:20:32.000000000 -0400 59224--- linux-2.6.38.2/usr/gen_init_cpio.c 2011-03-14 21:20:32.000000000 -0400
60925+++ linux-2.6.38.3/usr/gen_init_cpio.c 2011-04-17 15:57:33.000000000 -0400 59225+++ linux-2.6.38.2/usr/gen_init_cpio.c 2011-03-21 18:31:35.000000000 -0400
60926@@ -305,7 +305,7 @@ static int cpio_mkfile(const char *name, 59226@@ -305,7 +305,7 @@ static int cpio_mkfile(const char *name,
60927 int retval; 59227 int retval;
60928 int rc = -1; 59228 int rc = -1;
@@ -60945,9 +59245,9 @@ diff -urNp linux-2.6.38.3/usr/gen_init_cpio.c linux-2.6.38.3/usr/gen_init_cpio.c
60945 } else 59245 } else
60946 break; 59246 break;
60947 } 59247 }
60948diff -urNp linux-2.6.38.3/virt/kvm/kvm_main.c linux-2.6.38.3/virt/kvm/kvm_main.c 59248diff -urNp linux-2.6.38.2/virt/kvm/kvm_main.c linux-2.6.38.2/virt/kvm/kvm_main.c
60949--- linux-2.6.38.3/virt/kvm/kvm_main.c 2011-03-14 21:20:32.000000000 -0400 59249--- linux-2.6.38.2/virt/kvm/kvm_main.c 2011-03-14 21:20:32.000000000 -0400
60950+++ linux-2.6.38.3/virt/kvm/kvm_main.c 2011-04-17 15:57:33.000000000 -0400 59250+++ linux-2.6.38.2/virt/kvm/kvm_main.c 2011-03-21 18:31:35.000000000 -0400
60951@@ -1521,7 +1521,7 @@ static int kvm_vcpu_release(struct inode 59251@@ -1521,7 +1521,7 @@ static int kvm_vcpu_release(struct inode
60952 return 0; 59252 return 0;
60953 } 59253 }
diff --git a/main/linux-grsec/kernelconfig.x86 b/main/linux-grsec/kernelconfig.x86
index a010738095..14fbc4d832 100644
--- a/main/linux-grsec/kernelconfig.x86
+++ b/main/linux-grsec/kernelconfig.x86
@@ -1,7 +1,7 @@
1# 1#
2# Automatically generated make config: don't edit 2# Automatically generated make config: don't edit
3# Linux/i386 2.6.38.3 Kernel Configuration 3# Linux/i386 2.6.38.1 Kernel Configuration
4# Mon Apr 18 07:22:38 2011 4# Thu Mar 31 17:56:09 2011
5# 5#
6# CONFIG_64BIT is not set 6# CONFIG_64BIT is not set
7CONFIG_X86_32=y 7CONFIG_X86_32=y
@@ -2461,6 +2461,7 @@ CONFIG_CONSOLE_TRANSLATIONS=y
2461CONFIG_VT_CONSOLE=y 2461CONFIG_VT_CONSOLE=y
2462CONFIG_HW_CONSOLE=y 2462CONFIG_HW_CONSOLE=y
2463# CONFIG_VT_HW_CONSOLE_BINDING is not set 2463# CONFIG_VT_HW_CONSOLE_BINDING is not set
2464# CONFIG_DEVKMEM is not set
2464CONFIG_SERIAL_NONSTANDARD=y 2465CONFIG_SERIAL_NONSTANDARD=y
2465CONFIG_COMPUTONE=m 2466CONFIG_COMPUTONE=m
2466CONFIG_ROCKETPORT=m 2467CONFIG_ROCKETPORT=m
@@ -2565,6 +2566,7 @@ CONFIG_TCG_NSC=m
2565CONFIG_TCG_ATMEL=m 2566CONFIG_TCG_ATMEL=m
2566CONFIG_TCG_INFINEON=m 2567CONFIG_TCG_INFINEON=m
2567CONFIG_TELCLOCK=m 2568CONFIG_TELCLOCK=m
2569CONFIG_DEVPORT=y
2568CONFIG_RAMOOPS=m 2570CONFIG_RAMOOPS=m
2569CONFIG_I2C=m 2571CONFIG_I2C=m
2570CONFIG_I2C_BOARDINFO=y 2572CONFIG_I2C_BOARDINFO=y
@@ -4825,7 +4827,6 @@ CONFIG_GRKERNSEC_PROC_MEMMAP=y
4825# CONFIG_GRKERNSEC_BRUTE is not set 4827# CONFIG_GRKERNSEC_BRUTE is not set
4826# CONFIG_GRKERNSEC_MODHARDEN is not set 4828# CONFIG_GRKERNSEC_MODHARDEN is not set
4827# CONFIG_GRKERNSEC_HIDESYM is not set 4829# CONFIG_GRKERNSEC_HIDESYM is not set
4828# CONFIG_GRKERNSEC_KERN_LOCKOUT is not set
4829 4830
4830# 4831#
4831# Role Based Access Control Options 4832# Role Based Access Control Options
diff --git a/main/linux-grsec/kernelconfig.x86_64 b/main/linux-grsec/kernelconfig.x86_64
index 8877618c6a..c830b9cc32 100644
--- a/main/linux-grsec/kernelconfig.x86_64
+++ b/main/linux-grsec/kernelconfig.x86_64
@@ -1,7 +1,7 @@
1# 1#
2# Automatically generated make config: don't edit 2# Automatically generated make config: don't edit
3# Linux/x86_64 2.6.38.3 Kernel Configuration 3# Linux/x86_64 2.6.38.1 Kernel Configuration
4# Mon Apr 18 10:45:51 2011 4# Thu Mar 31 17:56:09 2011
5# 5#
6CONFIG_64BIT=y 6CONFIG_64BIT=y
7# CONFIG_X86_32 is not set 7# CONFIG_X86_32 is not set
@@ -2415,6 +2415,7 @@ CONFIG_CONSOLE_TRANSLATIONS=y
2415CONFIG_VT_CONSOLE=y 2415CONFIG_VT_CONSOLE=y
2416CONFIG_HW_CONSOLE=y 2416CONFIG_HW_CONSOLE=y
2417# CONFIG_VT_HW_CONSOLE_BINDING is not set 2417# CONFIG_VT_HW_CONSOLE_BINDING is not set
2418# CONFIG_DEVKMEM is not set
2418CONFIG_SERIAL_NONSTANDARD=y 2419CONFIG_SERIAL_NONSTANDARD=y
2419CONFIG_COMPUTONE=m 2420CONFIG_COMPUTONE=m
2420CONFIG_ROCKETPORT=m 2421CONFIG_ROCKETPORT=m
@@ -2517,6 +2518,7 @@ CONFIG_TCG_NSC=m
2517CONFIG_TCG_ATMEL=m 2518CONFIG_TCG_ATMEL=m
2518CONFIG_TCG_INFINEON=m 2519CONFIG_TCG_INFINEON=m
2519CONFIG_TELCLOCK=m 2520CONFIG_TELCLOCK=m
2521CONFIG_DEVPORT=y
2520CONFIG_RAMOOPS=m 2522CONFIG_RAMOOPS=m
2521CONFIG_I2C=m 2523CONFIG_I2C=m
2522CONFIG_I2C_BOARDINFO=y 2524CONFIG_I2C_BOARDINFO=y
@@ -4782,7 +4784,6 @@ CONFIG_GRKERNSEC_PROC_MEMMAP=y
4782# CONFIG_GRKERNSEC_BRUTE is not set 4784# CONFIG_GRKERNSEC_BRUTE is not set
4783# CONFIG_GRKERNSEC_MODHARDEN is not set 4785# CONFIG_GRKERNSEC_MODHARDEN is not set
4784# CONFIG_GRKERNSEC_HIDESYM is not set 4786# CONFIG_GRKERNSEC_HIDESYM is not set
4785# CONFIG_GRKERNSEC_KERN_LOCKOUT is not set
4786 4787
4787# 4788#
4788# Role Based Access Control Options 4789# Role Based Access Control Options
@@ -4893,7 +4894,6 @@ CONFIG_PAX_MPROTECT=y
4893# Address Space Layout Randomization 4894# Address Space Layout Randomization
4894# 4895#
4895CONFIG_PAX_ASLR=y 4896CONFIG_PAX_ASLR=y
4896# CONFIG_PAX_RANDKSTACK is not set
4897CONFIG_PAX_RANDUSTACK=y 4897CONFIG_PAX_RANDUSTACK=y
4898CONFIG_PAX_RANDMMAP=y 4898CONFIG_PAX_RANDMMAP=y
4899 4899