diff options
author | Natanael Copa <ncopa@alpinelinux.org> | 2009-08-07 09:29:45 +0000 |
---|---|---|
committer | Natanael Copa <ncopa@alpinelinux.org> | 2009-08-07 09:29:45 +0000 |
commit | 6d71de19a0fbfbe69873ea6c4779ed647889b892 (patch) | |
tree | 270e8aff2b84c0f2b7cffb1f87b8386777b91401 | |
parent | ac3ff316a9ea99cf54b2165fa8a282e9d1c29539 (diff) | |
download | alpine_aports-6d71de19a0fbfbe69873ea6c4779ed647889b892.tar.bz2 alpine_aports-6d71de19a0fbfbe69873ea6c4779ed647889b892.tar.xz alpine_aports-6d71de19a0fbfbe69873ea6c4779ed647889b892.zip |
main/linux-grsec: upgrade grsec patch to 2.1.14-2.6.30.4-200908051916
Also
* Enable PAT
* Enable voluntary preempt
* Use CFQ as default IO scheduler
-rw-r--r-- | main/linux-grsec/APKBUILD | 10 | ||||
-rw-r--r-- | main/linux-grsec/grsecurity-2.1.14-2.6.30.4-200908051916.patch (renamed from main/linux-grsec/grsecurity-2.1.14-2.6.30.4-200908041752.patch) | 147 | ||||
-rw-r--r-- | main/linux-grsec/kernelconfig | 18 |
3 files changed, 92 insertions, 83 deletions
diff --git a/main/linux-grsec/APKBUILD b/main/linux-grsec/APKBUILD index c5a1d3f9e3..08e386e29b 100644 --- a/main/linux-grsec/APKBUILD +++ b/main/linux-grsec/APKBUILD | |||
@@ -4,7 +4,7 @@ _flavor=grsec | |||
4 | pkgname=linux-${_flavor} | 4 | pkgname=linux-${_flavor} |
5 | pkgver=2.6.30.4 | 5 | pkgver=2.6.30.4 |
6 | _kernver=2.6.30 | 6 | _kernver=2.6.30 |
7 | pkgrel=1 | 7 | pkgrel=2 |
8 | pkgdesc="Linux kernel with grsecurity" | 8 | pkgdesc="Linux kernel with grsecurity" |
9 | url=http://grsecurity.net | 9 | url=http://grsecurity.net |
10 | depends="mkinitfs" | 10 | depends="mkinitfs" |
@@ -13,7 +13,7 @@ _config=${config:-kernelconfig} | |||
13 | install="$pkgname.post-install $pkgname.post-upgrade" | 13 | install="$pkgname.post-install $pkgname.post-upgrade" |
14 | source="ftp://ftp.kernel.org/pub/linux/kernel/v2.6/linux-$_kernver.tar.bz2 | 14 | source="ftp://ftp.kernel.org/pub/linux/kernel/v2.6/linux-$_kernver.tar.bz2 |
15 | ftp://ftp.kernel.org/pub/linux/kernel/v2.6/patch-$pkgver.bz2 | 15 | ftp://ftp.kernel.org/pub/linux/kernel/v2.6/patch-$pkgver.bz2 |
16 | grsecurity-2.1.14-2.6.30.4-200908041752.patch | 16 | grsecurity-2.1.14-2.6.30.4-200908051916.patch |
17 | linux-nbma-mroute-v4-2.6.30.diff | 17 | linux-nbma-mroute-v4-2.6.30.diff |
18 | net-next-2.6.git-5ef12d98a19254ee5dc851bd83e214b43ec1f725.patch | 18 | net-next-2.6.git-5ef12d98a19254ee5dc851bd83e214b43ec1f725.patch |
19 | $_config | 19 | $_config |
@@ -27,7 +27,7 @@ _abi_release=${pkgver}-${_flavor} | |||
27 | _prepare() { | 27 | _prepare() { |
28 | cd "$srcdir"/linux-$_kernver | 28 | cd "$srcdir"/linux-$_kernver |
29 | if [ "$_kernver" != "$pkgver" ]; then | 29 | if [ "$_kernver" != "$pkgver" ]; then |
30 | bunzip2 -c < ../patch-$pkgver.bz2 | patch -p1 || return 1 | 30 | bunzip2 -c < ../patch-$pkgver.bz2 | patch -p1 -N || return 1 |
31 | fi | 31 | fi |
32 | 32 | ||
33 | for i in ../*.diff ../*.patch; do | 33 | for i in ../*.diff ../*.patch; do |
@@ -113,9 +113,9 @@ dev() { | |||
113 | 113 | ||
114 | md5sums="7a80058a6382e5108cdb5554d1609615 linux-2.6.30.tar.bz2 | 114 | md5sums="7a80058a6382e5108cdb5554d1609615 linux-2.6.30.tar.bz2 |
115 | d0fc44b54ba5953140b3f2aa9a1f2580 patch-2.6.30.4.bz2 | 115 | d0fc44b54ba5953140b3f2aa9a1f2580 patch-2.6.30.4.bz2 |
116 | 7d9fd867108074ec9dcc9d2385ff1e7b grsecurity-2.1.14-2.6.30.4-200908041752.patch | 116 | 9a0d6d6ce67289e24c6e3ef4441b6388 grsecurity-2.1.14-2.6.30.4-200908051916.patch |
117 | 7420c0b1095335990313656b114e1379 linux-nbma-mroute-v4-2.6.30.diff | 117 | 7420c0b1095335990313656b114e1379 linux-nbma-mroute-v4-2.6.30.diff |
118 | ca05fd252783b82e01610e775cf56498 net-next-2.6.git-5ef12d98a19254ee5dc851bd83e214b43ec1f725.patch | 118 | ca05fd252783b82e01610e775cf56498 net-next-2.6.git-5ef12d98a19254ee5dc851bd83e214b43ec1f725.patch |
119 | 13bdad159b0d99281c931a7dcb7d31ae kernelconfig | 119 | 60adb085be0ab268c0f27279ae2b2bab kernelconfig |
120 | 2834240b15805b248ef2a973b1ad4416 linux-grsec.post-install | 120 | 2834240b15805b248ef2a973b1ad4416 linux-grsec.post-install |
121 | 2834240b15805b248ef2a973b1ad4416 linux-grsec.post-upgrade" | 121 | 2834240b15805b248ef2a973b1ad4416 linux-grsec.post-upgrade" |
diff --git a/main/linux-grsec/grsecurity-2.1.14-2.6.30.4-200908041752.patch b/main/linux-grsec/grsecurity-2.1.14-2.6.30.4-200908051916.patch index 799132a383..5d0902c211 100644 --- a/main/linux-grsec/grsecurity-2.1.14-2.6.30.4-200908041752.patch +++ b/main/linux-grsec/grsecurity-2.1.14-2.6.30.4-200908051916.patch | |||
@@ -8652,7 +8652,7 @@ diff -urNp linux-2.6.30.4/arch/x86/kernel/head32.c linux-2.6.30.4/arch/x86/kerne | |||
8652 | /* Reserve INITRD */ | 8652 | /* Reserve INITRD */ |
8653 | diff -urNp linux-2.6.30.4/arch/x86/kernel/head_32.S linux-2.6.30.4/arch/x86/kernel/head_32.S | 8653 | diff -urNp linux-2.6.30.4/arch/x86/kernel/head_32.S linux-2.6.30.4/arch/x86/kernel/head_32.S |
8654 | --- linux-2.6.30.4/arch/x86/kernel/head_32.S 2009-07-24 17:47:51.000000000 -0400 | 8654 | --- linux-2.6.30.4/arch/x86/kernel/head_32.S 2009-07-24 17:47:51.000000000 -0400 |
8655 | +++ linux-2.6.30.4/arch/x86/kernel/head_32.S 2009-07-30 19:56:23.400350396 -0400 | 8655 | +++ linux-2.6.30.4/arch/x86/kernel/head_32.S 2009-08-05 19:08:00.458589400 -0400 |
8656 | @@ -20,6 +20,7 @@ | 8656 | @@ -20,6 +20,7 @@ |
8657 | #include <asm/setup.h> | 8657 | #include <asm/setup.h> |
8658 | #include <asm/processor-flags.h> | 8658 | #include <asm/processor-flags.h> |
@@ -8703,10 +8703,11 @@ diff -urNp linux-2.6.30.4/arch/x86/kernel/head_32.S linux-2.6.30.4/arch/x86/kern | |||
8703 | ENTRY(startup_32) | 8703 | ENTRY(startup_32) |
8704 | /* test KEEP_SEGMENTS flag to see if the bootloader is asking | 8704 | /* test KEEP_SEGMENTS flag to see if the bootloader is asking |
8705 | us to not reload segments */ | 8705 | us to not reload segments */ |
8706 | @@ -98,6 +110,56 @@ ENTRY(startup_32) | 8706 | @@ -98,6 +110,58 @@ ENTRY(startup_32) |
8707 | movl %eax,%gs | 8707 | movl %eax,%gs |
8708 | 2: | 8708 | 2: |
8709 | 8709 | ||
8710 | +#ifdef CONFIG_SMP | ||
8710 | + movl $pa(cpu_gdt_table),%edi | 8711 | + movl $pa(cpu_gdt_table),%edi |
8711 | + movl $__per_cpu_load,%eax | 8712 | + movl $__per_cpu_load,%eax |
8712 | + movw %ax,__KERNEL_PERCPU + 2(%edi) | 8713 | + movw %ax,__KERNEL_PERCPU + 2(%edi) |
@@ -8716,6 +8717,7 @@ diff -urNp linux-2.6.30.4/arch/x86/kernel/head_32.S linux-2.6.30.4/arch/x86/kern | |||
8716 | + movl $__per_cpu_end - 1,%eax | 8717 | + movl $__per_cpu_end - 1,%eax |
8717 | + subl $__per_cpu_load,%eax | 8718 | + subl $__per_cpu_load,%eax |
8718 | + movw %ax,__KERNEL_PERCPU + 0(%edi) | 8719 | + movw %ax,__KERNEL_PERCPU + 0(%edi) |
8720 | +#endif | ||
8719 | + | 8721 | + |
8720 | +#ifdef CONFIG_PAX_MEMORY_UDEREF | 8722 | +#ifdef CONFIG_PAX_MEMORY_UDEREF |
8721 | + /* check for VMware */ | 8723 | + /* check for VMware */ |
@@ -8760,7 +8762,7 @@ diff -urNp linux-2.6.30.4/arch/x86/kernel/head_32.S linux-2.6.30.4/arch/x86/kern | |||
8760 | /* | 8762 | /* |
8761 | * Clear BSS first so that there are no surprises... | 8763 | * Clear BSS first so that there are no surprises... |
8762 | */ | 8764 | */ |
8763 | @@ -141,9 +203,7 @@ ENTRY(startup_32) | 8765 | @@ -141,9 +205,7 @@ ENTRY(startup_32) |
8764 | cmpl $num_subarch_entries, %eax | 8766 | cmpl $num_subarch_entries, %eax |
8765 | jae bad_subarch | 8767 | jae bad_subarch |
8766 | 8768 | ||
@@ -8771,7 +8773,7 @@ diff -urNp linux-2.6.30.4/arch/x86/kernel/head_32.S linux-2.6.30.4/arch/x86/kern | |||
8771 | 8773 | ||
8772 | bad_subarch: | 8774 | bad_subarch: |
8773 | WEAK(lguest_entry) | 8775 | WEAK(lguest_entry) |
8774 | @@ -155,9 +215,9 @@ WEAK(xen_entry) | 8776 | @@ -155,9 +217,9 @@ WEAK(xen_entry) |
8775 | __INITDATA | 8777 | __INITDATA |
8776 | 8778 | ||
8777 | subarch_entries: | 8779 | subarch_entries: |
@@ -8784,7 +8786,7 @@ diff -urNp linux-2.6.30.4/arch/x86/kernel/head_32.S linux-2.6.30.4/arch/x86/kern | |||
8784 | num_subarch_entries = (. - subarch_entries) / 4 | 8786 | num_subarch_entries = (. - subarch_entries) / 4 |
8785 | .previous | 8787 | .previous |
8786 | #endif /* CONFIG_PARAVIRT */ | 8788 | #endif /* CONFIG_PARAVIRT */ |
8787 | @@ -218,8 +278,14 @@ default_entry: | 8789 | @@ -218,8 +280,14 @@ default_entry: |
8788 | movl %eax, pa(max_pfn_mapped) | 8790 | movl %eax, pa(max_pfn_mapped) |
8789 | 8791 | ||
8790 | /* Do early initialization of the fixmap area */ | 8792 | /* Do early initialization of the fixmap area */ |
@@ -8801,7 +8803,7 @@ diff -urNp linux-2.6.30.4/arch/x86/kernel/head_32.S linux-2.6.30.4/arch/x86/kern | |||
8801 | #else /* Not PAE */ | 8803 | #else /* Not PAE */ |
8802 | 8804 | ||
8803 | page_pde_offset = (__PAGE_OFFSET >> 20); | 8805 | page_pde_offset = (__PAGE_OFFSET >> 20); |
8804 | @@ -249,8 +315,14 @@ page_pde_offset = (__PAGE_OFFSET >> 20); | 8806 | @@ -249,8 +317,14 @@ page_pde_offset = (__PAGE_OFFSET >> 20); |
8805 | movl %eax, pa(max_pfn_mapped) | 8807 | movl %eax, pa(max_pfn_mapped) |
8806 | 8808 | ||
8807 | /* Do early initialization of the fixmap area */ | 8809 | /* Do early initialization of the fixmap area */ |
@@ -8818,7 +8820,7 @@ diff -urNp linux-2.6.30.4/arch/x86/kernel/head_32.S linux-2.6.30.4/arch/x86/kern | |||
8818 | #endif | 8820 | #endif |
8819 | jmp 3f | 8821 | jmp 3f |
8820 | /* | 8822 | /* |
8821 | @@ -314,13 +386,16 @@ ENTRY(startup_32_smp) | 8823 | @@ -314,13 +388,16 @@ ENTRY(startup_32_smp) |
8822 | jnc 6f | 8824 | jnc 6f |
8823 | 8825 | ||
8824 | /* Setup EFER (Extended Feature Enable Register) */ | 8826 | /* Setup EFER (Extended Feature Enable Register) */ |
@@ -8836,7 +8838,7 @@ diff -urNp linux-2.6.30.4/arch/x86/kernel/head_32.S linux-2.6.30.4/arch/x86/kern | |||
8836 | 6: | 8838 | 6: |
8837 | 8839 | ||
8838 | /* | 8840 | /* |
8839 | @@ -346,9 +421,7 @@ ENTRY(startup_32_smp) | 8841 | @@ -346,9 +423,7 @@ ENTRY(startup_32_smp) |
8840 | 8842 | ||
8841 | #ifdef CONFIG_SMP | 8843 | #ifdef CONFIG_SMP |
8842 | cmpb $0, ready | 8844 | cmpb $0, ready |
@@ -8847,7 +8849,7 @@ diff -urNp linux-2.6.30.4/arch/x86/kernel/head_32.S linux-2.6.30.4/arch/x86/kern | |||
8847 | #endif /* CONFIG_SMP */ | 8849 | #endif /* CONFIG_SMP */ |
8848 | 8850 | ||
8849 | /* | 8851 | /* |
8850 | @@ -426,7 +499,7 @@ is386: movl $2,%ecx # set MP | 8852 | @@ -426,7 +501,7 @@ is386: movl $2,%ecx # set MP |
8851 | 1: movl $(__KERNEL_DS),%eax # reload all the segment registers | 8853 | 1: movl $(__KERNEL_DS),%eax # reload all the segment registers |
8852 | movl %eax,%ss # after changing gdt. | 8854 | movl %eax,%ss # after changing gdt. |
8853 | 8855 | ||
@@ -8856,18 +8858,20 @@ diff -urNp linux-2.6.30.4/arch/x86/kernel/head_32.S linux-2.6.30.4/arch/x86/kern | |||
8856 | movl %eax,%ds | 8858 | movl %eax,%ds |
8857 | movl %eax,%es | 8859 | movl %eax,%es |
8858 | 8860 | ||
8859 | @@ -440,8 +513,9 @@ is386: movl $2,%ecx # set MP | 8861 | @@ -440,8 +515,11 @@ is386: movl $2,%ecx # set MP |
8860 | */ | 8862 | */ |
8861 | cmpb $0,ready | 8863 | cmpb $0,ready |
8862 | jne 1f | 8864 | jne 1f |
8863 | - movl $per_cpu__gdt_page,%eax | 8865 | - movl $per_cpu__gdt_page,%eax |
8864 | + movl $cpu_gdt_table,%eax | 8866 | + movl $cpu_gdt_table,%eax |
8865 | movl $per_cpu__stack_canary,%ecx | 8867 | movl $per_cpu__stack_canary,%ecx |
8868 | +#ifdef CONFIG_SMP | ||
8866 | + addl $__per_cpu_load,%ecx | 8869 | + addl $__per_cpu_load,%ecx |
8870 | +#endif | ||
8867 | subl $20, %ecx | 8871 | subl $20, %ecx |
8868 | movw %cx, 8 * GDT_ENTRY_STACK_CANARY + 2(%eax) | 8872 | movw %cx, 8 * GDT_ENTRY_STACK_CANARY + 2(%eax) |
8869 | shrl $16, %ecx | 8873 | shrl $16, %ecx |
8870 | @@ -460,10 +534,6 @@ is386: movl $2,%ecx # set MP | 8874 | @@ -460,10 +538,6 @@ is386: movl $2,%ecx # set MP |
8871 | #ifdef CONFIG_SMP | 8875 | #ifdef CONFIG_SMP |
8872 | movb ready, %cl | 8876 | movb ready, %cl |
8873 | movb $1, ready | 8877 | movb $1, ready |
@@ -8878,7 +8882,7 @@ diff -urNp linux-2.6.30.4/arch/x86/kernel/head_32.S linux-2.6.30.4/arch/x86/kern | |||
8878 | #endif /* CONFIG_SMP */ | 8882 | #endif /* CONFIG_SMP */ |
8879 | jmp *(initial_code) | 8883 | jmp *(initial_code) |
8880 | 8884 | ||
8881 | @@ -549,22 +619,22 @@ early_page_fault: | 8885 | @@ -549,22 +623,22 @@ early_page_fault: |
8882 | jmp early_fault | 8886 | jmp early_fault |
8883 | 8887 | ||
8884 | early_fault: | 8888 | early_fault: |
@@ -8906,7 +8910,7 @@ diff -urNp linux-2.6.30.4/arch/x86/kernel/head_32.S linux-2.6.30.4/arch/x86/kern | |||
8906 | hlt_loop: | 8910 | hlt_loop: |
8907 | hlt | 8911 | hlt |
8908 | jmp hlt_loop | 8912 | jmp hlt_loop |
8909 | @@ -572,8 +642,11 @@ hlt_loop: | 8913 | @@ -572,8 +646,11 @@ hlt_loop: |
8910 | /* This is the default interrupt "handler" :-) */ | 8914 | /* This is the default interrupt "handler" :-) */ |
8911 | ALIGN | 8915 | ALIGN |
8912 | ignore_int: | 8916 | ignore_int: |
@@ -8919,7 +8923,7 @@ diff -urNp linux-2.6.30.4/arch/x86/kernel/head_32.S linux-2.6.30.4/arch/x86/kern | |||
8919 | pushl %eax | 8923 | pushl %eax |
8920 | pushl %ecx | 8924 | pushl %ecx |
8921 | pushl %edx | 8925 | pushl %edx |
8922 | @@ -582,9 +655,6 @@ ignore_int: | 8926 | @@ -582,9 +659,6 @@ ignore_int: |
8923 | movl $(__KERNEL_DS),%eax | 8927 | movl $(__KERNEL_DS),%eax |
8924 | movl %eax,%ds | 8928 | movl %eax,%ds |
8925 | movl %eax,%es | 8929 | movl %eax,%es |
@@ -8929,7 +8933,7 @@ diff -urNp linux-2.6.30.4/arch/x86/kernel/head_32.S linux-2.6.30.4/arch/x86/kern | |||
8929 | pushl 16(%esp) | 8933 | pushl 16(%esp) |
8930 | pushl 24(%esp) | 8934 | pushl 24(%esp) |
8931 | pushl 32(%esp) | 8935 | pushl 32(%esp) |
8932 | @@ -608,37 +678,49 @@ ignore_int: | 8936 | @@ -608,37 +682,49 @@ ignore_int: |
8933 | ENTRY(initial_code) | 8937 | ENTRY(initial_code) |
8934 | .long i386_start_kernel | 8938 | .long i386_start_kernel |
8935 | 8939 | ||
@@ -8960,13 +8964,13 @@ diff -urNp linux-2.6.30.4/arch/x86/kernel/head_32.S linux-2.6.30.4/arch/x86/kern | |||
8960 | + .fill 1024,4,0 | 8964 | + .fill 1024,4,0 |
8961 | + | 8965 | + |
8962 | +ENTRY(swapper_pg_fixmap1) | 8966 | +ENTRY(swapper_pg_fixmap1) |
8963 | + .fill 1024,4,0 | 8967 | .fill 1024,4,0 |
8964 | + | 8968 | + |
8965 | +ENTRY(swapper_pg_fixmap2) | 8969 | +ENTRY(swapper_pg_fixmap2) |
8966 | + .fill 1024,4,0 | 8970 | + .fill 1024,4,0 |
8967 | + | 8971 | + |
8968 | +ENTRY(swapper_pg_fixmap3) | 8972 | +ENTRY(swapper_pg_fixmap3) |
8969 | .fill 1024,4,0 | 8973 | + .fill 1024,4,0 |
8970 | + | 8974 | + |
8971 | +.section .empty_zero_page,"a",@progbits | 8975 | +.section .empty_zero_page,"a",@progbits |
8972 | ENTRY(empty_zero_page) | 8976 | ENTRY(empty_zero_page) |
@@ -8992,7 +8996,7 @@ diff -urNp linux-2.6.30.4/arch/x86/kernel/head_32.S linux-2.6.30.4/arch/x86/kern | |||
8992 | ENTRY(swapper_pg_dir) | 8996 | ENTRY(swapper_pg_dir) |
8993 | .long pa(swapper_pg_pmd+PGD_IDENT_ATTR),0 /* low identity map */ | 8997 | .long pa(swapper_pg_pmd+PGD_IDENT_ATTR),0 /* low identity map */ |
8994 | # if KPMDS == 3 | 8998 | # if KPMDS == 3 |
8995 | @@ -661,11 +743,12 @@ ENTRY(swapper_pg_dir) | 8999 | @@ -661,11 +747,12 @@ ENTRY(swapper_pg_dir) |
8996 | 9000 | ||
8997 | .data | 9001 | .data |
8998 | ENTRY(stack_start) | 9002 | ENTRY(stack_start) |
@@ -9006,7 +9010,7 @@ diff -urNp linux-2.6.30.4/arch/x86/kernel/head_32.S linux-2.6.30.4/arch/x86/kern | |||
9006 | early_recursion_flag: | 9010 | early_recursion_flag: |
9007 | .long 0 | 9011 | .long 0 |
9008 | 9012 | ||
9009 | @@ -701,7 +784,7 @@ fault_msg: | 9013 | @@ -701,7 +788,7 @@ fault_msg: |
9010 | .word 0 # 32 bit align gdt_desc.address | 9014 | .word 0 # 32 bit align gdt_desc.address |
9011 | boot_gdt_descr: | 9015 | boot_gdt_descr: |
9012 | .word __BOOT_DS+7 | 9016 | .word __BOOT_DS+7 |
@@ -9015,7 +9019,7 @@ diff -urNp linux-2.6.30.4/arch/x86/kernel/head_32.S linux-2.6.30.4/arch/x86/kern | |||
9015 | 9019 | ||
9016 | .word 0 # 32-bit align idt_desc.address | 9020 | .word 0 # 32-bit align idt_desc.address |
9017 | idt_descr: | 9021 | idt_descr: |
9018 | @@ -712,7 +795,7 @@ idt_descr: | 9022 | @@ -712,7 +799,7 @@ idt_descr: |
9019 | .word 0 # 32 bit align gdt_desc.address | 9023 | .word 0 # 32 bit align gdt_desc.address |
9020 | ENTRY(early_gdt_descr) | 9024 | ENTRY(early_gdt_descr) |
9021 | .word GDT_ENTRIES*8-1 | 9025 | .word GDT_ENTRIES*8-1 |
@@ -9024,7 +9028,7 @@ diff -urNp linux-2.6.30.4/arch/x86/kernel/head_32.S linux-2.6.30.4/arch/x86/kern | |||
9024 | 9028 | ||
9025 | /* | 9029 | /* |
9026 | * The boot_gdt must mirror the equivalent in setup.S and is | 9030 | * The boot_gdt must mirror the equivalent in setup.S and is |
9027 | @@ -721,5 +804,59 @@ ENTRY(early_gdt_descr) | 9031 | @@ -721,5 +808,59 @@ ENTRY(early_gdt_descr) |
9028 | .align L1_CACHE_BYTES | 9032 | .align L1_CACHE_BYTES |
9029 | ENTRY(boot_gdt) | 9033 | ENTRY(boot_gdt) |
9030 | .fill GDT_ENTRY_BOOT_CS,8,0 | 9034 | .fill GDT_ENTRY_BOOT_CS,8,0 |
@@ -10165,7 +10169,7 @@ diff -urNp linux-2.6.30.4/arch/x86/kernel/process_64.c linux-2.6.30.4/arch/x86/k | |||
10165 | -} | 10169 | -} |
10166 | diff -urNp linux-2.6.30.4/arch/x86/kernel/process.c linux-2.6.30.4/arch/x86/kernel/process.c | 10170 | diff -urNp linux-2.6.30.4/arch/x86/kernel/process.c linux-2.6.30.4/arch/x86/kernel/process.c |
10167 | --- linux-2.6.30.4/arch/x86/kernel/process.c 2009-07-24 17:47:51.000000000 -0400 | 10171 | --- linux-2.6.30.4/arch/x86/kernel/process.c 2009-07-24 17:47:51.000000000 -0400 |
10168 | +++ linux-2.6.30.4/arch/x86/kernel/process.c 2009-07-30 09:48:09.950702241 -0400 | 10172 | +++ linux-2.6.30.4/arch/x86/kernel/process.c 2009-08-05 19:08:00.495411211 -0400 |
10169 | @@ -71,7 +71,7 @@ void exit_thread(void) | 10173 | @@ -71,7 +71,7 @@ void exit_thread(void) |
10170 | unsigned long *bp = t->io_bitmap_ptr; | 10174 | unsigned long *bp = t->io_bitmap_ptr; |
10171 | 10175 | ||
@@ -10179,7 +10183,7 @@ diff -urNp linux-2.6.30.4/arch/x86/kernel/process.c linux-2.6.30.4/arch/x86/kern | |||
10179 | 10183 | ||
10180 | clear_tsk_thread_flag(tsk, TIF_DEBUG); | 10184 | clear_tsk_thread_flag(tsk, TIF_DEBUG); |
10181 | 10185 | ||
10182 | +#ifndef CONFIG_CC_STACKPROTECTOR | 10186 | +#if defined(CONFIG_X86_32) && !defined(CONFIG_CC_STACKPROTECTOR) |
10183 | + loadsegment(gs, 0); | 10187 | + loadsegment(gs, 0); |
10184 | +#endif | 10188 | +#endif |
10185 | tsk->thread.debugreg0 = 0; | 10189 | tsk->thread.debugreg0 = 0; |
@@ -10301,7 +10305,7 @@ diff -urNp linux-2.6.30.4/arch/x86/kernel/setup.c linux-2.6.30.4/arch/x86/kernel | |||
10301 | bss_resource.end = virt_to_phys(&__bss_stop)-1; | 10305 | bss_resource.end = virt_to_phys(&__bss_stop)-1; |
10302 | diff -urNp linux-2.6.30.4/arch/x86/kernel/setup_percpu.c linux-2.6.30.4/arch/x86/kernel/setup_percpu.c | 10306 | diff -urNp linux-2.6.30.4/arch/x86/kernel/setup_percpu.c linux-2.6.30.4/arch/x86/kernel/setup_percpu.c |
10303 | --- linux-2.6.30.4/arch/x86/kernel/setup_percpu.c 2009-07-24 17:47:51.000000000 -0400 | 10307 | --- linux-2.6.30.4/arch/x86/kernel/setup_percpu.c 2009-07-24 17:47:51.000000000 -0400 |
10304 | +++ linux-2.6.30.4/arch/x86/kernel/setup_percpu.c 2009-08-04 17:52:34.388856060 -0400 | 10308 | +++ linux-2.6.30.4/arch/x86/kernel/setup_percpu.c 2009-08-05 19:08:00.518752374 -0400 |
10305 | @@ -25,19 +25,17 @@ | 10309 | @@ -25,19 +25,17 @@ |
10306 | # define DBG(x...) | 10310 | # define DBG(x...) |
10307 | #endif | 10311 | #endif |
@@ -10325,33 +10329,30 @@ diff -urNp linux-2.6.30.4/arch/x86/kernel/setup_percpu.c linux-2.6.30.4/arch/x86 | |||
10325 | [0 ... NR_CPUS-1] = BOOT_PERCPU_OFFSET, | 10329 | [0 ... NR_CPUS-1] = BOOT_PERCPU_OFFSET, |
10326 | }; | 10330 | }; |
10327 | EXPORT_SYMBOL(__per_cpu_offset); | 10331 | EXPORT_SYMBOL(__per_cpu_offset); |
10328 | @@ -333,16 +331,18 @@ out_free_ar: | 10332 | @@ -336,13 +334,15 @@ out_free_ar: |
10329 | return ret; | 10333 | static inline void setup_percpu_segment(int cpu) |
10330 | } | ||
10331 | |||
10332 | -static inline void setup_percpu_segment(int cpu) | ||
10333 | +static inline void setup_percpu_segment(int cpu, size_t size) | ||
10334 | { | 10334 | { |
10335 | #ifdef CONFIG_X86_32 | 10335 | #ifdef CONFIG_X86_32 |
10336 | - struct desc_struct gdt; | 10336 | - struct desc_struct gdt; |
10337 | + struct desc_struct d, *gdt = get_cpu_gdt_table(cpu); | 10337 | - |
10338 | + unsigned long base; | ||
10339 | |||
10340 | - pack_descriptor(&gdt, per_cpu_offset(cpu), 0xFFFFF, | 10338 | - pack_descriptor(&gdt, per_cpu_offset(cpu), 0xFFFFF, |
10341 | - 0x2 | DESCTYPE_S, 0x8); | 10339 | - 0x2 | DESCTYPE_S, 0x8); |
10342 | - gdt.s = 1; | 10340 | - gdt.s = 1; |
10343 | - write_gdt_entry(get_cpu_gdt_table(cpu), | 10341 | - write_gdt_entry(get_cpu_gdt_table(cpu), |
10344 | - GDT_ENTRY_PERCPU, &gdt, DESCTYPE_S); | 10342 | - GDT_ENTRY_PERCPU, &gdt, DESCTYPE_S); |
10345 | + base = per_cpu_offset(cpu); | 10343 | + struct desc_struct d, *gdt = get_cpu_gdt_table(cpu); |
10346 | + if (size <= 64*1024) | 10344 | + unsigned long base = per_cpu_offset(cpu); |
10347 | + pack_descriptor(&d, base, size-1, 0x80 | DESCTYPE_S | 0x3, 0x4); | 10345 | + const unsigned long limit = VMALLOC_END - base - 1; |
10346 | + | ||
10347 | + if (limit < 64*1024) | ||
10348 | + pack_descriptor(&d, base, limit, 0x80 | DESCTYPE_S | 0x3, 0x4); | ||
10348 | + else | 10349 | + else |
10349 | + pack_descriptor(&d, base, (size-1) >> PAGE_SHIFT, 0x80 | DESCTYPE_S | 0x3, 0xC); | 10350 | + pack_descriptor(&d, base, limit >> PAGE_SHIFT, 0x80 | DESCTYPE_S | 0x3, 0xC); |
10350 | + write_gdt_entry(gdt, GDT_ENTRY_PERCPU, &d, DESCTYPE_S); | 10351 | + write_gdt_entry(gdt, GDT_ENTRY_PERCPU, &d, DESCTYPE_S); |
10351 | #endif | 10352 | #endif |
10352 | } | 10353 | } |
10353 | 10354 | ||
10354 | @@ -381,10 +381,15 @@ void __init setup_per_cpu_areas(void) | 10355 | @@ -381,6 +381,11 @@ void __init setup_per_cpu_areas(void) |
10355 | /* alrighty, percpu areas up and running */ | 10356 | /* alrighty, percpu areas up and running */ |
10356 | delta = (unsigned long)pcpu_base_addr - (unsigned long)__per_cpu_start; | 10357 | delta = (unsigned long)pcpu_base_addr - (unsigned long)__per_cpu_start; |
10357 | for_each_possible_cpu(cpu) { | 10358 | for_each_possible_cpu(cpu) { |
@@ -10363,11 +10364,6 @@ diff -urNp linux-2.6.30.4/arch/x86/kernel/setup_percpu.c linux-2.6.30.4/arch/x86 | |||
10363 | per_cpu_offset(cpu) = delta + cpu * pcpu_unit_size; | 10364 | per_cpu_offset(cpu) = delta + cpu * pcpu_unit_size; |
10364 | per_cpu(this_cpu_off, cpu) = per_cpu_offset(cpu); | 10365 | per_cpu(this_cpu_off, cpu) = per_cpu_offset(cpu); |
10365 | per_cpu(cpu_number, cpu) = cpu; | 10366 | per_cpu(cpu_number, cpu) = cpu; |
10366 | - setup_percpu_segment(cpu); | ||
10367 | + setup_percpu_segment(cpu, static_size + PERCPU_MODULE_RESERVE + PERCPU_DYNAMIC_RESERVE); | ||
10368 | setup_stack_canary_segment(cpu); | ||
10369 | /* | ||
10370 | * Copy data used in early init routines from the | ||
10371 | @@ -408,6 +413,12 @@ void __init setup_per_cpu_areas(void) | 10367 | @@ -408,6 +413,12 @@ void __init setup_per_cpu_areas(void) |
10372 | early_per_cpu_map(x86_cpu_to_node_map, cpu); | 10368 | early_per_cpu_map(x86_cpu_to_node_map, cpu); |
10373 | #endif | 10369 | #endif |
@@ -13818,7 +13814,7 @@ diff -urNp linux-2.6.30.4/arch/x86/mm/extable.c linux-2.6.30.4/arch/x86/mm/extab | |||
13818 | pnp_bios_is_utter_crap = 1; | 13814 | pnp_bios_is_utter_crap = 1; |
13819 | diff -urNp linux-2.6.30.4/arch/x86/mm/fault.c linux-2.6.30.4/arch/x86/mm/fault.c | 13815 | diff -urNp linux-2.6.30.4/arch/x86/mm/fault.c linux-2.6.30.4/arch/x86/mm/fault.c |
13820 | --- linux-2.6.30.4/arch/x86/mm/fault.c 2009-07-24 17:47:51.000000000 -0400 | 13816 | --- linux-2.6.30.4/arch/x86/mm/fault.c 2009-07-24 17:47:51.000000000 -0400 |
13821 | +++ linux-2.6.30.4/arch/x86/mm/fault.c 2009-07-30 11:10:48.941676108 -0400 | 13817 | +++ linux-2.6.30.4/arch/x86/mm/fault.c 2009-08-05 19:15:53.629625442 -0400 |
13822 | @@ -27,6 +27,8 @@ | 13818 | @@ -27,6 +27,8 @@ |
13823 | #include <linux/tty.h> | 13819 | #include <linux/tty.h> |
13824 | #include <linux/smp.h> | 13820 | #include <linux/smp.h> |
@@ -13828,7 +13824,15 @@ diff -urNp linux-2.6.30.4/arch/x86/mm/fault.c linux-2.6.30.4/arch/x86/mm/fault.c | |||
13828 | 13824 | ||
13829 | #include <asm-generic/sections.h> | 13825 | #include <asm-generic/sections.h> |
13830 | 13826 | ||
13831 | @@ -73,7 +75,7 @@ static inline int notify_page_fault(stru | 13827 | @@ -37,6 +39,7 @@ |
13828 | #include <asm/proto.h> | ||
13829 | #include <asm/traps.h> | ||
13830 | #include <asm/desc.h> | ||
13831 | +#include <asm/vsyscall.h> | ||
13832 | |||
13833 | /* | ||
13834 | * Page fault error code bits: | ||
13835 | @@ -73,7 +76,7 @@ static inline int notify_page_fault(stru | ||
13832 | int ret = 0; | 13836 | int ret = 0; |
13833 | 13837 | ||
13834 | /* kprobe_running() needs smp_processor_id() */ | 13838 | /* kprobe_running() needs smp_processor_id() */ |
@@ -13837,7 +13841,7 @@ diff -urNp linux-2.6.30.4/arch/x86/mm/fault.c linux-2.6.30.4/arch/x86/mm/fault.c | |||
13837 | preempt_disable(); | 13841 | preempt_disable(); |
13838 | if (kprobe_running() && kprobe_fault_handler(regs, 14)) | 13842 | if (kprobe_running() && kprobe_fault_handler(regs, 14)) |
13839 | ret = 1; | 13843 | ret = 1; |
13840 | @@ -193,6 +195,30 @@ force_sig_info_fault(int si_signo, int s | 13844 | @@ -193,6 +196,30 @@ force_sig_info_fault(int si_signo, int s |
13841 | force_sig_info(si_signo, &info, tsk); | 13845 | force_sig_info(si_signo, &info, tsk); |
13842 | } | 13846 | } |
13843 | 13847 | ||
@@ -13868,7 +13872,7 @@ diff -urNp linux-2.6.30.4/arch/x86/mm/fault.c linux-2.6.30.4/arch/x86/mm/fault.c | |||
13868 | DEFINE_SPINLOCK(pgd_lock); | 13872 | DEFINE_SPINLOCK(pgd_lock); |
13869 | LIST_HEAD(pgd_list); | 13873 | LIST_HEAD(pgd_list); |
13870 | 13874 | ||
13871 | @@ -571,7 +597,7 @@ static int is_errata93(struct pt_regs *r | 13875 | @@ -571,7 +598,7 @@ static int is_errata93(struct pt_regs *r |
13872 | static int is_errata100(struct pt_regs *regs, unsigned long address) | 13876 | static int is_errata100(struct pt_regs *regs, unsigned long address) |
13873 | { | 13877 | { |
13874 | #ifdef CONFIG_X86_64 | 13878 | #ifdef CONFIG_X86_64 |
@@ -13877,7 +13881,7 @@ diff -urNp linux-2.6.30.4/arch/x86/mm/fault.c linux-2.6.30.4/arch/x86/mm/fault.c | |||
13877 | return 1; | 13881 | return 1; |
13878 | #endif | 13882 | #endif |
13879 | return 0; | 13883 | return 0; |
13880 | @@ -598,7 +624,7 @@ static int is_f00f_bug(struct pt_regs *r | 13884 | @@ -598,7 +625,7 @@ static int is_f00f_bug(struct pt_regs *r |
13881 | } | 13885 | } |
13882 | 13886 | ||
13883 | static const char nx_warning[] = KERN_CRIT | 13887 | static const char nx_warning[] = KERN_CRIT |
@@ -13886,7 +13890,7 @@ diff -urNp linux-2.6.30.4/arch/x86/mm/fault.c linux-2.6.30.4/arch/x86/mm/fault.c | |||
13886 | 13890 | ||
13887 | static void | 13891 | static void |
13888 | show_fault_oops(struct pt_regs *regs, unsigned long error_code, | 13892 | show_fault_oops(struct pt_regs *regs, unsigned long error_code, |
13889 | @@ -607,15 +633,31 @@ show_fault_oops(struct pt_regs *regs, un | 13893 | @@ -607,15 +634,31 @@ show_fault_oops(struct pt_regs *regs, un |
13890 | if (!oops_may_print()) | 13894 | if (!oops_may_print()) |
13891 | return; | 13895 | return; |
13892 | 13896 | ||
@@ -13920,7 +13924,7 @@ diff -urNp linux-2.6.30.4/arch/x86/mm/fault.c linux-2.6.30.4/arch/x86/mm/fault.c | |||
13920 | printk(KERN_ALERT "BUG: unable to handle kernel "); | 13924 | printk(KERN_ALERT "BUG: unable to handle kernel "); |
13921 | if (address < PAGE_SIZE) | 13925 | if (address < PAGE_SIZE) |
13922 | printk(KERN_CONT "NULL pointer dereference"); | 13926 | printk(KERN_CONT "NULL pointer dereference"); |
13923 | @@ -740,6 +782,68 @@ __bad_area_nosemaphore(struct pt_regs *r | 13927 | @@ -740,6 +783,68 @@ __bad_area_nosemaphore(struct pt_regs *r |
13924 | unsigned long address, int si_code) | 13928 | unsigned long address, int si_code) |
13925 | { | 13929 | { |
13926 | struct task_struct *tsk = current; | 13930 | struct task_struct *tsk = current; |
@@ -13989,7 +13993,7 @@ diff -urNp linux-2.6.30.4/arch/x86/mm/fault.c linux-2.6.30.4/arch/x86/mm/fault.c | |||
13989 | 13993 | ||
13990 | /* User mode accesses just cause a SIGSEGV */ | 13994 | /* User mode accesses just cause a SIGSEGV */ |
13991 | if (error_code & PF_USER) { | 13995 | if (error_code & PF_USER) { |
13992 | @@ -874,6 +978,106 @@ static int spurious_fault_check(unsigned | 13996 | @@ -874,6 +979,106 @@ static int spurious_fault_check(unsigned |
13993 | return 1; | 13997 | return 1; |
13994 | } | 13998 | } |
13995 | 13999 | ||
@@ -14096,7 +14100,7 @@ diff -urNp linux-2.6.30.4/arch/x86/mm/fault.c linux-2.6.30.4/arch/x86/mm/fault.c | |||
14096 | /* | 14100 | /* |
14097 | * Handle a spurious fault caused by a stale TLB entry. | 14101 | * Handle a spurious fault caused by a stale TLB entry. |
14098 | * | 14102 | * |
14099 | @@ -940,6 +1144,9 @@ int show_unhandled_signals = 1; | 14103 | @@ -940,6 +1145,9 @@ int show_unhandled_signals = 1; |
14100 | static inline int | 14104 | static inline int |
14101 | access_error(unsigned long error_code, int write, struct vm_area_struct *vma) | 14105 | access_error(unsigned long error_code, int write, struct vm_area_struct *vma) |
14102 | { | 14106 | { |
@@ -14106,7 +14110,7 @@ diff -urNp linux-2.6.30.4/arch/x86/mm/fault.c linux-2.6.30.4/arch/x86/mm/fault.c | |||
14106 | if (write) { | 14110 | if (write) { |
14107 | /* write, present and write, not present: */ | 14111 | /* write, present and write, not present: */ |
14108 | if (unlikely(!(vma->vm_flags & VM_WRITE))) | 14112 | if (unlikely(!(vma->vm_flags & VM_WRITE))) |
14109 | @@ -973,19 +1180,18 @@ do_page_fault(struct pt_regs *regs, unsi | 14113 | @@ -973,19 +1181,18 @@ do_page_fault(struct pt_regs *regs, unsi |
14110 | { | 14114 | { |
14111 | struct vm_area_struct *vma; | 14115 | struct vm_area_struct *vma; |
14112 | struct task_struct *tsk; | 14116 | struct task_struct *tsk; |
@@ -14129,7 +14133,7 @@ diff -urNp linux-2.6.30.4/arch/x86/mm/fault.c linux-2.6.30.4/arch/x86/mm/fault.c | |||
14129 | if (unlikely(kmmio_fault(regs, address))) | 14133 | if (unlikely(kmmio_fault(regs, address))) |
14130 | return; | 14134 | return; |
14131 | 14135 | ||
14132 | @@ -1033,7 +1239,7 @@ do_page_fault(struct pt_regs *regs, unsi | 14136 | @@ -1033,7 +1240,7 @@ do_page_fault(struct pt_regs *regs, unsi |
14133 | * User-mode registers count as a user access even for any | 14137 | * User-mode registers count as a user access even for any |
14134 | * potential system fault or CPU buglet: | 14138 | * potential system fault or CPU buglet: |
14135 | */ | 14139 | */ |
@@ -14138,7 +14142,7 @@ diff -urNp linux-2.6.30.4/arch/x86/mm/fault.c linux-2.6.30.4/arch/x86/mm/fault.c | |||
14138 | local_irq_enable(); | 14142 | local_irq_enable(); |
14139 | error_code |= PF_USER; | 14143 | error_code |= PF_USER; |
14140 | } else { | 14144 | } else { |
14141 | @@ -1085,6 +1291,11 @@ do_page_fault(struct pt_regs *regs, unsi | 14145 | @@ -1085,6 +1292,11 @@ do_page_fault(struct pt_regs *regs, unsi |
14142 | might_sleep(); | 14146 | might_sleep(); |
14143 | } | 14147 | } |
14144 | 14148 | ||
@@ -14150,7 +14154,7 @@ diff -urNp linux-2.6.30.4/arch/x86/mm/fault.c linux-2.6.30.4/arch/x86/mm/fault.c | |||
14150 | vma = find_vma(mm, address); | 14154 | vma = find_vma(mm, address); |
14151 | if (unlikely(!vma)) { | 14155 | if (unlikely(!vma)) { |
14152 | bad_area(regs, error_code, address); | 14156 | bad_area(regs, error_code, address); |
14153 | @@ -1096,18 +1307,24 @@ do_page_fault(struct pt_regs *regs, unsi | 14157 | @@ -1096,18 +1308,24 @@ do_page_fault(struct pt_regs *regs, unsi |
14154 | bad_area(regs, error_code, address); | 14158 | bad_area(regs, error_code, address); |
14155 | return; | 14159 | return; |
14156 | } | 14160 | } |
@@ -14186,7 +14190,7 @@ diff -urNp linux-2.6.30.4/arch/x86/mm/fault.c linux-2.6.30.4/arch/x86/mm/fault.c | |||
14186 | if (unlikely(expand_stack(vma, address))) { | 14190 | if (unlikely(expand_stack(vma, address))) { |
14187 | bad_area(regs, error_code, address); | 14191 | bad_area(regs, error_code, address); |
14188 | return; | 14192 | return; |
14189 | @@ -1146,3 +1363,174 @@ good_area: | 14193 | @@ -1146,3 +1364,174 @@ good_area: |
14190 | 14194 | ||
14191 | up_read(&mm->mmap_sem); | 14195 | up_read(&mm->mmap_sem); |
14192 | } | 14196 | } |
@@ -15909,8 +15913,13 @@ diff -urNp linux-2.6.30.4/arch/x86/vdso/Makefile linux-2.6.30.4/arch/x86/vdso/Ma | |||
15909 | # Install the unstripped copy of vdso*.so listed in $(vdso-install-y). | 15913 | # Install the unstripped copy of vdso*.so listed in $(vdso-install-y). |
15910 | diff -urNp linux-2.6.30.4/arch/x86/vdso/vclock_gettime.c linux-2.6.30.4/arch/x86/vdso/vclock_gettime.c | 15914 | diff -urNp linux-2.6.30.4/arch/x86/vdso/vclock_gettime.c linux-2.6.30.4/arch/x86/vdso/vclock_gettime.c |
15911 | --- linux-2.6.30.4/arch/x86/vdso/vclock_gettime.c 2009-07-24 17:47:51.000000000 -0400 | 15915 | --- linux-2.6.30.4/arch/x86/vdso/vclock_gettime.c 2009-07-24 17:47:51.000000000 -0400 |
15912 | +++ linux-2.6.30.4/arch/x86/vdso/vclock_gettime.c 2009-07-30 09:48:09.978662746 -0400 | 15916 | +++ linux-2.6.30.4/arch/x86/vdso/vclock_gettime.c 2009-08-05 19:15:53.673598242 -0400 |
15913 | @@ -26,20 +26,43 @@ | 15917 | @@ -22,24 +22,48 @@ |
15918 | #include <asm/hpet.h> | ||
15919 | #include <asm/unistd.h> | ||
15920 | #include <asm/io.h> | ||
15921 | +#include <asm/fixmap.h> | ||
15922 | #include "vextern.h" | ||
15914 | 15923 | ||
15915 | #define gtod vdso_vsyscall_gtod_data | 15924 | #define gtod vdso_vsyscall_gtod_data |
15916 | 15925 | ||
@@ -15958,7 +15967,7 @@ diff -urNp linux-2.6.30.4/arch/x86/vdso/vclock_gettime.c linux-2.6.30.4/arch/x86 | |||
15958 | return (v * gtod->clock.mult) >> gtod->clock.shift; | 15967 | return (v * gtod->clock.mult) >> gtod->clock.shift; |
15959 | } | 15968 | } |
15960 | 15969 | ||
15961 | @@ -88,7 +111,9 @@ notrace static noinline int do_monotonic | 15970 | @@ -88,7 +112,9 @@ notrace static noinline int do_monotonic |
15962 | 15971 | ||
15963 | notrace int __vdso_clock_gettime(clockid_t clock, struct timespec *ts) | 15972 | notrace int __vdso_clock_gettime(clockid_t clock, struct timespec *ts) |
15964 | { | 15973 | { |
@@ -15969,7 +15978,7 @@ diff -urNp linux-2.6.30.4/arch/x86/vdso/vclock_gettime.c linux-2.6.30.4/arch/x86 | |||
15969 | switch (clock) { | 15978 | switch (clock) { |
15970 | case CLOCK_REALTIME: | 15979 | case CLOCK_REALTIME: |
15971 | return do_realtime(ts); | 15980 | return do_realtime(ts); |
15972 | @@ -100,10 +125,20 @@ notrace int __vdso_clock_gettime(clockid | 15981 | @@ -100,10 +126,20 @@ notrace int __vdso_clock_gettime(clockid |
15973 | int clock_gettime(clockid_t, struct timespec *) | 15982 | int clock_gettime(clockid_t, struct timespec *) |
15974 | __attribute__((weak, alias("__vdso_clock_gettime"))); | 15983 | __attribute__((weak, alias("__vdso_clock_gettime"))); |
15975 | 15984 | ||
@@ -15992,7 +16001,7 @@ diff -urNp linux-2.6.30.4/arch/x86/vdso/vclock_gettime.c linux-2.6.30.4/arch/x86 | |||
15992 | if (likely(tv != NULL)) { | 16001 | if (likely(tv != NULL)) { |
15993 | BUILD_BUG_ON(offsetof(struct timeval, tv_usec) != | 16002 | BUILD_BUG_ON(offsetof(struct timeval, tv_usec) != |
15994 | offsetof(struct timespec, tv_nsec) || | 16003 | offsetof(struct timespec, tv_nsec) || |
15995 | @@ -118,9 +153,7 @@ notrace int __vdso_gettimeofday(struct t | 16004 | @@ -118,9 +154,7 @@ notrace int __vdso_gettimeofday(struct t |
15996 | } | 16005 | } |
15997 | return 0; | 16006 | return 0; |
15998 | } | 16007 | } |
@@ -34785,7 +34794,7 @@ diff -urNp linux-2.6.30.4/include/asm-generic/int-ll64.h linux-2.6.30.4/include/ | |||
34785 | #define S16_C(x) x | 34794 | #define S16_C(x) x |
34786 | diff -urNp linux-2.6.30.4/include/asm-generic/vmlinux.lds.h linux-2.6.30.4/include/asm-generic/vmlinux.lds.h | 34795 | diff -urNp linux-2.6.30.4/include/asm-generic/vmlinux.lds.h linux-2.6.30.4/include/asm-generic/vmlinux.lds.h |
34787 | --- linux-2.6.30.4/include/asm-generic/vmlinux.lds.h 2009-07-24 17:47:51.000000000 -0400 | 34796 | --- linux-2.6.30.4/include/asm-generic/vmlinux.lds.h 2009-07-24 17:47:51.000000000 -0400 |
34788 | +++ linux-2.6.30.4/include/asm-generic/vmlinux.lds.h 2009-08-04 17:52:34.399966119 -0400 | 34797 | +++ linux-2.6.30.4/include/asm-generic/vmlinux.lds.h 2009-08-05 19:08:00.537007471 -0400 |
34789 | @@ -121,6 +121,7 @@ | 34798 | @@ -121,6 +121,7 @@ |
34790 | .rodata : AT(ADDR(.rodata) - LOAD_OFFSET) { \ | 34799 | .rodata : AT(ADDR(.rodata) - LOAD_OFFSET) { \ |
34791 | VMLINUX_SYMBOL(__start_rodata) = .; \ | 34800 | VMLINUX_SYMBOL(__start_rodata) = .; \ |
@@ -34794,17 +34803,17 @@ diff -urNp linux-2.6.30.4/include/asm-generic/vmlinux.lds.h linux-2.6.30.4/inclu | |||
34794 | *(__vermagic) /* Kernel version magic */ \ | 34803 | *(__vermagic) /* Kernel version magic */ \ |
34795 | *(__markers_strings) /* Markers: strings */ \ | 34804 | *(__markers_strings) /* Markers: strings */ \ |
34796 | *(__tracepoints_strings)/* Tracepoints: strings */ \ | 34805 | *(__tracepoints_strings)/* Tracepoints: strings */ \ |
34797 | @@ -476,8 +477,10 @@ | 34806 | @@ -478,8 +479,9 @@ |
34798 | VMLINUX_SYMBOL(__per_cpu_load) = .; \ | ||
34799 | .data.percpu vaddr : AT(VMLINUX_SYMBOL(__per_cpu_load) \ | ||
34800 | - LOAD_OFFSET) { \ | 34807 | - LOAD_OFFSET) { \ |
34801 | + VMLINUX_SYMBOL(__per_cpu_load) = . + __per_cpu_load; \ | ||
34802 | VMLINUX_SYMBOL(__per_cpu_start) = .; \ | 34808 | VMLINUX_SYMBOL(__per_cpu_start) = .; \ |
34803 | *(.data.percpu.first) \ | 34809 | *(.data.percpu.first) \ |
34804 | + . = ALIGN(PAGE_SIZE); \ | 34810 | - *(.data.percpu.page_aligned) \ |
34805 | *(.data.percpu.page_aligned) \ | ||
34806 | *(.data.percpu) \ | 34811 | *(.data.percpu) \ |
34812 | + . = ALIGN(PAGE_SIZE); \ | ||
34813 | + *(.data.percpu.page_aligned) \ | ||
34807 | *(.data.percpu.shared_aligned) \ | 34814 | *(.data.percpu.shared_aligned) \ |
34815 | VMLINUX_SYMBOL(__per_cpu_end) = .; \ | ||
34816 | } phdr \ | ||
34808 | diff -urNp linux-2.6.30.4/include/drm/drm_pciids.h linux-2.6.30.4/include/drm/drm_pciids.h | 34817 | diff -urNp linux-2.6.30.4/include/drm/drm_pciids.h linux-2.6.30.4/include/drm/drm_pciids.h |
34809 | --- linux-2.6.30.4/include/drm/drm_pciids.h 2009-07-24 17:47:51.000000000 -0400 | 34818 | --- linux-2.6.30.4/include/drm/drm_pciids.h 2009-07-24 17:47:51.000000000 -0400 |
34810 | +++ linux-2.6.30.4/include/drm/drm_pciids.h 2009-07-30 09:48:10.106233963 -0400 | 34819 | +++ linux-2.6.30.4/include/drm/drm_pciids.h 2009-07-30 09:48:10.106233963 -0400 |
diff --git a/main/linux-grsec/kernelconfig b/main/linux-grsec/kernelconfig index 71ee53486b..5fd6c53ce4 100644 --- a/main/linux-grsec/kernelconfig +++ b/main/linux-grsec/kernelconfig | |||
@@ -1,7 +1,7 @@ | |||
1 | # | 1 | # |
2 | # Automatically generated make config: don't edit | 2 | # Automatically generated make config: don't edit |
3 | # Linux kernel version: 2.6.30.4 | 3 | # Linux kernel version: 2.6.30.4 |
4 | # Mon Aug 3 08:50:09 2009 | 4 | # Fri Aug 7 08:30:31 2009 |
5 | # | 5 | # |
6 | # CONFIG_64BIT is not set | 6 | # CONFIG_64BIT is not set |
7 | CONFIG_X86_32=y | 7 | CONFIG_X86_32=y |
@@ -163,12 +163,12 @@ CONFIG_BLK_DEV_BSG=y | |||
163 | CONFIG_IOSCHED_NOOP=y | 163 | CONFIG_IOSCHED_NOOP=y |
164 | CONFIG_IOSCHED_AS=m | 164 | CONFIG_IOSCHED_AS=m |
165 | CONFIG_IOSCHED_DEADLINE=m | 165 | CONFIG_IOSCHED_DEADLINE=m |
166 | CONFIG_IOSCHED_CFQ=m | 166 | CONFIG_IOSCHED_CFQ=y |
167 | # CONFIG_DEFAULT_AS is not set | 167 | # CONFIG_DEFAULT_AS is not set |
168 | # CONFIG_DEFAULT_DEADLINE is not set | 168 | # CONFIG_DEFAULT_DEADLINE is not set |
169 | # CONFIG_DEFAULT_CFQ is not set | 169 | CONFIG_DEFAULT_CFQ=y |
170 | CONFIG_DEFAULT_NOOP=y | 170 | # CONFIG_DEFAULT_NOOP is not set |
171 | CONFIG_DEFAULT_IOSCHED="noop" | 171 | CONFIG_DEFAULT_IOSCHED="cfq" |
172 | CONFIG_PREEMPT_NOTIFIERS=y | 172 | CONFIG_PREEMPT_NOTIFIERS=y |
173 | CONFIG_FREEZER=y | 173 | CONFIG_FREEZER=y |
174 | 174 | ||
@@ -244,10 +244,10 @@ CONFIG_DMI=y | |||
244 | # CONFIG_IOMMU_HELPER is not set | 244 | # CONFIG_IOMMU_HELPER is not set |
245 | # CONFIG_IOMMU_API is not set | 245 | # CONFIG_IOMMU_API is not set |
246 | CONFIG_NR_CPUS=8 | 246 | CONFIG_NR_CPUS=8 |
247 | # CONFIG_SCHED_SMT is not set | 247 | CONFIG_SCHED_SMT=y |
248 | CONFIG_SCHED_MC=y | 248 | CONFIG_SCHED_MC=y |
249 | CONFIG_PREEMPT_NONE=y | 249 | # CONFIG_PREEMPT_NONE is not set |
250 | # CONFIG_PREEMPT_VOLUNTARY is not set | 250 | CONFIG_PREEMPT_VOLUNTARY=y |
251 | # CONFIG_PREEMPT is not set | 251 | # CONFIG_PREEMPT is not set |
252 | CONFIG_X86_LOCAL_APIC=y | 252 | CONFIG_X86_LOCAL_APIC=y |
253 | CONFIG_X86_IO_APIC=y | 253 | CONFIG_X86_IO_APIC=y |
@@ -304,7 +304,7 @@ CONFIG_MTRR=y | |||
304 | CONFIG_MTRR_SANITIZER=y | 304 | CONFIG_MTRR_SANITIZER=y |
305 | CONFIG_MTRR_SANITIZER_ENABLE_DEFAULT=0 | 305 | CONFIG_MTRR_SANITIZER_ENABLE_DEFAULT=0 |
306 | CONFIG_MTRR_SANITIZER_SPARE_REG_NR_DEFAULT=1 | 306 | CONFIG_MTRR_SANITIZER_SPARE_REG_NR_DEFAULT=1 |
307 | # CONFIG_X86_PAT is not set | 307 | CONFIG_X86_PAT=y |
308 | # CONFIG_SECCOMP is not set | 308 | # CONFIG_SECCOMP is not set |
309 | # CONFIG_CC_STACKPROTECTOR is not set | 309 | # CONFIG_CC_STACKPROTECTOR is not set |
310 | # CONFIG_HZ_100 is not set | 310 | # CONFIG_HZ_100 is not set |