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

_______________________________________________
pld-cvs-commit mailing list
[email protected]
http://lists.pld-linux.org/mailman/listinfo/pld-cvs-commit

Reply via email to