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