Magellan Linux

Diff of /trunk/kernel26-xen/patches-2.6.25-r1/1020-2.6.25-xen-patch-2.6.19.patch

Parent Directory Parent Directory | Revision Log Revision Log | View Patch Patch

revision 611 by niro, Fri May 23 18:49:01 2008 UTC revision 612 by niro, Sat May 24 01:03:50 2008 UTC
# Line 1  Line 1 
1  diff -Naur linux-2.6.25/arch/x86/ia32/ia32entry-xen.S linux-2.6.25-xen/arch/x86/ia32/ia32entry-xen.S  From: www.kernel.org
2  --- linux-2.6.25/arch/x86/ia32/ia32entry-xen.S 2008-05-23 20:51:11.000000000 +0200  Subject: Linux 2.6.19
3  +++ linux-2.6.25-xen/arch/x86/ia32/ia32entry-xen.S 2008-05-23 20:39:03.000000000 +0200  Patch-mainline: 2.6.19
4    
5    Automatically created from "patches.kernel.org/patch-2.6.19" by xen-port-patches.py
6    
7    Acked-by: jbeulich@novell.com
8    
9    ---
10     arch/x86/Kconfig                              |    1
11     arch/x86/ia32/ia32entry-xen.S                 |    9
12     arch/x86/kernel/Makefile                      |    5
13     arch/x86/kernel/apic_32-xen.c                 |    9
14     arch/x86/kernel/apic_64-xen.c                 |   20
15     arch/x86/kernel/cpu/common-xen.c              |   20
16     arch/x86/kernel/e820_64-xen.c                 |  320 +++---
17     arch/x86/kernel/early_printk-xen.c            |   20
18     arch/x86/kernel/entry_32-xen.S                |  139 +-
19     arch/x86/kernel/entry_64-xen.S                |  106 --
20     arch/x86/kernel/genapic_xen_64.c              |    9
21     arch/x86/kernel/head64-xen.c                  |   44
22     arch/x86/kernel/head_32-xen.S                 |    2
23     arch/x86/kernel/head_64-xen.S                 |    5
24     arch/x86/kernel/io_apic_32-xen.c              |  750 +++++++++------
25     arch/x86/kernel/io_apic_64-xen.c              | 1250 +++++++++++---------------
26     arch/x86/kernel/ioport_64-xen.c               |    1
27     arch/x86/kernel/irq_32-xen.c                  |   19
28     arch/x86/kernel/irq_64-xen.c                  |   35
29     arch/x86/kernel/ldt_32-xen.c                  |    2
30     arch/x86/kernel/microcode-xen.c               |   85 +
31     arch/x86/kernel/mpparse_32-xen.c              |   70 -
32     arch/x86/kernel/mpparse_64-xen.c              |  313 +-----
33     arch/x86/kernel/pci-dma_32-xen.c              |   16
34     arch/x86/kernel/pci-swiotlb_64-xen.c          |    3
35     arch/x86/kernel/process_32-xen.c              |   29
36     arch/x86/kernel/process_64-xen.c              |   90 +
37     arch/x86/kernel/setup64-xen.c                 |   41
38     arch/x86/kernel/setup_32-xen.c                |  430 +++-----
39     arch/x86/kernel/setup_64-xen.c                |  271 +----
40     arch/x86/kernel/smp_32-xen.c                  |   75 +
41     arch/x86/kernel/smp_64-xen.c                  |   35
42     arch/x86/kernel/time_32-xen.c                 |   86 -
43     arch/x86/kernel/traps_32-xen.c                |  238 +++-
44     arch/x86/kernel/traps_64-xen.c                |  220 +++-
45     arch/x86/kernel/vsyscall_64-xen.c             |  117 ++
46     arch/x86/mach-xen/setup.c                     |    6
47     arch/x86/mm/fault_32-xen.c                    |   29
48     arch/x86/mm/fault_64-xen.c                    |   34
49     arch/x86/mm/highmem_32-xen.c                  |   31
50     arch/x86/mm/hypervisor.c                      |    9
51     arch/x86/mm/init_32-xen.c                     |   89 +
52     arch/x86/mm/init_64-xen.c                     |  184 +--
53     arch/x86/mm/ioremap_32-xen.c                  |   10
54     arch/x86/mm/pageattr_64-xen.c                 |   24
55     arch/x86/mm/pgtable_32-xen.c                  |   31
56     arch/x86/pci/irq-xen.c                        |   38
57     drivers/char/tpm/tpm_xen.c                    |    5
58     drivers/pci/Kconfig                           |    2
59     drivers/xen/Kconfig                           |    3
60     drivers/xen/balloon/balloon.c                 |    2
61     drivers/xen/blkback/blkback.c                 |    2
62     drivers/xen/blkback/common.h                  |    2
63     drivers/xen/blkfront/blkfront.c               |    4
64     drivers/xen/blktap/blktap.c                   |    2
65     drivers/xen/blktap/common.h                   |    2
66     drivers/xen/console/console.c                 |   10
67     drivers/xen/console/xencons_ring.c            |    4
68     drivers/xen/core/evtchn.c                     |   50 -
69     drivers/xen/core/reboot.c                     |    3
70     drivers/xen/core/smpboot.c                    |    6
71     drivers/xen/fbfront/xenfb.c                   |    3
72     drivers/xen/fbfront/xenkbd.c                  |    2
73     drivers/xen/gntdev/gntdev.c                   |   11
74     drivers/xen/netback/accel.c                   |    2
75     drivers/xen/netback/common.h                  |    2
76     drivers/xen/netback/loopback.c                |    2
77     drivers/xen/netback/netback.c                 |    6
78     drivers/xen/netfront/netfront.c               |    8
79     drivers/xen/pciback/pciback.h                 |    2
80     drivers/xen/pciback/pciback_ops.c             |    2
81     drivers/xen/pcifront/pci_op.c                 |    8
82     drivers/xen/privcmd/compat_privcmd.c          |    1
83     drivers/xen/privcmd/privcmd.c                 |    2
84     drivers/xen/sfc_netback/accel_xenbus.c        |    6
85     drivers/xen/sfc_netfront/accel.h              |    6
86     drivers/xen/sfc_netfront/accel_msg.c          |    6
87     drivers/xen/sfc_netfront/accel_tso.c          |    2
88     drivers/xen/sfc_netfront/accel_vi.c           |    4
89     drivers/xen/tpmback/common.h                  |    2
90     drivers/xen/tpmback/tpmback.c                 |    4
91     drivers/xen/xenbus/xenbus_comms.c             |    2
92     drivers/xen/xenoprof/xenoprofile.c            |    2
93     include/asm-generic/pgtable.h                 |    2
94     include/asm-x86/mach-xen/asm/desc_32.h        |  127 +-
95     include/asm-x86/mach-xen/asm/dma-mapping_64.h |    7
96     include/asm-x86/mach-xen/asm/e820_64.h        |   15
97     include/asm-x86/mach-xen/asm/fixmap_32.h      |    5
98     include/asm-x86/mach-xen/asm/fixmap_64.h      |    2
99     include/asm-x86/mach-xen/asm/hw_irq_32.h      |    8
100     include/asm-x86/mach-xen/asm/hw_irq_64.h      |   10
101     include/asm-x86/mach-xen/asm/io_32.h          |   27
102     include/asm-x86/mach-xen/asm/io_64.h          |   27
103     include/asm-x86/mach-xen/asm/pgtable-2level.h |   12
104     include/asm-x86/mach-xen/asm/pgtable-3level.h |   14
105     include/asm-x86/mach-xen/asm/pgtable_32.h     |  143 +-
106     include/asm-x86/mach-xen/asm/pgtable_64.h     |   86 +
107     include/asm-x86/mach-xen/asm/processor_32.h   |   62 -
108     include/asm-x86/mach-xen/asm/processor_64.h   |    2
109     include/asm-x86/mach-xen/asm/segment_32.h     |   19
110     include/asm-x86/mach-xen/asm/smp_32.h         |   25
111     include/asm-x86/mach-xen/asm/smp_64.h         |   27
112     include/asm-x86/mach-xen/asm/system_32.h      |   36
113     include/asm-x86/mach-xen/asm/system_64.h      |    1
114     include/asm-x86/mach-xen/asm/tlbflush_32.h    |    2
115     include/asm-x86/mach-xen/asm/tlbflush_64.h    |    3
116     include/asm-x86/thread_info_64.h              |    4
117     include/linux/skbuff.h                        |    7
118     include/xen/evtchn.h                          |   10
119     include/xen/xencons.h                         |    2
120     mm/mprotect.c                                 |    2
121     net/core/dev.c                                |    8
122     112 files changed, 3102 insertions(+), 3145 deletions(-)
123    
124    --- a/arch/x86/Kconfig
125    +++ b/arch/x86/Kconfig
126    @@ -390,6 +390,7 @@
127    
128     menuconfig PARAVIRT_GUEST
129     bool "Paravirtualized guest support"
130    + depends on !X86_XEN && !X86_64_XEN
131     help
132      Say Y here to get to see options related to running Linux under
133      various hypervisors.  This option alone does not add any kernel code.
134    --- a/arch/x86/ia32/ia32entry-xen.S
135    +++ b/arch/x86/ia32/ia32entry-xen.S
136  @@ -83,6 +83,7 @@  @@ -83,6 +83,7 @@
137    */    */
138   ENTRY(ia32_sysenter_target)   ENTRY(ia32_sysenter_target)
# Line 50  diff -Naur linux-2.6.25/arch/x86/ia32/ia Line 182  diff -Naur linux-2.6.25/arch/x86/ia32/ia
182   .quad compat_sys_move_pages   .quad compat_sys_move_pages
183  + .quad sys_getcpu  + .quad sys_getcpu
184   ia32_syscall_end:   ia32_syscall_end:
185  diff -Naur linux-2.6.25/arch/x86/Kconfig linux-2.6.25-xen/arch/x86/Kconfig  --- a/arch/x86/kernel/Makefile
186  --- linux-2.6.25/arch/x86/Kconfig 2008-05-23 20:51:22.000000000 +0200  +++ b/arch/x86/kernel/Makefile
187  +++ linux-2.6.25-xen/arch/x86/Kconfig 2008-05-23 20:39:03.000000000 +0200  @@ -91,7 +91,7 @@
188  @@ -390,6 +390,7 @@   ###
189     # 64 bit specific files
190     ifeq ($(CONFIG_X86_64),y)
191    -        obj-y += genapic_64.o genapic_flat_64.o
192    +        obj-$(CONFIG_X86_LOCAL_APIC) += genapic_64.o genapic_flat_64.o
193             obj-$(CONFIG_X86_XEN_GENAPIC) += genapic_64.o genapic_xen_64.o
194             obj-$(CONFIG_X86_PM_TIMER) += pmtimer_64.o
195             obj-$(CONFIG_AUDIT) += audit_64.o
196    @@ -104,5 +104,6 @@
197     pci-dma_64-$(CONFIG_XEN) += pci-dma_32.o
198     endif
199    
200   menuconfig PARAVIRT_GUEST  -disabled-obj-$(CONFIG_XEN) := i8253.o i8259_$(BITS).o reboot.o smpboot_$(BITS).o tsc_$(BITS).o
201   bool "Paravirtualized guest support"  +disabled-obj-$(CONFIG_XEN) := early-quirks.o i8253.o i8259_$(BITS).o reboot.o \
202  + depends on !X86_XEN && !X86_64_XEN  + smpboot_$(BITS).o tsc_$(BITS).o
203   help   %/head_$(BITS).o %/head_$(BITS).s: $(if $(CONFIG_XEN),EXTRA_AFLAGS,dummy) :=
204    Say Y here to get to see options related to running Linux under  --- a/arch/x86/kernel/apic_32-xen.c
205    various hypervisors.  This option alone does not add any kernel code.  +++ b/arch/x86/kernel/apic_32-xen.c
 diff -Naur linux-2.6.25/arch/x86/kernel/apic_32-xen.c linux-2.6.25-xen/arch/x86/kernel/apic_32-xen.c  
 --- linux-2.6.25/arch/x86/kernel/apic_32-xen.c 2008-05-23 20:51:11.000000000 +0200  
 +++ linux-2.6.25-xen/arch/x86/kernel/apic_32-xen.c 2008-05-23 20:39:03.000000000 +0200  
206  @@ -54,7 +54,6 @@  @@ -54,7 +54,6 @@
207   /*   /*
208    * Knob to control our willingness to enable the local APIC.    * Knob to control our willingness to enable the local APIC.
# Line 104  diff -Naur linux-2.6.25/arch/x86/kernel/ Line 243  diff -Naur linux-2.6.25/arch/x86/kernel/
243   #endif   #endif
244   }   }
245   }   }
246  diff -Naur linux-2.6.25/arch/x86/kernel/apic_64-xen.c linux-2.6.25-xen/arch/x86/kernel/apic_64-xen.c  --- a/arch/x86/kernel/apic_64-xen.c
247  --- linux-2.6.25/arch/x86/kernel/apic_64-xen.c 2008-05-23 20:51:11.000000000 +0200  +++ b/arch/x86/kernel/apic_64-xen.c
 +++ linux-2.6.25-xen/arch/x86/kernel/apic_64-xen.c 2008-05-23 20:39:03.000000000 +0200  
248  @@ -43,7 +43,7 @@  @@ -43,7 +43,7 @@
249    */    */
250   void ack_bad_irq(unsigned int irq)   void ack_bad_irq(unsigned int irq)
# Line 172  diff -Naur linux-2.6.25/arch/x86/kernel/ Line 310  diff -Naur linux-2.6.25/arch/x86/kernel/
310   #endif   #endif
311    
312   return 1;   return 1;
313  diff -Naur linux-2.6.25/arch/x86/kernel/cpu/common-xen.c linux-2.6.25-xen/arch/x86/kernel/cpu/common-xen.c  --- a/arch/x86/kernel/cpu/common-xen.c
314  --- linux-2.6.25/arch/x86/kernel/cpu/common-xen.c 2008-05-23 20:51:11.000000000 +0200  +++ b/arch/x86/kernel/cpu/common-xen.c
 +++ linux-2.6.25-xen/arch/x86/kernel/cpu/common-xen.c 2008-05-23 20:39:03.000000000 +0200  
315  @@ -43,7 +43,7 @@  @@ -43,7 +43,7 @@
316    
317   extern int disable_pse;   extern int disable_pse;
# Line 238  diff -Naur linux-2.6.25/arch/x86/kernel/ Line 375  diff -Naur linux-2.6.25/arch/x86/kernel/
375    
376   /* Clear all 6 debug registers: */   /* Clear all 6 debug registers: */
377   set_debugreg(0, 0);   set_debugreg(0, 0);
378  diff -Naur linux-2.6.25/arch/x86/kernel/e820_64-xen.c linux-2.6.25-xen/arch/x86/kernel/e820_64-xen.c  --- a/arch/x86/kernel/e820_64-xen.c
379  --- linux-2.6.25/arch/x86/kernel/e820_64-xen.c 2008-05-23 20:51:11.000000000 +0200  +++ b/arch/x86/kernel/e820_64-xen.c
 +++ linux-2.6.25-xen/arch/x86/kernel/e820_64-xen.c 2008-05-23 20:39:03.000000000 +0200  
380  @@ -16,6 +16,7 @@  @@ -16,6 +16,7 @@
381   #include <linux/string.h>   #include <linux/string.h>
382   #include <linux/kexec.h>   #include <linux/kexec.h>
# Line 721  diff -Naur linux-2.6.25/arch/x86/kernel/ Line 857  diff -Naur linux-2.6.25/arch/x86/kernel/
857   }   }
858    
859   unsigned long pci_mem_start = 0xaeedbabe;   unsigned long pci_mem_start = 0xaeedbabe;
860  diff -Naur linux-2.6.25/arch/x86/kernel/early_printk-xen.c linux-2.6.25-xen/arch/x86/kernel/early_printk-xen.c  --- a/arch/x86/kernel/early_printk-xen.c
861  --- linux-2.6.25/arch/x86/kernel/early_printk-xen.c 2008-05-23 20:51:11.000000000 +0200  +++ b/arch/x86/kernel/early_printk-xen.c
 +++ linux-2.6.25-xen/arch/x86/kernel/early_printk-xen.c 2008-05-23 20:39:03.000000000 +0200  
862  @@ -244,20 +244,16 @@  @@ -244,20 +244,16 @@
863    
864   static int __initdata keep_early;   static int __initdata keep_early;
# Line 770  diff -Naur linux-2.6.25/arch/x86/kernel/ Line 905  diff -Naur linux-2.6.25/arch/x86/kernel/
905   }   }
906    
907  -__setup("earlyprintk=", setup_early_printk);  -__setup("earlyprintk=", setup_early_printk);
908  diff -Naur linux-2.6.25/arch/x86/kernel/entry_32-xen.S linux-2.6.25-xen/arch/x86/kernel/entry_32-xen.S  --- a/arch/x86/kernel/entry_32-xen.S
909  --- linux-2.6.25/arch/x86/kernel/entry_32-xen.S 2008-05-23 20:51:22.000000000 +0200  +++ b/arch/x86/kernel/entry_32-xen.S
 +++ linux-2.6.25-xen/arch/x86/kernel/entry_32-xen.S 2008-05-23 20:39:03.000000000 +0200  
910  @@ -80,8 +80,12 @@  @@ -80,8 +80,12 @@
911   NMI_MASK = 0x80000000   NMI_MASK = 0x80000000
912    
# Line 1145  diff -Naur linux-2.6.25/arch/x86/kernel/ Line 1279  diff -Naur linux-2.6.25/arch/x86/kernel/
1279   .section .rodata,"a"   .section .rodata,"a"
1280   #include "syscall_table.S"   #include "syscall_table.S"
1281    
1282  diff -Naur linux-2.6.25/arch/x86/kernel/entry_64-xen.S linux-2.6.25-xen/arch/x86/kernel/entry_64-xen.S  --- a/arch/x86/kernel/entry_64-xen.S
1283  --- linux-2.6.25/arch/x86/kernel/entry_64-xen.S 2008-05-23 20:51:11.000000000 +0200  +++ b/arch/x86/kernel/entry_64-xen.S
 +++ linux-2.6.25-xen/arch/x86/kernel/entry_64-xen.S 2008-05-23 20:47:55.000000000 +0200  
 @@ -4,9 +4,6 @@  
   *  Copyright (C) 1991, 1992  Linus Torvalds  
   *  Copyright (C) 2000, 2001, 2002  Andi Kleen SuSE Labs  
   *  Copyright (C) 2000  Pavel Machek <pavel@suse.cz>  
 - *  
 - *  $Id: 1020-2.6.25-xen-patch-2.6.19.patch,v 1.2 2008-05-23 18:49:01 niro Exp $  
 - *  
   *  Jun Nakajima <jun.nakajima@intel.com>  
   *  Asit Mallick <asit.k.mallick@intel.com>  
   *      Modified for Xen  
1284  @@ -26,15 +23,25 @@  @@ -26,15 +23,25 @@
1285    * at the top of the kernel process stack.    * at the top of the kernel process stack.
1286    * - partial stack frame: partially saved registers upto R11.    * - partial stack frame: partially saved registers upto R11.
# Line 1205  diff -Naur linux-2.6.25/arch/x86/kernel/ Line 1328  diff -Naur linux-2.6.25/arch/x86/kernel/
1328   CFI_DEF_CFA rsp,SS+8-\ref   CFI_DEF_CFA rsp,SS+8-\ref
1329   /*CFI_REL_OFFSET ss,SS-\ref*/   /*CFI_REL_OFFSET ss,SS-\ref*/
1330   CFI_REL_OFFSET rsp,RSP-\ref   CFI_REL_OFFSET rsp,RSP-\ref
1331  @@ -255,6 +264,8 @@  @@ -334,6 +343,8 @@
1332   CFI_REMEMBER_STATE   LOAD_ARGS ARGOFFSET  /* reload args from stack in case ptrace changed it */
1333   jnz tracesys   RESTORE_REST
1334   cmpq $__NR_syscall_max,%rax   cmpq $__NR_syscall_max,%rax
1335  + movq $-ENOSYS,%rcx  + movq $-ENOSYS,%rcx
1336  + cmova %rcx,%rax  + cmova %rcx,%rax
1337   ja badsys   ja  1f
1338   movq %r10,%rcx   movq %r10,%rcx /* fixup for C */
1339   call *sys_call_table(,%rax,8)  # XXX: rip relative   call *sys_call_table(,%rax,8)
1340  @@ -349,6 +360,7 @@  @@ -349,6 +360,7 @@
1341    */    */
1342   ENTRY(int_ret_from_sys_call)   ENTRY(int_ret_from_sys_call)
# Line 1390  diff -Naur linux-2.6.25/arch/x86/kernel/ Line 1513  diff -Naur linux-2.6.25/arch/x86/kernel/
1513    
1514   ENTRY(alignment_check)   ENTRY(alignment_check)
1515   errorentry do_alignment_check   errorentry do_alignment_check
1516  diff -Naur linux-2.6.25/arch/x86/kernel/genapic_xen_64.c linux-2.6.25-xen/arch/x86/kernel/genapic_xen_64.c  --- a/arch/x86/kernel/genapic_xen_64.c
1517  --- linux-2.6.25/arch/x86/kernel/genapic_xen_64.c 2008-05-23 20:51:11.000000000 +0200  +++ b/arch/x86/kernel/genapic_xen_64.c
 +++ linux-2.6.25-xen/arch/x86/kernel/genapic_xen_64.c 2008-05-23 20:39:03.000000000 +0200  
1518  @@ -71,6 +71,13 @@  @@ -71,6 +71,13 @@
1519   return cpu_online_map;   return cpu_online_map;
1520   }   }
# Line 1417  diff -Naur linux-2.6.25/arch/x86/kernel/ Line 1539  diff -Naur linux-2.6.25/arch/x86/kernel/
1539   #ifdef CONFIG_XEN_PRIVILEGED_GUEST   #ifdef CONFIG_XEN_PRIVILEGED_GUEST
1540   .apic_id_registered = xen_apic_id_registered,   .apic_id_registered = xen_apic_id_registered,
1541   #endif   #endif
1542  diff -Naur linux-2.6.25/arch/x86/kernel/head_32-xen.S linux-2.6.25-xen/arch/x86/kernel/head_32-xen.S  --- a/arch/x86/kernel/head64-xen.c
1543  --- linux-2.6.25/arch/x86/kernel/head_32-xen.S 2008-05-23 20:51:11.000000000 +0200  +++ b/arch/x86/kernel/head64-xen.c
 +++ linux-2.6.25-xen/arch/x86/kernel/head_32-xen.S 2008-05-23 20:39:03.000000000 +0200  
 @@ -62,7 +62,7 @@  
  movl %eax,%gs  
  cld # gcc2 wants the direction flag cleared at all times  
   
 - pushl %eax # fake return address  
 + pushl $0 # fake return address for unwinder  
  jmp start_kernel  
   
  #define HYPERCALL_PAGE_OFFSET 0x1000  
 diff -Naur linux-2.6.25/arch/x86/kernel/head64-xen.c linux-2.6.25-xen/arch/x86/kernel/head64-xen.c  
 --- linux-2.6.25/arch/x86/kernel/head64-xen.c 2008-05-23 20:51:11.000000000 +0200  
 +++ linux-2.6.25-xen/arch/x86/kernel/head64-xen.c 2008-05-23 20:39:03.000000000 +0200  
1544  @@ -54,11 +54,9 @@  @@ -54,11 +54,9 @@
1545   new_data = *(int *) (x86_boot_params + NEW_CL_POINTER);   new_data = *(int *) (x86_boot_params + NEW_CL_POINTER);
1546   if (!new_data) {   if (!new_data) {
# Line 1513  diff -Naur linux-2.6.25/arch/x86/kernel/ Line 1622  diff -Naur linux-2.6.25/arch/x86/kernel/
1622  - setup_boot_cpu_data();  - setup_boot_cpu_data();
1623   start_kernel();   start_kernel();
1624   }   }
1625  diff -Naur linux-2.6.25/arch/x86/kernel/head_64-xen.S linux-2.6.25-xen/arch/x86/kernel/head_64-xen.S  --- a/arch/x86/kernel/head_32-xen.S
1626  --- linux-2.6.25/arch/x86/kernel/head_64-xen.S 2008-05-23 20:51:11.000000000 +0200  +++ b/arch/x86/kernel/head_32-xen.S
1627  +++ linux-2.6.25-xen/arch/x86/kernel/head_64-xen.S 2008-05-23 20:49:19.000000000 +0200  @@ -62,7 +62,7 @@
1628  @@ -5,9 +5,6 @@   movl %eax,%gs
1629    *  Copyright (C) 2000 Pavel Machek <pavel@suse.cz>   cld # gcc2 wants the direction flag cleared at all times
1630    *  Copyright (C) 2000 Karsten Keil <kkeil@suse.de>  
1631    *  Copyright (C) 2001,2002 Andi Kleen <ak@suse.de>  - pushl %eax # fake return address
1632  - *  + pushl $0 # fake return address for unwinder
1633  - *  $Id: 1020-2.6.25-xen-patch-2.6.19.patch,v 1.2 2008-05-23 18:49:01 niro Exp $   jmp start_kernel
1634  - *  
1635    *  Jun Nakajima <jun.nakajima@intel.com>   #define HYPERCALL_PAGE_OFFSET 0x1000
1636    *    Modified for Xen                                  --- a/arch/x86/kernel/head_64-xen.S
1637    */  +++ b/arch/x86/kernel/head_64-xen.S
1638  @@ -149,7 +146,7 @@  @@ -149,7 +146,7 @@
1639   .quad 0,0 /* TSS */   .quad 0,0 /* TSS */
1640   .quad 0,0 /* LDT */   .quad 0,0 /* LDT */
# Line 1535  diff -Naur linux-2.6.25/arch/x86/kernel/ Line 1644  diff -Naur linux-2.6.25/arch/x86/kernel/
1644   gdt_end:   gdt_end:
1645   /* asm/segment.h:GDT_ENTRIES must match this */   /* asm/segment.h:GDT_ENTRIES must match this */
1646   /* This should be a multiple of the cache line size */   /* This should be a multiple of the cache line size */
1647  diff -Naur linux-2.6.25/arch/x86/kernel/io_apic_32-xen.c linux-2.6.25-xen/arch/x86/kernel/io_apic_32-xen.c  --- a/arch/x86/kernel/io_apic_32-xen.c
1648  --- linux-2.6.25/arch/x86/kernel/io_apic_32-xen.c 2008-05-23 20:51:11.000000000 +0200  +++ b/arch/x86/kernel/io_apic_32-xen.c
 +++ linux-2.6.25-xen/arch/x86/kernel/io_apic_32-xen.c 2008-05-23 20:39:03.000000000 +0200  
1649  @@ -31,6 +31,9 @@  @@ -31,6 +31,9 @@
1650   #include <linux/acpi.h>   #include <linux/acpi.h>
1651   #include <linux/module.h>   #include <linux/module.h>
# Line 2612  diff -Naur linux-2.6.25/arch/x86/kernel/ Line 2720  diff -Naur linux-2.6.25/arch/x86/kernel/
2720  + return 0;  + return 0;
2721  +}  +}
2722  +early_param("noapic", parse_noapic);  +early_param("noapic", parse_noapic);
2723  diff -Naur linux-2.6.25/arch/x86/kernel/io_apic_64-xen.c linux-2.6.25-xen/arch/x86/kernel/io_apic_64-xen.c  --- a/arch/x86/kernel/io_apic_64-xen.c
2724  --- linux-2.6.25/arch/x86/kernel/io_apic_64-xen.c 2008-05-23 20:51:11.000000000 +0200  +++ b/arch/x86/kernel/io_apic_64-xen.c
 +++ linux-2.6.25-xen/arch/x86/kernel/io_apic_64-xen.c 2008-05-23 20:39:03.000000000 +0200  
2725  @@ -26,9 +26,12 @@  @@ -26,9 +26,12 @@
2726   #include <linux/delay.h>   #include <linux/delay.h>
2727   #include <linux/sched.h>   #include <linux/sched.h>
# Line 2742  diff -Naur linux-2.6.25/arch/x86/kernel/ Line 2849  diff -Naur linux-2.6.25/arch/x86/kernel/
2849   apic_op.value = value;   apic_op.value = value;
2850   WARN_ON(HYPERVISOR_physdev_op(PHYSDEVOP_apic_write, &apic_op));   WARN_ON(HYPERVISOR_physdev_op(PHYSDEVOP_apic_write, &apic_op));
2851  +#endif  +#endif
2852  +}   }
2853  +  
2854    -#define io_apic_read(a,r)    xen_io_apic_read(a,r)
2855    -#define io_apic_write(a,r,v) xen_io_apic_write(a,r,v)
2856  +#ifndef CONFIG_XEN  +#ifndef CONFIG_XEN
2857  +/*  +/*
2858  + * Re-write a value: to be used for read-modify-write  + * Re-write a value: to be used for read-modify-write
# Line 2753  diff -Naur linux-2.6.25/arch/x86/kernel/ Line 2862  diff -Naur linux-2.6.25/arch/x86/kernel/
2862  +{  +{
2863  + struct io_apic __iomem *io_apic = io_apic_base(apic);  + struct io_apic __iomem *io_apic = io_apic_base(apic);
2864  + writel(value, &io_apic->data);  + writel(value, &io_apic->data);
2865   }  +}
2866  +#else  +#else
2867  +#define io_apic_modify io_apic_write  +#define io_apic_modify io_apic_write
2868  +#endif  +#endif
2869    
2870  -#define io_apic_read(a,r)    xen_io_apic_read(a,r)  -#define clear_IO_APIC() ((void)0)
 -#define io_apic_write(a,r,v) xen_io_apic_write(a,r,v)  
2871  +/*  +/*
2872  + * Synchronize the IO-APIC and the CPU by doing  + * Synchronize the IO-APIC and the CPU by doing
2873  + * a dummy read from the IO-APIC  + * a dummy read from the IO-APIC
# Line 2772  diff -Naur linux-2.6.25/arch/x86/kernel/ Line 2880  diff -Naur linux-2.6.25/arch/x86/kernel/
2880  +#endif  +#endif
2881  +}  +}
2882    
2883  -#define clear_IO_APIC() ((void)0)  -#else
2884  +union entry_union {  +union entry_union {
2885  + struct { u32 w1, w2; };  + struct { u32 w1, w2; };
2886  + struct IO_APIC_route_entry entry;  + struct IO_APIC_route_entry entry;
2887  +};  +};
2888    +
 -#else  
2889  +static struct IO_APIC_route_entry ioapic_read_entry(int apic, int pin)  +static struct IO_APIC_route_entry ioapic_read_entry(int apic, int pin)
2890  +{  +{
2891  + union entry_union eu;  + union entry_union eu;
# Line 4306  diff -Naur linux-2.6.25/arch/x86/kernel/ Line 4413  diff -Naur linux-2.6.25/arch/x86/kernel/
4413   spin_unlock_irqrestore(&ioapic_lock, flags);   spin_unlock_irqrestore(&ioapic_lock, flags);
4414    
4415   return 0;   return 0;
4416  diff -Naur linux-2.6.25/arch/x86/kernel/ioport_64-xen.c linux-2.6.25-xen/arch/x86/kernel/ioport_64-xen.c  --- a/arch/x86/kernel/ioport_64-xen.c
4417  --- linux-2.6.25/arch/x86/kernel/ioport_64-xen.c 2008-05-23 20:51:11.000000000 +0200  +++ b/arch/x86/kernel/ioport_64-xen.c
 +++ linux-2.6.25-xen/arch/x86/kernel/ioport_64-xen.c 2008-05-23 20:39:03.000000000 +0200  
4418  @@ -58,6 +58,7 @@  @@ -58,6 +58,7 @@
4419    
4420   memset(bitmap, 0xff, IO_BITMAP_BYTES);   memset(bitmap, 0xff, IO_BITMAP_BYTES);
# Line 4317  diff -Naur linux-2.6.25/arch/x86/kernel/ Line 4423  diff -Naur linux-2.6.25/arch/x86/kernel/
4423    
4424   set_xen_guest_handle(set_iobitmap.bitmap, (char *)bitmap);   set_xen_guest_handle(set_iobitmap.bitmap, (char *)bitmap);
4425   set_iobitmap.nr_ports = IO_BITMAP_BITS;   set_iobitmap.nr_ports = IO_BITMAP_BITS;
4426  diff -Naur linux-2.6.25/arch/x86/kernel/irq_32-xen.c linux-2.6.25-xen/arch/x86/kernel/irq_32-xen.c  --- a/arch/x86/kernel/irq_32-xen.c
4427  --- linux-2.6.25/arch/x86/kernel/irq_32-xen.c 2008-05-23 20:51:11.000000000 +0200  +++ b/arch/x86/kernel/irq_32-xen.c
 +++ linux-2.6.25-xen/arch/x86/kernel/irq_32-xen.c 2008-05-23 20:39:03.000000000 +0200  
4428  @@ -53,8 +53,10 @@  @@ -53,8 +53,10 @@
4429    */    */
4430   fastcall unsigned int do_IRQ(struct pt_regs *regs)   fastcall unsigned int do_IRQ(struct pt_regs *regs)
# Line 4376  diff -Naur linux-2.6.25/arch/x86/kernel/ Line 4481  diff -Naur linux-2.6.25/arch/x86/kernel/
4481   seq_printf(p, "  %s", action->name);   seq_printf(p, "  %s", action->name);
4482    
4483   for (action=action->next; action; action = action->next)   for (action=action->next; action; action = action->next)
4484  diff -Naur linux-2.6.25/arch/x86/kernel/irq_64-xen.c linux-2.6.25-xen/arch/x86/kernel/irq_64-xen.c  --- a/arch/x86/kernel/irq_64-xen.c
4485  --- linux-2.6.25/arch/x86/kernel/irq_64-xen.c 2008-05-23 20:51:11.000000000 +0200  +++ b/arch/x86/kernel/irq_64-xen.c
 +++ linux-2.6.25-xen/arch/x86/kernel/irq_64-xen.c 2008-05-23 20:39:03.000000000 +0200  
4486  @@ -20,11 +20,6 @@  @@ -20,11 +20,6 @@
4487   #include <asm/idle.h>   #include <asm/idle.h>
4488    
# Line 4458  diff -Naur linux-2.6.25/arch/x86/kernel/ Line 4562  diff -Naur linux-2.6.25/arch/x86/kernel/
4562  +        printk("unexpected IRQ trap at irq %02x\n", irq);  +        printk("unexpected IRQ trap at irq %02x\n", irq);
4563   }   }
4564   #endif   #endif
4565  diff -Naur linux-2.6.25/arch/x86/kernel/ldt_32-xen.c linux-2.6.25-xen/arch/x86/kernel/ldt_32-xen.c  --- a/arch/x86/kernel/ldt_32-xen.c
4566  --- linux-2.6.25/arch/x86/kernel/ldt_32-xen.c 2008-05-23 20:51:11.000000000 +0200  +++ b/arch/x86/kernel/ldt_32-xen.c
 +++ linux-2.6.25-xen/arch/x86/kernel/ldt_32-xen.c 2008-05-23 20:39:03.000000000 +0200  
4567  @@ -1,5 +1,5 @@  @@ -1,5 +1,5 @@
4568   /*   /*
4569  - * linux/kernel/ldt.c  - * linux/kernel/ldt.c
# Line 4468  diff -Naur linux-2.6.25/arch/x86/kernel/ Line 4571  diff -Naur linux-2.6.25/arch/x86/kernel/
4571    *    *
4572    * Copyright (C) 1992 Krishna Balasubramanian and Linus Torvalds    * Copyright (C) 1992 Krishna Balasubramanian and Linus Torvalds
4573    * Copyright (C) 1999 Ingo Molnar <mingo@redhat.com>    * Copyright (C) 1999 Ingo Molnar <mingo@redhat.com>
4574  diff -Naur linux-2.6.25/arch/x86/kernel/Makefile linux-2.6.25-xen/arch/x86/kernel/Makefile  --- a/arch/x86/kernel/microcode-xen.c
4575  --- linux-2.6.25/arch/x86/kernel/Makefile 2008-05-23 20:51:22.000000000 +0200  +++ b/arch/x86/kernel/microcode-xen.c
 +++ linux-2.6.25-xen/arch/x86/kernel/Makefile 2008-05-23 20:39:03.000000000 +0200  
 @@ -91,7 +91,7 @@  
  ###  
  # 64 bit specific files  
  ifeq ($(CONFIG_X86_64),y)  
 -        obj-y += genapic_64.o genapic_flat_64.o  
 +        obj-$(CONFIG_X86_LOCAL_APIC) += genapic_64.o genapic_flat_64.o  
          obj-$(CONFIG_X86_XEN_GENAPIC) += genapic_64.o genapic_xen_64.o  
          obj-$(CONFIG_X86_PM_TIMER) += pmtimer_64.o  
          obj-$(CONFIG_AUDIT) += audit_64.o  
 @@ -104,5 +104,6 @@  
  pci-dma_64-$(CONFIG_XEN) += pci-dma_32.o  
  endif  
   
 -disabled-obj-$(CONFIG_XEN) := i8253.o i8259_$(BITS).o reboot.o smpboot_$(BITS).o tsc_$(BITS).o  
 +disabled-obj-$(CONFIG_XEN) := early-quirks.o i8253.o i8259_$(BITS).o reboot.o \  
 + smpboot_$(BITS).o tsc_$(BITS).o  
  %/head_$(BITS).o %/head_$(BITS).s: $(if $(CONFIG_XEN),EXTRA_AFLAGS,dummy) :=  
 diff -Naur linux-2.6.25/arch/x86/kernel/microcode-xen.c linux-2.6.25-xen/arch/x86/kernel/microcode-xen.c  
 --- linux-2.6.25/arch/x86/kernel/microcode-xen.c 2008-05-23 20:51:11.000000000 +0200  
 +++ linux-2.6.25-xen/arch/x86/kernel/microcode-xen.c 2008-05-23 20:39:03.000000000 +0200  
4576  @@ -2,6 +2,7 @@  @@ -2,6 +2,7 @@
4577    * Intel CPU Microcode Update Driver for Linux    * Intel CPU Microcode Update Driver for Linux
4578    *    *
# Line 4626  diff -Naur linux-2.6.25/arch/x86/kernel/ Line 4708  diff -Naur linux-2.6.25/arch/x86/kernel/
4708   module_init(microcode_init)   module_init(microcode_init)
4709   module_exit(microcode_exit)   module_exit(microcode_exit)
4710  -MODULE_ALIAS_MISCDEV(MICROCODE_MINOR);  -MODULE_ALIAS_MISCDEV(MICROCODE_MINOR);
4711  diff -Naur linux-2.6.25/arch/x86/kernel/mpparse_32-xen.c linux-2.6.25-xen/arch/x86/kernel/mpparse_32-xen.c  --- a/arch/x86/kernel/mpparse_32-xen.c
4712  --- linux-2.6.25/arch/x86/kernel/mpparse_32-xen.c 2008-05-23 20:51:11.000000000 +0200  +++ b/arch/x86/kernel/mpparse_32-xen.c
 +++ linux-2.6.25-xen/arch/x86/kernel/mpparse_32-xen.c 2008-05-23 20:39:03.000000000 +0200  
4713  @@ -30,6 +30,7 @@  @@ -30,6 +30,7 @@
4714   #include <asm/io_apic.h>   #include <asm/io_apic.h>
4715    
# Line 4795  diff -Naur linux-2.6.25/arch/x86/kernel/ Line 4876  diff -Naur linux-2.6.25/arch/x86/kernel/
4876   /*   /*
4877   * Mapping between Global System Interrups, which   * Mapping between Global System Interrups, which
4878   * represent all possible interrupts, and IRQs   * represent all possible interrupts, and IRQs
4879  diff -Naur linux-2.6.25/arch/x86/kernel/mpparse_64-xen.c linux-2.6.25-xen/arch/x86/kernel/mpparse_64-xen.c  --- a/arch/x86/kernel/mpparse_64-xen.c
4880  --- linux-2.6.25/arch/x86/kernel/mpparse_64-xen.c 2008-05-23 20:51:11.000000000 +0200  +++ b/arch/x86/kernel/mpparse_64-xen.c
 +++ linux-2.6.25-xen/arch/x86/kernel/mpparse_64-xen.c 2008-05-23 20:39:03.000000000 +0200  
4881  @@ -41,8 +41,7 @@  @@ -41,8 +41,7 @@
4882    * Various Linux-internal data structures created from the    * Various Linux-internal data structures created from the
4883    * MP-table.    * MP-table.
# Line 5411  diff -Naur linux-2.6.25/arch/x86/kernel/ Line 5491  diff -Naur linux-2.6.25/arch/x86/kernel/
5491  -  -
5492  -#endif /*CONFIG_X86_IO_APIC*/  -#endif /*CONFIG_X86_IO_APIC*/
5493   #endif /*CONFIG_ACPI*/   #endif /*CONFIG_ACPI*/
5494  diff -Naur linux-2.6.25/arch/x86/kernel/pci-dma_32-xen.c linux-2.6.25-xen/arch/x86/kernel/pci-dma_32-xen.c  --- a/arch/x86/kernel/pci-dma_32-xen.c
5495  --- linux-2.6.25/arch/x86/kernel/pci-dma_32-xen.c 2008-05-23 20:51:11.000000000 +0200  +++ b/arch/x86/kernel/pci-dma_32-xen.c
 +++ linux-2.6.25-xen/arch/x86/kernel/pci-dma_32-xen.c 2008-05-23 20:39:03.000000000 +0200  
5496  @@ -116,8 +116,7 @@  @@ -116,8 +116,7 @@
5497   {   {
5498   int i, rc;   int i, rc;
# Line 5472  diff -Naur linux-2.6.25/arch/x86/kernel/ Line 5551  diff -Naur linux-2.6.25/arch/x86/kernel/
5551   if (swiotlb)   if (swiotlb)
5552   swiotlb_unmap_single(dev, dma_addr, size, direction);   swiotlb_unmap_single(dev, dma_addr, size, direction);
5553   else   else
5554  diff -Naur linux-2.6.25/arch/x86/kernel/pci-swiotlb_64-xen.c linux-2.6.25-xen/arch/x86/kernel/pci-swiotlb_64-xen.c  --- a/arch/x86/kernel/pci-swiotlb_64-xen.c
5555  --- linux-2.6.25/arch/x86/kernel/pci-swiotlb_64-xen.c 2008-05-23 20:51:21.000000000 +0200  +++ b/arch/x86/kernel/pci-swiotlb_64-xen.c
 +++ linux-2.6.25-xen/arch/x86/kernel/pci-swiotlb_64-xen.c 2008-05-23 20:39:03.000000000 +0200  
5556  @@ -3,7 +3,8 @@  @@ -3,7 +3,8 @@
5557   #include <linux/pci.h>   #include <linux/pci.h>
5558   #include <linux/cache.h>   #include <linux/cache.h>
# Line 5485  diff -Naur linux-2.6.25/arch/x86/kernel/ Line 5563  diff -Naur linux-2.6.25/arch/x86/kernel/
5563   #include <asm/proto.h>   #include <asm/proto.h>
5564   #include <asm/swiotlb.h>   #include <asm/swiotlb.h>
5565   #include <asm/dma.h>   #include <asm/dma.h>
5566  diff -Naur linux-2.6.25/arch/x86/kernel/process_32-xen.c linux-2.6.25-xen/arch/x86/kernel/process_32-xen.c  --- a/arch/x86/kernel/process_32-xen.c
5567  --- linux-2.6.25/arch/x86/kernel/process_32-xen.c 2008-05-23 20:51:11.000000000 +0200  +++ b/arch/x86/kernel/process_32-xen.c
 +++ linux-2.6.25-xen/arch/x86/kernel/process_32-xen.c 2008-05-23 20:39:03.000000000 +0200  
5568  @@ -37,6 +37,7 @@  @@ -37,6 +37,7 @@
5569   #include <linux/kallsyms.h>   #include <linux/kallsyms.h>
5570   #include <linux/ptrace.h>   #include <linux/ptrace.h>
# Line 5577  diff -Naur linux-2.6.25/arch/x86/kernel/ Line 5654  diff -Naur linux-2.6.25/arch/x86/kernel/
5654   sp -= get_random_int() % 8192;   sp -= get_random_int() % 8192;
5655   return sp & ~0xf;   return sp & ~0xf;
5656   }   }
5657  diff -Naur linux-2.6.25/arch/x86/kernel/process_64-xen.c linux-2.6.25-xen/arch/x86/kernel/process_64-xen.c  --- a/arch/x86/kernel/process_64-xen.c
5658  --- linux-2.6.25/arch/x86/kernel/process_64-xen.c 2008-05-23 20:51:11.000000000 +0200  +++ b/arch/x86/kernel/process_64-xen.c
 +++ linux-2.6.25-xen/arch/x86/kernel/process_64-xen.c 2008-05-23 20:39:03.000000000 +0200  
5659  @@ -89,25 +89,24 @@  @@ -89,25 +89,24 @@
5660   }   }
5661   EXPORT_SYMBOL(idle_notifier_unregister);   EXPORT_SYMBOL(idle_notifier_unregister);
# Line 5786  diff -Naur linux-2.6.25/arch/x86/kernel/ Line 5862  diff -Naur linux-2.6.25/arch/x86/kernel/
5862   sp -= get_random_int() % 8192;   sp -= get_random_int() % 8192;
5863   return sp & ~0xf;   return sp & ~0xf;
5864   }   }
5865  diff -Naur linux-2.6.25/arch/x86/kernel/setup_32-xen.c linux-2.6.25-xen/arch/x86/kernel/setup_32-xen.c  --- a/arch/x86/kernel/setup64-xen.c
5866  --- linux-2.6.25/arch/x86/kernel/setup_32-xen.c 2008-05-23 20:51:11.000000000 +0200  +++ b/arch/x86/kernel/setup64-xen.c
5867  +++ linux-2.6.25-xen/arch/x86/kernel/setup_32-xen.c 2008-05-23 20:39:03.000000000 +0200  @@ -31,7 +31,7 @@
5868     #include <asm/hypervisor.h>
5869     #endif
5870    
5871    -char x86_boot_params[BOOT_PARAM_SIZE] __initdata = {0,};
5872    +char x86_boot_params[BOOT_PARAM_SIZE] __initdata;
5873    
5874     cpumask_t cpu_initialized __cpuinitdata = CPU_MASK_NONE;
5875    
5876    @@ -55,8 +55,10 @@
5877     on Enable(default)
5878     off Disable
5879     */
5880    -int __init nonx_setup(char *str)
5881    +static int __init nonx_setup(char *str)
5882     {
5883    + if (!str)
5884    + return -EINVAL;
5885     if (!strncmp(str, "on", 2)) {
5886                     __supported_pte_mask |= _PAGE_NX;
5887       do_not_nx = 0;
5888    @@ -64,9 +66,9 @@
5889     do_not_nx = 1;
5890     __supported_pte_mask &= ~_PAGE_NX;
5891             }
5892    - return 1;
5893    + return 0;
5894     }
5895    -__setup("noexec=", nonx_setup); /* parsed early actually */
5896    +early_param("noexec", nonx_setup);
5897    
5898     int force_personality32 = 0;
5899    
5900    @@ -102,12 +104,9 @@
5901     #endif
5902    
5903     /* Copy section for each CPU (we discard the original) */
5904    - size = ALIGN(__per_cpu_end - __per_cpu_start, SMP_CACHE_BYTES);
5905    -#ifdef CONFIG_MODULES
5906    - if (size < PERCPU_ENOUGH_ROOM)
5907    - size = PERCPU_ENOUGH_ROOM;
5908    -#endif
5909    + size = PERCPU_ENOUGH_ROOM;
5910    
5911    + printk(KERN_INFO "PERCPU: Allocating %lu bytes of per cpu data\n", size);
5912     for_each_cpu_mask (i, cpu_possible_map) {
5913     char *ptr;
5914    
5915    @@ -169,7 +168,10 @@
5916     /* Setup up data that may be needed in __get_free_pages early */
5917     asm volatile("movl %0,%%fs ; movl %0,%%gs" :: "r" (0));
5918     #ifndef CONFIG_XEN
5919    + /* Memory clobbers used to order PDA accessed */
5920    + mb();
5921     wrmsrl(MSR_GS_BASE, pda);
5922    + mb();
5923     #else
5924     if (HYPERVISOR_set_segment_base(SEGBASE_GS_KERNEL,
5925     (unsigned long)pda))
5926    @@ -302,28 +304,17 @@
5927     * set up and load the per-CPU TSS
5928     */
5929     for (v = 0; v < N_EXCEPTION_STACKS; v++) {
5930    + static const unsigned int order[N_EXCEPTION_STACKS] = {
5931    + [0 ... N_EXCEPTION_STACKS - 1] = EXCEPTION_STACK_ORDER,
5932    + [DEBUG_STACK - 1] = DEBUG_STACK_ORDER
5933    + };
5934     if (cpu) {
5935    - static const unsigned int order[N_EXCEPTION_STACKS] = {
5936    - [0 ... N_EXCEPTION_STACKS - 1] = EXCEPTION_STACK_ORDER,
5937    - [DEBUG_STACK - 1] = DEBUG_STACK_ORDER
5938    - };
5939    -
5940     estacks = (char *)__get_free_pages(GFP_ATOMIC, order[v]);
5941     if (!estacks)
5942     panic("Cannot allocate exception stack %ld %d\n",
5943          v, cpu);
5944     }
5945    - switch (v + 1) {
5946    -#if DEBUG_STKSZ > EXCEPTION_STKSZ
5947    - case DEBUG_STACK:
5948    - cpu_pda(cpu)->debugstack = (unsigned long)estacks;
5949    - estacks += DEBUG_STKSZ;
5950    - break;
5951    -#endif
5952    - default:
5953    - estacks += EXCEPTION_STKSZ;
5954    - break;
5955    - }
5956    + estacks += PAGE_SIZE << order[v];
5957     orig_ist->ist[v] = t->ist[v] = (unsigned long)estacks;
5958     }
5959    
5960    --- a/arch/x86/kernel/setup_32-xen.c
5961    +++ b/arch/x86/kernel/setup_32-xen.c
5962  @@ -56,6 +56,7 @@  @@ -56,6 +56,7 @@
5963   #include <asm/apic.h>   #include <asm/apic.h>
5964   #include <asm/e820.h>   #include <asm/e820.h>
# Line 6070  diff -Naur linux-2.6.25/arch/x86/kernel/ Line 6240  diff -Naur linux-2.6.25/arch/x86/kernel/
6240    
6241  - else if (!memcmp(from, "acpi_sci=edge", 13))  - else if (!memcmp(from, "acpi_sci=edge", 13))
6242  - acpi_sci_flags.trigger =  1;  - acpi_sci_flags.trigger =  1;
 -  
 - else if (!memcmp(from, "acpi_sci=level", 14))  
 - acpi_sci_flags.trigger = 3;  
6243  +#ifdef CONFIG_PROC_VMCORE  +#ifdef CONFIG_PROC_VMCORE
6244  +/* elfcorehdr= specifies the location of elf core header  +/* elfcorehdr= specifies the location of elf core header
6245  + * stored by the crashed kernel.  + * stored by the crashed kernel.
# Line 6082  diff -Naur linux-2.6.25/arch/x86/kernel/ Line 6249  diff -Naur linux-2.6.25/arch/x86/kernel/
6249  + if (!arg)  + if (!arg)
6250  + return -EINVAL;  + return -EINVAL;
6251    
6252  - else if (!memcmp(from, "acpi_sci=high", 13))  - else if (!memcmp(from, "acpi_sci=level", 14))
6253  - acpi_sci_flags.polarity = 1;  - acpi_sci_flags.trigger = 3;
6254  + elfcorehdr_addr = memparse(arg, &arg);  + elfcorehdr_addr = memparse(arg, &arg);
6255  + return 0;  + return 0;
6256  +}  +}
6257  +early_param("elfcorehdr", parse_elfcorehdr);  +early_param("elfcorehdr", parse_elfcorehdr);
6258  +#endif /* CONFIG_PROC_VMCORE */  +#endif /* CONFIG_PROC_VMCORE */
6259    
6260  - else if (!memcmp(from, "acpi_sci=low", 12))  - else if (!memcmp(from, "acpi_sci=high", 13))
6261  - acpi_sci_flags.polarity = 3;  - acpi_sci_flags.polarity = 1;
6262  +/*  +/*
6263  + * highmem=size forces highmem to be exactly 'size' bytes.  + * highmem=size forces highmem to be exactly 'size' bytes.
6264  + * This works even on boxes that have no highmem otherwise.  + * This works even on boxes that have no highmem otherwise.
# Line 6102  diff -Naur linux-2.6.25/arch/x86/kernel/ Line 6269  diff -Naur linux-2.6.25/arch/x86/kernel/
6269  + if (!arg)  + if (!arg)
6270  + return -EINVAL;  + return -EINVAL;
6271    
6272  -#ifdef CONFIG_X86_IO_APIC  - else if (!memcmp(from, "acpi_sci=low", 12))
6273  - else if (!memcmp(from, "acpi_skip_timer_override", 24))  - acpi_sci_flags.polarity = 3;
 - acpi_skip_timer_override = 1;  
6274  + highmem_pages = memparse(arg, &arg) >> PAGE_SHIFT;  + highmem_pages = memparse(arg, &arg) >> PAGE_SHIFT;
6275  + return 0;  + return 0;
6276  +}  +}
6277  +early_param("highmem", parse_highmem);  +early_param("highmem", parse_highmem);
6278    
6279  - if (!memcmp(from, "disable_timer_pin_1", 19))  -#ifdef CONFIG_X86_IO_APIC
6280  - disable_timer_pin_1 = 1;  - else if (!memcmp(from, "acpi_skip_timer_override", 24))
6281  - if (!memcmp(from, "enable_timer_pin_1", 18))  - acpi_skip_timer_override = 1;
 - disable_timer_pin_1 = -1;  
 -  
 - /* disable IO-APIC */  
 - else if (!memcmp(from, "noapic", 6))  
 - disable_ioapic_setup();  
 -#endif /* CONFIG_X86_IO_APIC */  
 -#endif /* CONFIG_ACPI */  
6282  +/*  +/*
6283  + * vmalloc=size forces the vmalloc area to be exactly 'size'  + * vmalloc=size forces the vmalloc area to be exactly 'size'
6284  + * bytes. This can be used to increase (or decrease) the  + * bytes. This can be used to increase (or decrease) the
# Line 6130  diff -Naur linux-2.6.25/arch/x86/kernel/ Line 6289  diff -Naur linux-2.6.25/arch/x86/kernel/
6289  + if (!arg)  + if (!arg)
6290  + return -EINVAL;  + return -EINVAL;
6291    
6292    - if (!memcmp(from, "disable_timer_pin_1", 19))
6293    - disable_timer_pin_1 = 1;
6294    - if (!memcmp(from, "enable_timer_pin_1", 18))
6295    - disable_timer_pin_1 = -1;
6296    -
6297    - /* disable IO-APIC */
6298    - else if (!memcmp(from, "noapic", 6))
6299    - disable_ioapic_setup();
6300    -#endif /* CONFIG_X86_IO_APIC */
6301    -#endif /* CONFIG_ACPI */
6302    -
6303  -#ifdef CONFIG_X86_LOCAL_APIC  -#ifdef CONFIG_X86_LOCAL_APIC
6304  - /* enable local APIC */  - /* enable local APIC */
6305  - else if (!memcmp(from, "lapic", 5))  - else if (!memcmp(from, "lapic", 5))
# Line 6351  diff -Naur linux-2.6.25/arch/x86/kernel/ Line 6521  diff -Naur linux-2.6.25/arch/x86/kernel/
6521    
6522   #ifdef CONFIG_ACPI   #ifdef CONFIG_ACPI
6523   acpi_boot_init();   acpi_boot_init();
6524  diff -Naur linux-2.6.25/arch/x86/kernel/setup64-xen.c linux-2.6.25-xen/arch/x86/kernel/setup64-xen.c  --- a/arch/x86/kernel/setup_64-xen.c
6525  --- linux-2.6.25/arch/x86/kernel/setup64-xen.c 2008-05-23 20:51:11.000000000 +0200  +++ b/arch/x86/kernel/setup_64-xen.c
 +++ linux-2.6.25-xen/arch/x86/kernel/setup64-xen.c 2008-05-23 20:39:03.000000000 +0200  
 @@ -31,7 +31,7 @@  
  #include <asm/hypervisor.h>  
  #endif  
   
 -char x86_boot_params[BOOT_PARAM_SIZE] __initdata = {0,};  
 +char x86_boot_params[BOOT_PARAM_SIZE] __initdata;  
   
  cpumask_t cpu_initialized __cpuinitdata = CPU_MASK_NONE;  
   
 @@ -55,8 +55,10 @@  
  on Enable(default)  
  off Disable  
  */  
 -int __init nonx_setup(char *str)  
 +static int __init nonx_setup(char *str)  
  {  
 + if (!str)  
 + return -EINVAL;  
  if (!strncmp(str, "on", 2)) {  
                  __supported_pte_mask |= _PAGE_NX;  
    do_not_nx = 0;  
 @@ -64,9 +66,9 @@  
  do_not_nx = 1;  
  __supported_pte_mask &= ~_PAGE_NX;  
          }  
 - return 1;  
 + return 0;  
  }  
 -__setup("noexec=", nonx_setup); /* parsed early actually */  
 +early_param("noexec", nonx_setup);  
   
  int force_personality32 = 0;  
   
 @@ -102,12 +104,9 @@  
  #endif  
   
  /* Copy section for each CPU (we discard the original) */  
 - size = ALIGN(__per_cpu_end - __per_cpu_start, SMP_CACHE_BYTES);  
 -#ifdef CONFIG_MODULES  
 - if (size < PERCPU_ENOUGH_ROOM)  
 - size = PERCPU_ENOUGH_ROOM;  
 -#endif  
 + size = PERCPU_ENOUGH_ROOM;  
   
 + printk(KERN_INFO "PERCPU: Allocating %lu bytes of per cpu data\n", size);  
  for_each_cpu_mask (i, cpu_possible_map) {  
  char *ptr;  
   
 @@ -169,7 +168,10 @@  
  /* Setup up data that may be needed in __get_free_pages early */  
  asm volatile("movl %0,%%fs ; movl %0,%%gs" :: "r" (0));  
  #ifndef CONFIG_XEN  
 + /* Memory clobbers used to order PDA accessed */  
 + mb();  
  wrmsrl(MSR_GS_BASE, pda);  
 + mb();  
  #else  
  if (HYPERVISOR_set_segment_base(SEGBASE_GS_KERNEL,  
  (unsigned long)pda))  
 @@ -302,28 +304,17 @@  
  * set up and load the per-CPU TSS  
  */  
  for (v = 0; v < N_EXCEPTION_STACKS; v++) {  
 + static const unsigned int order[N_EXCEPTION_STACKS] = {  
 + [0 ... N_EXCEPTION_STACKS - 1] = EXCEPTION_STACK_ORDER,  
 + [DEBUG_STACK - 1] = DEBUG_STACK_ORDER  
 + };  
  if (cpu) {  
 - static const unsigned int order[N_EXCEPTION_STACKS] = {  
 - [0 ... N_EXCEPTION_STACKS - 1] = EXCEPTION_STACK_ORDER,  
 - [DEBUG_STACK - 1] = DEBUG_STACK_ORDER  
 - };  
 -  
  estacks = (char *)__get_free_pages(GFP_ATOMIC, order[v]);  
  if (!estacks)  
  panic("Cannot allocate exception stack %ld %d\n",  
       v, cpu);  
  }  
 - switch (v + 1) {  
 -#if DEBUG_STKSZ > EXCEPTION_STKSZ  
 - case DEBUG_STACK:  
 - cpu_pda(cpu)->debugstack = (unsigned long)estacks;  
 - estacks += DEBUG_STKSZ;  
 - break;  
 -#endif  
 - default:  
 - estacks += EXCEPTION_STKSZ;  
 - break;  
 - }  
 + estacks += PAGE_SIZE << order[v];  
  orig_ist->ist[v] = t->ist[v] = (unsigned long)estacks;  
  }  
   
 diff -Naur linux-2.6.25/arch/x86/kernel/setup_64-xen.c linux-2.6.25-xen/arch/x86/kernel/setup_64-xen.c  
 --- linux-2.6.25/arch/x86/kernel/setup_64-xen.c 2008-05-23 20:51:11.000000000 +0200  
 +++ linux-2.6.25-xen/arch/x86/kernel/setup_64-xen.c 2008-05-23 20:39:03.000000000 +0200  
6526  @@ -118,16 +118,6 @@  @@ -118,16 +118,6 @@
6527    
6528   unsigned long mmu_cr4_features;   unsigned long mmu_cr4_features;
# Line 6873  diff -Naur linux-2.6.25/arch/x86/kernel/ Line 6946  diff -Naur linux-2.6.25/arch/x86/kernel/
6946   NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,   NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
6947    
6948   /* VIA/Cyrix/Centaur-defined */   /* VIA/Cyrix/Centaur-defined */
6949  diff -Naur linux-2.6.25/arch/x86/kernel/smp_32-xen.c linux-2.6.25-xen/arch/x86/kernel/smp_32-xen.c  --- a/arch/x86/kernel/smp_32-xen.c
6950  --- linux-2.6.25/arch/x86/kernel/smp_32-xen.c 2008-05-23 20:51:11.000000000 +0200  +++ b/arch/x86/kernel/smp_32-xen.c
 +++ linux-2.6.25-xen/arch/x86/kernel/smp_32-xen.c 2008-05-23 20:39:03.000000000 +0200  
6951  @@ -279,8 +279,7 @@  @@ -279,8 +279,7 @@
6952    * 2) Leave the mm if we are in the lazy tlb mode.    * 2) Leave the mm if we are in the lazy tlb mode.
6953    */    */
# Line 6975  diff -Naur linux-2.6.25/arch/x86/kernel/ Line 7047  diff -Naur linux-2.6.25/arch/x86/kernel/
7047  + return 0;  + return 0;
7048  +}  +}
7049  +EXPORT_SYMBOL(smp_call_function_single);  +EXPORT_SYMBOL(smp_call_function_single);
7050  diff -Naur linux-2.6.25/arch/x86/kernel/smp_64-xen.c linux-2.6.25-xen/arch/x86/kernel/smp_64-xen.c  --- a/arch/x86/kernel/smp_64-xen.c
7051  --- linux-2.6.25/arch/x86/kernel/smp_64-xen.c 2008-05-23 20:51:11.000000000 +0200  +++ b/arch/x86/kernel/smp_64-xen.c
 +++ linux-2.6.25-xen/arch/x86/kernel/smp_64-xen.c 2008-05-23 20:39:03.000000000 +0200  
7052  @@ -381,9 +381,8 @@  @@ -381,9 +381,8 @@
7053   /* prevent preemption and reschedule on another processor */   /* prevent preemption and reschedule on another processor */
7054   int me = get_cpu();   int me = get_cpu();
# Line 7039  diff -Naur linux-2.6.25/arch/x86/kernel/ Line 7110  diff -Naur linux-2.6.25/arch/x86/kernel/
7110  - return 0; /* Should not happen */  - return 0; /* Should not happen */
7111  -#endif  -#endif
7112  -}  -}
7113  diff -Naur linux-2.6.25/arch/x86/kernel/time_32-xen.c linux-2.6.25-xen/arch/x86/kernel/time_32-xen.c  --- a/arch/x86/kernel/time_32-xen.c
7114  --- linux-2.6.25/arch/x86/kernel/time_32-xen.c 2008-05-23 20:51:22.000000000 +0200  +++ b/arch/x86/kernel/time_32-xen.c
 +++ linux-2.6.25-xen/arch/x86/kernel/time_32-xen.c 2008-05-23 20:39:03.000000000 +0200  
7115  @@ -89,7 +89,6 @@  @@ -89,7 +89,6 @@
7116   unsigned long vxtime_hz = PIT_TICK_RATE;   unsigned long vxtime_hz = PIT_TICK_RATE;
7117   struct vxtime_data __vxtime __section_vxtime;   /* for vsyscalls */   struct vxtime_data __vxtime __section_vxtime;   /* for vsyscalls */
# Line 7224  diff -Naur linux-2.6.25/arch/x86/kernel/ Line 7294  diff -Naur linux-2.6.25/arch/x86/kernel/
7294    
7295   if ((hpet_enable() >= 0) && hpet_use_timer) {   if ((hpet_enable() >= 0) && hpet_use_timer) {
7296   printk("Using HPET for base-timer\n");   printk("Using HPET for base-timer\n");
7297  diff -Naur linux-2.6.25/arch/x86/kernel/traps_32-xen.c linux-2.6.25-xen/arch/x86/kernel/traps_32-xen.c  --- a/arch/x86/kernel/traps_32-xen.c
7298  --- linux-2.6.25/arch/x86/kernel/traps_32-xen.c 2008-05-23 20:51:11.000000000 +0200  +++ b/arch/x86/kernel/traps_32-xen.c
 +++ linux-2.6.25-xen/arch/x86/kernel/traps_32-xen.c 2008-05-23 20:39:03.000000000 +0200  
7299  @@ -28,6 +28,7 @@  @@ -28,6 +28,7 @@
7300   #include <linux/kprobes.h>   #include <linux/kprobes.h>
7301   #include <linux/kexec.h>   #include <linux/kexec.h>
# Line 7429  diff -Naur linux-2.6.25/arch/x86/kernel/ Line 7498  diff -Naur linux-2.6.25/arch/x86/kernel/
7498   }   }
7499   }   }
7500  +EXPORT_SYMBOL(dump_trace);  +EXPORT_SYMBOL(dump_trace);
7501  +  
7502    -void show_trace(struct task_struct *task, struct pt_regs *regs, unsigned long * stack)
7503  +static void  +static void
7504  +print_trace_warning_symbol(void *data, char *msg, unsigned long symbol)  +print_trace_warning_symbol(void *data, char *msg, unsigned long symbol)
7505  +{  +{
# Line 7442  diff -Naur linux-2.6.25/arch/x86/kernel/ Line 7512  diff -Naur linux-2.6.25/arch/x86/kernel/
7512  +{  +{
7513  + printk("%s%s\n", (char *)data, msg);  + printk("%s%s\n", (char *)data, msg);
7514  +}  +}
7515    +
 -void show_trace(struct task_struct *task, struct pt_regs *regs, unsigned long * stack)  
7516  +static int print_trace_stack(void *data, char *name)  +static int print_trace_stack(void *data, char *name)
7517  +{  +{
7518  + return 0;  + return 0;
# Line 7673  diff -Naur linux-2.6.25/arch/x86/kernel/ Line 7742  diff -Naur linux-2.6.25/arch/x86/kernel/
7742   #ifdef CONFIG_KPROBES   #ifdef CONFIG_KPROBES
7743   fastcall void __kprobes do_int3(struct pt_regs *regs, long error_code)   fastcall void __kprobes do_int3(struct pt_regs *regs, long error_code)
7744   {   {
7745  diff -Naur linux-2.6.25/arch/x86/kernel/traps_64-xen.c linux-2.6.25-xen/arch/x86/kernel/traps_64-xen.c  --- a/arch/x86/kernel/traps_64-xen.c
7746  --- linux-2.6.25/arch/x86/kernel/traps_64-xen.c 2008-05-23 20:51:11.000000000 +0200  +++ b/arch/x86/kernel/traps_64-xen.c
 +++ linux-2.6.25-xen/arch/x86/kernel/traps_64-xen.c 2008-05-23 20:39:03.000000000 +0200  
7747  @@ -23,6 +23,7 @@  @@ -23,6 +23,7 @@
7748   #include <linux/delay.h>   #include <linux/delay.h>
7749   #include <linux/spinlock.h>   #include <linux/spinlock.h>
# Line 8129  diff -Naur linux-2.6.25/arch/x86/kernel/ Line 8197  diff -Naur linux-2.6.25/arch/x86/kernel/
8197  -__setup("call_trace=", call_trace_setup);  -__setup("call_trace=", call_trace_setup);
8198  +early_param("call_trace", call_trace_setup);  +early_param("call_trace", call_trace_setup);
8199   #endif   #endif
8200  diff -Naur linux-2.6.25/arch/x86/kernel/vsyscall_64-xen.c linux-2.6.25-xen/arch/x86/kernel/vsyscall_64-xen.c  --- a/arch/x86/kernel/vsyscall_64-xen.c
8201  --- linux-2.6.25/arch/x86/kernel/vsyscall_64-xen.c 2008-05-23 20:51:11.000000000 +0200  +++ b/arch/x86/kernel/vsyscall_64-xen.c
 +++ linux-2.6.25-xen/arch/x86/kernel/vsyscall_64-xen.c 2008-05-23 20:39:03.000000000 +0200  
8202  @@ -26,6 +26,10 @@  @@ -26,6 +26,10 @@
8203   #include <linux/seqlock.h>   #include <linux/seqlock.h>
8204   #include <linux/jiffies.h>   #include <linux/jiffies.h>
# Line 8325  diff -Naur linux-2.6.25/arch/x86/kernel/ Line 8392  diff -Naur linux-2.6.25/arch/x86/kernel/
8392   return 0;   return 0;
8393   }   }
8394    
8395  diff -Naur linux-2.6.25/arch/x86/mach-xen/setup.c linux-2.6.25-xen/arch/x86/mach-xen/setup.c  --- a/arch/x86/mach-xen/setup.c
8396  --- linux-2.6.25/arch/x86/mach-xen/setup.c 2008-05-23 20:51:11.000000000 +0200  +++ b/arch/x86/mach-xen/setup.c
 +++ linux-2.6.25-xen/arch/x86/mach-xen/setup.c 2008-05-23 20:39:03.000000000 +0200  
8397  @@ -103,8 +103,10 @@  @@ -103,8 +103,10 @@
8398    
8399   setup_xen_features();   setup_xen_features();
# Line 8341  diff -Naur linux-2.6.25/arch/x86/mach-xe Line 8407  diff -Naur linux-2.6.25/arch/x86/mach-xe
8407    
8408   if (HYPERVISOR_memory_op(XENMEM_machphys_mapping, &mapping) == 0) {   if (HYPERVISOR_memory_op(XENMEM_machphys_mapping, &mapping) == 0) {
8409   machine_to_phys_mapping = (unsigned long *)mapping.v_start;   machine_to_phys_mapping = (unsigned long *)mapping.v_start;
8410  diff -Naur linux-2.6.25/arch/x86/mm/fault_32-xen.c linux-2.6.25-xen/arch/x86/mm/fault_32-xen.c  --- a/arch/x86/mm/fault_32-xen.c
8411  --- linux-2.6.25/arch/x86/mm/fault_32-xen.c 2008-05-23 20:51:11.000000000 +0200  +++ b/arch/x86/mm/fault_32-xen.c
 +++ linux-2.6.25-xen/arch/x86/mm/fault_32-xen.c 2008-05-23 20:39:03.000000000 +0200  
8412  @@ -27,21 +27,24 @@  @@ -27,21 +27,24 @@
8413   #include <asm/uaccess.h>   #include <asm/uaccess.h>
8414   #include <asm/desc.h>   #include <asm/desc.h>
# Line 8430  diff -Naur linux-2.6.25/arch/x86/mm/faul Line 8495  diff -Naur linux-2.6.25/arch/x86/mm/faul
8495   yield();   yield();
8496   down_read(&mm->mmap_sem);   down_read(&mm->mmap_sem);
8497   goto survive;   goto survive;
8498  diff -Naur linux-2.6.25/arch/x86/mm/fault_64-xen.c linux-2.6.25-xen/arch/x86/mm/fault_64-xen.c  --- a/arch/x86/mm/fault_64-xen.c
8499  --- linux-2.6.25/arch/x86/mm/fault_64-xen.c 2008-05-23 20:51:11.000000000 +0200  +++ b/arch/x86/mm/fault_64-xen.c
 +++ linux-2.6.25-xen/arch/x86/mm/fault_64-xen.c 2008-05-23 20:39:03.000000000 +0200  
8500  @@ -40,8 +40,7 @@  @@ -40,8 +40,7 @@
8501   #define PF_RSVD (1<<3)   #define PF_RSVD (1<<3)
8502   #define PF_INSTR (1<<4)   #define PF_INSTR (1<<4)
# Line 8570  diff -Naur linux-2.6.25/arch/x86/mm/faul Line 8634  diff -Naur linux-2.6.25/arch/x86/mm/faul
8634   }   }
8635   spin_unlock(&pgd_lock);   spin_unlock(&pgd_lock);
8636   set_bit(pgd_index(address), insync);   set_bit(pgd_index(address), insync);
8637  diff -Naur linux-2.6.25/arch/x86/mm/highmem_32-xen.c linux-2.6.25-xen/arch/x86/mm/highmem_32-xen.c  --- a/arch/x86/mm/highmem_32-xen.c
8638  --- linux-2.6.25/arch/x86/mm/highmem_32-xen.c 2008-05-23 20:51:11.000000000 +0200  +++ b/arch/x86/mm/highmem_32-xen.c
 +++ linux-2.6.25-xen/arch/x86/mm/highmem_32-xen.c 2008-05-23 20:39:03.000000000 +0200  
8639  @@ -38,11 +38,9 @@  @@ -38,11 +38,9 @@
8640    
8641   idx = type + KM_TYPE_NR*smp_processor_id();   idx = type + KM_TYPE_NR*smp_processor_id();
# Line 8639  diff -Naur linux-2.6.25/arch/x86/mm/high Line 8702  diff -Naur linux-2.6.25/arch/x86/mm/high
8702    
8703   return (void*) vaddr;   return (void*) vaddr;
8704   }   }
8705  diff -Naur linux-2.6.25/arch/x86/mm/hypervisor.c linux-2.6.25-xen/arch/x86/mm/hypervisor.c  --- a/arch/x86/mm/hypervisor.c
8706  --- linux-2.6.25/arch/x86/mm/hypervisor.c 2008-05-23 20:51:11.000000000 +0200  +++ b/arch/x86/mm/hypervisor.c
 +++ linux-2.6.25-xen/arch/x86/mm/hypervisor.c 2008-05-23 20:39:03.000000000 +0200  
8707  @@ -569,7 +569,8 @@  @@ -569,7 +569,8 @@
8708   #define MAX_BATCHED_FULL_PTES 32   #define MAX_BATCHED_FULL_PTES 32
8709    
# Line 8668  diff -Naur linux-2.6.25/arch/x86/mm/hype Line 8730  diff -Naur linux-2.6.25/arch/x86/mm/hype
8730   if (++i == MAX_BATCHED_FULL_PTES) {   if (++i == MAX_BATCHED_FULL_PTES) {
8731   if ((rc = HYPERVISOR_mmu_update(   if ((rc = HYPERVISOR_mmu_update(
8732   &u[0], i, NULL, DOMID_SELF)) != 0)   &u[0], i, NULL, DOMID_SELF)) != 0)
8733  diff -Naur linux-2.6.25/arch/x86/mm/init_32-xen.c linux-2.6.25-xen/arch/x86/mm/init_32-xen.c  --- a/arch/x86/mm/init_32-xen.c
8734  --- linux-2.6.25/arch/x86/mm/init_32-xen.c 2008-05-23 20:51:11.000000000 +0200  +++ b/arch/x86/mm/init_32-xen.c
 +++ linux-2.6.25-xen/arch/x86/mm/init_32-xen.c 2008-05-23 20:39:03.000000000 +0200  
8735  @@ -464,16 +464,22 @@  @@ -464,16 +464,22 @@
8736    * on      Enable    * on      Enable
8737    * off     Disable    * off     Disable
# Line 8813  diff -Naur linux-2.6.25/arch/x86/mm/init Line 8874  diff -Naur linux-2.6.25/arch/x86/mm/init
8874   unsigned long start_pfn = start >> PAGE_SHIFT;   unsigned long start_pfn = start >> PAGE_SHIFT;
8875   unsigned long nr_pages = size >> PAGE_SHIFT;   unsigned long nr_pages = size >> PAGE_SHIFT;
8876    
8877  diff -Naur linux-2.6.25/arch/x86/mm/init_64-xen.c linux-2.6.25-xen/arch/x86/mm/init_64-xen.c  --- a/arch/x86/mm/init_64-xen.c
8878  --- linux-2.6.25/arch/x86/mm/init_64-xen.c 2008-05-23 20:51:11.000000000 +0200  +++ b/arch/x86/mm/init_64-xen.c
 +++ linux-2.6.25-xen/arch/x86/mm/init_64-xen.c 2008-05-23 20:39:03.000000000 +0200  
8879  @@ -61,8 +61,6 @@  @@ -61,8 +61,6 @@
8880    
8881   extern unsigned long *contiguous_bitmap;   extern unsigned long *contiguous_bitmap;
# Line 9127  diff -Naur linux-2.6.25/arch/x86/mm/init Line 9187  diff -Naur linux-2.6.25/arch/x86/mm/init
9187   }   }
9188    
9189   int kern_addr_valid(unsigned long addr)   int kern_addr_valid(unsigned long addr)
9190  diff -Naur linux-2.6.25/arch/x86/mm/ioremap_32-xen.c linux-2.6.25-xen/arch/x86/mm/ioremap_32-xen.c  --- a/arch/x86/mm/ioremap_32-xen.c
9191  --- linux-2.6.25/arch/x86/mm/ioremap_32-xen.c 2008-05-23 20:51:11.000000000 +0200  +++ b/arch/x86/mm/ioremap_32-xen.c
 +++ linux-2.6.25-xen/arch/x86/mm/ioremap_32-xen.c 2008-05-23 20:39:03.000000000 +0200  
9192  @@ -12,7 +12,7 @@  @@ -12,7 +12,7 @@
9193   #include <linux/init.h>   #include <linux/init.h>
9194   #include <linux/slab.h>   #include <linux/slab.h>
# Line 9177  diff -Naur linux-2.6.25/arch/x86/mm/iore Line 9236  diff -Naur linux-2.6.25/arch/x86/mm/iore
9236   vunmap((void __force *) addr);   vunmap((void __force *) addr);
9237   return NULL;   return NULL;
9238   }   }
9239  diff -Naur linux-2.6.25/arch/x86/mm/pageattr_64-xen.c linux-2.6.25-xen/arch/x86/mm/pageattr_64-xen.c  --- a/arch/x86/mm/pageattr_64-xen.c
9240  --- linux-2.6.25/arch/x86/mm/pageattr_64-xen.c 2008-05-23 20:51:11.000000000 +0200  +++ b/arch/x86/mm/pageattr_64-xen.c
 +++ linux-2.6.25-xen/arch/x86/mm/pageattr_64-xen.c 2008-05-23 20:39:03.000000000 +0200  
9241  @@ -371,8 +371,8 @@  @@ -371,8 +371,8 @@
9242   BUG_ON(pud_none(*pud));   BUG_ON(pud_none(*pud));
9243   pmd = pmd_offset(pud, address);   pmd = pmd_offset(pud, address);
# Line 9244  diff -Naur linux-2.6.25/arch/x86/mm/page Line 9302  diff -Naur linux-2.6.25/arch/x86/mm/page
9302   }   }
9303   }   }
9304   up_write(&init_mm.mmap_sem);   up_write(&init_mm.mmap_sem);
9305  diff -Naur linux-2.6.25/arch/x86/mm/pgtable_32-xen.c linux-2.6.25-xen/arch/x86/mm/pgtable_32-xen.c  --- a/arch/x86/mm/pgtable_32-xen.c
9306  --- linux-2.6.25/arch/x86/mm/pgtable_32-xen.c 2008-05-23 20:51:11.000000000 +0200  +++ b/arch/x86/mm/pgtable_32-xen.c
 +++ linux-2.6.25-xen/arch/x86/mm/pgtable_32-xen.c 2008-05-23 20:39:03.000000000 +0200  
9307  @@ -68,7 +68,9 @@  @@ -68,7 +68,9 @@
9308   printk(KERN_INFO "%lu pages writeback\n",   printk(KERN_INFO "%lu pages writeback\n",
9309   global_page_state(NR_WRITEBACK));   global_page_state(NR_WRITEBACK));
# Line 9302  diff -Naur linux-2.6.25/arch/x86/mm/pgta Line 9359  diff -Naur linux-2.6.25/arch/x86/mm/pgta
9359   }   }
9360    
9361   pte_t *pte_alloc_one_kernel(struct mm_struct *mm, unsigned long address)   pte_t *pte_alloc_one_kernel(struct mm_struct *mm, unsigned long address)
9362  diff -Naur linux-2.6.25/arch/x86/pci/irq-xen.c linux-2.6.25-xen/arch/x86/pci/irq-xen.c  --- a/arch/x86/pci/irq-xen.c
9363  --- linux-2.6.25/arch/x86/pci/irq-xen.c 2008-05-23 20:51:11.000000000 +0200  +++ b/arch/x86/pci/irq-xen.c
 +++ linux-2.6.25-xen/arch/x86/pci/irq-xen.c 2008-05-23 20:39:03.000000000 +0200  
9364  @@ -991,10 +991,6 @@  @@ -991,10 +991,6 @@
9365   pci_name(bridge), 'A' + pin, irq);   pci_name(bridge), 'A' + pin, irq);
9366   }   }
# Line 9361  diff -Naur linux-2.6.25/arch/x86/pci/irq Line 9417  diff -Naur linux-2.6.25/arch/x86/pci/irq
9417  -  -
9418  - return count;  - return count;
9419  -}  -}
9420  diff -Naur linux-2.6.25/drivers/char/tpm/tpm_xen.c linux-2.6.25-xen/drivers/char/tpm/tpm_xen.c  --- a/drivers/char/tpm/tpm_xen.c
9421  --- linux-2.6.25/drivers/char/tpm/tpm_xen.c 2008-05-23 20:51:15.000000000 +0200  +++ b/drivers/char/tpm/tpm_xen.c
 +++ linux-2.6.25-xen/drivers/char/tpm/tpm_xen.c 2008-05-23 20:39:03.000000000 +0200  
9422  @@ -85,8 +85,7 @@  @@ -85,8 +85,7 @@
9423    
9424   /* local function prototypes */   /* local function prototypes */
# Line 9383  diff -Naur linux-2.6.25/drivers/char/tpm Line 9438  diff -Naur linux-2.6.25/drivers/char/tpm
9438   {   {
9439   struct tpm_private *tp = tpm_priv;   struct tpm_private *tp = tpm_priv;
9440   unsigned long flags;   unsigned long flags;
9441  diff -Naur linux-2.6.25/drivers/pci/Kconfig linux-2.6.25-xen/drivers/pci/Kconfig  --- a/drivers/pci/Kconfig
9442  --- linux-2.6.25/drivers/pci/Kconfig 2008-04-17 04:49:44.000000000 +0200  +++ b/drivers/pci/Kconfig
 +++ linux-2.6.25-xen/drivers/pci/Kconfig 2008-05-23 20:39:03.000000000 +0200  
9443  @@ -45,7 +45,7 @@  @@ -45,7 +45,7 @@
9444   config HT_IRQ   config HT_IRQ
9445   bool "Interrupts on hypertransport devices"   bool "Interrupts on hypertransport devices"
# Line 9395  diff -Naur linux-2.6.25/drivers/pci/Kcon Line 9449  diff -Naur linux-2.6.25/drivers/pci/Kcon
9449   help   help
9450     This allows native hypertransport devices to use interrupts.     This allows native hypertransport devices to use interrupts.
9451    
9452  diff -Naur linux-2.6.25/drivers/xen/balloon/balloon.c linux-2.6.25-xen/drivers/xen/balloon/balloon.c  --- a/drivers/xen/Kconfig
9453  --- linux-2.6.25/drivers/xen/balloon/balloon.c 2008-05-23 20:51:11.000000000 +0200  +++ b/drivers/xen/Kconfig
9454  +++ linux-2.6.25-xen/drivers/xen/balloon/balloon.c 2008-05-23 20:39:03.000000000 +0200  @@ -278,6 +278,9 @@
9455     config HAVE_IRQ_IGNORE_UNHANDLED
9456     def_bool y
9457    
9458    +config GENERIC_HARDIRQS_NO__DO_IRQ
9459    + def_bool y
9460    +
9461     config NO_IDLE_HZ
9462     def_bool y
9463    
9464    --- a/drivers/xen/balloon/balloon.c
9465    +++ b/drivers/xen/balloon/balloon.c
9466  @@ -84,7 +84,7 @@  @@ -84,7 +84,7 @@
9467   /* VM /proc information for memory */   /* VM /proc information for memory */
9468   extern unsigned long totalram_pages;   extern unsigned long totalram_pages;
# Line 9407  diff -Naur linux-2.6.25/drivers/xen/ball Line 9472  diff -Naur linux-2.6.25/drivers/xen/ball
9472   extern unsigned long totalhigh_pages;   extern unsigned long totalhigh_pages;
9473   #define inc_totalhigh_pages() (totalhigh_pages++)   #define inc_totalhigh_pages() (totalhigh_pages++)
9474   #define dec_totalhigh_pages() (totalhigh_pages--)   #define dec_totalhigh_pages() (totalhigh_pages--)
9475  diff -Naur linux-2.6.25/drivers/xen/blkback/blkback.c linux-2.6.25-xen/drivers/xen/blkback/blkback.c  --- a/drivers/xen/blkback/blkback.c
9476  --- linux-2.6.25/drivers/xen/blkback/blkback.c 2008-05-23 20:51:11.000000000 +0200  +++ b/drivers/xen/blkback/blkback.c
 +++ linux-2.6.25-xen/drivers/xen/blkback/blkback.c 2008-05-23 20:39:03.000000000 +0200  
9477  @@ -288,7 +288,7 @@  @@ -288,7 +288,7 @@
9478   wake_up(&blkif->wq);   wake_up(&blkif->wq);
9479   }   }
# Line 9419  diff -Naur linux-2.6.25/drivers/xen/blkb Line 9483  diff -Naur linux-2.6.25/drivers/xen/blkb
9483   {   {
9484   blkif_notify_work(dev_id);   blkif_notify_work(dev_id);
9485   return IRQ_HANDLED;   return IRQ_HANDLED;
9486  diff -Naur linux-2.6.25/drivers/xen/blkback/common.h linux-2.6.25-xen/drivers/xen/blkback/common.h  --- a/drivers/xen/blkback/common.h
9487  --- linux-2.6.25/drivers/xen/blkback/common.h 2008-05-23 20:51:11.000000000 +0200  +++ b/drivers/xen/blkback/common.h
 +++ linux-2.6.25-xen/drivers/xen/blkback/common.h 2008-05-23 20:39:03.000000000 +0200  
9488  @@ -130,7 +130,7 @@  @@ -130,7 +130,7 @@
9489    
9490   void blkif_xenbus_init(void);   void blkif_xenbus_init(void);
# Line 9431  diff -Naur linux-2.6.25/drivers/xen/blkb Line 9494  diff -Naur linux-2.6.25/drivers/xen/blkb
9494   int blkif_schedule(void *arg);   int blkif_schedule(void *arg);
9495    
9496   int blkback_barrier(struct xenbus_transaction xbt,   int blkback_barrier(struct xenbus_transaction xbt,
9497  diff -Naur linux-2.6.25/drivers/xen/blkfront/blkfront.c linux-2.6.25-xen/drivers/xen/blkfront/blkfront.c  --- a/drivers/xen/blkfront/blkfront.c
9498  --- linux-2.6.25/drivers/xen/blkfront/blkfront.c 2008-05-23 20:51:11.000000000 +0200  +++ b/drivers/xen/blkfront/blkfront.c
 +++ linux-2.6.25-xen/drivers/xen/blkfront/blkfront.c 2008-05-23 20:39:03.000000000 +0200  
9499  @@ -69,7 +69,7 @@  @@ -69,7 +69,7 @@
9500    
9501   static void kick_pending_request_queues(struct blkfront_info *);   static void kick_pending_request_queues(struct blkfront_info *);
# Line 9452  diff -Naur linux-2.6.25/drivers/xen/blkf Line 9514  diff -Naur linux-2.6.25/drivers/xen/blkf
9514   {   {
9515   struct request *req;   struct request *req;
9516   blkif_response_t *bret;   blkif_response_t *bret;
9517  diff -Naur linux-2.6.25/drivers/xen/blktap/blktap.c linux-2.6.25-xen/drivers/xen/blktap/blktap.c  --- a/drivers/xen/blktap/blktap.c
9518  --- linux-2.6.25/drivers/xen/blktap/blktap.c 2008-05-23 20:51:11.000000000 +0200  +++ b/drivers/xen/blktap/blktap.c
 +++ linux-2.6.25-xen/drivers/xen/blktap/blktap.c 2008-05-23 20:39:03.000000000 +0200  
9519  @@ -1175,7 +1175,7 @@  @@ -1175,7 +1175,7 @@
9520   wake_up(&blkif->wq);   wake_up(&blkif->wq);
9521   }   }
# Line 9464  diff -Naur linux-2.6.25/drivers/xen/blkt Line 9525  diff -Naur linux-2.6.25/drivers/xen/blkt
9525   {   {
9526   blkif_notify_work(dev_id);   blkif_notify_work(dev_id);
9527   return IRQ_HANDLED;   return IRQ_HANDLED;
9528  diff -Naur linux-2.6.25/drivers/xen/blktap/common.h linux-2.6.25-xen/drivers/xen/blktap/common.h  --- a/drivers/xen/blktap/common.h
9529  --- linux-2.6.25/drivers/xen/blktap/common.h 2008-05-23 20:51:11.000000000 +0200  +++ b/drivers/xen/blktap/common.h
 +++ linux-2.6.25-xen/drivers/xen/blktap/common.h 2008-05-23 20:39:03.000000000 +0200  
9530  @@ -112,7 +112,7 @@  @@ -112,7 +112,7 @@
9531    
9532   void tap_blkif_xenbus_init(void);   void tap_blkif_xenbus_init(void);
# Line 9476  diff -Naur linux-2.6.25/drivers/xen/blkt Line 9536  diff -Naur linux-2.6.25/drivers/xen/blkt
9536   int tap_blkif_schedule(void *arg);   int tap_blkif_schedule(void *arg);
9537    
9538   int dom_to_devid(domid_t domid, int xenbus_id, blkif_t *blkif);   int dom_to_devid(domid_t domid, int xenbus_id, blkif_t *blkif);
9539  diff -Naur linux-2.6.25/drivers/xen/console/console.c linux-2.6.25-xen/drivers/xen/console/console.c  --- a/drivers/xen/console/console.c
9540  --- linux-2.6.25/drivers/xen/console/console.c 2008-05-23 20:51:11.000000000 +0200  +++ b/drivers/xen/console/console.c
 +++ linux-2.6.25-xen/drivers/xen/console/console.c 2008-05-23 20:39:03.000000000 +0200  
9541  @@ -345,7 +345,7 @@  @@ -345,7 +345,7 @@
9542   static int xencons_priv_irq;   static int xencons_priv_irq;
9543   static char x_char;   static char x_char;
# Line 9515  diff -Naur linux-2.6.25/drivers/xen/cons Line 9574  diff -Naur linux-2.6.25/drivers/xen/cons
9574    
9575   xencons_tx();   xencons_tx();
9576    
9577  diff -Naur linux-2.6.25/drivers/xen/console/xencons_ring.c linux-2.6.25-xen/drivers/xen/console/xencons_ring.c  --- a/drivers/xen/console/xencons_ring.c
9578  --- linux-2.6.25/drivers/xen/console/xencons_ring.c 2008-05-23 20:51:11.000000000 +0200  +++ b/drivers/xen/console/xencons_ring.c
 +++ linux-2.6.25-xen/drivers/xen/console/xencons_ring.c 2008-05-23 20:39:03.000000000 +0200  
9579  @@ -83,7 +83,7 @@  @@ -83,7 +83,7 @@
9580   return sent;   return sent;
9581   }   }
# Line 9536  diff -Naur linux-2.6.25/drivers/xen/cons Line 9594  diff -Naur linux-2.6.25/drivers/xen/cons
9594   cons++;   cons++;
9595   }   }
9596    
9597  diff -Naur linux-2.6.25/drivers/xen/core/evtchn.c linux-2.6.25-xen/drivers/xen/core/evtchn.c  --- a/drivers/xen/core/evtchn.c
9598  --- linux-2.6.25/drivers/xen/core/evtchn.c 2008-05-23 20:51:11.000000000 +0200  +++ b/drivers/xen/core/evtchn.c
 +++ linux-2.6.25-xen/drivers/xen/core/evtchn.c 2008-05-23 20:39:03.000000000 +0200  
9599  @@ -507,7 +507,7 @@  @@ -507,7 +507,7 @@
9600    
9601   int bind_caller_port_to_irqhandler(   int bind_caller_port_to_irqhandler(
# Line 9680  diff -Naur linux-2.6.25/drivers/xen/core Line 9737  diff -Naur linux-2.6.25/drivers/xen/core
9737  +                              handle_level_irq, "level");  +                              handle_level_irq, "level");
9738   }   }
9739   }   }
9740  diff -Naur linux-2.6.25/drivers/xen/core/reboot.c linux-2.6.25-xen/drivers/xen/core/reboot.c  --- a/drivers/xen/core/reboot.c
9741  --- linux-2.6.25/drivers/xen/core/reboot.c 2008-05-23 20:51:11.000000000 +0200  +++ b/drivers/xen/core/reboot.c
 +++ linux-2.6.25-xen/drivers/xen/core/reboot.c 2008-05-23 20:39:03.000000000 +0200  
9742  @@ -13,6 +13,7 @@  @@ -13,6 +13,7 @@
9743    
9744   #ifdef HAVE_XEN_PLATFORM_COMPAT_H   #ifdef HAVE_XEN_PLATFORM_COMPAT_H
# Line 9700  diff -Naur linux-2.6.25/drivers/xen/core Line 9756  diff -Naur linux-2.6.25/drivers/xen/core
9756   #endif   #endif
9757   }   }
9758    
9759  diff -Naur linux-2.6.25/drivers/xen/core/smpboot.c linux-2.6.25-xen/drivers/xen/core/smpboot.c  --- a/drivers/xen/core/smpboot.c
9760  --- linux-2.6.25/drivers/xen/core/smpboot.c 2008-05-23 20:51:11.000000000 +0200  +++ b/drivers/xen/core/smpboot.c
 +++ linux-2.6.25-xen/drivers/xen/core/smpboot.c 2008-05-23 20:39:03.000000000 +0200  
9761  @@ -25,8 +25,8 @@  @@ -25,8 +25,8 @@
9762   #include <xen/cpu_hotplug.h>   #include <xen/cpu_hotplug.h>
9763   #include <xen/xenbus.h>   #include <xen/xenbus.h>
# Line 9723  diff -Naur linux-2.6.25/drivers/xen/core Line 9778  diff -Naur linux-2.6.25/drivers/xen/core
9778   #endif   #endif
9779    
9780   void __init prefill_possible_map(void)   void __init prefill_possible_map(void)
9781  diff -Naur linux-2.6.25/drivers/xen/fbfront/xenfb.c linux-2.6.25-xen/drivers/xen/fbfront/xenfb.c  --- a/drivers/xen/fbfront/xenfb.c
9782  --- linux-2.6.25/drivers/xen/fbfront/xenfb.c 2008-05-23 20:51:11.000000000 +0200  +++ b/drivers/xen/fbfront/xenfb.c
 +++ linux-2.6.25-xen/drivers/xen/fbfront/xenfb.c 2008-05-23 20:39:03.000000000 +0200  
9783  @@ -523,8 +523,7 @@  @@ -523,8 +523,7 @@
9784   .fb_set_par     = xenfb_set_par,   .fb_set_par     = xenfb_set_par,
9785   };   };
# Line 9736  diff -Naur linux-2.6.25/drivers/xen/fbfr Line 9790  diff -Naur linux-2.6.25/drivers/xen/fbfr
9790   {   {
9791   /*   /*
9792   * No in events recognized, simply ignore them all.   * No in events recognized, simply ignore them all.
9793  diff -Naur linux-2.6.25/drivers/xen/fbfront/xenkbd.c linux-2.6.25-xen/drivers/xen/fbfront/xenkbd.c  --- a/drivers/xen/fbfront/xenkbd.c
9794  --- linux-2.6.25/drivers/xen/fbfront/xenkbd.c 2008-05-23 20:51:11.000000000 +0200  +++ b/drivers/xen/fbfront/xenkbd.c
 +++ linux-2.6.25-xen/drivers/xen/fbfront/xenkbd.c 2008-05-23 20:39:03.000000000 +0200  
9795  @@ -46,7 +46,7 @@  @@ -46,7 +46,7 @@
9796    * to do that.    * to do that.
9797    */    */
# Line 9748  diff -Naur linux-2.6.25/drivers/xen/fbfr Line 9801  diff -Naur linux-2.6.25/drivers/xen/fbfr
9801   {   {
9802   struct xenkbd_info *info = dev_id;   struct xenkbd_info *info = dev_id;
9803   struct xenkbd_page *page = info->page;   struct xenkbd_page *page = info->page;
9804  diff -Naur linux-2.6.25/drivers/xen/gntdev/gntdev.c linux-2.6.25-xen/drivers/xen/gntdev/gntdev.c  --- a/drivers/xen/gntdev/gntdev.c
9805  --- linux-2.6.25/drivers/xen/gntdev/gntdev.c 2008-05-23 20:51:11.000000000 +0200  +++ b/drivers/xen/gntdev/gntdev.c
 +++ linux-2.6.25-xen/drivers/xen/gntdev/gntdev.c 2008-05-23 20:39:03.000000000 +0200  
9806  @@ -755,9 +755,6 @@  @@ -755,9 +755,6 @@
9807   BUG();   BUG();
9808   }   }
# Line 9790  diff -Naur linux-2.6.25/drivers/xen/gntd Line 9842  diff -Naur linux-2.6.25/drivers/xen/gntd
9842   }   }
9843    
9844   return copy;   return copy;
9845  diff -Naur linux-2.6.25/drivers/xen/Kconfig linux-2.6.25-xen/drivers/xen/Kconfig  --- a/drivers/xen/netback/accel.c
9846  --- linux-2.6.25/drivers/xen/Kconfig 2008-05-23 20:51:14.000000000 +0200  +++ b/drivers/xen/netback/accel.c
 +++ linux-2.6.25-xen/drivers/xen/Kconfig 2008-05-23 20:39:03.000000000 +0200  
 @@ -278,6 +278,9 @@  
  config HAVE_IRQ_IGNORE_UNHANDLED  
  def_bool y  
   
 +config GENERIC_HARDIRQS_NO__DO_IRQ  
 + def_bool y  
 +  
  config NO_IDLE_HZ  
  def_bool y  
   
 diff -Naur linux-2.6.25/drivers/xen/netback/accel.c linux-2.6.25-xen/drivers/xen/netback/accel.c  
 --- linux-2.6.25/drivers/xen/netback/accel.c 2008-05-23 20:51:11.000000000 +0200  
 +++ linux-2.6.25-xen/drivers/xen/netback/accel.c 2008-05-23 20:39:03.000000000 +0200  
9847  @@ -65,7 +65,7 @@  @@ -65,7 +65,7 @@
9848    
9849   if (IS_ERR(eth_name)) {   if (IS_ERR(eth_name)) {
# Line 9815  diff -Naur linux-2.6.25/drivers/xen/netb Line 9853  diff -Naur linux-2.6.25/drivers/xen/netb
9853   __FUNCTION__, PTR_ERR(eth_name));   __FUNCTION__, PTR_ERR(eth_name));
9854   return 0;   return 0;
9855   } else {   } else {
9856  diff -Naur linux-2.6.25/drivers/xen/netback/common.h linux-2.6.25-xen/drivers/xen/netback/common.h  --- a/drivers/xen/netback/common.h
9857  --- linux-2.6.25/drivers/xen/netback/common.h 2008-05-23 20:51:11.000000000 +0200  +++ b/drivers/xen/netback/common.h
 +++ linux-2.6.25-xen/drivers/xen/netback/common.h 2008-05-23 20:39:03.000000000 +0200  
9858  @@ -200,7 +200,7 @@  @@ -200,7 +200,7 @@
9859    
9860   int netif_be_start_xmit(struct sk_buff *skb, struct net_device *dev);   int netif_be_start_xmit(struct sk_buff *skb, struct net_device *dev);
# Line 9827  diff -Naur linux-2.6.25/drivers/xen/netb Line 9864  diff -Naur linux-2.6.25/drivers/xen/netb
9864    
9865   static inline int netbk_can_queue(struct net_device *dev)   static inline int netbk_can_queue(struct net_device *dev)
9866   {   {
9867  diff -Naur linux-2.6.25/drivers/xen/netback/loopback.c linux-2.6.25-xen/drivers/xen/netback/loopback.c  --- a/drivers/xen/netback/loopback.c
9868  --- linux-2.6.25/drivers/xen/netback/loopback.c 2008-05-23 20:51:11.000000000 +0200  +++ b/drivers/xen/netback/loopback.c
 +++ linux-2.6.25-xen/drivers/xen/netback/loopback.c 2008-05-23 20:39:03.000000000 +0200  
9869  @@ -151,7 +151,7 @@  @@ -151,7 +151,7 @@
9870   np->stats.rx_bytes += skb->len;   np->stats.rx_bytes += skb->len;
9871   np->stats.rx_packets++;   np->stats.rx_packets++;
# Line 9839  diff -Naur linux-2.6.25/drivers/xen/netb Line 9875  diff -Naur linux-2.6.25/drivers/xen/netb
9875   /* Defer checksum calculation. */   /* Defer checksum calculation. */
9876   skb->proto_csum_blank = 1;   skb->proto_csum_blank = 1;
9877   /* Must be a local packet: assert its integrity. */   /* Must be a local packet: assert its integrity. */
9878  diff -Naur linux-2.6.25/drivers/xen/netback/netback.c linux-2.6.25-xen/drivers/xen/netback/netback.c  --- a/drivers/xen/netback/netback.c
9879  --- linux-2.6.25/drivers/xen/netback/netback.c 2008-05-23 20:51:11.000000000 +0200  +++ b/drivers/xen/netback/netback.c
 +++ linux-2.6.25-xen/drivers/xen/netback/netback.c 2008-05-23 20:39:03.000000000 +0200  
9880  @@ -677,7 +677,7 @@  @@ -677,7 +677,7 @@
9881   id = meta[npo.meta_cons].id;   id = meta[npo.meta_cons].id;
9882   flags = nr_frags ? NETRXF_more_data : 0;   flags = nr_frags ? NETRXF_more_data : 0;
# Line 9869  diff -Naur linux-2.6.25/drivers/xen/netb Line 9904  diff -Naur linux-2.6.25/drivers/xen/netb
9904   {   {
9905   struct list_head *ent;   struct list_head *ent;
9906   netif_t *netif;   netif_t *netif;
9907  diff -Naur linux-2.6.25/drivers/xen/netfront/netfront.c linux-2.6.25-xen/drivers/xen/netfront/netfront.c  --- a/drivers/xen/netfront/netfront.c
9908  --- linux-2.6.25/drivers/xen/netfront/netfront.c 2008-05-23 20:51:11.000000000 +0200  +++ b/drivers/xen/netfront/netfront.c
 +++ linux-2.6.25-xen/drivers/xen/netfront/netfront.c 2008-05-23 20:39:03.000000000 +0200  
9909  @@ -136,7 +136,7 @@  @@ -136,7 +136,7 @@
9910   {   {
9911           return skb_is_gso(skb) &&           return skb_is_gso(skb) &&
# Line 9908  diff -Naur linux-2.6.25/drivers/xen/netf Line 9942  diff -Naur linux-2.6.25/drivers/xen/netf
9942   {   {
9943   struct net_device *dev = dev_id;   struct net_device *dev = dev_id;
9944   struct netfront_info *np = netdev_priv(dev);   struct netfront_info *np = netdev_priv(dev);
9945  diff -Naur linux-2.6.25/drivers/xen/pciback/pciback.h linux-2.6.25-xen/drivers/xen/pciback/pciback.h  --- a/drivers/xen/pciback/pciback.h
9946  --- linux-2.6.25/drivers/xen/pciback/pciback.h 2008-05-23 20:51:11.000000000 +0200  +++ b/drivers/xen/pciback/pciback.h
 +++ linux-2.6.25-xen/drivers/xen/pciback/pciback.h 2008-05-23 20:39:03.000000000 +0200  
9947  @@ -87,7 +87,7 @@  @@ -87,7 +87,7 @@
9948   void pciback_release_devices(struct pciback_device *pdev);   void pciback_release_devices(struct pciback_device *pdev);
9949    
# Line 9920  diff -Naur linux-2.6.25/drivers/xen/pcib Line 9953  diff -Naur linux-2.6.25/drivers/xen/pcib
9953   void pciback_do_op(void *data);   void pciback_do_op(void *data);
9954    
9955   int pciback_xenbus_register(void);   int pciback_xenbus_register(void);
9956  diff -Naur linux-2.6.25/drivers/xen/pciback/pciback_ops.c linux-2.6.25-xen/drivers/xen/pciback/pciback_ops.c  --- a/drivers/xen/pciback/pciback_ops.c
9957  --- linux-2.6.25/drivers/xen/pciback/pciback_ops.c 2008-05-23 20:51:11.000000000 +0200  +++ b/drivers/xen/pciback/pciback_ops.c
 +++ linux-2.6.25-xen/drivers/xen/pciback/pciback_ops.c 2008-05-23 20:39:03.000000000 +0200  
9958  @@ -85,7 +85,7 @@  @@ -85,7 +85,7 @@
9959   test_and_schedule_op(pdev);   test_and_schedule_op(pdev);
9960   }   }
# Line 9932  diff -Naur linux-2.6.25/drivers/xen/pcib Line 9964  diff -Naur linux-2.6.25/drivers/xen/pcib
9964   {   {
9965   struct pciback_device *pdev = dev_id;   struct pciback_device *pdev = dev_id;
9966    
9967  diff -Naur linux-2.6.25/drivers/xen/pcifront/pci_op.c linux-2.6.25-xen/drivers/xen/pcifront/pci_op.c  --- a/drivers/xen/pcifront/pci_op.c
9968  --- linux-2.6.25/drivers/xen/pcifront/pci_op.c 2008-05-23 20:51:11.000000000 +0200  +++ b/drivers/xen/pcifront/pci_op.c
 +++ linux-2.6.25-xen/drivers/xen/pcifront/pci_op.c 2008-05-23 20:39:03.000000000 +0200  
9969  @@ -392,10 +392,16 @@  @@ -392,10 +392,16 @@
9970    
9971   d = pci_scan_single_device(b, devfn);   d = pci_scan_single_device(b, devfn);
# Line 9953  diff -Naur linux-2.6.25/drivers/xen/pcif Line 9984  diff -Naur linux-2.6.25/drivers/xen/pcif
9984   }   }
9985   }   }
9986    
9987  diff -Naur linux-2.6.25/drivers/xen/privcmd/compat_privcmd.c linux-2.6.25-xen/drivers/xen/privcmd/compat_privcmd.c  --- a/drivers/xen/privcmd/compat_privcmd.c
9988  --- linux-2.6.25/drivers/xen/privcmd/compat_privcmd.c 2008-05-23 20:51:11.000000000 +0200  +++ b/drivers/xen/privcmd/compat_privcmd.c
 +++ linux-2.6.25-xen/drivers/xen/privcmd/compat_privcmd.c 2008-05-23 20:39:03.000000000 +0200  
9989  @@ -18,7 +18,6 @@  @@ -18,7 +18,6 @@
9990    * Authors: Jimi Xenidis <jimix@watson.ibm.com>    * Authors: Jimi Xenidis <jimix@watson.ibm.com>
9991    */    */
# Line 9964  diff -Naur linux-2.6.25/drivers/xen/priv Line 9994  diff -Naur linux-2.6.25/drivers/xen/priv
9994   #include <linux/compat.h>   #include <linux/compat.h>
9995   #include <linux/ioctl.h>   #include <linux/ioctl.h>
9996   #include <linux/syscalls.h>   #include <linux/syscalls.h>
9997  diff -Naur linux-2.6.25/drivers/xen/privcmd/privcmd.c linux-2.6.25-xen/drivers/xen/privcmd/privcmd.c  --- a/drivers/xen/privcmd/privcmd.c
9998  --- linux-2.6.25/drivers/xen/privcmd/privcmd.c 2008-05-23 20:51:11.000000000 +0200  +++ b/drivers/xen/privcmd/privcmd.c
 +++ linux-2.6.25-xen/drivers/xen/privcmd/privcmd.c 2008-05-23 20:39:03.000000000 +0200  
9999  @@ -236,7 +236,7 @@  @@ -236,7 +236,7 @@
10000   #endif   #endif
10001    
# Line 9976  diff -Naur linux-2.6.25/drivers/xen/priv Line 10005  diff -Naur linux-2.6.25/drivers/xen/priv
10005   vma->vm_ops = &privcmd_vm_ops;   vma->vm_ops = &privcmd_vm_ops;
10006   vma->vm_private_data = NULL;   vma->vm_private_data = NULL;
10007    
10008  diff -Naur linux-2.6.25/drivers/xen/sfc_netback/accel_xenbus.c linux-2.6.25-xen/drivers/xen/sfc_netback/accel_xenbus.c  --- a/drivers/xen/sfc_netback/accel_xenbus.c
10009  --- linux-2.6.25/drivers/xen/sfc_netback/accel_xenbus.c 2008-05-23 20:51:11.000000000 +0200  +++ b/drivers/xen/sfc_netback/accel_xenbus.c
 +++ linux-2.6.25-xen/drivers/xen/sfc_netback/accel_xenbus.c 2008-05-23 20:39:03.000000000 +0200  
10010  @@ -68,8 +68,7 @@  @@ -68,8 +68,7 @@
10011    
10012    
# Line 9999  diff -Naur linux-2.6.25/drivers/xen/sfc_ Line 10027  diff -Naur linux-2.6.25/drivers/xen/sfc_
10027   {   {
10028   VPRINTK("netirq %d from device %s\n", irq,   VPRINTK("netirq %d from device %s\n", irq,
10029   ((struct xenbus_device *)context)->nodename);   ((struct xenbus_device *)context)->nodename);
10030  diff -Naur linux-2.6.25/drivers/xen/sfc_netfront/accel.h linux-2.6.25-xen/drivers/xen/sfc_netfront/accel.h  --- a/drivers/xen/sfc_netfront/accel.h
10031  --- linux-2.6.25/drivers/xen/sfc_netfront/accel.h 2008-05-23 20:51:11.000000000 +0200  +++ b/drivers/xen/sfc_netfront/accel.h
 +++ linux-2.6.25-xen/drivers/xen/sfc_netfront/accel.h 2008-05-23 20:39:03.000000000 +0200  
10032  @@ -449,10 +449,8 @@  @@ -449,10 +449,8 @@
10033      u32 ip, u16 port, u8 protocol);      u32 ip, u16 port, u8 protocol);
10034    
# Line 10015  diff -Naur linux-2.6.25/drivers/xen/sfc_ Line 10042  diff -Naur linux-2.6.25/drivers/xen/sfc_
10042    
10043   #if LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,20)   #if LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,20)
10044   extern void netfront_accel_msg_from_bend(struct work_struct *context);   extern void netfront_accel_msg_from_bend(struct work_struct *context);
10045  diff -Naur linux-2.6.25/drivers/xen/sfc_netfront/accel_msg.c linux-2.6.25-xen/drivers/xen/sfc_netfront/accel_msg.c  --- a/drivers/xen/sfc_netfront/accel_msg.c
10046  --- linux-2.6.25/drivers/xen/sfc_netfront/accel_msg.c 2008-05-23 20:51:11.000000000 +0200  +++ b/drivers/xen/sfc_netfront/accel_msg.c
 +++ linux-2.6.25-xen/drivers/xen/sfc_netfront/accel_msg.c 2008-05-23 20:39:03.000000000 +0200  
10047  @@ -490,8 +490,7 @@  @@ -490,8 +490,7 @@
10048   }   }
10049    
# Line 10038  diff -Naur linux-2.6.25/drivers/xen/sfc_ Line 10064  diff -Naur linux-2.6.25/drivers/xen/sfc_
10064   {   {
10065   netfront_accel_vnic *vnic = (netfront_accel_vnic *)context;   netfront_accel_vnic *vnic = (netfront_accel_vnic *)context;
10066   struct net_device *net_dev = vnic->net_dev;   struct net_device *net_dev = vnic->net_dev;
10067  diff -Naur linux-2.6.25/drivers/xen/sfc_netfront/accel_tso.c linux-2.6.25-xen/drivers/xen/sfc_netfront/accel_tso.c  --- a/drivers/xen/sfc_netfront/accel_tso.c
10068  --- linux-2.6.25/drivers/xen/sfc_netfront/accel_tso.c 2008-05-23 20:51:11.000000000 +0200  +++ b/drivers/xen/sfc_netfront/accel_tso.c
 +++ linux-2.6.25-xen/drivers/xen/sfc_netfront/accel_tso.c 2008-05-23 20:39:03.000000000 +0200  
10069  @@ -363,7 +363,7 @@  @@ -363,7 +363,7 @@
10070    
10071   tso_check_safe(skb);   tso_check_safe(skb);
# Line 10050  diff -Naur linux-2.6.25/drivers/xen/sfc_ Line 10075  diff -Naur linux-2.6.25/drivers/xen/sfc_
10075   EPRINTK("Trying to TSO send a packet without HW checksum\n");   EPRINTK("Trying to TSO send a packet without HW checksum\n");
10076    
10077   tso_start(&state, skb);   tso_start(&state, skb);
10078  diff -Naur linux-2.6.25/drivers/xen/sfc_netfront/accel_vi.c linux-2.6.25-xen/drivers/xen/sfc_netfront/accel_vi.c  --- a/drivers/xen/sfc_netfront/accel_vi.c
10079  --- linux-2.6.25/drivers/xen/sfc_netfront/accel_vi.c 2008-05-23 20:51:11.000000000 +0200  +++ b/drivers/xen/sfc_netfront/accel_vi.c
 +++ linux-2.6.25-xen/drivers/xen/sfc_netfront/accel_vi.c 2008-05-23 20:39:03.000000000 +0200  
10080  @@ -461,7 +461,7 @@  @@ -461,7 +461,7 @@
10081    
10082   frag_i = -1;   frag_i = -1;
# Line 10071  diff -Naur linux-2.6.25/drivers/xen/sfc_ Line 10095  diff -Naur linux-2.6.25/drivers/xen/sfc_
10095   /* Set to zero to encourage falcon to work it out for us */   /* Set to zero to encourage falcon to work it out for us */
10096   *(u16*)(skb->h.raw + skb->csum) = 0;   *(u16*)(skb->h.raw + skb->csum) = 0;
10097   }   }
10098  diff -Naur linux-2.6.25/drivers/xen/tpmback/common.h linux-2.6.25-xen/drivers/xen/tpmback/common.h  --- a/drivers/xen/tpmback/common.h
10099  --- linux-2.6.25/drivers/xen/tpmback/common.h 2008-05-23 20:51:11.000000000 +0200  +++ b/drivers/xen/tpmback/common.h
 +++ linux-2.6.25-xen/drivers/xen/tpmback/common.h 2008-05-23 20:39:03.000000000 +0200  
10100  @@ -61,7 +61,7 @@  @@ -61,7 +61,7 @@
10101   void tpmif_xenbus_init(void);   void tpmif_xenbus_init(void);
10102   void tpmif_xenbus_exit(void);   void tpmif_xenbus_exit(void);
# Line 10083  diff -Naur linux-2.6.25/drivers/xen/tpmb Line 10106  diff -Naur linux-2.6.25/drivers/xen/tpmb
10106    
10107   long int tpmback_get_instance(struct backend_info *bi);   long int tpmback_get_instance(struct backend_info *bi);
10108    
10109  diff -Naur linux-2.6.25/drivers/xen/tpmback/tpmback.c linux-2.6.25-xen/drivers/xen/tpmback/tpmback.c  --- a/drivers/xen/tpmback/tpmback.c
10110  --- linux-2.6.25/drivers/xen/tpmback/tpmback.c 2008-05-23 20:51:11.000000000 +0200  +++ b/drivers/xen/tpmback/tpmback.c
 +++ linux-2.6.25-xen/drivers/xen/tpmback/tpmback.c 2008-05-23 20:39:03.000000000 +0200  
10111  @@ -502,7 +502,7 @@  @@ -502,7 +502,7 @@
10112   list_del(&pak->next);   list_del(&pak->next);
10113   write_unlock_irqrestore(&dataex.pak_lock, flags);   write_unlock_irqrestore(&dataex.pak_lock, flags);
# Line 10104  diff -Naur linux-2.6.25/drivers/xen/tpmb Line 10126  diff -Naur linux-2.6.25/drivers/xen/tpmb
10126   {   {
10127   tpmif_t *tpmif = (tpmif_t *) dev_id;   tpmif_t *tpmif = (tpmif_t *) dev_id;
10128    
10129  diff -Naur linux-2.6.25/drivers/xen/xenbus/xenbus_comms.c linux-2.6.25-xen/drivers/xen/xenbus/xenbus_comms.c  --- a/drivers/xen/xenbus/xenbus_comms.c
10130  --- linux-2.6.25/drivers/xen/xenbus/xenbus_comms.c 2008-05-23 20:51:19.000000000 +0200  +++ b/drivers/xen/xenbus/xenbus_comms.c
 +++ linux-2.6.25-xen/drivers/xen/xenbus/xenbus_comms.c 2008-05-23 20:39:03.000000000 +0200  
10131  @@ -55,7 +55,7 @@  @@ -55,7 +55,7 @@
10132    
10133   static DECLARE_WAIT_QUEUE_HEAD(xb_waitq);   static DECLARE_WAIT_QUEUE_HEAD(xb_waitq);
# Line 10116  diff -Naur linux-2.6.25/drivers/xen/xenb Line 10137  diff -Naur linux-2.6.25/drivers/xen/xenb
10137   {   {
10138   if (unlikely(xenstored_ready == 0)) {   if (unlikely(xenstored_ready == 0)) {
10139   xenstored_ready = 1;   xenstored_ready = 1;
10140  diff -Naur linux-2.6.25/drivers/xen/xenoprof/xenoprofile.c linux-2.6.25-xen/drivers/xen/xenoprof/xenoprofile.c  --- a/drivers/xen/xenoprof/xenoprofile.c
10141  --- linux-2.6.25/drivers/xen/xenoprof/xenoprofile.c 2008-05-23 20:51:11.000000000 +0200  +++ b/drivers/xen/xenoprof/xenoprofile.c
 +++ linux-2.6.25-xen/drivers/xen/xenoprof/xenoprofile.c 2008-05-23 20:39:03.000000000 +0200  
10142  @@ -195,7 +195,7 @@  @@ -195,7 +195,7 @@
10143   }   }
10144    
# Line 10128  diff -Naur linux-2.6.25/drivers/xen/xeno Line 10148  diff -Naur linux-2.6.25/drivers/xen/xeno
10148   {   {
10149   struct xenoprof_buf * buf;   struct xenoprof_buf * buf;
10150   static unsigned long flag;   static unsigned long flag;
10151  diff -Naur linux-2.6.25/include/asm-generic/pgtable.h linux-2.6.25-xen/include/asm-generic/pgtable.h  --- a/include/asm-generic/pgtable.h
10152  --- linux-2.6.25/include/asm-generic/pgtable.h 2008-05-23 20:51:15.000000000 +0200  +++ b/include/asm-generic/pgtable.h
 +++ linux-2.6.25-xen/include/asm-generic/pgtable.h 2008-05-23 20:39:03.000000000 +0200  
10153  @@ -100,7 +100,7 @@  @@ -100,7 +100,7 @@
10154   #endif   #endif
10155    
# Line 10140  diff -Naur linux-2.6.25/include/asm-gene Line 10159  diff -Naur linux-2.6.25/include/asm-gene
10159   #endif   #endif
10160    
10161   #ifndef __HAVE_ARCH_PTE_SAME   #ifndef __HAVE_ARCH_PTE_SAME
10162  diff -Naur linux-2.6.25/include/asm-x86/mach-xen/asm/desc_32.h linux-2.6.25-xen/include/asm-x86/mach-xen/asm/desc_32.h  --- a/include/asm-x86/mach-xen/asm/desc_32.h
10163  --- linux-2.6.25/include/asm-x86/mach-xen/asm/desc_32.h 2008-05-23 20:51:11.000000000 +0200  +++ b/include/asm-x86/mach-xen/asm/desc_32.h
 +++ linux-2.6.25-xen/include/asm-x86/mach-xen/asm/desc_32.h 2008-05-23 20:39:03.000000000 +0200  
10164  @@ -32,52 +32,110 @@  @@ -32,52 +32,110 @@
10165   return (struct desc_struct *)per_cpu(cpu_gdt_descr, cpu).address;   return (struct desc_struct *)per_cpu(cpu_gdt_descr, cpu).address;
10166   }   }
# Line 10303  diff -Naur linux-2.6.25/include/asm-x86/ Line 10321  diff -Naur linux-2.6.25/include/asm-x86/
10321   static inline void clear_LDT(void)   static inline void clear_LDT(void)
10322   {   {
10323   int cpu = get_cpu();   int cpu = get_cpu();
10324  diff -Naur linux-2.6.25/include/asm-x86/mach-xen/asm/dma-mapping_64.h linux-2.6.25-xen/include/asm-x86/mach-xen/asm/dma-mapping_64.h  --- a/include/asm-x86/mach-xen/asm/dma-mapping_64.h
10325  --- linux-2.6.25/include/asm-x86/mach-xen/asm/dma-mapping_64.h 2008-05-23 20:51:11.000000000 +0200  +++ b/include/asm-x86/mach-xen/asm/dma-mapping_64.h
 +++ linux-2.6.25-xen/include/asm-x86/mach-xen/asm/dma-mapping_64.h 2008-05-23 20:39:03.000000000 +0200  
10326  @@ -55,13 +55,6 @@  @@ -55,13 +55,6 @@
10327   extern struct dma_mapping_ops* dma_ops;   extern struct dma_mapping_ops* dma_ops;
10328   extern int iommu_merge;   extern int iommu_merge;
# Line 10320  diff -Naur linux-2.6.25/include/asm-x86/ Line 10337  diff -Naur linux-2.6.25/include/asm-x86/
10337   #if 0   #if 0
10338   static inline int dma_mapping_error(dma_addr_t dma_addr)   static inline int dma_mapping_error(dma_addr_t dma_addr)
10339   {   {
10340  diff -Naur linux-2.6.25/include/asm-x86/mach-xen/asm/e820_64.h linux-2.6.25-xen/include/asm-x86/mach-xen/asm/e820_64.h  --- a/include/asm-x86/mach-xen/asm/e820_64.h
10341  --- linux-2.6.25/include/asm-x86/mach-xen/asm/e820_64.h 2008-05-23 20:51:11.000000000 +0200  +++ b/include/asm-x86/mach-xen/asm/e820_64.h
 +++ linux-2.6.25-xen/include/asm-x86/mach-xen/asm/e820_64.h 2008-05-23 20:39:03.000000000 +0200  
10342  @@ -19,13 +19,9 @@  @@ -19,13 +19,9 @@
10343    
10344   #define E820_RAM 1   #define E820_RAM 1
# Line 10360  diff -Naur linux-2.6.25/include/asm-x86/ Line 10376  diff -Naur linux-2.6.25/include/asm-x86/
10376    
10377   extern struct e820map e820;   extern struct e820map e820;
10378    
10379  diff -Naur linux-2.6.25/include/asm-x86/mach-xen/asm/fixmap_32.h linux-2.6.25-xen/include/asm-x86/mach-xen/asm/fixmap_32.h  --- a/include/asm-x86/mach-xen/asm/fixmap_32.h
10380  --- linux-2.6.25/include/asm-x86/mach-xen/asm/fixmap_32.h 2008-05-23 20:51:11.000000000 +0200  +++ b/include/asm-x86/mach-xen/asm/fixmap_32.h
 +++ linux-2.6.25-xen/include/asm-x86/mach-xen/asm/fixmap_32.h 2008-05-23 20:39:03.000000000 +0200  
10381  @@ -55,7 +55,7 @@  @@ -55,7 +55,7 @@
10382   #ifdef CONFIG_X86_LOCAL_APIC   #ifdef CONFIG_X86_LOCAL_APIC
10383   FIX_APIC_BASE, /* local (CPU) APIC) -- required for SMP or not */   FIX_APIC_BASE, /* local (CPU) APIC) -- required for SMP or not */
# Line 10384  diff -Naur linux-2.6.25/include/asm-x86/ Line 10399  diff -Naur linux-2.6.25/include/asm-x86/
10399    
10400   #define set_fixmap(idx, phys) \   #define set_fixmap(idx, phys) \
10401   __set_fixmap(idx, phys, PAGE_KERNEL)   __set_fixmap(idx, phys, PAGE_KERNEL)
10402  diff -Naur linux-2.6.25/include/asm-x86/mach-xen/asm/fixmap_64.h linux-2.6.25-xen/include/asm-x86/mach-xen/asm/fixmap_64.h  --- a/include/asm-x86/mach-xen/asm/fixmap_64.h
10403  --- linux-2.6.25/include/asm-x86/mach-xen/asm/fixmap_64.h 2008-05-23 20:51:11.000000000 +0200  +++ b/include/asm-x86/mach-xen/asm/fixmap_64.h
 +++ linux-2.6.25-xen/include/asm-x86/mach-xen/asm/fixmap_64.h 2008-05-23 20:39:03.000000000 +0200  
10404  @@ -41,7 +41,7 @@  @@ -41,7 +41,7 @@
10405   #ifdef CONFIG_X86_LOCAL_APIC   #ifdef CONFIG_X86_LOCAL_APIC
10406   FIX_APIC_BASE, /* local (CPU) APIC) -- required for SMP or not */   FIX_APIC_BASE, /* local (CPU) APIC) -- required for SMP or not */
# Line 10396  diff -Naur linux-2.6.25/include/asm-x86/ Line 10410  diff -Naur linux-2.6.25/include/asm-x86/
10410   FIX_IO_APIC_BASE_0,   FIX_IO_APIC_BASE_0,
10411   FIX_IO_APIC_BASE_END = FIX_IO_APIC_BASE_0 + MAX_IO_APICS-1,   FIX_IO_APIC_BASE_END = FIX_IO_APIC_BASE_0 + MAX_IO_APICS-1,
10412   #endif   #endif
10413  diff -Naur linux-2.6.25/include/asm-x86/mach-xen/asm/hw_irq_32.h linux-2.6.25-xen/include/asm-x86/mach-xen/asm/hw_irq_32.h  --- a/include/asm-x86/mach-xen/asm/hw_irq_32.h
10414  --- linux-2.6.25/include/asm-x86/mach-xen/asm/hw_irq_32.h 2008-05-23 20:51:11.000000000 +0200  +++ b/include/asm-x86/mach-xen/asm/hw_irq_32.h
 +++ linux-2.6.25-xen/include/asm-x86/mach-xen/asm/hw_irq_32.h 2008-05-23 20:39:03.000000000 +0200  
10415  @@ -17,8 +17,6 @@  @@ -17,8 +17,6 @@
10416   #include <asm/irq.h>   #include <asm/irq.h>
10417   #include <asm/sections.h>   #include <asm/sections.h>
# Line 10428  diff -Naur linux-2.6.25/include/asm-x86/ Line 10441  diff -Naur linux-2.6.25/include/asm-x86/
10441   #define platform_legacy_irq(irq) ((irq) < 16)   #define platform_legacy_irq(irq) ((irq) < 16)
10442   #endif   #endif
10443    
10444  diff -Naur linux-2.6.25/include/asm-x86/mach-xen/asm/hw_irq_64.h linux-2.6.25-xen/include/asm-x86/mach-xen/asm/hw_irq_64.h  --- a/include/asm-x86/mach-xen/asm/hw_irq_64.h
10445  --- linux-2.6.25/include/asm-x86/mach-xen/asm/hw_irq_64.h 2008-05-23 20:51:11.000000000 +0200  +++ b/include/asm-x86/mach-xen/asm/hw_irq_64.h
 +++ linux-2.6.25-xen/include/asm-x86/mach-xen/asm/hw_irq_64.h 2008-05-23 20:39:03.000000000 +0200  
10446  @@ -19,8 +19,7 @@  @@ -19,8 +19,7 @@
10447   #include <asm/irq.h>   #include <asm/irq.h>
10448   #include <linux/profile.h>   #include <linux/profile.h>
# Line 10455  diff -Naur linux-2.6.25/include/asm-x86/ Line 10467  diff -Naur linux-2.6.25/include/asm-x86/
10467    
10468   /*   /*
10469    * Various low-level irq details needed by irq.c, process.c,    * Various low-level irq details needed by irq.c, process.c,
10470  diff -Naur linux-2.6.25/include/asm-x86/mach-xen/asm/io_32.h linux-2.6.25-xen/include/asm-x86/mach-xen/asm/io_32.h  --- a/include/asm-x86/mach-xen/asm/io_32.h
10471  --- linux-2.6.25/include/asm-x86/mach-xen/asm/io_32.h 2008-05-23 20:51:11.000000000 +0200  +++ b/include/asm-x86/mach-xen/asm/io_32.h
 +++ linux-2.6.25-xen/include/asm-x86/mach-xen/asm/io_32.h 2008-05-23 20:39:03.000000000 +0200  
10472  @@ -237,33 +237,6 @@  @@ -237,33 +237,6 @@
10473    
10474   #define eth_io_copy_and_sum(a,b,c,d) eth_copy_and_sum((a),(void __force *)(b),(c),(d))   #define eth_io_copy_and_sum(a,b,c,d) eth_copy_and_sum((a),(void __force *)(b),(c),(d))
# Line 10492  diff -Naur linux-2.6.25/include/asm-x86/ Line 10503  diff -Naur linux-2.6.25/include/asm-x86/
10503   /*   /*
10504    * Cache management    * Cache management
10505    *    *
10506  diff -Naur linux-2.6.25/include/asm-x86/mach-xen/asm/io_64.h linux-2.6.25-xen/include/asm-x86/mach-xen/asm/io_64.h  --- a/include/asm-x86/mach-xen/asm/io_64.h
10507  --- linux-2.6.25/include/asm-x86/mach-xen/asm/io_64.h 2008-05-23 20:51:11.000000000 +0200  +++ b/include/asm-x86/mach-xen/asm/io_64.h
 +++ linux-2.6.25-xen/include/asm-x86/mach-xen/asm/io_64.h 2008-05-23 20:39:03.000000000 +0200  
10508  @@ -273,33 +273,6 @@  @@ -273,33 +273,6 @@
10509    
10510   #define eth_io_copy_and_sum(a,b,c,d) eth_copy_and_sum((a),(void *)(b),(c),(d))   #define eth_io_copy_and_sum(a,b,c,d) eth_copy_and_sum((a),(void *)(b),(c),(d))
# Line 10529  diff -Naur linux-2.6.25/include/asm-x86/ Line 10539  diff -Naur linux-2.6.25/include/asm-x86/
10539   /* Nothing to do */   /* Nothing to do */
10540    
10541   #define dma_cache_inv(_start,_size) do { } while (0)   #define dma_cache_inv(_start,_size) do { } while (0)
10542  diff -Naur linux-2.6.25/include/asm-x86/mach-xen/asm/pgtable-2level.h linux-2.6.25-xen/include/asm-x86/mach-xen/asm/pgtable-2level.h  --- a/include/asm-x86/mach-xen/asm/pgtable-2level.h
10543  --- linux-2.6.25/include/asm-x86/mach-xen/asm/pgtable-2level.h 2008-05-23 20:51:11.000000000 +0200  +++ b/include/asm-x86/mach-xen/asm/pgtable-2level.h
 +++ linux-2.6.25-xen/include/asm-x86/mach-xen/asm/pgtable-2level.h 2008-05-23 20:39:03.000000000 +0200  
10544  @@ -23,14 +23,6 @@  @@ -23,14 +23,6 @@
10545   set_pte((ptep), (pteval)); \   set_pte((ptep), (pteval)); \
10546   } while (0)   } while (0)
# Line 10572  diff -Naur linux-2.6.25/include/asm-x86/ Line 10581  diff -Naur linux-2.6.25/include/asm-x86/
10581   #define __pte_mfn(_pte) ((_pte).pte_low >> PAGE_SHIFT)   #define __pte_mfn(_pte) ((_pte).pte_low >> PAGE_SHIFT)
10582   #define pte_mfn(_pte) ((_pte).pte_low & _PAGE_PRESENT ? \   #define pte_mfn(_pte) ((_pte).pte_low & _PAGE_PRESENT ? \
10583   __pte_mfn(_pte) : pfn_to_mfn(__pte_mfn(_pte)))   __pte_mfn(_pte) : pfn_to_mfn(__pte_mfn(_pte)))
10584  diff -Naur linux-2.6.25/include/asm-x86/mach-xen/asm/pgtable_32.h linux-2.6.25-xen/include/asm-x86/mach-xen/asm/pgtable_32.h  --- a/include/asm-x86/mach-xen/asm/pgtable-3level.h
10585  --- linux-2.6.25/include/asm-x86/mach-xen/asm/pgtable_32.h 2008-05-23 20:51:11.000000000 +0200  +++ b/include/asm-x86/mach-xen/asm/pgtable-3level.h
10586  +++ linux-2.6.25-xen/include/asm-x86/mach-xen/asm/pgtable_32.h 2008-05-23 20:39:03.000000000 +0200  @@ -53,7 +53,6 @@
10587      * not possible, use pte_get_and_clear to obtain the old pte
10588      * value and then use set_pte to update it.  -ben
10589      */
10590    -#define __HAVE_ARCH_SET_PTE_ATOMIC
10591    
10592     static inline void set_pte(pte_t *ptep, pte_t pte)
10593     {
10594    @@ -70,14 +69,6 @@
10595     set_pte((ptep), (pteval)); \
10596     } while (0)
10597    
10598    -#define set_pte_at_sync(_mm,addr,ptep,pteval) do { \
10599    - if (((_mm) != current->mm && (_mm) != &init_mm) || \
10600    -    HYPERVISOR_update_va_mapping((addr), (pteval), UVMF_INVLPG)) { \
10601    - set_pte((ptep), (pteval)); \
10602    - xen_invlpg((addr)); \
10603    - } \
10604    -} while (0)
10605    -
10606     #define set_pmd(pmdptr,pmdval) \
10607     xen_l2_entry_update((pmdptr), (pmdval))
10608     #define set_pud(pudptr,pudval) \
10609    @@ -94,7 +85,7 @@
10610     #define pud_page(pud) \
10611     ((struct page *) __va(pud_val(pud) & PAGE_MASK))
10612    
10613    -#define pud_page_kernel(pud) \
10614    +#define pud_page_vaddr(pud) \
10615     ((unsigned long) __va(pud_val(pud) & PAGE_MASK))
10616    
10617    
10618    @@ -124,6 +115,7 @@
10619    
10620     #define pmd_clear(xp) do { set_pmd(xp, __pmd(0)); } while (0)
10621    
10622    +#define __HAVE_ARCH_PTEP_GET_AND_CLEAR
10623     static inline pte_t ptep_get_and_clear(struct mm_struct *mm, unsigned long addr, pte_t *ptep)
10624     {
10625     pte_t pte = *ptep;
10626    @@ -142,6 +134,7 @@
10627     return pte;
10628     }
10629    
10630    +#define __HAVE_ARCH_PTEP_CLEAR_FLUSH
10631     #define ptep_clear_flush(vma, addr, ptep) \
10632     ({ \
10633     pte_t *__ptep = (ptep); \
10634    @@ -159,6 +152,7 @@
10635     __res; \
10636     })
10637    
10638    +#define __HAVE_ARCH_PTE_SAME
10639     static inline int pte_same(pte_t a, pte_t b)
10640     {
10641     return a.pte_low == b.pte_low && a.pte_high == b.pte_high;
10642    --- a/include/asm-x86/mach-xen/asm/pgtable_32.h
10643    +++ b/include/asm-x86/mach-xen/asm/pgtable_32.h
10644  @@ -260,31 +260,89 @@  @@ -260,31 +260,89 @@
10645   # include <asm/pgtable-2level.h>   # include <asm/pgtable-2level.h>
10646   #endif   #endif
# Line 10785  diff -Naur linux-2.6.25/include/asm-x86/ Line 10851  diff -Naur linux-2.6.25/include/asm-x86/
10851   #include <asm-generic/pgtable.h>   #include <asm-generic/pgtable.h>
10852    
10853   #endif /* _I386_PGTABLE_H */   #endif /* _I386_PGTABLE_H */
10854  diff -Naur linux-2.6.25/include/asm-x86/mach-xen/asm/pgtable-3level.h linux-2.6.25-xen/include/asm-x86/mach-xen/asm/pgtable-3level.h  --- a/include/asm-x86/mach-xen/asm/pgtable_64.h
10855  --- linux-2.6.25/include/asm-x86/mach-xen/asm/pgtable-3level.h 2008-05-23 20:51:11.000000000 +0200  +++ b/include/asm-x86/mach-xen/asm/pgtable_64.h
 +++ linux-2.6.25-xen/include/asm-x86/mach-xen/asm/pgtable-3level.h 2008-05-23 20:39:03.000000000 +0200  
 @@ -53,7 +53,6 @@  
   * not possible, use pte_get_and_clear to obtain the old pte  
   * value and then use set_pte to update it.  -ben  
   */  
 -#define __HAVE_ARCH_SET_PTE_ATOMIC  
   
  static inline void set_pte(pte_t *ptep, pte_t pte)  
  {  
 @@ -70,14 +69,6 @@  
  set_pte((ptep), (pteval)); \  
  } while (0)  
   
 -#define set_pte_at_sync(_mm,addr,ptep,pteval) do { \  
 - if (((_mm) != current->mm && (_mm) != &init_mm) || \  
 -    HYPERVISOR_update_va_mapping((addr), (pteval), UVMF_INVLPG)) { \  
 - set_pte((ptep), (pteval)); \  
 - xen_invlpg((addr)); \  
 - } \  
 -} while (0)  
 -  
  #define set_pmd(pmdptr,pmdval) \  
  xen_l2_entry_update((pmdptr), (pmdval))  
  #define set_pud(pudptr,pudval) \  
 @@ -94,7 +85,7 @@  
  #define pud_page(pud) \  
  ((struct page *) __va(pud_val(pud) & PAGE_MASK))  
   
 -#define pud_page_kernel(pud) \  
 +#define pud_page_vaddr(pud) \  
  ((unsigned long) __va(pud_val(pud) & PAGE_MASK))  
   
   
 @@ -124,6 +115,7 @@  
   
  #define pmd_clear(xp) do { set_pmd(xp, __pmd(0)); } while (0)  
   
 +#define __HAVE_ARCH_PTEP_GET_AND_CLEAR  
  static inline pte_t ptep_get_and_clear(struct mm_struct *mm, unsigned long addr, pte_t *ptep)  
  {  
  pte_t pte = *ptep;  
 @@ -142,6 +134,7 @@  
  return pte;  
  }  
   
 +#define __HAVE_ARCH_PTEP_CLEAR_FLUSH  
  #define ptep_clear_flush(vma, addr, ptep) \  
  ({ \  
  pte_t *__ptep = (ptep); \  
 @@ -159,6 +152,7 @@  
  __res; \  
  })  
   
 +#define __HAVE_ARCH_PTE_SAME  
  static inline int pte_same(pte_t a, pte_t b)  
  {  
  return a.pte_low == b.pte_low && a.pte_high == b.pte_high;  
 diff -Naur linux-2.6.25/include/asm-x86/mach-xen/asm/pgtable_64.h linux-2.6.25-xen/include/asm-x86/mach-xen/asm/pgtable_64.h  
 --- linux-2.6.25/include/asm-x86/mach-xen/asm/pgtable_64.h 2008-05-23 20:51:11.000000000 +0200  
 +++ linux-2.6.25-xen/include/asm-x86/mach-xen/asm/pgtable_64.h 2008-05-23 20:39:03.000000000 +0200  
10856  @@ -43,12 +43,9 @@  @@ -43,12 +43,9 @@
10857    
10858   #define swapper_pg_dir init_level4_pgt   #define swapper_pg_dir init_level4_pgt
# Line 11025  diff -Naur linux-2.6.25/include/asm-x86/ Line 11031  diff -Naur linux-2.6.25/include/asm-x86/
11031   #define __HAVE_ARCH_PTEP_GET_AND_CLEAR   #define __HAVE_ARCH_PTEP_GET_AND_CLEAR
11032   #define __HAVE_ARCH_PTEP_GET_AND_CLEAR_FULL   #define __HAVE_ARCH_PTEP_GET_AND_CLEAR_FULL
11033   #define __HAVE_ARCH_PTEP_CLEAR_FLUSH   #define __HAVE_ARCH_PTEP_CLEAR_FLUSH
11034  diff -Naur linux-2.6.25/include/asm-x86/mach-xen/asm/processor_32.h linux-2.6.25-xen/include/asm-x86/mach-xen/asm/processor_32.h  --- a/include/asm-x86/mach-xen/asm/processor_32.h
11035  --- linux-2.6.25/include/asm-x86/mach-xen/asm/processor_32.h 2008-05-23 20:51:22.000000000 +0200  +++ b/include/asm-x86/mach-xen/asm/processor_32.h
 +++ linux-2.6.25-xen/include/asm-x86/mach-xen/asm/processor_32.h 2008-05-23 20:39:03.000000000 +0200  
11036  @@ -146,6 +146,18 @@  @@ -146,6 +146,18 @@
11037   #define X86_EFLAGS_VIP 0x00100000 /* Virtual Interrupt Pending */   #define X86_EFLAGS_VIP 0x00100000 /* Virtual Interrupt Pending */
11038   #define X86_EFLAGS_ID 0x00200000 /* CPUID detection flag */   #define X86_EFLAGS_ID 0x00200000 /* CPUID detection flag */
# Line 11139  diff -Naur linux-2.6.25/include/asm-x86/ Line 11144  diff -Naur linux-2.6.25/include/asm-x86/
11144   /* from system description table in BIOS.  Mostly for MCA use, but   /* from system description table in BIOS.  Mostly for MCA use, but
11145   others may find it useful. */   others may find it useful. */
11146   extern unsigned int machine_id;   extern unsigned int machine_id;
11147  diff -Naur linux-2.6.25/include/asm-x86/mach-xen/asm/processor_64.h linux-2.6.25-xen/include/asm-x86/mach-xen/asm/processor_64.h  --- a/include/asm-x86/mach-xen/asm/processor_64.h
11148  --- linux-2.6.25/include/asm-x86/mach-xen/asm/processor_64.h 2008-05-23 20:51:11.000000000 +0200  +++ b/include/asm-x86/mach-xen/asm/processor_64.h
 +++ linux-2.6.25-xen/include/asm-x86/mach-xen/asm/processor_64.h 2008-05-23 20:39:03.000000000 +0200  
11149  @@ -484,6 +484,8 @@  @@ -484,6 +484,8 @@
11150   : :"a" (eax), "c" (ecx));   : :"a" (eax), "c" (ecx));
11151   }   }
# Line 11151  diff -Naur linux-2.6.25/include/asm-x86/ Line 11155  diff -Naur linux-2.6.25/include/asm-x86/
11155   #define stack_current() \   #define stack_current() \
11156   ({ \   ({ \
11157   struct thread_info *ti; \   struct thread_info *ti; \
11158  diff -Naur linux-2.6.25/include/asm-x86/mach-xen/asm/segment_32.h linux-2.6.25-xen/include/asm-x86/mach-xen/asm/segment_32.h  --- a/include/asm-x86/mach-xen/asm/segment_32.h
11159  --- linux-2.6.25/include/asm-x86/mach-xen/asm/segment_32.h 2008-05-23 20:51:11.000000000 +0200  +++ b/include/asm-x86/mach-xen/asm/segment_32.h
 +++ linux-2.6.25-xen/include/asm-x86/mach-xen/asm/segment_32.h 2008-05-23 20:39:03.000000000 +0200  
11160  @@ -61,11 +61,9 @@  @@ -61,11 +61,9 @@
11161    
11162   #define GDT_ENTRY_KERNEL_CS (GDT_ENTRY_KERNEL_BASE + 0)   #define GDT_ENTRY_KERNEL_CS (GDT_ENTRY_KERNEL_BASE + 0)
# Line 11195  diff -Naur linux-2.6.25/include/asm-x86/ Line 11198  diff -Naur linux-2.6.25/include/asm-x86/
11198  +  +
11199  +#define get_kernel_rpl()  (xen_feature(XENFEAT_supervisor_mode_kernel)?0:1)  +#define get_kernel_rpl()  (xen_feature(XENFEAT_supervisor_mode_kernel)?0:1)
11200   #endif   #endif
11201  diff -Naur linux-2.6.25/include/asm-x86/mach-xen/asm/smp_32.h linux-2.6.25-xen/include/asm-x86/mach-xen/asm/smp_32.h  --- a/include/asm-x86/mach-xen/asm/smp_32.h
11202  --- linux-2.6.25/include/asm-x86/mach-xen/asm/smp_32.h 2008-05-23 20:51:11.000000000 +0200  +++ b/include/asm-x86/mach-xen/asm/smp_32.h
 +++ linux-2.6.25-xen/include/asm-x86/mach-xen/asm/smp_32.h 2008-05-23 20:39:03.000000000 +0200  
11203  @@ -79,25 +79,36 @@  @@ -79,25 +79,36 @@
11204   return GET_APIC_ID(*(unsigned long *)(APIC_BASE+APIC_ID));   return GET_APIC_ID(*(unsigned long *)(APIC_BASE+APIC_ID));
11205   }   }
# Line 11242  diff -Naur linux-2.6.25/include/asm-x86/ Line 11244  diff -Naur linux-2.6.25/include/asm-x86/
11244  +#endif  +#endif
11245  +  +
11246   #endif   #endif
11247  diff -Naur linux-2.6.25/include/asm-x86/mach-xen/asm/smp_64.h linux-2.6.25-xen/include/asm-x86/mach-xen/asm/smp_64.h  --- a/include/asm-x86/mach-xen/asm/smp_64.h
11248  --- linux-2.6.25/include/asm-x86/mach-xen/asm/smp_64.h 2008-05-23 20:51:11.000000000 +0200  +++ b/include/asm-x86/mach-xen/asm/smp_64.h
 +++ linux-2.6.25-xen/include/asm-x86/mach-xen/asm/smp_64.h 2008-05-23 20:39:03.000000000 +0200  
11249  @@ -4,15 +4,12 @@  @@ -4,15 +4,12 @@
11250   /*   /*
11251    * We need the APIC definitions automatically as part of 'smp.h'    * We need the APIC definitions automatically as part of 'smp.h'
# Line 11350  diff -Naur linux-2.6.25/include/asm-x86/ Line 11351  diff -Naur linux-2.6.25/include/asm-x86/
11351  +#endif /* !CONFIG_SMP */  +#endif /* !CONFIG_SMP */
11352   #endif   #endif
11353    
11354  diff -Naur linux-2.6.25/include/asm-x86/mach-xen/asm/system_32.h linux-2.6.25-xen/include/asm-x86/mach-xen/asm/system_32.h  --- a/include/asm-x86/mach-xen/asm/system_32.h
11355  --- linux-2.6.25/include/asm-x86/mach-xen/asm/system_32.h 2008-05-23 20:51:11.000000000 +0200  +++ b/include/asm-x86/mach-xen/asm/system_32.h
 +++ linux-2.6.25-xen/include/asm-x86/mach-xen/asm/system_32.h 2008-05-23 20:39:03.000000000 +0200  
11356  @@ -267,6 +267,9 @@  @@ -267,6 +267,9 @@
11357   #define cmpxchg(ptr,o,n)\   #define cmpxchg(ptr,o,n)\
11358   ((__typeof__(*(ptr)))__cmpxchg((ptr),(unsigned long)(o),\   ((__typeof__(*(ptr)))__cmpxchg((ptr),(unsigned long)(o),\
# Line 11363  diff -Naur linux-2.6.25/include/asm-x86/ Line 11363  diff -Naur linux-2.6.25/include/asm-x86/
11363   #endif   #endif
11364    
11365   static inline unsigned long __cmpxchg(volatile void *ptr, unsigned long old,   static inline unsigned long __cmpxchg(volatile void *ptr, unsigned long old,
11366  @@ -296,6 +299,39 @@  @@ -291,6 +294,39 @@
11367   return old;       : "=a"(prev)
11368   }       : "r"(new), "m"(*__xg(ptr)), "0"(old)
11369         : "memory");
11370    + return prev;
11371    + }
11372    + return old;
11373    +}
11374    +
11375  +/*  +/*
11376  + * Always use locked operations when touching memory shared with a  + * Always use locked operations when touching memory shared with a
11377  + * hypervisor, since the system may be SMP even if the guest kernel  + * hypervisor, since the system may be SMP even if the guest kernel
# Line 11395  diff -Naur linux-2.6.25/include/asm-x86/ Line 11400  diff -Naur linux-2.6.25/include/asm-x86/
11400  +     : "=a"(prev)  +     : "=a"(prev)
11401  +     : "r"(new), "m"(*__xg(ptr)), "0"(old)  +     : "r"(new), "m"(*__xg(ptr)), "0"(old)
11402  +     : "memory");  +     : "memory");
11403  + return prev;   return prev;
11404  + }   }
11405  + return old;   return old;
11406  +}  --- a/include/asm-x86/mach-xen/asm/system_64.h
11407  +  +++ b/include/asm-x86/mach-xen/asm/system_64.h
  #ifndef CONFIG_X86_CMPXCHG  
  /*  
   * Building a kernel capable running on 80386. It may be necessary to  
 diff -Naur linux-2.6.25/include/asm-x86/mach-xen/asm/system_64.h linux-2.6.25-xen/include/asm-x86/mach-xen/asm/system_64.h  
 --- linux-2.6.25/include/asm-x86/mach-xen/asm/system_64.h 2008-05-23 20:51:11.000000000 +0200  
 +++ linux-2.6.25-xen/include/asm-x86/mach-xen/asm/system_64.h 2008-05-23 20:39:03.000000000 +0200  
11408  @@ -24,6 +24,7 @@  @@ -24,6 +24,7 @@
11409   #define __EXTRA_CLOBBER  \   #define __EXTRA_CLOBBER  \
11410   ,"rcx","rbx","rdx","r8","r9","r10","r11","r12","r13","r14","r15"   ,"rcx","rbx","rdx","r8","r9","r10","r11","r12","r13","r14","r15"
# Line 11414  diff -Naur linux-2.6.25/include/asm-x86/ Line 11413  diff -Naur linux-2.6.25/include/asm-x86/
11413   #define switch_to(prev,next,last) \   #define switch_to(prev,next,last) \
11414   asm volatile(SAVE_CONTEXT    \   asm volatile(SAVE_CONTEXT    \
11415       "movq %%rsp,%P[threadrsp](%[prev])\n\t" /* save RSP */  \       "movq %%rsp,%P[threadrsp](%[prev])\n\t" /* save RSP */  \
11416  diff -Naur linux-2.6.25/include/asm-x86/mach-xen/asm/tlbflush_32.h linux-2.6.25-xen/include/asm-x86/mach-xen/asm/tlbflush_32.h  --- a/include/asm-x86/mach-xen/asm/tlbflush_32.h
11417  --- linux-2.6.25/include/asm-x86/mach-xen/asm/tlbflush_32.h 2008-05-23 20:51:11.000000000 +0200  +++ b/include/asm-x86/mach-xen/asm/tlbflush_32.h
 +++ linux-2.6.25-xen/include/asm-x86/mach-xen/asm/tlbflush_32.h 2008-05-23 20:39:03.000000000 +0200  
11418  @@ -8,8 +8,6 @@  @@ -8,8 +8,6 @@
11419   #define __flush_tlb_global() xen_tlb_flush()   #define __flush_tlb_global() xen_tlb_flush()
11420   #define __flush_tlb_all() xen_tlb_flush()   #define __flush_tlb_all() xen_tlb_flush()
# Line 11426  diff -Naur linux-2.6.25/include/asm-x86/ Line 11424  diff -Naur linux-2.6.25/include/asm-x86/
11424   #define cpu_has_invlpg (boot_cpu_data.x86 > 3)   #define cpu_has_invlpg (boot_cpu_data.x86 > 3)
11425    
11426   #define __flush_tlb_single(addr) xen_invlpg(addr)   #define __flush_tlb_single(addr) xen_invlpg(addr)
11427  diff -Naur linux-2.6.25/include/asm-x86/mach-xen/asm/tlbflush_64.h linux-2.6.25-xen/include/asm-x86/mach-xen/asm/tlbflush_64.h  --- a/include/asm-x86/mach-xen/asm/tlbflush_64.h
11428  --- linux-2.6.25/include/asm-x86/mach-xen/asm/tlbflush_64.h 2008-05-23 20:51:11.000000000 +0200  +++ b/include/asm-x86/mach-xen/asm/tlbflush_64.h
 +++ linux-2.6.25-xen/include/asm-x86/mach-xen/asm/tlbflush_64.h 2008-05-23 20:39:03.000000000 +0200  
11429  @@ -12,9 +12,6 @@  @@ -12,9 +12,6 @@
11430    */    */
11431   #define __flush_tlb_global() xen_tlb_flush()   #define __flush_tlb_global() xen_tlb_flush()
# Line 11439  diff -Naur linux-2.6.25/include/asm-x86/ Line 11436  diff -Naur linux-2.6.25/include/asm-x86/
11436   #define __flush_tlb_all() __flush_tlb_global()   #define __flush_tlb_all() __flush_tlb_global()
11437    
11438   #define __flush_tlb_one(addr) xen_invlpg((unsigned long)addr)   #define __flush_tlb_one(addr) xen_invlpg((unsigned long)addr)
11439  diff -Naur linux-2.6.25/include/asm-x86/thread_info_64.h linux-2.6.25-xen/include/asm-x86/thread_info_64.h  --- a/include/asm-x86/thread_info_64.h
11440  --- linux-2.6.25/include/asm-x86/thread_info_64.h 2008-04-17 04:49:44.000000000 +0200  +++ b/include/asm-x86/thread_info_64.h
 +++ linux-2.6.25-xen/include/asm-x86/thread_info_64.h 2008-05-23 20:39:03.000000000 +0200  
11441  @@ -157,10 +157,14 @@  @@ -157,10 +157,14 @@
11442   (_TIF_SIGPENDING|_TIF_SINGLESTEP|_TIF_MCE_NOTIFY|_TIF_HRTICK_RESCHED)   (_TIF_SIGPENDING|_TIF_SINGLESTEP|_TIF_MCE_NOTIFY|_TIF_HRTICK_RESCHED)
11443    
# Line 11457  diff -Naur linux-2.6.25/include/asm-x86/ Line 11453  diff -Naur linux-2.6.25/include/asm-x86/
11453    
11454   #define PREEMPT_ACTIVE     0x10000000   #define PREEMPT_ACTIVE     0x10000000
11455    
11456  diff -Naur linux-2.6.25/include/linux/skbuff.h linux-2.6.25-xen/include/linux/skbuff.h  --- a/include/linux/skbuff.h
11457  --- linux-2.6.25/include/linux/skbuff.h 2008-05-23 20:51:15.000000000 +0200  +++ b/include/linux/skbuff.h
 +++ linux-2.6.25-xen/include/linux/skbuff.h 2008-05-23 20:39:03.000000000 +0200  
11458  @@ -1821,5 +1821,12 @@  @@ -1821,5 +1821,12 @@
11459   }   }
11460    
# Line 11473  diff -Naur linux-2.6.25/include/linux/sk Line 11468  diff -Naur linux-2.6.25/include/linux/sk
11468  +  +
11469   #endif /* __KERNEL__ */   #endif /* __KERNEL__ */
11470   #endif /* _LINUX_SKBUFF_H */   #endif /* _LINUX_SKBUFF_H */
11471  diff -Naur linux-2.6.25/include/xen/evtchn.h linux-2.6.25-xen/include/xen/evtchn.h  --- a/include/xen/evtchn.h
11472  --- linux-2.6.25/include/xen/evtchn.h 2008-05-23 20:51:11.000000000 +0200  +++ b/include/xen/evtchn.h
 +++ linux-2.6.25-xen/include/xen/evtchn.h 2008-05-23 20:39:03.000000000 +0200  
11473  @@ -54,34 +54,34 @@  @@ -54,34 +54,34 @@
11474    */    */
11475   int bind_caller_port_to_irqhandler(   int bind_caller_port_to_irqhandler(
# Line 11516  diff -Naur linux-2.6.25/include/xen/evtc Line 11510  diff -Naur linux-2.6.25/include/xen/evtc
11510   unsigned long irqflags,   unsigned long irqflags,
11511   const char *devname,   const char *devname,
11512   void *dev_id);   void *dev_id);
11513  diff -Naur linux-2.6.25/include/xen/xencons.h linux-2.6.25-xen/include/xen/xencons.h  --- a/include/xen/xencons.h
11514  --- linux-2.6.25/include/xen/xencons.h 2008-05-23 20:51:11.000000000 +0200  +++ b/include/xen/xencons.h
 +++ linux-2.6.25-xen/include/xen/xencons.h 2008-05-23 20:39:03.000000000 +0200  
11515  @@ -8,7 +8,7 @@  @@ -8,7 +8,7 @@
11516   void xencons_resume(void);   void xencons_resume(void);
11517    
# Line 11528  diff -Naur linux-2.6.25/include/xen/xenc Line 11521  diff -Naur linux-2.6.25/include/xen/xenc
11521   void xencons_tx(void);   void xencons_tx(void);
11522    
11523   int xencons_ring_init(void);   int xencons_ring_init(void);
11524  diff -Naur linux-2.6.25/mm/mprotect.c linux-2.6.25-xen/mm/mprotect.c  --- a/mm/mprotect.c
11525  --- linux-2.6.25/mm/mprotect.c 2008-05-23 20:51:15.000000000 +0200  +++ b/mm/mprotect.c
 +++ linux-2.6.25-xen/mm/mprotect.c 2008-05-23 20:39:03.000000000 +0200  
11526  @@ -86,7 +86,7 @@  @@ -86,7 +86,7 @@
11527   next = pmd_addr_end(addr, end);   next = pmd_addr_end(addr, end);
11528   if (pmd_none_or_clear_bad(pmd))   if (pmd_none_or_clear_bad(pmd))
# Line 11540  diff -Naur linux-2.6.25/mm/mprotect.c li Line 11532  diff -Naur linux-2.6.25/mm/mprotect.c li
11532   continue;   continue;
11533   change_pte_range(mm, pmd, addr, next, newprot, dirty_accountable);   change_pte_range(mm, pmd, addr, next, newprot, dirty_accountable);
11534   } while (pmd++, addr = next, addr != end);   } while (pmd++, addr = next, addr != end);
11535  diff -Naur linux-2.6.25/net/core/dev.c linux-2.6.25-xen/net/core/dev.c  --- a/net/core/dev.c
11536  --- linux-2.6.25/net/core/dev.c 2008-05-23 20:51:15.000000000 +0200  +++ b/net/core/dev.c
11537  +++ linux-2.6.25-xen/net/core/dev.c 2008-05-23 20:39:03.000000000 +0200  @@ -1611,15 +1611,14 @@
 @@ -1607,15 +1607,14 @@  
11538   }   }
11539   if ((skb->h.raw + skb->csum + 2) > skb->tail)   if ((skb->h.raw + skb->csum + 2) > skb->tail)
11540   goto out;   goto out;
# Line 11561  diff -Naur linux-2.6.25/net/core/dev.c l Line 11552  diff -Naur linux-2.6.25/net/core/dev.c l
11552   #endif   #endif
11553    
11554   /**   /**
11555  @@ -2111,7 +2110,7 @@  @@ -2115,7 +2114,7 @@
11556   case CHECKSUM_UNNECESSARY:   case CHECKSUM_UNNECESSARY:
11557   skb->proto_data_valid = 1;   skb->proto_data_valid = 1;
11558   break;   break;
# Line 11570  diff -Naur linux-2.6.25/net/core/dev.c l Line 11561  diff -Naur linux-2.6.25/net/core/dev.c l
11561   /* XXX Implement me. */   /* XXX Implement me. */
11562   default:   default:
11563   skb->proto_data_valid = 0;   skb->proto_data_valid = 0;
11564  @@ -4644,7 +4643,6 @@  @@ -4648,7 +4647,6 @@
11565   EXPORT_SYMBOL(net_enable_timestamp);   EXPORT_SYMBOL(net_enable_timestamp);
11566   EXPORT_SYMBOL(net_disable_timestamp);   EXPORT_SYMBOL(net_disable_timestamp);
11567   EXPORT_SYMBOL(dev_get_flags);   EXPORT_SYMBOL(dev_get_flags);

Legend:
Removed from v.611  
changed lines
  Added in v.612