SOURCES (LINUX_2_6_20): pax-linux-2.6.20.patch - raw http://www.gr...
mguevara
mguevara at pld-linux.org
Mon Mar 19 10:31:57 CET 2007
Author: mguevara Date: Mon Mar 19 09:31:56 2007 GMT
Module: SOURCES Tag: LINUX_2_6_20
---- Log message:
- raw http://www.grsecurity.net/~paxguy1/pax-linux-2.6.20.3-test9.patch
---- Files affected:
SOURCES:
pax-linux-2.6.20.patch (1.1.2.14 -> 1.1.2.15)
---- Diffs:
================================================================
Index: SOURCES/pax-linux-2.6.20.patch
diff -u SOURCES/pax-linux-2.6.20.patch:1.1.2.14 SOURCES/pax-linux-2.6.20.patch:1.1.2.15
--- SOURCES/pax-linux-2.6.20.patch:1.1.2.14 Sat Mar 17 17:55:54 2007
+++ SOURCES/pax-linux-2.6.20.patch Mon Mar 19 10:31:51 2007
@@ -1,6 +1,6 @@
-diff -NurpX linux-2.6.20.1-pax/Documentation/dontdiff -x 'netfilter*' linux-2.6.20.1/Documentation/dontdiff linux-2.6.20.1-pax/Documentation/dontdiff
---- linux-2.6.20.1/Documentation/dontdiff 2007-02-04 19:44:54.000000000 +0100
-+++ linux-2.6.20.1-pax/Documentation/dontdiff 2007-02-10 01:32:42.000000000 +0100
+diff -NurpX linux-2.6.20.3-pax/Documentation/dontdiff linux-2.6.20.3/Documentation/dontdiff linux-2.6.20.3-pax/Documentation/dontdiff
+--- linux-2.6.20.3/Documentation/dontdiff 2007-02-04 19:44:54.000000000 +0100
++++ linux-2.6.20.3-pax/Documentation/dontdiff 2007-02-10 01:32:42.000000000 +0100
@@ -55,7 +55,7 @@ aic7*seq.h*
aicasm
aicdb.h*
@@ -30,9 +30,9 @@
uImage
+utsrelease.h
zImage
-diff -NurpX linux-2.6.20.1-pax/Documentation/dontdiff -x 'netfilter*' linux-2.6.20.1/Makefile linux-2.6.20.1-pax/Makefile
---- linux-2.6.20.1/Makefile 2007-02-20 12:36:46.000000000 +0100
-+++ linux-2.6.20.1-pax/Makefile 2007-02-20 12:36:39.000000000 +0100
+diff -NurpX linux-2.6.20.3-pax/Documentation/dontdiff linux-2.6.20.3/Makefile linux-2.6.20.3-pax/Makefile
+--- linux-2.6.20.3/Makefile 2007-03-13 23:27:34.000000000 +0100
++++ linux-2.6.20.3-pax/Makefile 2007-03-13 23:27:16.000000000 +0100
@@ -312,7 +312,7 @@ LINUXINCLUDE := -Iinclude \
CPPFLAGS := -D__KERNEL__ $(LINUXINCLUDE)
@@ -42,9 +42,9 @@
-fno-strict-aliasing -fno-common
AFLAGS := -D__ASSEMBLY__
-diff -NurpX linux-2.6.20.1-pax/Documentation/dontdiff -x 'netfilter*' linux-2.6.20.1/arch/alpha/kernel/module.c linux-2.6.20.1-pax/arch/alpha/kernel/module.c
---- linux-2.6.20.1/arch/alpha/kernel/module.c 2007-02-04 19:44:54.000000000 +0100
-+++ linux-2.6.20.1-pax/arch/alpha/kernel/module.c 2007-02-05 00:56:17.000000000 +0100
+diff -NurpX linux-2.6.20.3-pax/Documentation/dontdiff linux-2.6.20.3/arch/alpha/kernel/module.c linux-2.6.20.3-pax/arch/alpha/kernel/module.c
+--- linux-2.6.20.3/arch/alpha/kernel/module.c 2007-02-04 19:44:54.000000000 +0100
++++ linux-2.6.20.3-pax/arch/alpha/kernel/module.c 2007-02-05 00:56:17.000000000 +0100
@@ -177,7 +177,7 @@ apply_relocate_add(Elf64_Shdr *sechdrs,
/* The small sections were sorted to the end of the segment.
@@ -54,9 +54,9 @@
got = sechdrs[me->arch.gotsecindex].sh_addr;
for (i = 0; i < n; i++) {
-diff -NurpX linux-2.6.20.1-pax/Documentation/dontdiff -x 'netfilter*' linux-2.6.20.1/arch/alpha/kernel/osf_sys.c linux-2.6.20.1-pax/arch/alpha/kernel/osf_sys.c
---- linux-2.6.20.1/arch/alpha/kernel/osf_sys.c 2007-02-04 19:44:54.000000000 +0100
-+++ linux-2.6.20.1-pax/arch/alpha/kernel/osf_sys.c 2007-02-05 00:56:17.000000000 +0100
+diff -NurpX linux-2.6.20.3-pax/Documentation/dontdiff linux-2.6.20.3/arch/alpha/kernel/osf_sys.c linux-2.6.20.3-pax/arch/alpha/kernel/osf_sys.c
+--- linux-2.6.20.3/arch/alpha/kernel/osf_sys.c 2007-02-04 19:44:54.000000000 +0100
++++ linux-2.6.20.3-pax/arch/alpha/kernel/osf_sys.c 2007-02-05 00:56:17.000000000 +0100
@@ -1277,6 +1277,10 @@ arch_get_unmapped_area(struct file *filp
merely specific addresses, but regions of memory -- perhaps
this feature should be incorporated into all ports? */
@@ -79,9 +79,9 @@
if (addr != (unsigned long) -ENOMEM)
return addr;
-diff -NurpX linux-2.6.20.1-pax/Documentation/dontdiff -x 'netfilter*' linux-2.6.20.1/arch/alpha/mm/fault.c linux-2.6.20.1-pax/arch/alpha/mm/fault.c
---- linux-2.6.20.1/arch/alpha/mm/fault.c 2007-02-04 19:44:54.000000000 +0100
-+++ linux-2.6.20.1-pax/arch/alpha/mm/fault.c 2007-02-05 00:56:17.000000000 +0100
+diff -NurpX linux-2.6.20.3-pax/Documentation/dontdiff linux-2.6.20.3/arch/alpha/mm/fault.c linux-2.6.20.3-pax/arch/alpha/mm/fault.c
+--- linux-2.6.20.3/arch/alpha/mm/fault.c 2007-02-04 19:44:54.000000000 +0100
++++ linux-2.6.20.3-pax/arch/alpha/mm/fault.c 2007-02-05 00:56:17.000000000 +0100
@@ -24,6 +24,7 @@
#include <linux/smp_lock.h>
#include <linux/interrupt.h>
@@ -246,9 +246,9 @@
} else if (!cause) {
/* Allow reads even for write-only mappings */
if (!(vma->vm_flags & (VM_READ | VM_WRITE)))
-diff -NurpX linux-2.6.20.1-pax/Documentation/dontdiff -x 'netfilter*' linux-2.6.20.1/arch/arm/mm/mmap.c linux-2.6.20.1-pax/arch/arm/mm/mmap.c
---- linux-2.6.20.1/arch/arm/mm/mmap.c 2007-02-04 19:44:54.000000000 +0100
-+++ linux-2.6.20.1-pax/arch/arm/mm/mmap.c 2007-02-05 00:56:17.000000000 +0100
+diff -NurpX linux-2.6.20.3-pax/Documentation/dontdiff linux-2.6.20.3/arch/arm/mm/mmap.c linux-2.6.20.3-pax/arch/arm/mm/mmap.c
+--- linux-2.6.20.3/arch/arm/mm/mmap.c 2007-02-04 19:44:54.000000000 +0100
++++ linux-2.6.20.3-pax/arch/arm/mm/mmap.c 2007-02-05 00:56:17.000000000 +0100
@@ -61,6 +61,10 @@ arch_get_unmapped_area(struct file *filp
if (len > TASK_SIZE)
return -ENOMEM;
@@ -280,9 +280,9 @@
mm->cached_hole_size = 0;
goto full_search;
}
-diff -NurpX linux-2.6.20.1-pax/Documentation/dontdiff -x 'netfilter*' linux-2.6.20.1/arch/i386/Kconfig linux-2.6.20.1-pax/arch/i386/Kconfig
---- linux-2.6.20.1/arch/i386/Kconfig 2007-02-04 19:44:54.000000000 +0100
-+++ linux-2.6.20.1-pax/arch/i386/Kconfig 2007-02-05 00:56:17.000000000 +0100
+diff -NurpX linux-2.6.20.3-pax/Documentation/dontdiff linux-2.6.20.3/arch/i386/Kconfig linux-2.6.20.3-pax/arch/i386/Kconfig
+--- linux-2.6.20.3/arch/i386/Kconfig 2007-02-04 19:44:54.000000000 +0100
++++ linux-2.6.20.3-pax/arch/i386/Kconfig 2007-02-05 00:56:17.000000000 +0100
@@ -864,7 +864,7 @@ config HOTPLUG_CPU
config COMPAT_VDSO
@@ -301,9 +301,9 @@
---help---
On PCI systems, the BIOS can be used to detect the PCI devices and
determine their configuration. However, some old PCI motherboards
-diff -NurpX linux-2.6.20.1-pax/Documentation/dontdiff -x 'netfilter*' linux-2.6.20.1/arch/i386/Kconfig.cpu linux-2.6.20.1-pax/arch/i386/Kconfig.cpu
---- linux-2.6.20.1/arch/i386/Kconfig.cpu 2007-02-04 19:44:54.000000000 +0100
-+++ linux-2.6.20.1-pax/arch/i386/Kconfig.cpu 2007-02-05 00:56:18.000000000 +0100
+diff -NurpX linux-2.6.20.3-pax/Documentation/dontdiff linux-2.6.20.3/arch/i386/Kconfig.cpu linux-2.6.20.3-pax/arch/i386/Kconfig.cpu
+--- linux-2.6.20.3/arch/i386/Kconfig.cpu 2007-02-04 19:44:54.000000000 +0100
++++ linux-2.6.20.3-pax/arch/i386/Kconfig.cpu 2007-02-05 00:56:18.000000000 +0100
@@ -267,7 +267,7 @@ config X86_PPRO_FENCE
config X86_F00F_BUG
@@ -322,9 +322,9 @@
default y
config X86_GOOD_APIC
-diff -NurpX linux-2.6.20.1-pax/Documentation/dontdiff -x 'netfilter*' linux-2.6.20.1/arch/i386/Kconfig.debug linux-2.6.20.1-pax/arch/i386/Kconfig.debug
---- linux-2.6.20.1/arch/i386/Kconfig.debug 2007-02-04 19:44:54.000000000 +0100
-+++ linux-2.6.20.1-pax/arch/i386/Kconfig.debug 2007-02-05 00:56:18.000000000 +0100
+diff -NurpX linux-2.6.20.3-pax/Documentation/dontdiff linux-2.6.20.3/arch/i386/Kconfig.debug linux-2.6.20.3-pax/arch/i386/Kconfig.debug
+--- linux-2.6.20.3/arch/i386/Kconfig.debug 2007-02-04 19:44:54.000000000 +0100
++++ linux-2.6.20.3-pax/arch/i386/Kconfig.debug 2007-02-05 00:56:18.000000000 +0100
@@ -48,7 +48,7 @@ config DEBUG_PAGEALLOC
config DEBUG_RODATA
@@ -334,9 +334,9 @@
help
Mark the kernel read-only data as write-protected in the pagetables,
in order to catch accidental (and incorrect) writes to such const
-diff -NurpX linux-2.6.20.1-pax/Documentation/dontdiff -x 'netfilter*' linux-2.6.20.1/arch/i386/boot/setup.S linux-2.6.20.1-pax/arch/i386/boot/setup.S
---- linux-2.6.20.1/arch/i386/boot/setup.S 2007-02-04 19:44:54.000000000 +0100
-+++ linux-2.6.20.1-pax/arch/i386/boot/setup.S 2007-02-05 00:56:18.000000000 +0100
+diff -NurpX linux-2.6.20.3-pax/Documentation/dontdiff linux-2.6.20.3/arch/i386/boot/setup.S linux-2.6.20.3-pax/arch/i386/boot/setup.S
+--- linux-2.6.20.3/arch/i386/boot/setup.S 2007-02-04 19:44:54.000000000 +0100
++++ linux-2.6.20.3-pax/arch/i386/boot/setup.S 2007-02-05 00:56:18.000000000 +0100
@@ -869,11 +869,13 @@ startup_32:
movl %eax, %gs
movl %eax, %ss
@@ -351,9 +351,9 @@
# Jump to the 32bit entry point
jmpl *(code32_start - start + (DELTA_INITSEG << 4))(%esi)
-diff -NurpX linux-2.6.20.1-pax/Documentation/dontdiff -x 'netfilter*' linux-2.6.20.1/arch/i386/kernel/acpi/boot.c linux-2.6.20.1-pax/arch/i386/kernel/acpi/boot.c
---- linux-2.6.20.1/arch/i386/kernel/acpi/boot.c 2007-02-04 19:44:54.000000000 +0100
-+++ linux-2.6.20.1-pax/arch/i386/kernel/acpi/boot.c 2007-02-15 01:43:45.000000000 +0100
+diff -NurpX linux-2.6.20.3-pax/Documentation/dontdiff linux-2.6.20.3/arch/i386/kernel/acpi/boot.c linux-2.6.20.3-pax/arch/i386/kernel/acpi/boot.c
+--- linux-2.6.20.3/arch/i386/kernel/acpi/boot.c 2007-02-04 19:44:54.000000000 +0100
++++ linux-2.6.20.3-pax/arch/i386/kernel/acpi/boot.c 2007-02-15 01:43:45.000000000 +0100
@@ -1152,7 +1152,7 @@ static struct dmi_system_id __initdata a
DMI_MATCH(DMI_PRODUCT_NAME, "TravelMate 360"),
},
@@ -363,9 +363,9 @@
};
#endif /* __i386__ */
-diff -NurpX linux-2.6.20.1-pax/Documentation/dontdiff -x 'netfilter*' linux-2.6.20.1/arch/i386/kernel/acpi/sleep.c linux-2.6.20.1-pax/arch/i386/kernel/acpi/sleep.c
---- linux-2.6.20.1/arch/i386/kernel/acpi/sleep.c 2007-02-04 19:44:54.000000000 +0100
-+++ linux-2.6.20.1-pax/arch/i386/kernel/acpi/sleep.c 2007-02-15 01:44:30.000000000 +0100
+diff -NurpX linux-2.6.20.3-pax/Documentation/dontdiff linux-2.6.20.3/arch/i386/kernel/acpi/sleep.c linux-2.6.20.3-pax/arch/i386/kernel/acpi/sleep.c
+--- linux-2.6.20.3/arch/i386/kernel/acpi/sleep.c 2007-02-04 19:44:54.000000000 +0100
++++ linux-2.6.20.3-pax/arch/i386/kernel/acpi/sleep.c 2007-02-15 01:44:30.000000000 +0100
@@ -94,7 +94,7 @@ static __initdata struct dmi_system_id a
DMI_MATCH(DMI_PRODUCT_NAME, "S4030CDT/4.3"),
},
@@ -375,9 +375,9 @@
};
static int __init acpisleep_dmi_init(void)
-diff -NurpX linux-2.6.20.1-pax/Documentation/dontdiff -x 'netfilter*' linux-2.6.20.1/arch/i386/kernel/acpi/wakeup.S linux-2.6.20.1-pax/arch/i386/kernel/acpi/wakeup.S
---- linux-2.6.20.1/arch/i386/kernel/acpi/wakeup.S 2007-02-04 19:44:54.000000000 +0100
-+++ linux-2.6.20.1-pax/arch/i386/kernel/acpi/wakeup.S 2007-02-18 18:31:31.000000000 +0100
+diff -NurpX linux-2.6.20.3-pax/Documentation/dontdiff linux-2.6.20.3/arch/i386/kernel/acpi/wakeup.S linux-2.6.20.3-pax/arch/i386/kernel/acpi/wakeup.S
+--- linux-2.6.20.3/arch/i386/kernel/acpi/wakeup.S 2007-02-04 19:44:54.000000000 +0100
++++ linux-2.6.20.3-pax/arch/i386/kernel/acpi/wakeup.S 2007-02-18 18:31:31.000000000 +0100
@@ -205,13 +205,11 @@ wakeup_pmode_return:
# and restore the stack ... but you need gdt for this to work
movl saved_context_esp, %esp
@@ -394,9 +394,9 @@
bogus_magic:
movw $0x0e00 + 'B', 0xb8018
-diff -NurpX linux-2.6.20.1-pax/Documentation/dontdiff -x 'netfilter*' linux-2.6.20.1/arch/i386/kernel/alternative.c linux-2.6.20.1-pax/arch/i386/kernel/alternative.c
---- linux-2.6.20.1/arch/i386/kernel/alternative.c 2007-02-04 19:44:54.000000000 +0100
-+++ linux-2.6.20.1-pax/arch/i386/kernel/alternative.c 2007-02-21 11:06:26.000000000 +0100
+diff -NurpX linux-2.6.20.3-pax/Documentation/dontdiff linux-2.6.20.3/arch/i386/kernel/alternative.c linux-2.6.20.3-pax/arch/i386/kernel/alternative.c
+--- linux-2.6.20.3/arch/i386/kernel/alternative.c 2007-02-04 19:44:54.000000000 +0100
++++ linux-2.6.20.3-pax/arch/i386/kernel/alternative.c 2007-02-21 11:06:26.000000000 +0100
@@ -4,6 +4,7 @@
#include <linux/list.h>
#include <asm/alternative.h>
@@ -589,9 +589,9 @@
/* Sync to be conservative, in case we patched following instructions */
sync_core();
}
-diff -NurpX linux-2.6.20.1-pax/Documentation/dontdiff -x 'netfilter*' linux-2.6.20.1/arch/i386/kernel/apic.c linux-2.6.20.1-pax/arch/i386/kernel/apic.c
---- linux-2.6.20.1/arch/i386/kernel/apic.c 2007-02-04 19:44:54.000000000 +0100
-+++ linux-2.6.20.1-pax/arch/i386/kernel/apic.c 2007-02-05 00:56:18.000000000 +0100
+diff -NurpX linux-2.6.20.3-pax/Documentation/dontdiff linux-2.6.20.3/arch/i386/kernel/apic.c linux-2.6.20.3-pax/arch/i386/kernel/apic.c
+--- linux-2.6.20.3/arch/i386/kernel/apic.c 2007-02-04 19:44:54.000000000 +0100
++++ linux-2.6.20.3-pax/arch/i386/kernel/apic.c 2007-02-05 00:56:18.000000000 +0100
@@ -1211,7 +1211,7 @@ inline void smp_local_timer_interrupt(vo
{
profile_tick(CPU_PROFILING);
@@ -601,9 +601,9 @@
#endif
/*
-diff -NurpX linux-2.6.20.1-pax/Documentation/dontdiff -x 'netfilter*' linux-2.6.20.1/arch/i386/kernel/apm.c linux-2.6.20.1-pax/arch/i386/kernel/apm.c
---- linux-2.6.20.1/arch/i386/kernel/apm.c 2007-02-04 19:44:54.000000000 +0100
-+++ linux-2.6.20.1-pax/arch/i386/kernel/apm.c 2007-02-20 23:00:20.000000000 +0100
+diff -NurpX linux-2.6.20.3-pax/Documentation/dontdiff linux-2.6.20.3/arch/i386/kernel/apm.c linux-2.6.20.3-pax/arch/i386/kernel/apm.c
+--- linux-2.6.20.3/arch/i386/kernel/apm.c 2007-02-04 19:44:54.000000000 +0100
++++ linux-2.6.20.3-pax/arch/i386/kernel/apm.c 2007-02-20 23:00:20.000000000 +0100
@@ -236,7 +236,7 @@
#include "io_ports.h"
@@ -943,10 +943,26 @@
};
/*
-diff -NurpX linux-2.6.20.1-pax/Documentation/dontdiff -x 'netfilter*' linux-2.6.20.1/arch/i386/kernel/asm-offsets.c linux-2.6.20.1-pax/arch/i386/kernel/asm-offsets.c
---- linux-2.6.20.1/arch/i386/kernel/asm-offsets.c 2007-02-04 19:44:54.000000000 +0100
-+++ linux-2.6.20.1-pax/arch/i386/kernel/asm-offsets.c 2007-02-15 00:47:06.000000000 +0100
-@@ -94,12 +94,14 @@ void foo(void)
+diff -NurpX linux-2.6.20.3-pax/Documentation/dontdiff linux-2.6.20.3/arch/i386/kernel/asm-offsets.c linux-2.6.20.3-pax/arch/i386/kernel/asm-offsets.c
+--- linux-2.6.20.3/arch/i386/kernel/asm-offsets.c 2007-02-04 19:44:54.000000000 +0100
++++ linux-2.6.20.3-pax/arch/i386/kernel/asm-offsets.c 2007-03-19 00:08:43.000000000 +0100
+@@ -16,6 +16,7 @@
+ #include <asm/thread_info.h>
+ #include <asm/elf.h>
+ #include <asm/pda.h>
++#include <asm/pgtable.h>
+
+ #define DEFINE(sym, val) \
+ asm volatile("\n->" #sym " %0 " #val : : "i" (val))
+@@ -52,6 +53,7 @@ void foo(void)
+ OFFSET(TI_exec_domain, thread_info, exec_domain);
+ OFFSET(TI_flags, thread_info, flags);
+ OFFSET(TI_status, thread_info, status);
++ OFFSET(TI_cpu, thread_info, cpu);
+ OFFSET(TI_preempt_count, thread_info, preempt_count);
+ OFFSET(TI_addr_limit, thread_info, addr_limit);
+ OFFSET(TI_restart_block, thread_info, restart_block);
+@@ -94,12 +96,14 @@ void foo(void)
sizeof(struct tss_struct));
DEFINE(PAGE_SIZE_asm, PAGE_SIZE);
@@ -962,16 +978,16 @@
OFFSET(PDA_pcurrent, i386_pda, pcurrent);
#ifdef CONFIG_PARAVIRT
-@@ -110,5 +112,6 @@ void foo(void)
+@@ -110,5 +114,6 @@ void foo(void)
OFFSET(PARAVIRT_irq_enable_sysexit, paravirt_ops, irq_enable_sysexit);
OFFSET(PARAVIRT_iret, paravirt_ops, iret);
OFFSET(PARAVIRT_read_cr0, paravirt_ops, read_cr0);
+ OFFSET(PARAVIRT_write_cr0, paravirt_ops, write_cr0);
#endif
}
-diff -NurpX linux-2.6.20.1-pax/Documentation/dontdiff -x 'netfilter*' linux-2.6.20.1/arch/i386/kernel/cpu/common.c linux-2.6.20.1-pax/arch/i386/kernel/cpu/common.c
---- linux-2.6.20.1/arch/i386/kernel/cpu/common.c 2007-02-04 19:44:54.000000000 +0100
-+++ linux-2.6.20.1-pax/arch/i386/kernel/cpu/common.c 2007-02-15 10:47:12.000000000 +0100
+diff -NurpX linux-2.6.20.3-pax/Documentation/dontdiff linux-2.6.20.3/arch/i386/kernel/cpu/common.c linux-2.6.20.3-pax/arch/i386/kernel/cpu/common.c
+--- linux-2.6.20.3/arch/i386/kernel/cpu/common.c 2007-02-04 19:44:54.000000000 +0100
++++ linux-2.6.20.3-pax/arch/i386/kernel/cpu/common.c 2007-03-19 02:10:32.000000000 +0100
@@ -4,7 +4,6 @@
#include <linux/smp.h>
#include <linux/module.h>
@@ -1002,7 +1018,7 @@
struct cpu_dev * cpu_devs[X86_VENDOR_NUM] = {};
-@@ -609,52 +610,6 @@ struct pt_regs * __devinit idle_regs(str
+@@ -609,52 +609,6 @@ struct pt_regs * __devinit idle_regs(str
return regs;
}
@@ -1055,7 +1071,7 @@
/* Initial PDA used by boot CPU */
struct i386_pda boot_pda = {
._pda = &boot_pda,
-@@ -672,59 +627,43 @@ static inline void set_kernel_gs(void)
+@@ -672,59 +626,43 @@ static inline void set_kernel_gs(void)
/* Initialize the CPU's GDT and PDA. The boot CPU does this for
itself, but secondaries find this done for them. */
@@ -1126,7 +1142,7 @@
struct thread_struct *thread = &curr->thread;
if (cpu_test_and_set(cpu, cpu_initialized)) {
-@@ -805,12 +748,7 @@ void __cpuinit cpu_init(void)
+@@ -805,12 +743,7 @@ void __cpuinit cpu_init(void)
/* Set up the real GDT and PDA, so we can transition from the
boot versions. */
@@ -1140,9 +1156,9 @@
cpu_set_gdt(cpu);
_cpu_init(cpu, curr);
}
-diff -NurpX linux-2.6.20.1-pax/Documentation/dontdiff -x 'netfilter*' linux-2.6.20.1/arch/i386/kernel/cpu/cpufreq/acpi-cpufreq.c linux-2.6.20.1-pax/arch/i386/kernel/cpu/cpufreq/acpi-cpufreq.c
---- linux-2.6.20.1/arch/i386/kernel/cpu/cpufreq/acpi-cpufreq.c 2007-02-04 19:44:54.000000000 +0100
-+++ linux-2.6.20.1-pax/arch/i386/kernel/cpu/cpufreq/acpi-cpufreq.c 2007-02-20 22:58:40.000000000 +0100
+diff -NurpX linux-2.6.20.3-pax/Documentation/dontdiff linux-2.6.20.3/arch/i386/kernel/cpu/cpufreq/acpi-cpufreq.c linux-2.6.20.3-pax/arch/i386/kernel/cpu/cpufreq/acpi-cpufreq.c
+--- linux-2.6.20.3/arch/i386/kernel/cpu/cpufreq/acpi-cpufreq.c 2007-02-04 19:44:54.000000000 +0100
++++ linux-2.6.20.3-pax/arch/i386/kernel/cpu/cpufreq/acpi-cpufreq.c 2007-02-20 22:58:40.000000000 +0100
@@ -563,7 +563,7 @@ static struct dmi_system_id sw_any_bug_d
DMI_MATCH(DMI_PRODUCT_NAME, "X6DLP"),
},
@@ -1152,9 +1168,9 @@
};
#endif
-diff -NurpX linux-2.6.20.1-pax/Documentation/dontdiff -x 'netfilter*' linux-2.6.20.1/arch/i386/kernel/cpu/cpufreq/speedstep-centrino.c linux-2.6.20.1-pax/arch/i386/kernel/cpu/cpufreq/speedstep-centrino.c
---- linux-2.6.20.1/arch/i386/kernel/cpu/cpufreq/speedstep-centrino.c 2007-02-04 19:44:54.000000000 +0100
-+++ linux-2.6.20.1-pax/arch/i386/kernel/cpu/cpufreq/speedstep-centrino.c 2007-02-20 22:59:00.000000000 +0100
+diff -NurpX linux-2.6.20.3-pax/Documentation/dontdiff linux-2.6.20.3/arch/i386/kernel/cpu/cpufreq/speedstep-centrino.c linux-2.6.20.3-pax/arch/i386/kernel/cpu/cpufreq/speedstep-centrino.c
+--- linux-2.6.20.3/arch/i386/kernel/cpu/cpufreq/speedstep-centrino.c 2007-02-04 19:44:54.000000000 +0100
++++ linux-2.6.20.3-pax/arch/i386/kernel/cpu/cpufreq/speedstep-centrino.c 2007-02-20 22:59:00.000000000 +0100
@@ -229,7 +229,7 @@ static struct cpu_model models[] =
{ &cpu_ids[CPU_MP4HT_D0], NULL, 0, NULL },
{ &cpu_ids[CPU_MP4HT_E0], NULL, 0, NULL },
@@ -1173,9 +1189,9 @@
};
#endif
-diff -NurpX linux-2.6.20.1-pax/Documentation/dontdiff -x 'netfilter*' linux-2.6.20.1/arch/i386/kernel/cpu/cyrix.c linux-2.6.20.1-pax/arch/i386/kernel/cpu/cyrix.c
---- linux-2.6.20.1/arch/i386/kernel/cpu/cyrix.c 2007-02-04 19:44:54.000000000 +0100
-+++ linux-2.6.20.1-pax/arch/i386/kernel/cpu/cyrix.c 2007-02-15 01:57:59.000000000 +0100
+diff -NurpX linux-2.6.20.3-pax/Documentation/dontdiff linux-2.6.20.3/arch/i386/kernel/cpu/cyrix.c linux-2.6.20.3-pax/arch/i386/kernel/cpu/cyrix.c
+--- linux-2.6.20.3/arch/i386/kernel/cpu/cyrix.c 2007-02-04 19:44:54.000000000 +0100
++++ linux-2.6.20.3-pax/arch/i386/kernel/cpu/cyrix.c 2007-02-15 01:57:59.000000000 +0100
@@ -187,7 +187,7 @@ static void __cpuinit geode_configure(vo
static struct pci_device_id __cpuinitdata cyrix_55x0[] = {
{ PCI_DEVICE(PCI_VENDOR_ID_CYRIX, PCI_DEVICE_ID_CYRIX_5510) },
@@ -1185,9 +1201,9 @@
};
#endif
-diff -NurpX linux-2.6.20.1-pax/Documentation/dontdiff -x 'netfilter*' linux-2.6.20.1/arch/i386/kernel/cpu/mcheck/therm_throt.c linux-2.6.20.1-pax/arch/i386/kernel/cpu/mcheck/therm_throt.c
---- linux-2.6.20.1/arch/i386/kernel/cpu/mcheck/therm_throt.c 2007-02-04 19:44:54.000000000 +0100
-+++ linux-2.6.20.1-pax/arch/i386/kernel/cpu/mcheck/therm_throt.c 2007-02-09 14:43:03.000000000 +0100
+diff -NurpX linux-2.6.20.3-pax/Documentation/dontdiff linux-2.6.20.3/arch/i386/kernel/cpu/mcheck/therm_throt.c linux-2.6.20.3-pax/arch/i386/kernel/cpu/mcheck/therm_throt.c
+--- linux-2.6.20.3/arch/i386/kernel/cpu/mcheck/therm_throt.c 2007-02-04 19:44:54.000000000 +0100
++++ linux-2.6.20.3-pax/arch/i386/kernel/cpu/mcheck/therm_throt.c 2007-02-09 14:43:03.000000000 +0100
@@ -148,7 +148,7 @@ static __cpuinit int thermal_throttle_cp
return NOTIFY_OK;
}
@@ -1197,9 +1213,9 @@
{
.notifier_call = thermal_throttle_cpu_callback,
};
-diff -NurpX linux-2.6.20.1-pax/Documentation/dontdiff -x 'netfilter*' linux-2.6.20.1/arch/i386/kernel/cpu/mtrr/generic.c linux-2.6.20.1-pax/arch/i386/kernel/cpu/mtrr/generic.c
---- linux-2.6.20.1/arch/i386/kernel/cpu/mtrr/generic.c 2007-02-04 19:44:54.000000000 +0100
-+++ linux-2.6.20.1-pax/arch/i386/kernel/cpu/mtrr/generic.c 2007-02-15 02:01:11.000000000 +0100
+diff -NurpX linux-2.6.20.3-pax/Documentation/dontdiff linux-2.6.20.3/arch/i386/kernel/cpu/mtrr/generic.c linux-2.6.20.3-pax/arch/i386/kernel/cpu/mtrr/generic.c
+--- linux-2.6.20.3/arch/i386/kernel/cpu/mtrr/generic.c 2007-02-04 19:44:54.000000000 +0100
++++ linux-2.6.20.3-pax/arch/i386/kernel/cpu/mtrr/generic.c 2007-02-15 02:01:11.000000000 +0100
@@ -21,7 +21,7 @@ struct mtrr_state {
};
@@ -1209,9 +1225,9 @@
#undef MODULE_PARAM_PREFIX
#define MODULE_PARAM_PREFIX "mtrr."
-diff -NurpX linux-2.6.20.1-pax/Documentation/dontdiff -x 'netfilter*' linux-2.6.20.1/arch/i386/kernel/crash.c linux-2.6.20.1-pax/arch/i386/kernel/crash.c
---- linux-2.6.20.1/arch/i386/kernel/crash.c 2007-02-04 19:44:54.000000000 +0100
-+++ linux-2.6.20.1-pax/arch/i386/kernel/crash.c 2007-02-05 00:56:18.000000000 +0100
+diff -NurpX linux-2.6.20.3-pax/Documentation/dontdiff linux-2.6.20.3/arch/i386/kernel/crash.c linux-2.6.20.3-pax/arch/i386/kernel/crash.c
+--- linux-2.6.20.3/arch/i386/kernel/crash.c 2007-02-04 19:44:54.000000000 +0100
++++ linux-2.6.20.3-pax/arch/i386/kernel/crash.c 2007-02-05 00:56:18.000000000 +0100
@@ -55,7 +55,7 @@ static int crash_nmi_callback(struct not
return NOTIFY_STOP;
local_irq_disable();
@@ -1221,9 +1237,9 @@
crash_fixup_ss_esp(&fixed_regs, regs);
regs = &fixed_regs;
}
-diff -NurpX linux-2.6.20.1-pax/Documentation/dontdiff -x 'netfilter*' linux-2.6.20.1/arch/i386/kernel/doublefault.c linux-2.6.20.1-pax/arch/i386/kernel/doublefault.c
---- linux-2.6.20.1/arch/i386/kernel/doublefault.c 2007-02-04 19:44:54.000000000 +0100
-+++ linux-2.6.20.1-pax/arch/i386/kernel/doublefault.c 2007-02-15 02:21:00.000000000 +0100
+diff -NurpX linux-2.6.20.3-pax/Documentation/dontdiff linux-2.6.20.3/arch/i386/kernel/doublefault.c linux-2.6.20.3-pax/arch/i386/kernel/doublefault.c
+--- linux-2.6.20.3/arch/i386/kernel/doublefault.c 2007-02-04 19:44:54.000000000 +0100
++++ linux-2.6.20.3-pax/arch/i386/kernel/doublefault.c 2007-02-15 02:21:00.000000000 +0100
@@ -11,17 +11,17 @@
#define DOUBLEFAULT_STACKSIZE (1024)
@@ -1258,9 +1274,9 @@
.__cr3 = __pa(swapper_pg_dir)
};
-diff -NurpX linux-2.6.20.1-pax/Documentation/dontdiff -x 'netfilter*' linux-2.6.20.1/arch/i386/kernel/efi.c linux-2.6.20.1-pax/arch/i386/kernel/efi.c
---- linux-2.6.20.1/arch/i386/kernel/efi.c 2007-02-04 19:44:54.000000000 +0100
-+++ linux-2.6.20.1-pax/arch/i386/kernel/efi.c 2007-02-05 00:56:18.000000000 +0100
+diff -NurpX linux-2.6.20.3-pax/Documentation/dontdiff linux-2.6.20.3/arch/i386/kernel/efi.c linux-2.6.20.3-pax/arch/i386/kernel/efi.c
+--- linux-2.6.20.3/arch/i386/kernel/efi.c 2007-02-04 19:44:54.000000000 +0100
++++ linux-2.6.20.3-pax/arch/i386/kernel/efi.c 2007-02-05 00:56:18.000000000 +0100
@@ -63,82 +63,43 @@ extern void * boot_ioremap(unsigned long
static unsigned long efi_rt_eflags;
@@ -1365,9 +1381,9 @@
phys_efi_get_time(efi_time_t *tm, efi_time_cap_t *tc)
{
efi_status_t status;
-diff -NurpX linux-2.6.20.1-pax/Documentation/dontdiff -x 'netfilter*' linux-2.6.20.1/arch/i386/kernel/efi_stub.S linux-2.6.20.1-pax/arch/i386/kernel/efi_stub.S
---- linux-2.6.20.1/arch/i386/kernel/efi_stub.S 2007-02-04 19:44:54.000000000 +0100
-+++ linux-2.6.20.1-pax/arch/i386/kernel/efi_stub.S 2007-02-05 00:56:18.000000000 +0100
+diff -NurpX linux-2.6.20.3-pax/Documentation/dontdiff linux-2.6.20.3/arch/i386/kernel/efi_stub.S linux-2.6.20.3-pax/arch/i386/kernel/efi_stub.S
+--- linux-2.6.20.3/arch/i386/kernel/efi_stub.S 2007-02-04 19:44:54.000000000 +0100
++++ linux-2.6.20.3-pax/arch/i386/kernel/efi_stub.S 2007-02-05 00:56:18.000000000 +0100
@@ -6,6 +6,7 @@
*/
@@ -1470,9 +1486,9 @@
saved_return_addr:
.long 0
efi_rt_function_ptr:
-diff -NurpX linux-2.6.20.1-pax/Documentation/dontdiff -x 'netfilter*' linux-2.6.20.1/arch/i386/kernel/entry.S linux-2.6.20.1-pax/arch/i386/kernel/entry.S
---- linux-2.6.20.1/arch/i386/kernel/entry.S 2007-02-04 19:44:54.000000000 +0100
-+++ linux-2.6.20.1-pax/arch/i386/kernel/entry.S 2007-02-18 22:17:16.000000000 +0100
+diff -NurpX linux-2.6.20.3-pax/Documentation/dontdiff linux-2.6.20.3/arch/i386/kernel/entry.S linux-2.6.20.3-pax/arch/i386/kernel/entry.S
+--- linux-2.6.20.3/arch/i386/kernel/entry.S 2007-02-04 19:44:54.000000000 +0100
++++ linux-2.6.20.3-pax/arch/i386/kernel/entry.S 2007-03-18 12:35:53.000000000 +0100
@@ -49,7 +49,6 @@
#include <asm/smp.h>
#include <asm/page.h>
@@ -1621,17 +1637,17 @@
restore_all:
movl PT_EFLAGS(%esp), %eax # mix EFLAGS, SS and CS
# Warning: PT_OLDSS(%esp) contains the wrong/random values if we
-@@ -551,7 +605,8 @@ syscall_badsys:
+@@ -551,8 +605,7 @@ syscall_badsys:
#define FIXUP_ESPFIX_STACK \
/* since we are on a wrong stack, we cant make it a C code :( */ \
movl %gs:PDA_cpu, %ebx; \
- PER_CPU(cpu_gdt_descr, %ebx); \
-+ shrl $PAGE_SHIFT,%ebx; \
-+ leal cpu_gdt_descr(%ebx), %ebx; \
- movl GDS_address(%ebx), %ebx; \
+- movl GDS_address(%ebx), %ebx; \
++ movl GDS_address+cpu_gdt_descr(,%ebx,8), %ebx; \
GET_DESC_BASE(GDT_ENTRY_ESPFIX_SS, %ebx, %eax, %ax, %al, %ah); \
addl %esp, %eax; \
-@@ -577,7 +632,7 @@ syscall_badsys:
+ pushl $__KERNEL_DS; \
+@@ -577,7 +630,7 @@ syscall_badsys:
* Build the entry stubs and pointer table with
* some assembler magic.
*/
@@ -1640,7 +1656,7 @@
ENTRY(interrupt)
.text
-@@ -592,7 +647,7 @@ ENTRY(irq_entries_start)
+@@ -592,7 +645,7 @@ ENTRY(irq_entries_start)
1: pushl $~(vector)
CFI_ADJUST_CFA_OFFSET 4
jmp common_interrupt
@@ -1649,7 +1665,7 @@
.long 1b
.text
vector=vector+1
-@@ -670,12 +725,21 @@ error_code:
+@@ -670,12 +723,21 @@ error_code:
popl %ecx
CFI_ADJUST_CFA_OFFSET -4
/*CFI_REGISTER es, ecx*/
@@ -1672,7 +1688,7 @@
movl %ecx, %ds
movl %ecx, %es
movl %esp,%eax # pt_regs pointer
-@@ -806,6 +870,13 @@ nmi_stack_correct:
+@@ -806,6 +868,13 @@ nmi_stack_correct:
xorl %edx,%edx # zero error code
movl %esp,%eax # pt_regs pointer
call do_nmi
@@ -1686,7 +1702,7 @@
jmp restore_nocheck_notrace
CFI_ENDPROC
-@@ -846,6 +917,13 @@ nmi_espfix_stack:
+@@ -846,6 +915,13 @@ nmi_espfix_stack:
FIXUP_ESPFIX_STACK # %eax == %esp
xorl %edx,%edx # zero error code
call do_nmi
@@ -1700,7 +1716,7 @@
RESTORE_REGS
lss 12+4(%esp), %esp # back to espfix stack
CFI_ADJUST_CFA_OFFSET -24
-@@ -996,7 +1074,6 @@ ENTRY(kernel_thread_helper)
+@@ -996,7 +1072,6 @@ ENTRY(kernel_thread_helper)
CFI_ENDPROC
ENDPROC(kernel_thread_helper)
@@ -1708,9 +1724,9 @@
#include "syscall_table.S"
syscall_table_size=(.-sys_call_table)
-diff -NurpX linux-2.6.20.1-pax/Documentation/dontdiff -x 'netfilter*' linux-2.6.20.1/arch/i386/kernel/head.S linux-2.6.20.1-pax/arch/i386/kernel/head.S
---- linux-2.6.20.1/arch/i386/kernel/head.S 2007-02-04 19:44:54.000000000 +0100
-+++ linux-2.6.20.1-pax/arch/i386/kernel/head.S 2007-02-18 19:05:19.000000000 +0100
+diff -NurpX linux-2.6.20.3-pax/Documentation/dontdiff linux-2.6.20.3/arch/i386/kernel/head.S linux-2.6.20.3-pax/arch/i386/kernel/head.S
+--- linux-2.6.20.3/arch/i386/kernel/head.S 2007-02-04 19:44:54.000000000 +0100
++++ linux-2.6.20.3-pax/arch/i386/kernel/head.S 2007-03-19 02:05:59.000000000 +0100
@@ -45,6 +45,16 @@
*/
#define INIT_MAP_BEYOND_END (128*1024)
@@ -1728,10 +1744,19 @@
/*
* 32-bit kernel entrypoint; only used by the boot CPU. On entry,
-@@ -72,6 +82,36 @@ ENTRY(startup_32)
+@@ -72,6 +82,45 @@ ENTRY(startup_32)
movl %eax,%fs
movl %eax,%gs
++ /* get the PDA pointer */
++ movl $boot_pda, %eax
++
++ /* slot the PDA address into the GDT */
++ mov %ax, (cpu_gdt_table - __PAGE_OFFSET + __KERNEL_PDA+0+2) /* base & 0x0000ffff */
++ shr $16, %eax
++ mov %al, (cpu_gdt_table - __PAGE_OFFSET + __KERNEL_PDA+4+0) /* base & 0x00ff0000 */
++ mov %ah, (cpu_gdt_table - __PAGE_OFFSET + __KERNEL_PDA+4+3) /* base & 0xff000000 */
++
+#ifdef CONFIG_PAX_MEMORY_UDEREF
+ /* check for VMware */
+ movl $0x564d5868,%eax
@@ -1765,7 +1790,7 @@
/*
* Clear BSS first so that there are no surprises...
* No need to cld as DF is already clear from cld above...
-@@ -119,24 +159,42 @@ ENTRY(startup_32)
+@@ -119,24 +168,42 @@ ENTRY(startup_32)
* Warning: don't use %esi or the stack in this code. However, %esp
* can be used as a GPR if you really need it...
*/
@@ -1814,7 +1839,7 @@
cmpl %ebp,%eax
jb 10b
movl %edi,(init_pg_tables_end - __PAGE_OFFSET)
-@@ -159,6 +217,11 @@ ENTRY(startup_32_smp)
+@@ -159,6 +226,11 @@ ENTRY(startup_32_smp)
movl %eax,%fs
movl %eax,%gs
@@ -1826,7 +1851,7 @@
/*
* New page tables may be in 4Mbyte page mode and may
* be using the global pages.
-@@ -174,26 +237,27 @@ ENTRY(startup_32_smp)
+@@ -174,26 +246,27 @@ ENTRY(startup_32_smp)
* not yet offset PAGE_OFFSET..
*/
#define cr4_bits mmu_cr4_features-__PAGE_OFFSET
@@ -1859,7 +1884,7 @@
/* Setup EFER (Extended Feature Enable Register) */
movl $0xc0000080, %ecx
-@@ -202,14 +266,13 @@ ENTRY(startup_32_smp)
+@@ -202,14 +275,13 @@ ENTRY(startup_32_smp)
btsl $11, %eax
/* Make changes effective */
wrmsr
@@ -1880,7 +1905,7 @@
/*
* Enable paging
-@@ -234,9 +297,7 @@ ENTRY(startup_32_smp)
+@@ -234,9 +306,7 @@ ENTRY(startup_32_smp)
#ifdef CONFIG_SMP
andl %ebx,%ebx
@@ -1891,7 +1916,16 @@
#endif /* CONFIG_SMP */
/*
-@@ -314,8 +375,6 @@ is386: movl $2,%ecx # set MP
+@@ -308,14 +378,13 @@ is386: movl $2,%ecx # set MP
+ movl %eax,%cr0
+
+ call check_x87
+- call setup_pda
+- lgdt cpu_gdt_descr
++ GET_THREAD_INFO(%ecx)
++ movl TI_cpu(%ecx),%ecx
++ lgdt cpu_gdt_descr(,%ecx,8)
+ lidt idt_descr
ljmp $(__KERNEL_CS),$1f
1: movl $(__KERNEL_DS),%eax # reload all the segment registers
movl %eax,%ss # after changing gdt.
@@ -1900,7 +1934,31 @@
movl %eax,%ds
movl %eax,%es
-@@ -460,8 +519,8 @@ hlt_loop:
+@@ -356,23 +425,6 @@ check_x87:
+ ret
+
+ /*
+- * Point the GDT at this CPU's PDA. On boot this will be
+- * cpu_gdt_table and boot_pda; for secondary CPUs, these will be
+- * that CPU's GDT and PDA.
+- */
<<Diff was trimmed, longer than 597 lines>>
---- CVS-web:
http://cvs.pld-linux.org/SOURCES/pax-linux-2.6.20.patch?r1=1.1.2.14&r2=1.1.2.15&f=u
More information about the pld-cvs-commit
mailing list