]> git.ipfire.org Git - people/teissler/ipfire-2.x.git/blobdiff - src/patches/suse-2.6.27.25/patches.xen/xen3-patch-2.6.24
Updated xen patches taken from suse.
[people/teissler/ipfire-2.x.git] / src / patches / suse-2.6.27.25 / patches.xen / xen3-patch-2.6.24
similarity index 82%
rename from src/patches/60033_xen3-patch-2.6.24.patch1
rename to src/patches/suse-2.6.27.25/patches.xen/xen3-patch-2.6.24
index 91222f09a5c298cc87f0108f50e1ad39e9ebcbe1..ca338a23f584122f2eea7866b87060caf79d5525 100644 (file)
@@ -6,10 +6,8 @@ Automatically created from "patches.kernel.org/patch-2.6.24" by xen-port-patches
 
 Acked-by: jbeulich@novell.com
 
-Index: head-2008-12-01/arch/x86/Kconfig
-===================================================================
---- head-2008-12-01.orig/arch/x86/Kconfig      2008-12-01 11:36:13.000000000 +0100
-+++ head-2008-12-01/arch/x86/Kconfig   2008-12-01 11:36:55.000000000 +0100
+--- sle11-2009-05-14.orig/arch/x86/Kconfig     2009-02-05 10:22:38.000000000 +0100
++++ sle11-2009-05-14/arch/x86/Kconfig  2009-02-16 16:18:36.000000000 +0100
 @@ -50,15 +50,16 @@ config GENERIC_CMOS_UPDATE
  
  config CLOCKSOURCE_WATCHDOG
@@ -30,7 +28,7 @@ Index: head-2008-12-01/arch/x86/Kconfig
  
  config LOCKDEP_SUPPORT
        def_bool y
-@@ -208,12 +209,12 @@ config X86_TRAMPOLINE
+@@ -211,12 +212,12 @@ config X86_TRAMPOLINE
  
  config X86_NO_TSS
        bool
@@ -45,7 +43,7 @@ Index: head-2008-12-01/arch/x86/Kconfig
        default y
  
  config KTIME_SCALAR
-@@ -283,6 +284,7 @@ config X86_PC
+@@ -287,6 +288,7 @@ config X86_PC
  
  config X86_XEN
        bool "Xen-compatible"
@@ -53,7 +51,7 @@ Index: head-2008-12-01/arch/x86/Kconfig
        select XEN
        select X86_PAE
        select X86_UP_APIC if !SMP && XEN_PRIVILEGED_GUEST
-@@ -361,6 +363,7 @@ endif
+@@ -365,6 +367,7 @@ endif
  
  config X86_64_XEN
        bool "Enable Xen compatible kernel"
@@ -61,7 +59,7 @@ Index: head-2008-12-01/arch/x86/Kconfig
        select XEN
        select SWIOTLB
        help
-@@ -413,7 +416,7 @@ config SCHED_NO_NO_OMIT_FRAME_POINTER
+@@ -417,7 +420,7 @@ config SCHED_NO_NO_OMIT_FRAME_POINTER
  
  menuconfig PARAVIRT_GUEST
        bool "Paravirtualized guest support"
@@ -70,7 +68,7 @@ Index: head-2008-12-01/arch/x86/Kconfig
        help
          Say Y here to get to see options related to running Linux under
          various hypervisors.  This option alone does not add any kernel code.
-@@ -507,7 +510,7 @@ source "arch/x86/Kconfig.cpu"
+@@ -511,7 +514,7 @@ source "arch/x86/Kconfig.cpu"
  config HPET_TIMER
        def_bool X86_64
        prompt "HPET Timer Support" if X86_32
@@ -79,7 +77,7 @@ Index: head-2008-12-01/arch/x86/Kconfig
        help
           Use the IA-PC HPET (High Precision Event Timer) to manage
           time in preference to the PIT and RTC, if a HPET is
-@@ -827,7 +830,7 @@ config I8K
+@@ -831,7 +834,7 @@ config I8K
  config X86_REBOOTFIXUPS
        def_bool n
        prompt "Enable X86 board specific fixups for reboot"
@@ -88,7 +86,7 @@ Index: head-2008-12-01/arch/x86/Kconfig
        ---help---
          This enables chipset and/or board specific fixups to be done
          in order to get reboot to work correctly. This is only needed on
-@@ -1160,7 +1163,7 @@ config X86_RESERVE_LOW_64K
+@@ -1164,7 +1167,7 @@ config X86_RESERVE_LOW_64K
  config MATH_EMULATION
        bool
        prompt "Math emulation" if X86_32
@@ -97,7 +95,7 @@ Index: head-2008-12-01/arch/x86/Kconfig
        ---help---
          Linux can emulate a math coprocessor (used for floating point
          operations) if you don't have one. 486DX and Pentium processors have
-@@ -1268,7 +1271,7 @@ config X86_PAT
+@@ -1272,7 +1275,7 @@ config X86_PAT
  config EFI
        def_bool n
        prompt "EFI runtime service support"
@@ -106,7 +104,7 @@ Index: head-2008-12-01/arch/x86/Kconfig
        ---help---
        This enables the kernel to use EFI runtime services that are
        available (such as the EFI variable services).
-@@ -1283,7 +1286,7 @@ config EFI
+@@ -1287,7 +1290,7 @@ config EFI
  config IRQBALANCE
        def_bool y
        prompt "Enable kernel irq balancing"
@@ -115,7 +113,7 @@ Index: head-2008-12-01/arch/x86/Kconfig
        help
          The default yes will allow the kernel to do irq load balancing.
          Saying no will keep the kernel from doing irq load balancing.
-@@ -1429,7 +1432,7 @@ config PHYSICAL_START
+@@ -1433,7 +1436,7 @@ config PHYSICAL_START
  
  config RELOCATABLE
        bool "Build a relocatable kernel (EXPERIMENTAL)"
@@ -124,7 +122,7 @@ Index: head-2008-12-01/arch/x86/Kconfig
        help
          This builds a kernel image that retains relocation information
          so it can be loaded someplace besides the default 1MB.
-@@ -1499,6 +1502,7 @@ endmenu
+@@ -1503,6 +1506,7 @@ endmenu
  config ARCH_ENABLE_MEMORY_HOTPLUG
        def_bool y
        depends on X86_64 || (X86_32 && HIGHMEM)
@@ -132,7 +130,7 @@ Index: head-2008-12-01/arch/x86/Kconfig
  
  config HAVE_ARCH_EARLY_PFN_TO_NID
        def_bool X86_64
-@@ -1689,7 +1693,7 @@ choice
+@@ -1693,7 +1697,7 @@ choice
  
  config PCI_GOBIOS
        bool "BIOS"
@@ -141,7 +139,7 @@ Index: head-2008-12-01/arch/x86/Kconfig
  
  config PCI_GOMMCONFIG
        bool "MMConfig"
-@@ -1740,7 +1744,7 @@ config PCI_MMCONFIG
+@@ -1744,7 +1748,7 @@ config PCI_MMCONFIG
  
  config XEN_PCIDEV_FRONTEND
        bool "Xen PCI Frontend" if X86_64
@@ -150,7 +148,7 @@ Index: head-2008-12-01/arch/x86/Kconfig
        select HOTPLUG
        default y
        help
-@@ -1757,6 +1761,7 @@ config XEN_PCIDEV_FE_DEBUG
+@@ -1761,6 +1765,7 @@ config XEN_PCIDEV_FE_DEBUG
  config DMAR
        bool "Support for DMA Remapping Devices (EXPERIMENTAL)"
        depends on X86_64 && PCI_MSI && ACPI && EXPERIMENTAL
@@ -158,10 +156,8 @@ Index: head-2008-12-01/arch/x86/Kconfig
        help
          DMA remapping (DMAR) devices support enables independent address
          translations for Direct Memory Access (DMA) from devices.
-Index: head-2008-12-01/arch/x86/Makefile
-===================================================================
---- head-2008-12-01.orig/arch/x86/Makefile     2008-12-01 11:36:47.000000000 +0100
-+++ head-2008-12-01/arch/x86/Makefile  2008-12-01 11:36:55.000000000 +0100
+--- sle11-2009-05-14.orig/arch/x86/Makefile    2009-02-16 16:17:21.000000000 +0100
++++ sle11-2009-05-14/arch/x86/Makefile 2009-02-16 16:18:36.000000000 +0100
 @@ -191,8 +191,8 @@ PHONY += zImage bzImage vmlinuz compress
           zdisk bzdisk fdimage fdimage144 fdimage288 isoimage install
  
@@ -182,10 +178,8 @@ Index: head-2008-12-01/arch/x86/Makefile
  else
  # Default kernel to build
  all: bzImage
-Index: head-2008-12-01/arch/x86/ia32/ia32entry-xen.S
-===================================================================
---- head-2008-12-01.orig/arch/x86/ia32/ia32entry-xen.S 2008-12-01 11:36:47.000000000 +0100
-+++ head-2008-12-01/arch/x86/ia32/ia32entry-xen.S      2008-12-01 11:36:55.000000000 +0100
+--- sle11-2009-05-14.orig/arch/x86/ia32/ia32entry-xen.S        2009-02-16 16:17:21.000000000 +0100
++++ sle11-2009-05-14/arch/x86/ia32/ia32entry-xen.S     2009-02-16 16:18:36.000000000 +0100
 @@ -125,20 +125,16 @@ sysenter_do_call:        
        jmp int_ret_from_sys_call
  
@@ -234,20 +228,16 @@ Index: head-2008-12-01/arch/x86/ia32/ia32entry-xen.S
        jmp cstar_do_call
  END(ia32_cstar_target)
                                
-Index: head-2008-12-01/arch/x86/kernel/Makefile
-===================================================================
---- head-2008-12-01.orig/arch/x86/kernel/Makefile      2008-12-01 11:36:13.000000000 +0100
-+++ head-2008-12-01/arch/x86/kernel/Makefile   2008-12-01 11:36:55.000000000 +0100
+--- sle11-2009-05-14.orig/arch/x86/kernel/Makefile     2008-12-15 11:27:22.000000000 +0100
++++ sle11-2009-05-14/arch/x86/kernel/Makefile  2009-02-16 16:18:36.000000000 +0100
 @@ -127,4 +127,4 @@ endif
  disabled-obj-$(CONFIG_XEN) := early-quirks.o hpet.o i8253.o i8259_$(BITS).o reboot.o \
        smpboot_$(BITS).o tsc_$(BITS).o tsc_sync.o
  disabled-obj-$(CONFIG_XEN_UNPRIVILEGED_GUEST) += mpparse_64.o
 -%/head_64.o %/head_64.s: $(if $(CONFIG_XEN),EXTRA_AFLAGS,dummy) :=
 +%/head_64.o %/head_64.s: asflags-$(CONFIG_XEN) :=
-Index: head-2008-12-01/arch/x86/kernel/acpi/sleep_32-xen.c
-===================================================================
---- head-2008-12-01.orig/arch/x86/kernel/acpi/sleep_32-xen.c   2008-12-01 11:36:47.000000000 +0100
-+++ head-2008-12-01/arch/x86/kernel/acpi/sleep_32-xen.c        2008-12-01 11:36:55.000000000 +0100
+--- sle11-2009-05-14.orig/arch/x86/kernel/acpi/sleep_32-xen.c  2009-02-16 16:17:21.000000000 +0100
++++ sle11-2009-05-14/arch/x86/kernel/acpi/sleep_32-xen.c       2009-02-16 16:18:36.000000000 +0100
 @@ -90,7 +90,7 @@ __setup("acpi_sleep=", acpi_sleep_setup)
  
  /* Ouch, we want to delete this. We already have better version in userspace, in
@@ -257,10 +247,8 @@ Index: head-2008-12-01/arch/x86/kernel/acpi/sleep_32-xen.c
  {
        acpi_realmode_flags |= 2;
        return 0;
-Index: head-2008-12-01/arch/x86/kernel/acpi/sleep_64-xen.c
-===================================================================
---- head-2008-12-01.orig/arch/x86/kernel/acpi/sleep_64-xen.c   2008-12-01 11:36:47.000000000 +0100
-+++ head-2008-12-01/arch/x86/kernel/acpi/sleep_64-xen.c        2008-12-01 11:36:55.000000000 +0100
+--- sle11-2009-05-14.orig/arch/x86/kernel/acpi/sleep_64-xen.c  2009-02-16 16:17:21.000000000 +0100
++++ sle11-2009-05-14/arch/x86/kernel/acpi/sleep_64-xen.c       2009-02-16 16:18:36.000000000 +0100
 @@ -123,6 +123,3 @@ static int __init acpi_sleep_setup(char 
  __setup("acpi_sleep=", acpi_sleep_setup);
  #endif                                /* CONFIG_ACPI_PV_SLEEP */
@@ -268,10 +256,8 @@ Index: head-2008-12-01/arch/x86/kernel/acpi/sleep_64-xen.c
 -void acpi_pci_link_exit(void)
 -{
 -}
-Index: head-2008-12-01/arch/x86/kernel/apic_64-xen.c
-===================================================================
---- head-2008-12-01.orig/arch/x86/kernel/apic_64-xen.c 2008-12-01 11:36:47.000000000 +0100
-+++ head-2008-12-01/arch/x86/kernel/apic_64-xen.c      2008-12-01 11:36:55.000000000 +0100
+--- sle11-2009-05-14.orig/arch/x86/kernel/apic_64-xen.c        2009-02-16 16:17:21.000000000 +0100
++++ sle11-2009-05-14/arch/x86/kernel/apic_64-xen.c     2009-02-16 16:18:36.000000000 +0100
 @@ -63,22 +63,38 @@ int setup_profiling_timer(unsigned int m
  
  void smp_local_timer_interrupt(void)
@@ -343,10 +329,8 @@ Index: head-2008-12-01/arch/x86/kernel/apic_64-xen.c
        irq_exit();
  }
  
-Index: head-2008-12-01/arch/x86/kernel/cpu/common-xen.c
-===================================================================
---- head-2008-12-01.orig/arch/x86/kernel/cpu/common-xen.c      2008-12-01 11:36:47.000000000 +0100
-+++ head-2008-12-01/arch/x86/kernel/cpu/common-xen.c   2008-12-01 11:36:55.000000000 +0100
+--- sle11-2009-05-14.orig/arch/x86/kernel/cpu/common-xen.c     2009-02-16 16:17:21.000000000 +0100
++++ sle11-2009-05-14/arch/x86/kernel/cpu/common-xen.c  2009-02-16 16:18:36.000000000 +0100
 @@ -214,7 +214,7 @@ static void __cpuinit get_cpu_vendor(str
  
  static int __init x86_fxsr_setup(char * s)
@@ -356,10 +340,8 @@ Index: head-2008-12-01/arch/x86/kernel/cpu/common-xen.c
        disable_x86_fxsr = 1;
  
        /*
-Index: head-2008-12-01/arch/x86/kernel/e820_32-xen.c
-===================================================================
---- head-2008-12-01.orig/arch/x86/kernel/e820_32-xen.c 2008-12-01 11:36:47.000000000 +0100
-+++ head-2008-12-01/arch/x86/kernel/e820_32-xen.c      2008-12-01 11:36:55.000000000 +0100
+--- sle11-2009-05-14.orig/arch/x86/kernel/e820_32-xen.c        2009-02-16 16:17:21.000000000 +0100
++++ sle11-2009-05-14/arch/x86/kernel/e820_32-xen.c     2009-02-16 16:18:36.000000000 +0100
 @@ -52,6 +52,13 @@ struct resource code_resource = {
        .flags  = IORESOURCE_BUSY | IORESOURCE_MEM
  };
@@ -421,10 +403,8 @@ Index: head-2008-12-01/arch/x86/kernel/e820_32-xen.c
         * memory space.
         */
        last = 0x100000000ull;
-Index: head-2008-12-01/arch/x86/kernel/e820_64-xen.c
-===================================================================
---- head-2008-12-01.orig/arch/x86/kernel/e820_64-xen.c 2008-12-01 11:36:47.000000000 +0100
-+++ head-2008-12-01/arch/x86/kernel/e820_64-xen.c      2008-12-01 11:36:55.000000000 +0100
+--- sle11-2009-05-14.orig/arch/x86/kernel/e820_64-xen.c        2009-02-16 16:17:21.000000000 +0100
++++ sle11-2009-05-14/arch/x86/kernel/e820_64-xen.c     2009-02-16 16:18:36.000000000 +0100
 @@ -24,7 +24,7 @@
  #include <asm/page.h>
  #include <asm/e820.h>
@@ -505,10 +485,8 @@ Index: head-2008-12-01/arch/x86/kernel/e820_64-xen.c
 +              max_pfn << PAGE_SHIFT) - *addr;
 +      return i + 1;
 +}
-Index: head-2008-12-01/arch/x86/kernel/early_printk-xen.c
-===================================================================
---- head-2008-12-01.orig/arch/x86/kernel/early_printk-xen.c    2008-12-01 11:36:47.000000000 +0100
-+++ head-2008-12-01/arch/x86/kernel/early_printk-xen.c 2008-12-01 11:36:55.000000000 +0100
+--- sle11-2009-05-14.orig/arch/x86/kernel/early_printk-xen.c   2009-02-16 16:17:21.000000000 +0100
++++ sle11-2009-05-14/arch/x86/kernel/early_printk-xen.c        2009-02-16 16:18:36.000000000 +0100
 @@ -6,14 +6,9 @@
  #include <asm/io.h>
  #include <asm/processor.h>
@@ -540,10 +518,8 @@ Index: head-2008-12-01/arch/x86/kernel/early_printk-xen.c
  #endif
                early_console = &early_vga_console;
        } else if (!strncmp(buf, "simnow", 6)) {
-Index: head-2008-12-01/arch/x86/kernel/entry_32-xen.S
-===================================================================
---- head-2008-12-01.orig/arch/x86/kernel/entry_32-xen.S        2008-12-01 11:36:47.000000000 +0100
-+++ head-2008-12-01/arch/x86/kernel/entry_32-xen.S     2008-12-01 11:36:55.000000000 +0100
+--- sle11-2009-05-14.orig/arch/x86/kernel/entry_32-xen.S       2009-02-16 16:17:21.000000000 +0100
++++ sle11-2009-05-14/arch/x86/kernel/entry_32-xen.S    2009-05-14 11:18:18.000000000 +0200
 @@ -254,6 +254,7 @@ check_userspace:
        jb resume_kernel                # not returning to v8086 or userspace
  
@@ -585,7 +561,7 @@ Index: head-2008-12-01/arch/x86/kernel/entry_32-xen.S
        DISABLE_INTERRUPTS(CLBR_ANY)    # make sure we don't miss an interrupt
                                        # setting need_resched or sigpending
                                        # between sampling and the iret
-@@ -1264,6 +1268,6 @@ ENTRY(kernel_thread_helper)
+@@ -1268,6 +1272,6 @@ ENTRY(kernel_thread_helper)
  ENDPROC(kernel_thread_helper)
  
  .section .rodata,"a"
@@ -593,10 +569,8 @@ Index: head-2008-12-01/arch/x86/kernel/entry_32-xen.S
 +#include "syscall_table_32.S"
  
  syscall_table_size=(.-sys_call_table)
-Index: head-2008-12-01/arch/x86/kernel/entry_64-xen.S
-===================================================================
---- head-2008-12-01.orig/arch/x86/kernel/entry_64-xen.S        2008-12-01 11:36:47.000000000 +0100
-+++ head-2008-12-01/arch/x86/kernel/entry_64-xen.S     2008-12-01 11:36:55.000000000 +0100
+--- sle11-2009-05-14.orig/arch/x86/kernel/entry_64-xen.S       2009-02-16 16:17:21.000000000 +0100
++++ sle11-2009-05-14/arch/x86/kernel/entry_64-xen.S    2009-02-16 16:18:36.000000000 +0100
 @@ -57,7 +57,7 @@
  #include <xen/interface/arch-x86_64.h>
  #include <xen/interface/features.h>
@@ -670,10 +644,8 @@ Index: head-2008-12-01/arch/x86/kernel/entry_64-xen.S
        call do_exit
        CFI_ENDPROC
  ENDPROC(child_rip)
-Index: head-2008-12-01/arch/x86/kernel/genapic_64-xen.c
-===================================================================
---- head-2008-12-01.orig/arch/x86/kernel/genapic_64-xen.c      2008-12-01 11:36:13.000000000 +0100
-+++ head-2008-12-01/arch/x86/kernel/genapic_64-xen.c   2008-12-01 11:36:55.000000000 +0100
+--- sle11-2009-05-14.orig/arch/x86/kernel/genapic_64-xen.c     2008-12-15 11:27:22.000000000 +0100
++++ sle11-2009-05-14/arch/x86/kernel/genapic_64-xen.c  2009-02-16 16:18:36.000000000 +0100
 @@ -24,12 +24,21 @@
  #include <acpi/acpi_bus.h>
  #endif
@@ -701,10 +673,8 @@ Index: head-2008-12-01/arch/x86/kernel/genapic_64-xen.c
  
  #ifndef CONFIG_XEN
  struct genapic __read_mostly *genapic = &apic_flat;
-Index: head-2008-12-01/arch/x86/kernel/head64-xen.c
-===================================================================
---- head-2008-12-01.orig/arch/x86/kernel/head64-xen.c  2008-12-01 11:36:47.000000000 +0100
-+++ head-2008-12-01/arch/x86/kernel/head64-xen.c       2008-12-01 11:36:55.000000000 +0100
+--- sle11-2009-05-14.orig/arch/x86/kernel/head64-xen.c 2009-02-16 16:17:21.000000000 +0100
++++ sle11-2009-05-14/arch/x86/kernel/head64-xen.c      2009-02-16 16:18:36.000000000 +0100
 @@ -1,5 +1,5 @@
  /*
 - *  linux/arch/x86_64/kernel/head64.c -- prepare to run common code
@@ -761,10 +731,8 @@ Index: head-2008-12-01/arch/x86/kernel/head64-xen.c
  #endif
  
        early_printk("Kernel alive\n");
-Index: head-2008-12-01/arch/x86/kernel/init_task-xen.c
-===================================================================
---- head-2008-12-01.orig/arch/x86/kernel/init_task-xen.c       2008-12-01 11:36:47.000000000 +0100
-+++ head-2008-12-01/arch/x86/kernel/init_task-xen.c    2008-12-01 11:36:55.000000000 +0100
+--- sle11-2009-05-14.orig/arch/x86/kernel/init_task-xen.c      2009-02-16 16:17:21.000000000 +0100
++++ sle11-2009-05-14/arch/x86/kernel/init_task-xen.c   2009-02-16 16:18:36.000000000 +0100
 @@ -14,11 +14,11 @@ static struct fs_struct init_fs = INIT_F
  static struct files_struct init_files = INIT_FILES;
  static struct signal_struct init_signals = INIT_SIGNALS(init_signals);
@@ -808,10 +776,8 @@ Index: head-2008-12-01/arch/x86/kernel/init_task-xen.c
  DEFINE_PER_CPU_SHARED_ALIGNED(struct tss_struct, init_tss) = INIT_TSS;
  #endif
  
-Index: head-2008-12-01/arch/x86/kernel/io_apic_32-xen.c
-===================================================================
---- head-2008-12-01.orig/arch/x86/kernel/io_apic_32-xen.c      2008-12-01 11:36:47.000000000 +0100
-+++ head-2008-12-01/arch/x86/kernel/io_apic_32-xen.c   2008-12-01 11:36:55.000000000 +0100
+--- sle11-2009-05-14.orig/arch/x86/kernel/io_apic_32-xen.c     2009-02-16 16:17:21.000000000 +0100
++++ sle11-2009-05-14/arch/x86/kernel/io_apic_32-xen.c  2009-02-16 16:18:36.000000000 +0100
 @@ -427,7 +427,7 @@ static struct irq_cpu_info {
  
  #define IRQ_ALLOWED(cpu, allowed_mask)        cpu_isset(cpu, allowed_mask)
@@ -979,10 +945,8 @@ Index: head-2008-12-01/arch/x86/kernel/io_apic_32-xen.c
  #endif /* CONFIG_ACPI */
  
  static int __init parse_disable_timer_pin_1(char *arg)
-Index: head-2008-12-01/arch/x86/kernel/io_apic_64-xen.c
-===================================================================
---- head-2008-12-01.orig/arch/x86/kernel/io_apic_64-xen.c      2008-12-01 11:36:47.000000000 +0100
-+++ head-2008-12-01/arch/x86/kernel/io_apic_64-xen.c   2008-12-01 11:36:55.000000000 +0100
+--- sle11-2009-05-14.orig/arch/x86/kernel/io_apic_64-xen.c     2009-02-16 16:17:21.000000000 +0100
++++ sle11-2009-05-14/arch/x86/kernel/io_apic_64-xen.c  2009-02-16 16:18:36.000000000 +0100
 @@ -31,6 +31,7 @@
  #include <linux/sysdev.h>
  #include <linux/msi.h>
@@ -1226,10 +1190,8 @@ Index: head-2008-12-01/arch/x86/kernel/io_apic_64-xen.c
  #endif
  #endif /* !CONFIG_XEN */
 +
-Index: head-2008-12-01/arch/x86/kernel/ioport_32-xen.c
-===================================================================
---- head-2008-12-01.orig/arch/x86/kernel/ioport_32-xen.c       2008-12-01 11:36:13.000000000 +0100
-+++ head-2008-12-01/arch/x86/kernel/ioport_32-xen.c    2008-12-01 11:36:55.000000000 +0100
+--- sle11-2009-05-14.orig/arch/x86/kernel/ioport_32-xen.c      2008-12-15 11:27:22.000000000 +0100
++++ sle11-2009-05-14/arch/x86/kernel/ioport_32-xen.c   2009-02-16 16:18:36.000000000 +0100
 @@ -1,6 +1,4 @@
  /*
 - *    linux/arch/i386/kernel/ioport.c
@@ -1237,10 +1199,8 @@ Index: head-2008-12-01/arch/x86/kernel/ioport_32-xen.c
   * This contains the io-permission bitmap code - written by obz, with changes
   * by Linus.
   */
-Index: head-2008-12-01/arch/x86/kernel/ioport_64-xen.c
-===================================================================
---- head-2008-12-01.orig/arch/x86/kernel/ioport_64-xen.c       2008-12-01 11:36:13.000000000 +0100
-+++ head-2008-12-01/arch/x86/kernel/ioport_64-xen.c    2008-12-01 11:36:55.000000000 +0100
+--- sle11-2009-05-14.orig/arch/x86/kernel/ioport_64-xen.c      2008-12-15 11:27:22.000000000 +0100
++++ sle11-2009-05-14/arch/x86/kernel/ioport_64-xen.c   2009-02-16 16:18:36.000000000 +0100
 @@ -1,6 +1,4 @@
  /*
 - *    linux/arch/x86_64/kernel/ioport.c
@@ -1248,10 +1208,8 @@ Index: head-2008-12-01/arch/x86/kernel/ioport_64-xen.c
   * This contains the io-permission bitmap code - written by obz, with changes
   * by Linus.
   */
-Index: head-2008-12-01/arch/x86/kernel/irq_32-xen.c
-===================================================================
---- head-2008-12-01.orig/arch/x86/kernel/irq_32-xen.c  2008-12-01 11:36:47.000000000 +0100
-+++ head-2008-12-01/arch/x86/kernel/irq_32-xen.c       2008-12-01 11:36:55.000000000 +0100
+--- sle11-2009-05-14.orig/arch/x86/kernel/irq_32-xen.c 2009-02-16 16:17:21.000000000 +0100
++++ sle11-2009-05-14/arch/x86/kernel/irq_32-xen.c      2009-02-16 16:18:36.000000000 +0100
 @@ -1,6 +1,4 @@
  /*
 - *    linux/arch/i386/kernel/irq.c
@@ -1352,10 +1310,8 @@ Index: head-2008-12-01/arch/x86/kernel/irq_32-xen.c
  #endif
                seq_printf(p, "ERR: %10u\n", atomic_read(&irq_err_count));
  #if defined(CONFIG_X86_IO_APIC)
-Index: head-2008-12-01/arch/x86/kernel/irq_64-xen.c
-===================================================================
---- head-2008-12-01.orig/arch/x86/kernel/irq_64-xen.c  2008-12-01 11:36:13.000000000 +0100
-+++ head-2008-12-01/arch/x86/kernel/irq_64-xen.c       2008-12-01 11:36:55.000000000 +0100
+--- sle11-2009-05-14.orig/arch/x86/kernel/irq_64-xen.c 2008-12-15 11:27:22.000000000 +0100
++++ sle11-2009-05-14/arch/x86/kernel/irq_64-xen.c      2009-02-16 16:18:36.000000000 +0100
 @@ -1,6 +1,4 @@
  /*
 - *    linux/arch/x86_64/kernel/irq.c
@@ -1452,10 +1408,8 @@ Index: head-2008-12-01/arch/x86/kernel/irq_64-xen.c
  
  #ifndef CONFIG_X86_LOCAL_APIC
  /*
-Index: head-2008-12-01/arch/x86/kernel/ldt_32-xen.c
-===================================================================
---- head-2008-12-01.orig/arch/x86/kernel/ldt_32-xen.c  2008-12-01 11:36:13.000000000 +0100
-+++ head-2008-12-01/arch/x86/kernel/ldt_32-xen.c       2008-12-01 11:36:55.000000000 +0100
+--- sle11-2009-05-14.orig/arch/x86/kernel/ldt_32-xen.c 2008-12-15 11:27:22.000000000 +0100
++++ sle11-2009-05-14/arch/x86/kernel/ldt_32-xen.c      2009-02-16 16:18:36.000000000 +0100
 @@ -1,6 +1,4 @@
  /*
 - * linux/arch/i386/kernel/ldt.c
@@ -1517,10 +1471,8 @@ Index: head-2008-12-01/arch/x86/kernel/ldt_32-xen.c
  out:
        return error;
  }
-Index: head-2008-12-01/arch/x86/kernel/ldt_64-xen.c
-===================================================================
---- head-2008-12-01.orig/arch/x86/kernel/ldt_64-xen.c  2008-12-01 11:36:47.000000000 +0100
-+++ head-2008-12-01/arch/x86/kernel/ldt_64-xen.c       2008-12-01 11:36:55.000000000 +0100
+--- sle11-2009-05-14.orig/arch/x86/kernel/ldt_64-xen.c 2009-02-16 16:17:21.000000000 +0100
++++ sle11-2009-05-14/arch/x86/kernel/ldt_64-xen.c      2009-02-16 16:18:36.000000000 +0100
 @@ -1,6 +1,4 @@
  /*
 - * linux/arch/x86_64/kernel/ldt.c
@@ -1599,10 +1551,8 @@ Index: head-2008-12-01/arch/x86/kernel/ldt_64-xen.c
  out:
        return error;
  }
-Index: head-2008-12-01/arch/x86/kernel/mpparse_32-xen.c
-===================================================================
---- head-2008-12-01.orig/arch/x86/kernel/mpparse_32-xen.c      2008-12-01 11:36:13.000000000 +0100
-+++ head-2008-12-01/arch/x86/kernel/mpparse_32-xen.c   2008-12-01 11:36:55.000000000 +0100
+--- sle11-2009-05-14.orig/arch/x86/kernel/mpparse_32-xen.c     2008-12-15 11:27:22.000000000 +0100
++++ sle11-2009-05-14/arch/x86/kernel/mpparse_32-xen.c  2009-02-16 16:18:36.000000000 +0100
 @@ -1023,7 +1023,7 @@ void __init mp_config_acpi_legacy_irqs (
  
        /* 
@@ -1612,10 +1562,8 @@ Index: head-2008-12-01/arch/x86/kernel/mpparse_32-xen.c
         */
        for (i = 0; i < 16; i++) {
                int idx;
-Index: head-2008-12-01/arch/x86/kernel/mpparse_64-xen.c
-===================================================================
---- head-2008-12-01.orig/arch/x86/kernel/mpparse_64-xen.c      2008-12-01 11:36:47.000000000 +0100
-+++ head-2008-12-01/arch/x86/kernel/mpparse_64-xen.c   2008-12-01 11:36:55.000000000 +0100
+--- sle11-2009-05-14.orig/arch/x86/kernel/mpparse_64-xen.c     2009-02-16 16:17:21.000000000 +0100
++++ sle11-2009-05-14/arch/x86/kernel/mpparse_64-xen.c  2009-02-16 16:18:36.000000000 +0100
 @@ -57,6 +57,8 @@ unsigned long mp_lapic_addr = 0;
  
  /* Processor that is doing the boot up */
@@ -1661,10 +1609,8 @@ Index: head-2008-12-01/arch/x86/kernel/mpparse_64-xen.c
  {
        num_processors++;
  }
-Index: head-2008-12-01/arch/x86/kernel/pci-dma-xen.c
-===================================================================
---- head-2008-12-01.orig/arch/x86/kernel/pci-dma-xen.c 2008-12-01 11:36:47.000000000 +0100
-+++ head-2008-12-01/arch/x86/kernel/pci-dma-xen.c      2008-12-01 11:36:55.000000000 +0100
+--- sle11-2009-05-14.orig/arch/x86/kernel/pci-dma-xen.c        2009-02-16 16:17:21.000000000 +0100
++++ sle11-2009-05-14/arch/x86/kernel/pci-dma-xen.c     2009-02-16 16:18:36.000000000 +0100
 @@ -13,14 +13,13 @@
  #include <linux/pci.h>
  #include <linux/module.h>
@@ -1757,10 +1703,8 @@ Index: head-2008-12-01/arch/x86/kernel/pci-dma-xen.c
        if (mem && vaddr >= mem->virt_base && vaddr < (mem->virt_base + (mem->size << PAGE_SHIFT))) {
                int page = (vaddr - mem->virt_base) >> PAGE_SHIFT;
  
-Index: head-2008-12-01/arch/x86/kernel/process_32-xen.c
-===================================================================
---- head-2008-12-01.orig/arch/x86/kernel/process_32-xen.c      2008-12-01 11:36:47.000000000 +0100
-+++ head-2008-12-01/arch/x86/kernel/process_32-xen.c   2008-12-01 11:36:55.000000000 +0100
+--- sle11-2009-05-14.orig/arch/x86/kernel/process_32-xen.c     2009-02-16 16:17:21.000000000 +0100
++++ sle11-2009-05-14/arch/x86/kernel/process_32-xen.c  2009-02-16 16:18:36.000000000 +0100
 @@ -1,6 +1,4 @@
  /*
 - *  linux/arch/i386/kernel/process.c
@@ -1887,10 +1831,8 @@ Index: head-2008-12-01/arch/x86/kernel/process_32-xen.c
        show_trace(NULL, regs, &regs->esp);
  }
  
-Index: head-2008-12-01/arch/x86/kernel/process_64-xen.c
-===================================================================
---- head-2008-12-01.orig/arch/x86/kernel/process_64-xen.c      2008-12-01 11:36:47.000000000 +0100
-+++ head-2008-12-01/arch/x86/kernel/process_64-xen.c   2008-12-01 11:36:55.000000000 +0100
+--- sle11-2009-05-14.orig/arch/x86/kernel/process_64-xen.c     2009-02-16 16:17:21.000000000 +0100
++++ sle11-2009-05-14/arch/x86/kernel/process_64-xen.c  2009-02-16 16:18:36.000000000 +0100
 @@ -1,6 +1,4 @@
  /*
 - *  linux/arch/x86-64/kernel/process.c
@@ -1957,10 +1899,8 @@ Index: head-2008-12-01/arch/x86/kernel/process_64-xen.c
  __switch_to(struct task_struct *prev_p, struct task_struct *next_p)
  {
        struct thread_struct *prev = &prev_p->thread,
-Index: head-2008-12-01/arch/x86/kernel/quirks-xen.c
-===================================================================
---- head-2008-12-01.orig/arch/x86/kernel/quirks-xen.c  2008-12-01 11:36:13.000000000 +0100
-+++ head-2008-12-01/arch/x86/kernel/quirks-xen.c       2008-12-01 11:36:55.000000000 +0100
+--- sle11-2009-05-14.orig/arch/x86/kernel/quirks-xen.c 2008-12-15 11:27:22.000000000 +0100
++++ sle11-2009-05-14/arch/x86/kernel/quirks-xen.c      2009-02-16 16:18:36.000000000 +0100
 @@ -41,7 +41,353 @@ static void __devinit quirk_intel_irqbal
        if (!(config & 0x2))
                pci_write_config_byte(dev, 0xf4, config);
@@ -2318,10 +2258,8 @@ Index: head-2008-12-01/arch/x86/kernel/quirks-xen.c
 +}
 +
  #endif
-Index: head-2008-12-01/arch/x86/kernel/setup64-xen.c
-===================================================================
---- head-2008-12-01.orig/arch/x86/kernel/setup64-xen.c 2008-12-01 11:36:47.000000000 +0100
-+++ head-2008-12-01/arch/x86/kernel/setup64-xen.c      2008-12-01 11:36:55.000000000 +0100
+--- sle11-2009-05-14.orig/arch/x86/kernel/setup64-xen.c        2009-02-16 16:17:21.000000000 +0100
++++ sle11-2009-05-14/arch/x86/kernel/setup64-xen.c     2009-02-16 16:18:36.000000000 +0100
 @@ -15,7 +15,6 @@
  #include <linux/bootmem.h>
  #include <linux/bitops.h>
@@ -2370,10 +2308,8 @@ Index: head-2008-12-01/arch/x86/kernel/setup64-xen.c
  /*
   * cpu_init() initializes state that is per-CPU. Some data is already
   * initialized (naturally) in the bootstrap process, such as the GDT
-Index: head-2008-12-01/arch/x86/kernel/setup_32-xen.c
-===================================================================
---- head-2008-12-01.orig/arch/x86/kernel/setup_32-xen.c        2008-12-01 11:36:47.000000000 +0100
-+++ head-2008-12-01/arch/x86/kernel/setup_32-xen.c     2008-12-01 11:36:55.000000000 +0100
+--- sle11-2009-05-14.orig/arch/x86/kernel/setup_32-xen.c       2009-02-16 16:17:21.000000000 +0100
++++ sle11-2009-05-14/arch/x86/kernel/setup_32-xen.c    2009-02-16 16:18:36.000000000 +0100
 @@ -1,6 +1,4 @@
  /*
 - *  linux/arch/i386/kernel/setup.c
@@ -2630,10 +2566,8 @@ Index: head-2008-12-01/arch/x86/kernel/setup_32-xen.c
  #endif
  
  #ifdef CONFIG_ACPI
-Index: head-2008-12-01/arch/x86/kernel/setup_64-xen.c
-===================================================================
---- head-2008-12-01.orig/arch/x86/kernel/setup_64-xen.c        2008-12-01 11:36:47.000000000 +0100
-+++ head-2008-12-01/arch/x86/kernel/setup_64-xen.c     2008-12-01 11:36:55.000000000 +0100
+--- sle11-2009-05-14.orig/arch/x86/kernel/setup_64-xen.c       2009-02-16 16:17:21.000000000 +0100
++++ sle11-2009-05-14/arch/x86/kernel/setup_64-xen.c    2009-02-16 16:18:36.000000000 +0100
 @@ -1,10 +1,5 @@
  /*
 - *  linux/arch/x86-64/kernel/setup.c
@@ -3047,10 +2981,8 @@ Index: head-2008-12-01/arch/x86/kernel/setup_64-xen.c
        return c_start(m, pos);
  }
  
-Index: head-2008-12-01/arch/x86/kernel/smp_32-xen.c
-===================================================================
---- head-2008-12-01.orig/arch/x86/kernel/smp_32-xen.c  2008-12-01 11:36:47.000000000 +0100
-+++ head-2008-12-01/arch/x86/kernel/smp_32-xen.c       2008-12-01 11:36:55.000000000 +0100
+--- sle11-2009-05-14.orig/arch/x86/kernel/smp_32-xen.c 2009-02-16 16:17:21.000000000 +0100
++++ sle11-2009-05-14/arch/x86/kernel/smp_32-xen.c      2009-02-16 16:18:36.000000000 +0100
 @@ -72,7 +72,7 @@
   *
   *            B stepping CPUs may hang. There are hardware work arounds
@@ -3102,10 +3034,8 @@ Index: head-2008-12-01/arch/x86/kernel/smp_32-xen.c
        irq_exit();
  
        if (wait) {
-Index: head-2008-12-01/arch/x86/kernel/smp_64-xen.c
-===================================================================
---- head-2008-12-01.orig/arch/x86/kernel/smp_64-xen.c  2008-12-01 11:36:47.000000000 +0100
-+++ head-2008-12-01/arch/x86/kernel/smp_64-xen.c       2008-12-01 11:36:55.000000000 +0100
+--- sle11-2009-05-14.orig/arch/x86/kernel/smp_64-xen.c 2009-02-16 16:17:21.000000000 +0100
++++ sle11-2009-05-14/arch/x86/kernel/smp_64-xen.c      2009-02-16 16:18:36.000000000 +0100
 @@ -167,6 +167,7 @@ asmlinkage void smp_invalidate_interrupt
  out:
        ack_APIC_irq();
@@ -3312,10 +3242,8 @@ Index: head-2008-12-01/arch/x86/kernel/smp_64-xen.c
        irq_exit();
        if (wait) {
                mb();
-Index: head-2008-12-01/arch/x86/kernel/time_32-xen.c
-===================================================================
---- head-2008-12-01.orig/arch/x86/kernel/time_32-xen.c 2008-12-01 11:36:47.000000000 +0100
-+++ head-2008-12-01/arch/x86/kernel/time_32-xen.c      2008-12-01 11:36:55.000000000 +0100
+--- sle11-2009-05-14.orig/arch/x86/kernel/time_32-xen.c        2009-03-24 10:12:09.000000000 +0100
++++ sle11-2009-05-14/arch/x86/kernel/time_32-xen.c     2009-03-24 10:12:35.000000000 +0100
 @@ -1,6 +1,4 @@
  /*
 - *  linux/arch/i386/kernel/time.c
@@ -3331,7 +3259,7 @@ Index: head-2008-12-01/arch/x86/kernel/time_32-xen.c
  #include <xen/interface/vcpu.h>
  
  #include <asm/i8253.h>
-@@ -546,6 +545,13 @@ irqreturn_t timer_interrupt(int irq, voi
+@@ -544,6 +543,13 @@ irqreturn_t timer_interrupt(int irq, voi
        struct shadow_time_info *shadow = &per_cpu(shadow_time, cpu);
        struct vcpu_runstate_info runstate;
  
@@ -3345,7 +3273,7 @@ Index: head-2008-12-01/arch/x86/kernel/time_32-xen.c
        /*
         * Here we are in the timer irq handler. We just have irqs locally
         * disabled but we don't know if the timer_bh is running on the other
-@@ -996,7 +1002,7 @@ static int time_cpufreq_notifier(struct 
+@@ -994,7 +1000,7 @@ static int time_cpufreq_notifier(struct 
        struct cpufreq_freqs *freq = data;
        struct xen_platform_op op;
  
@@ -3354,7 +3282,7 @@ Index: head-2008-12-01/arch/x86/kernel/time_32-xen.c
                return 0;
  
        if (val == CPUFREQ_PRECHANGE)
-@@ -1034,30 +1040,33 @@ core_initcall(cpufreq_time_setup);
+@@ -1032,30 +1038,33 @@ core_initcall(cpufreq_time_setup);
   */
  static ctl_table xen_subtable[] = {
        {
@@ -3394,10 +3322,8 @@ Index: head-2008-12-01/arch/x86/kernel/time_32-xen.c
  };
  static int __init xen_sysctl_init(void)
  {
-Index: head-2008-12-01/arch/x86/kernel/traps_32-xen.c
-===================================================================
---- head-2008-12-01.orig/arch/x86/kernel/traps_32-xen.c        2008-12-01 11:36:47.000000000 +0100
-+++ head-2008-12-01/arch/x86/kernel/traps_32-xen.c     2008-12-01 11:36:55.000000000 +0100
+--- sle11-2009-05-14.orig/arch/x86/kernel/traps_32-xen.c       2009-02-16 16:17:21.000000000 +0100
++++ sle11-2009-05-14/arch/x86/kernel/traps_32-xen.c    2009-02-16 16:18:36.000000000 +0100
 @@ -1,6 +1,4 @@
  /*
 - *  linux/arch/i386/traps.c
@@ -3640,10 +3566,8 @@ Index: head-2008-12-01/arch/x86/kernel/traps_32-xen.c
  
  /*
   * NB. All these are "trap gates" (i.e. events_mask isn't set) except
-Index: head-2008-12-01/arch/x86/kernel/traps_64-xen.c
-===================================================================
---- head-2008-12-01.orig/arch/x86/kernel/traps_64-xen.c        2008-12-01 11:36:47.000000000 +0100
-+++ head-2008-12-01/arch/x86/kernel/traps_64-xen.c     2008-12-01 11:36:55.000000000 +0100
+--- sle11-2009-05-14.orig/arch/x86/kernel/traps_64-xen.c       2009-02-16 16:17:21.000000000 +0100
++++ sle11-2009-05-14/arch/x86/kernel/traps_64-xen.c    2009-02-16 16:18:36.000000000 +0100
 @@ -1,6 +1,4 @@
  /*
 - *  linux/arch/x86-64/traps.c
@@ -3796,10 +3720,8 @@ Index: head-2008-12-01/arch/x86/kernel/traps_64-xen.c
        get_debugreg(condition, 6);
  
        if (notify_die(DIE_DEBUG, "debug", regs, condition, error_code,
-Index: head-2008-12-01/arch/x86/kernel/vsyscall_64-xen.c
-===================================================================
---- head-2008-12-01.orig/arch/x86/kernel/vsyscall_64-xen.c     2008-12-01 11:36:47.000000000 +0100
-+++ head-2008-12-01/arch/x86/kernel/vsyscall_64-xen.c  2008-12-01 11:36:55.000000000 +0100
+--- sle11-2009-05-14.orig/arch/x86/kernel/vsyscall_64-xen.c    2009-02-16 16:17:21.000000000 +0100
++++ sle11-2009-05-14/arch/x86/kernel/vsyscall_64-xen.c 2009-02-16 16:18:36.000000000 +0100
 @@ -1,6 +1,4 @@
  /*
 - *  linux/arch/x86_64/kernel/vsyscall.c
@@ -3889,10 +3811,8 @@ Index: head-2008-12-01/arch/x86/kernel/vsyscall_64-xen.c
                write_rdtscp_aux((node << 12) | cpu);
  
        /* Store cpu number in limit so that it can be loaded quickly
-Index: head-2008-12-01/arch/x86/mm/fault_32-xen.c
-===================================================================
---- head-2008-12-01.orig/arch/x86/mm/fault_32-xen.c    2008-12-01 11:36:47.000000000 +0100
-+++ head-2008-12-01/arch/x86/mm/fault_32-xen.c 2008-12-01 11:36:55.000000000 +0100
+--- sle11-2009-05-14.orig/arch/x86/mm/fault_32-xen.c   2009-02-16 16:17:21.000000000 +0100
++++ sle11-2009-05-14/arch/x86/mm/fault_32-xen.c        2009-02-16 16:18:36.000000000 +0100
 @@ -25,6 +25,7 @@
  #include <linux/kprobes.h>
  #include <linux/uaccess.h>
@@ -4074,10 +3994,8 @@ Index: head-2008-12-01/arch/x86/mm/fault_32-xen.c
        goto no_context;
  
  do_sigbus:
-Index: head-2008-12-01/arch/x86/mm/fault_64-xen.c
-===================================================================
---- head-2008-12-01.orig/arch/x86/mm/fault_64-xen.c    2008-12-01 11:36:47.000000000 +0100
-+++ head-2008-12-01/arch/x86/mm/fault_64-xen.c 2008-12-01 11:36:55.000000000 +0100
+--- sle11-2009-05-14.orig/arch/x86/mm/fault_64-xen.c   2009-02-16 16:17:21.000000000 +0100
++++ sle11-2009-05-14/arch/x86/mm/fault_64-xen.c        2009-02-16 16:18:36.000000000 +0100
 @@ -25,6 +25,7 @@
  #include <linux/kprobes.h>
  #include <linux/uaccess.h>
@@ -4240,10 +4158,88 @@ Index: head-2008-12-01/arch/x86/mm/fault_64-xen.c
 -      return 1;
 -}
 -__setup("pagefaulttrace", enable_pagefaulttrace);
-Index: head-2008-12-01/arch/x86/mm/init_32-xen.c
-===================================================================
---- head-2008-12-01.orig/arch/x86/mm/init_32-xen.c     2008-12-01 11:36:47.000000000 +0100
-+++ head-2008-12-01/arch/x86/mm/init_32-xen.c  2008-12-01 11:36:55.000000000 +0100
+--- sle11-2009-05-14.orig/arch/x86/mm/hypervisor.c     2009-03-04 11:28:34.000000000 +0100
++++ sle11-2009-05-14/arch/x86/mm/hypervisor.c  2009-05-06 10:23:43.000000000 +0200
+@@ -496,6 +496,9 @@ int xen_create_contiguous_region(
+       unsigned long  frame, flags;
+       unsigned int   i;
+       int            rc, success;
++#ifdef CONFIG_64BIT
++      pte_t         *ptep = NULL;
++#endif
+       struct xen_memory_exchange exchange = {
+               .in = {
+                       .nr_extents   = 1UL << order,
+@@ -521,6 +524,27 @@ int xen_create_contiguous_region(
+       if (unlikely(order > MAX_CONTIG_ORDER))
+               return -ENOMEM;
++#ifdef CONFIG_64BIT
++      if (unlikely(vstart > PAGE_OFFSET + MAXMEM)) {
++              unsigned int level;
++
++              if (vstart < __START_KERNEL_map
++                  || vstart + (PAGE_SIZE << order) > (unsigned long)_end)
++                      return -EINVAL;
++              ptep = lookup_address((unsigned long)__va(__pa(vstart)),
++                                    &level);
++              if (ptep && pte_none(*ptep))
++                      ptep = NULL;
++              if (vstart < __START_KERNEL && ptep)
++                      return -EINVAL;
++              if (order > MAX_CONTIG_ORDER - 1)
++                      return -ENOMEM;
++      }
++#else
++      if (unlikely(vstart + (PAGE_SIZE << order) > (unsigned long)high_memory))
++              return -EINVAL;
++#endif
++
+       set_xen_guest_handle(exchange.in.extent_start, in_frames);
+       set_xen_guest_handle(exchange.out.extent_start, &out_frame);
+@@ -533,9 +557,19 @@ int xen_create_contiguous_region(
+               in_frames[i] = pfn_to_mfn((__pa(vstart) >> PAGE_SHIFT) + i);
+               MULTI_update_va_mapping(cr_mcl + i, vstart + (i*PAGE_SIZE),
+                                       __pte_ma(0), 0);
++#ifdef CONFIG_64BIT
++              if (ptep)
++                      MULTI_update_va_mapping(cr_mcl + i + (1U << order),
++                              (unsigned long)__va(__pa(vstart)) + (i*PAGE_SIZE),
++                              __pte_ma(0), 0);
++#endif
+               set_phys_to_machine((__pa(vstart)>>PAGE_SHIFT)+i,
+                       INVALID_P2M_ENTRY);
+       }
++#ifdef CONFIG_64BIT
++      if (ptep)
++              i += i;
++#endif
+       if (HYPERVISOR_multicall_check(cr_mcl, i, NULL))
+               BUG();
+@@ -569,9 +603,18 @@ int xen_create_contiguous_region(
+               frame = success ? (out_frame + i) : in_frames[i];
+               MULTI_update_va_mapping(cr_mcl + i, vstart + (i*PAGE_SIZE),
+                                       pfn_pte_ma(frame, PAGE_KERNEL), 0);
++#ifdef CONFIG_64BIT
++              if (ptep)
++                      MULTI_update_va_mapping(cr_mcl + i + (1U << order),
++                              (unsigned long)__va(__pa(vstart)) + (i*PAGE_SIZE),
++                              pfn_pte_ma(frame, PAGE_KERNEL_RO), 0);
++#endif
+               set_phys_to_machine((__pa(vstart)>>PAGE_SHIFT)+i, frame);
+       }
+-
++#ifdef CONFIG_64BIT
++      if (ptep)
++              i += i;
++#endif
+       cr_mcl[i - 1].args[MULTI_UVMFLAGS_INDEX] = order
+                                                  ? UVMF_TLB_FLUSH|UVMF_ALL
+                                                  : UVMF_INVLPG|UVMF_ALL;
+--- sle11-2009-05-14.orig/arch/x86/mm/init_32-xen.c    2009-02-16 16:17:21.000000000 +0100
++++ sle11-2009-05-14/arch/x86/mm/init_32-xen.c 2009-02-16 16:18:36.000000000 +0100
 @@ -94,7 +94,14 @@ static pte_t * __init one_page_table_ini
  #else
        if (!(__pmd_val(*pmd) & _PAGE_PRESENT)) {
@@ -4326,10 +4322,8 @@ Index: head-2008-12-01/arch/x86/mm/init_32-xen.c
  }
  
  /*
-Index: head-2008-12-01/arch/x86/mm/init_64-xen.c
-===================================================================
---- head-2008-12-01.orig/arch/x86/mm/init_64-xen.c     2008-12-01 11:36:47.000000000 +0100
-+++ head-2008-12-01/arch/x86/mm/init_64-xen.c  2008-12-01 11:36:55.000000000 +0100
+--- sle11-2009-05-14.orig/arch/x86/mm/init_64-xen.c    2009-02-16 16:17:21.000000000 +0100
++++ sle11-2009-05-14/arch/x86/mm/init_64-xen.c 2009-02-16 16:18:36.000000000 +0100
 @@ -767,7 +767,7 @@ static void xen_finish_init_mapping(void
  /* Setup the direct mapping of the physical memory at PAGE_OFFSET.
     This runs before bootmem is initialized and gets pages directly from the 
@@ -4352,7 +4346,7 @@ Index: head-2008-12-01/arch/x86/mm/init_64-xen.c
  #if !defined(CONFIG_ACPI_NUMA) && defined(CONFIG_NUMA)
  int memory_add_physaddr_to_nid(u64 start)
  {
-@@ -1175,14 +1169,6 @@ int in_gate_area_no_task(unsigned long a
+@@ -1173,14 +1167,6 @@ int in_gate_area_no_task(unsigned long a
        return (addr >= VSYSCALL_START) && (addr < VSYSCALL_END);
  }
  
@@ -4367,7 +4361,7 @@ Index: head-2008-12-01/arch/x86/mm/init_64-xen.c
  const char *arch_vma_name(struct vm_area_struct *vma)
  {
        if (vma->vm_mm && vma->vm_start == (long)vma->vm_mm->context.vdso)
-@@ -1191,3 +1177,48 @@ const char *arch_vma_name(struct vm_area
+@@ -1189,3 +1175,48 @@ const char *arch_vma_name(struct vm_area
                return "[vsyscall]";
        return NULL;
  }
@@ -4416,10 +4410,8 @@ Index: head-2008-12-01/arch/x86/mm/init_64-xen.c
 +      return 0;
 +}
 +#endif
-Index: head-2008-12-01/arch/x86/mm/pageattr_64-xen.c
-===================================================================
---- head-2008-12-01.orig/arch/x86/mm/pageattr_64-xen.c 2008-12-01 11:36:47.000000000 +0100
-+++ head-2008-12-01/arch/x86/mm/pageattr_64-xen.c      2008-12-01 11:36:55.000000000 +0100
+--- sle11-2009-05-14.orig/arch/x86/mm/pageattr_64-xen.c        2009-02-16 16:17:21.000000000 +0100
++++ sle11-2009-05-14/arch/x86/mm/pageattr_64-xen.c     2009-02-16 16:18:36.000000000 +0100
 @@ -17,9 +17,6 @@
  #include <asm/pgalloc.h>
  #include <asm/mmu_context.h>
@@ -4641,10 +4633,8 @@ Index: head-2008-12-01/arch/x86/mm/pageattr_64-xen.c
  
        flush_map(&l);
  
-Index: head-2008-12-01/arch/x86/mm/pgtable_32-xen.c
-===================================================================
---- head-2008-12-01.orig/arch/x86/mm/pgtable_32-xen.c  2008-12-01 11:36:47.000000000 +0100
-+++ head-2008-12-01/arch/x86/mm/pgtable_32-xen.c       2008-12-01 11:36:55.000000000 +0100
+--- sle11-2009-05-14.orig/arch/x86/mm/pgtable_32-xen.c 2009-02-16 16:17:21.000000000 +0100
++++ sle11-2009-05-14/arch/x86/mm/pgtable_32-xen.c      2009-02-16 16:18:36.000000000 +0100
 @@ -6,6 +6,7 @@
  #include <linux/kernel.h>
  #include <linux/errno.h>
@@ -4671,10 +4661,8 @@ Index: head-2008-12-01/arch/x86/mm/pgtable_32-xen.c
  {
        memset(pmd, 0, PTRS_PER_PMD*sizeof(pmd_t));
  }
-Index: head-2008-12-01/arch/x86/pci/irq-xen.c
-===================================================================
---- head-2008-12-01.orig/arch/x86/pci/irq-xen.c        2008-12-01 11:36:47.000000000 +0100
-+++ head-2008-12-01/arch/x86/pci/irq-xen.c     2008-12-01 11:36:55.000000000 +0100
+--- sle11-2009-05-14.orig/arch/x86/pci/irq-xen.c       2009-02-16 16:17:21.000000000 +0100
++++ sle11-2009-05-14/arch/x86/pci/irq-xen.c    2009-02-16 16:18:36.000000000 +0100
 @@ -173,7 +173,7 @@ void eisa_set_level_irq(unsigned int irq
  }
  
@@ -4771,11 +4759,9 @@ Index: head-2008-12-01/arch/x86/pci/irq-xen.c
  {
        if (!acer_tm360_irqrouting) {
                acer_tm360_irqrouting = 1;
-Index: head-2008-12-01/drivers/acpi/processor_idle.c
-===================================================================
---- head-2008-12-01.orig/drivers/acpi/processor_idle.c 2008-12-01 11:11:03.000000000 +0100
-+++ head-2008-12-01/drivers/acpi/processor_idle.c      2008-12-01 11:36:55.000000000 +0100
-@@ -1742,6 +1742,13 @@ int acpi_processor_cst_has_changed(struc
+--- sle11-2009-05-14.orig/drivers/acpi/processor_idle.c        2009-02-16 15:58:14.000000000 +0100
++++ sle11-2009-05-14/drivers/acpi/processor_idle.c     2009-02-16 16:18:36.000000000 +0100
+@@ -1743,6 +1743,13 @@ int acpi_processor_cst_has_changed(struc
        if (!pr->flags.power_setup_done)
                return -ENODEV;
  
@@ -4789,10 +4775,8 @@ Index: head-2008-12-01/drivers/acpi/processor_idle.c
        cpuidle_pause_and_lock();
        cpuidle_disable_device(&pr->power.dev);
        acpi_processor_get_power_info(pr);
-Index: head-2008-12-01/drivers/cpuidle/Kconfig
-===================================================================
---- head-2008-12-01.orig/drivers/cpuidle/Kconfig       2008-12-01 10:53:14.000000000 +0100
-+++ head-2008-12-01/drivers/cpuidle/Kconfig    2008-12-01 11:36:55.000000000 +0100
+--- sle11-2009-05-14.orig/drivers/cpuidle/Kconfig      2009-05-14 10:56:29.000000000 +0200
++++ sle11-2009-05-14/drivers/cpuidle/Kconfig   2009-02-16 16:18:36.000000000 +0100
 @@ -1,6 +1,7 @@
  
  config CPU_IDLE
@@ -4801,10 +4785,48 @@ Index: head-2008-12-01/drivers/cpuidle/Kconfig
        default ACPI
        help
          CPU idle is a generic framework for supporting software-controlled
-Index: head-2008-12-01/drivers/pci/msi-xen.c
-===================================================================
---- head-2008-12-01.orig/drivers/pci/msi-xen.c 2008-12-01 11:36:13.000000000 +0100
-+++ head-2008-12-01/drivers/pci/msi-xen.c      2008-12-01 11:36:55.000000000 +0100
+--- sle11-2009-05-14.orig/drivers/oprofile/cpu_buffer.c        2009-02-16 16:01:39.000000000 +0100
++++ sle11-2009-05-14/drivers/oprofile/cpu_buffer.c     2009-03-12 16:15:32.000000000 +0100
+@@ -308,6 +308,37 @@ void oprofile_add_trace(unsigned long pc
+ }
+ #ifdef CONFIG_XEN
++/*
++ * This is basically log_sample(b, ESCAPE_CODE, cpu_mode, CPU_TRACE_BEGIN),
++ * as was previously accessible through oprofile_add_pc().
++ */
++void oprofile_add_mode(int cpu_mode)
++{
++      struct oprofile_cpu_buffer *cpu_buf = &__get_cpu_var(cpu_buffer);
++      struct task_struct *task;
++
++      if (nr_available_slots(cpu_buf) < 3) {
++              cpu_buf->sample_lost_overflow++;
++              return;
++      }
++
++      task = current;
++
++      /* notice a switch from user->kernel or vice versa */
++      if (cpu_buf->last_cpu_mode != cpu_mode) {
++              cpu_buf->last_cpu_mode = cpu_mode;
++              add_code(cpu_buf, cpu_mode);
++      }
++
++      /* notice a task switch */
++      if (cpu_buf->last_task != task) {
++              cpu_buf->last_task = task;
++              add_code(cpu_buf, (unsigned long)task);
++      }
++
++      add_code(cpu_buf, CPU_TRACE_BEGIN);
++}
++
+ int oprofile_add_domain_switch(int32_t domain_id)
+ {
+       struct oprofile_cpu_buffer * cpu_buf = &cpu_buffer[smp_processor_id()];
+--- sle11-2009-05-14.orig/drivers/pci/msi-xen.c        2008-12-15 11:27:22.000000000 +0100
++++ sle11-2009-05-14/drivers/pci/msi-xen.c     2009-02-16 16:18:36.000000000 +0100
 @@ -264,6 +264,12 @@ static int msi_map_vector(struct pci_dev
        return msi_map_pirq_to_vector(dev, -1, entry_nr, table_base);
  }
@@ -4818,24 +4840,24 @@ Index: head-2008-12-01/drivers/pci/msi-xen.c
  #ifdef CONFIG_PM
  static void __pci_restore_msi_state(struct pci_dev *dev)
  {
-@@ -276,7 +282,7 @@ static void __pci_restore_msi_state(stru
-       if (pirq < 0)
+@@ -272,7 +278,7 @@ static void __pci_restore_msi_state(stru
+       if (!dev->msi_enabled)
                return;
  
 -      pci_intx(dev, 0);               /* disable intx */
 +      pci_intx_for_msi(dev, 0);
        msi_set_enable(dev, 0);
- }
  
-@@ -313,7 +319,7 @@ static void __pci_restore_msix_state(str
-       }
-       spin_unlock_irqrestore(&msi_dev_entry->pirq_list_lock, flags);
+       pirq = msi_map_pirq_to_vector(dev, dev->irq, 0, 0);
+@@ -295,7 +301,7 @@ static void __pci_restore_msix_state(str
+       if (!dev->msix_enabled)
+               return;
  
 -      pci_intx(dev, 0);               /* disable intx */
 +      pci_intx_for_msi(dev, 0);
        msix_set_enable(dev, 0);
- }
  
+       msi_dev_entry = get_msi_dev_pirq_list(dev);
 @@ -348,7 +354,7 @@ static int msi_capability_init(struct pc
                return -EBUSY;
  
@@ -4854,7 +4876,7 @@ Index: head-2008-12-01/drivers/pci/msi-xen.c
        msix_set_enable(dev, 1);
        dev->msix_enabled = 1;
  
-@@ -562,7 +568,7 @@ void pci_disable_msi(struct pci_dev* dev
+@@ -557,7 +563,7 @@ void pci_disable_msi(struct pci_dev* dev
  
        /* Disable MSI mode */
        msi_set_enable(dev, 0);
@@ -4863,7 +4885,7 @@ Index: head-2008-12-01/drivers/pci/msi-xen.c
        dev->msi_enabled = 0;
  }
  EXPORT_SYMBOL(pci_disable_msi);
-@@ -701,7 +707,7 @@ void pci_disable_msix(struct pci_dev* de
+@@ -696,7 +702,7 @@ void pci_disable_msix(struct pci_dev* de
  
        /* Disable MSI mode */
        msix_set_enable(dev, 0);
@@ -4872,10 +4894,8 @@ Index: head-2008-12-01/drivers/pci/msi-xen.c
        dev->msix_enabled = 0;
  }
  EXPORT_SYMBOL(pci_disable_msix);
-Index: head-2008-12-01/drivers/xen/blkback/blkback.c
-===================================================================
---- head-2008-12-01.orig/drivers/xen/blkback/blkback.c 2008-12-01 11:36:47.000000000 +0100
-+++ head-2008-12-01/drivers/xen/blkback/blkback.c      2008-12-01 11:36:55.000000000 +0100
+--- sle11-2009-05-14.orig/drivers/xen/blkback/blkback.c        2009-02-16 16:17:21.000000000 +0100
++++ sle11-2009-05-14/drivers/xen/blkback/blkback.c     2009-02-16 16:18:36.000000000 +0100
 @@ -269,13 +269,10 @@ static void __end_block_io_op(pending_re
        }
  }
@@ -4891,85 +4911,39 @@ Index: head-2008-12-01/drivers/xen/blkback/blkback.c
  }
  
  
-Index: head-2008-12-01/drivers/xen/blkfront/blkfront.c
-===================================================================
---- head-2008-12-01.orig/drivers/xen/blkfront/blkfront.c       2008-12-01 11:36:47.000000000 +0100
-+++ head-2008-12-01/drivers/xen/blkfront/blkfront.c    2008-12-01 11:36:55.000000000 +0100
-@@ -587,9 +587,8 @@ static int blkif_queue_request(struct re
-       struct blkfront_info *info = req->rq_disk->private_data;
-       unsigned long buffer_mfn;
-       blkif_request_t *ring_req;
--      struct bio *bio;
-       struct bio_vec *bvec;
--      int idx;
-+      struct req_iterator iter;
-       unsigned long id;
-       unsigned int fsect, lsect;
-       int ref;
-@@ -623,34 +622,32 @@ static int blkif_queue_request(struct re
-               ring_req->operation = BLKIF_OP_WRITE_BARRIER;
-       ring_req->nr_segments = 0;
--      rq_for_each_bio (bio, req) {
--              bio_for_each_segment (bvec, bio, idx) {
--                      BUG_ON(ring_req->nr_segments
--                             == BLKIF_MAX_SEGMENTS_PER_REQUEST);
--                      buffer_mfn = page_to_phys(bvec->bv_page) >> PAGE_SHIFT;
--                      fsect = bvec->bv_offset >> 9;
--                      lsect = fsect + (bvec->bv_len >> 9) - 1;
--                      /* install a grant reference. */
--                      ref = gnttab_claim_grant_reference(&gref_head);
--                      BUG_ON(ref == -ENOSPC);
-+      rq_for_each_segment(bvec, req, iter) {
-+              BUG_ON(ring_req->nr_segments
-+                     == BLKIF_MAX_SEGMENTS_PER_REQUEST);
-+              buffer_mfn = page_to_phys(bvec->bv_page) >> PAGE_SHIFT;
-+              fsect = bvec->bv_offset >> 9;
-+              lsect = fsect + (bvec->bv_len >> 9) - 1;
-+              /* install a grant reference. */
-+              ref = gnttab_claim_grant_reference(&gref_head);
-+              BUG_ON(ref == -ENOSPC);
-+
-+              gnttab_grant_foreign_access_ref(
-+                      ref,
-+                      info->xbdev->otherend_id,
-+                      buffer_mfn,
-+                      rq_data_dir(req) ? GTF_readonly : 0 );
-+
-+              info->shadow[id].frame[ring_req->nr_segments] =
-+                      mfn_to_pfn(buffer_mfn);
-+
-+              ring_req->seg[ring_req->nr_segments] =
-+                      (struct blkif_request_segment) {
-+                              .gref       = ref,
-+                              .first_sect = fsect,
-+                              .last_sect  = lsect };
--                      gnttab_grant_foreign_access_ref(
--                              ref,
--                              info->xbdev->otherend_id,
--                              buffer_mfn,
--                              rq_data_dir(req) ? GTF_readonly : 0 );
--
--                      info->shadow[id].frame[ring_req->nr_segments] =
--                              mfn_to_pfn(buffer_mfn);
--
--                      ring_req->seg[ring_req->nr_segments] =
--                              (struct blkif_request_segment) {
--                                      .gref       = ref,
--                                      .first_sect = fsect,
--                                      .last_sect  = lsect };
--
--                      ring_req->nr_segments++;
--              }
-+              ring_req->nr_segments++;
-       }
-       info->ring.req_prod_pvt++;
-Index: head-2008-12-01/drivers/xen/core/machine_kexec.c
-===================================================================
---- head-2008-12-01.orig/drivers/xen/core/machine_kexec.c      2008-10-13 13:43:45.000000000 +0200
-+++ head-2008-12-01/drivers/xen/core/machine_kexec.c   2008-12-01 11:36:55.000000000 +0100
+--- sle11-2009-05-14.orig/drivers/xen/blkfront/blkfront.c      2009-03-24 10:12:03.000000000 +0100
++++ sle11-2009-05-14/drivers/xen/blkfront/blkfront.c   2009-02-16 16:18:36.000000000 +0100
+@@ -233,7 +233,7 @@ static int setup_blkring(struct xenbus_d
+       SHARED_RING_INIT(sring);
+       FRONT_RING_INIT(&info->ring, sring, PAGE_SIZE);
+-      memset(info->sg, 0, sizeof(info->sg));
++      sg_init_table(info->sg, BLKIF_MAX_SEGMENTS_PER_REQUEST);
+       err = xenbus_grant_ring(dev, virt_to_mfn(info->ring.sring));
+       if (err < 0) {
+@@ -625,9 +625,8 @@ static int blkif_queue_request(struct re
+       ring_req->nr_segments = blk_rq_map_sg(req->q, req, info->sg);
+       BUG_ON(ring_req->nr_segments > BLKIF_MAX_SEGMENTS_PER_REQUEST);
+-      for (i = 0; i < ring_req->nr_segments; ++i) {
+-                      sg = info->sg + i;
+-                      buffer_mfn = page_to_phys(sg->page) >> PAGE_SHIFT;
++      for_each_sg(info->sg, sg, ring_req->nr_segments, i) {
++                      buffer_mfn = page_to_phys(sg_page(sg)) >> PAGE_SHIFT;
+                       fsect = sg->offset >> 9;
+                       lsect = fsect + (sg->length >> 9) - 1;
+                       /* install a grant reference. */
+--- sle11-2009-05-14.orig/drivers/xen/core/firmware.c  2009-05-14 10:56:29.000000000 +0200
++++ sle11-2009-05-14/drivers/xen/core/firmware.c       2009-03-25 18:10:23.000000000 +0100
+@@ -1,4 +1,5 @@
+ #include <linux/kernel.h>
++#include <linux/string.h>
+ #include <linux/errno.h>
+ #include <linux/init.h>
+ #include <linux/edd.h>
+--- sle11-2009-05-14.orig/drivers/xen/core/machine_kexec.c     2009-05-14 10:56:29.000000000 +0200
++++ sle11-2009-05-14/drivers/xen/core/machine_kexec.c  2009-02-17 11:46:41.000000000 +0100
 @@ -29,6 +29,10 @@ void __init xen_machine_kexec_setup_reso
        int k = 0;
        int rc;
@@ -4981,10 +4955,36 @@ Index: head-2008-12-01/drivers/xen/core/machine_kexec.c
        if (!is_initial_xendomain())
                return;
  
-Index: head-2008-12-01/drivers/xen/core/smpboot.c
-===================================================================
---- head-2008-12-01.orig/drivers/xen/core/smpboot.c    2008-12-01 11:36:13.000000000 +0100
-+++ head-2008-12-01/drivers/xen/core/smpboot.c 2008-12-01 11:36:55.000000000 +0100
+@@ -130,6 +134,13 @@ void __init xen_machine_kexec_setup_reso
+                                         xen_max_nr_phys_cpus))
+               goto err;
++#ifdef CONFIG_X86
++      if (xen_create_contiguous_region((unsigned long)&vmcoreinfo_note,
++                                       get_order(sizeof(vmcoreinfo_note)),
++                                       BITS_PER_LONG))
++              goto err;
++#endif
++
+       return;
+  err:
+@@ -205,6 +216,13 @@ NORET_TYPE void machine_kexec(struct kim
+       panic("KEXEC_CMD_kexec hypercall should not return\n");
+ }
++#ifdef CONFIG_X86
++unsigned long paddr_vmcoreinfo_note(void)
++{
++      return virt_to_machine(&vmcoreinfo_note);
++}
++#endif
++
+ void machine_shutdown(void)
+ {
+       /* do nothing */
+--- sle11-2009-05-14.orig/drivers/xen/core/smpboot.c   2008-12-15 11:27:22.000000000 +0100
++++ sle11-2009-05-14/drivers/xen/core/smpboot.c        2009-02-16 16:18:36.000000000 +0100
 @@ -45,8 +45,8 @@ cpumask_t cpu_possible_map;
  EXPORT_SYMBOL(cpu_possible_map);
  cpumask_t cpu_initialized_map;
@@ -4994,9 +4994,9 @@ Index: head-2008-12-01/drivers/xen/core/smpboot.c
 +DEFINE_PER_CPU(struct cpuinfo_x86, cpu_info);
 +EXPORT_PER_CPU_SYMBOL(cpu_info);
  
- #ifdef CONFIG_HOTPLUG_CPU
DEFINE_PER_CPU(int, cpu_state) = { 0 };
-@@ -59,13 +59,13 @@ static char callfunc_name[NR_CPUS][15];
+ static DEFINE_PER_CPU(int, resched_irq);
static DEFINE_PER_CPU(int, callfunc_irq);
+@@ -55,13 +55,13 @@ static char callfunc_name[NR_CPUS][15];
  
  u8 cpu_2_logical_apicid[NR_CPUS] = { [0 ... NR_CPUS-1] = BAD_APICID };
  
@@ -5015,7 +5015,7 @@ Index: head-2008-12-01/drivers/xen/core/smpboot.c
  #endif
  
  void __init prefill_possible_map(void)
-@@ -90,25 +90,25 @@ void __init smp_alloc_memory(void)
+@@ -86,25 +86,25 @@ void __init smp_alloc_memory(void)
  static inline void
  set_cpu_sibling_map(unsigned int cpu)
  {
@@ -5051,7 +5051,7 @@ Index: head-2008-12-01/drivers/xen/core/smpboot.c
  }
  
  static int __cpuinit xen_smp_intr_init(unsigned int cpu)
-@@ -167,9 +167,9 @@ void __cpuinit cpu_bringup(void)
+@@ -163,9 +163,9 @@ void __cpuinit cpu_bringup(void)
  {
        cpu_init();
  #ifdef __i386__
@@ -5063,7 +5063,7 @@ Index: head-2008-12-01/drivers/xen/core/smpboot.c
  #endif
        touch_softlockup_watchdog();
        preempt_disable();
-@@ -270,16 +270,16 @@ void __init smp_prepare_cpus(unsigned in
+@@ -266,16 +266,16 @@ void __init smp_prepare_cpus(unsigned in
        if (HYPERVISOR_vcpu_op(VCPUOP_get_physid, 0, &cpu_id) == 0)
                apicid = xen_vcpu_physid_to_x86_apicid(cpu_id.phys_id);
        boot_cpu_data.apicid = apicid;
@@ -5084,7 +5084,7 @@ Index: head-2008-12-01/drivers/xen/core/smpboot.c
        }
  
        set_cpu_sibling_map(0);
-@@ -324,11 +324,12 @@ void __init smp_prepare_cpus(unsigned in
+@@ -320,11 +320,12 @@ void __init smp_prepare_cpus(unsigned in
                apicid = cpu;
                if (HYPERVISOR_vcpu_op(VCPUOP_get_physid, cpu, &cpu_id) == 0)
                        apicid = xen_vcpu_physid_to_x86_apicid(cpu_id.phys_id);
@@ -5100,10 +5100,8 @@ Index: head-2008-12-01/drivers/xen/core/smpboot.c
  
  #ifdef __x86_64__
                cpu_pda(cpu)->pcurrent = idle;
-Index: head-2008-12-01/drivers/xen/netback/loopback.c
-===================================================================
---- head-2008-12-01.orig/drivers/xen/netback/loopback.c        2008-12-01 11:32:38.000000000 +0100
-+++ head-2008-12-01/drivers/xen/netback/loopback.c     2008-12-01 11:36:55.000000000 +0100
+--- sle11-2009-05-14.orig/drivers/xen/netback/loopback.c       2008-12-15 11:26:44.000000000 +0100
++++ sle11-2009-05-14/drivers/xen/netback/loopback.c    2009-02-16 16:18:36.000000000 +0100
 @@ -285,9 +285,9 @@ static void __exit clean_loopback(int i)
        char dev_name[IFNAMSIZ];
  
@@ -5116,11 +5114,9 @@ Index: head-2008-12-01/drivers/xen/netback/loopback.c
        if (dev1 && dev2) {
                unregister_netdev(dev2);
                unregister_netdev(dev1);
-Index: head-2008-12-01/drivers/xen/netback/netback.c
-===================================================================
---- head-2008-12-01.orig/drivers/xen/netback/netback.c 2008-12-01 11:36:13.000000000 +0100
-+++ head-2008-12-01/drivers/xen/netback/netback.c      2008-12-01 11:36:55.000000000 +0100
-@@ -334,8 +334,8 @@ static void xen_network_done_notify(void
+--- sle11-2009-05-14.orig/drivers/xen/netback/netback.c        2008-12-23 09:33:22.000000000 +0100
++++ sle11-2009-05-14/drivers/xen/netback/netback.c     2009-02-16 16:18:36.000000000 +0100
+@@ -350,8 +350,8 @@ static void xen_network_done_notify(void
  {
        static struct net_device *eth0_dev = NULL;
        if (unlikely(eth0_dev == NULL))
@@ -5131,10 +5127,8 @@ Index: head-2008-12-01/drivers/xen/netback/netback.c
  }
  /* 
   * Add following to poll() function in NAPI driver (Tigon3 is example):
-Index: head-2008-12-01/drivers/xen/netback/xenbus.c
-===================================================================
---- head-2008-12-01.orig/drivers/xen/netback/xenbus.c  2008-12-01 11:36:07.000000000 +0100
-+++ head-2008-12-01/drivers/xen/netback/xenbus.c       2008-12-01 11:36:55.000000000 +0100
+--- sle11-2009-05-14.orig/drivers/xen/netback/xenbus.c 2009-03-04 11:25:55.000000000 +0100
++++ sle11-2009-05-14/drivers/xen/netback/xenbus.c      2009-02-16 16:18:36.000000000 +0100
 @@ -149,12 +149,10 @@ fail:
   * and vif variables to the environment, for the benefit of the vif-* hotplug
   * scripts.
@@ -5167,11 +5161,9 @@ Index: head-2008-12-01/drivers/xen/netback/xenbus.c
  
        return 0;
  }
-Index: head-2008-12-01/drivers/xen/netfront/accel.c
-===================================================================
---- head-2008-12-01.orig/drivers/xen/netfront/accel.c  2008-08-07 12:44:36.000000000 +0200
-+++ head-2008-12-01/drivers/xen/netfront/accel.c       2008-12-01 11:36:55.000000000 +0100
-@@ -325,13 +325,13 @@ accelerator_set_vif_state_hooks(struct n
+--- sle11-2009-05-14.orig/drivers/xen/netfront/accel.c 2009-04-09 14:43:45.000000000 +0200
++++ sle11-2009-05-14/drivers/xen/netfront/accel.c      2009-03-30 16:39:19.000000000 +0200
+@@ -313,7 +313,7 @@ accelerator_set_vif_state_hooks(struct n
        DPRINTK("%p\n",vif_state);
  
        /* Make sure there are no data path operations going on */
@@ -5179,7 +5171,9 @@ Index: head-2008-12-01/drivers/xen/netfront/accel.c
 +      napi_disable(&vif_state->np->napi);
        netif_tx_lock_bh(vif_state->np->netdev);
  
-       vif_state->hooks = vif_state->np->accelerator->hooks;
+       accelerator = vif_state->np->accelerator;
+@@ -322,7 +322,7 @@ accelerator_set_vif_state_hooks(struct n
+       spin_unlock_irqrestore(&accelerator->vif_states_lock, flags);
  
        netif_tx_unlock_bh(vif_state->np->netdev);
 -      netif_poll_enable(vif_state->np->netdev);
@@ -5187,28 +5181,26 @@ Index: head-2008-12-01/drivers/xen/netfront/accel.c
  }
  
  
-@@ -509,7 +509,7 @@ accelerator_remove_single_hook(struct ne
-                              struct netfront_accel_vif_state *vif_state)
- {
+@@ -496,7 +496,7 @@ accelerator_remove_single_hook(struct ne
+       unsigned long flags;
        /* Make sure there are no data path operations going on */
 -      netif_poll_disable(vif_state->np->netdev);
 +      napi_disable(&vif_state->np->napi);
        netif_tx_lock_bh(vif_state->np->netdev);
  
-       /* 
-@@ -521,7 +521,7 @@ accelerator_remove_single_hook(struct ne
-       vif_state->hooks = NULL;
-       
+       spin_lock_irqsave(&accelerator->vif_states_lock, flags);
+@@ -512,7 +512,7 @@ accelerator_remove_single_hook(struct ne
+       spin_unlock_irqrestore(&accelerator->vif_states_lock, flags);
        netif_tx_unlock_bh(vif_state->np->netdev);
 -      netif_poll_enable(vif_state->np->netdev);                      
 +      napi_enable(&vif_state->np->napi);
  }
  
  
-Index: head-2008-12-01/drivers/xen/netfront/netfront.c
-===================================================================
---- head-2008-12-01.orig/drivers/xen/netfront/netfront.c       2008-12-01 11:36:13.000000000 +0100
-+++ head-2008-12-01/drivers/xen/netfront/netfront.c    2008-12-01 11:36:55.000000000 +0100
+--- sle11-2009-05-14.orig/drivers/xen/netfront/netfront.c      2009-03-30 16:36:30.000000000 +0200
++++ sle11-2009-05-14/drivers/xen/netfront/netfront.c   2009-03-30 16:39:44.000000000 +0200
 @@ -626,6 +626,7 @@ static int network_open(struct net_devic
        struct netfront_info *np = netdev_priv(dev);
  
@@ -5327,10 +5319,8 @@ Index: head-2008-12-01/drivers/xen/netfront/netfront.c
        SET_NETDEV_DEV(netdev, &dev->dev);
  
        np->netdev = netdev;
-Index: head-2008-12-01/drivers/xen/netfront/netfront.h
-===================================================================
---- head-2008-12-01.orig/drivers/xen/netfront/netfront.h       2008-01-07 13:19:18.000000000 +0100
-+++ head-2008-12-01/drivers/xen/netfront/netfront.h    2008-12-01 11:36:55.000000000 +0100
+--- sle11-2009-05-14.orig/drivers/xen/netfront/netfront.h      2009-05-14 10:56:29.000000000 +0200
++++ sle11-2009-05-14/drivers/xen/netfront/netfront.h   2009-02-16 16:18:36.000000000 +0100
 @@ -157,6 +157,8 @@ struct netfront_info {
        spinlock_t   tx_lock;
        spinlock_t   rx_lock;
@@ -5340,10 +5330,8 @@ Index: head-2008-12-01/drivers/xen/netfront/netfront.h
        unsigned int irq;
        unsigned int copying_receiver;
        unsigned int carrier;
-Index: head-2008-12-01/drivers/xen/pciback/Makefile
-===================================================================
---- head-2008-12-01.orig/drivers/xen/pciback/Makefile  2008-07-21 11:00:33.000000000 +0200
-+++ head-2008-12-01/drivers/xen/pciback/Makefile       2008-12-01 11:36:55.000000000 +0100
+--- sle11-2009-05-14.orig/drivers/xen/pciback/Makefile 2009-05-14 10:56:29.000000000 +0200
++++ sle11-2009-05-14/drivers/xen/pciback/Makefile      2009-02-16 16:18:36.000000000 +0100
 @@ -12,6 +12,4 @@ pciback-$(CONFIG_XEN_PCIDEV_BACKEND_SLOT
  pciback-$(CONFIG_XEN_PCIDEV_BACKEND_PASS) += passthrough.o
  pciback-$(CONFIG_XEN_PCIDEV_BACKEND_CONTROLLER) += controller.o
@@ -5352,10 +5340,8 @@ Index: head-2008-12-01/drivers/xen/pciback/Makefile
 -EXTRA_CFLAGS += -DDEBUG
 -endif
 +ccflags-$(CONFIG_XEN_PCIDEV_BE_DEBUG) += -DDEBUG
-Index: head-2008-12-01/drivers/xen/pcifront/Makefile
-===================================================================
---- head-2008-12-01.orig/drivers/xen/pcifront/Makefile 2007-06-12 13:13:45.000000000 +0200
-+++ head-2008-12-01/drivers/xen/pcifront/Makefile      2008-12-01 11:36:55.000000000 +0100
+--- sle11-2009-05-14.orig/drivers/xen/pcifront/Makefile        2009-05-14 10:56:29.000000000 +0200
++++ sle11-2009-05-14/drivers/xen/pcifront/Makefile     2009-02-16 16:18:36.000000000 +0100
 @@ -2,6 +2,4 @@ obj-y += pcifront.o
  
  pcifront-y := pci_op.o xenbus.o pci.o
@@ -5364,10 +5350,8 @@ Index: head-2008-12-01/drivers/xen/pcifront/Makefile
 -EXTRA_CFLAGS += -DDEBUG
 -endif
 +ccflags-$(CONFIG_XEN_PCIDEV_FE_DEBUG) += -DDEBUG
-Index: head-2008-12-01/drivers/xen/scsiback/emulate.c
-===================================================================
---- head-2008-12-01.orig/drivers/xen/scsiback/emulate.c        2008-08-07 12:44:36.000000000 +0200
-+++ head-2008-12-01/drivers/xen/scsiback/emulate.c     2008-12-01 11:36:55.000000000 +0100
+--- sle11-2009-05-14.orig/drivers/xen/scsiback/emulate.c       2009-05-14 10:56:29.000000000 +0200
++++ sle11-2009-05-14/drivers/xen/scsiback/emulate.c    2009-02-16 16:18:36.000000000 +0100
 @@ -104,9 +104,10 @@ static void resp_not_supported_cmd(pendi
  }
  
@@ -5446,10 +5430,8 @@ Index: head-2008-12-01/drivers/xen/scsiback/emulate.c
                to += copy_size;
        }
  
-Index: head-2008-12-01/drivers/xen/scsiback/scsiback.c
-===================================================================
---- head-2008-12-01.orig/drivers/xen/scsiback/scsiback.c       2008-12-01 11:32:38.000000000 +0100
-+++ head-2008-12-01/drivers/xen/scsiback/scsiback.c    2008-12-01 11:36:55.000000000 +0100
+--- sle11-2009-05-14.orig/drivers/xen/scsiback/scsiback.c      2008-12-15 11:26:44.000000000 +0100
++++ sle11-2009-05-14/drivers/xen/scsiback/scsiback.c   2009-02-16 16:18:36.000000000 +0100
 @@ -247,6 +247,8 @@ static int scsiback_gnttab_data_map(vscs
        write = (data_dir == DMA_TO_DEVICE);
  
@@ -5570,10 +5552,8 @@ Index: head-2008-12-01/drivers/xen/scsiback/scsiback.c
        }
  
        return err;
-Index: head-2008-12-01/drivers/xen/scsifront/scsifront.c
-===================================================================
---- head-2008-12-01.orig/drivers/xen/scsifront/scsifront.c     2008-12-01 11:36:47.000000000 +0100
-+++ head-2008-12-01/drivers/xen/scsifront/scsifront.c  2008-12-01 11:36:55.000000000 +0100
+--- sle11-2009-05-14.orig/drivers/xen/scsifront/scsifront.c    2009-02-16 16:17:21.000000000 +0100
++++ sle11-2009-05-14/drivers/xen/scsifront/scsifront.c 2009-02-16 16:18:36.000000000 +0100
 @@ -246,11 +246,10 @@ static int map_data_for_request(struct v
  {
        grant_ref_t gref_head;
@@ -5636,10 +5616,8 @@ Index: head-2008-12-01/drivers/xen/scsifront/scsifront.c
                                off = 0;
                                ref_cnt++;
                        }
-Index: head-2008-12-01/drivers/xen/sfc_netback/accel_fwd.c
-===================================================================
---- head-2008-12-01.orig/drivers/xen/sfc_netback/accel_fwd.c   2008-12-01 11:36:13.000000000 +0100
-+++ head-2008-12-01/drivers/xen/sfc_netback/accel_fwd.c        2008-12-01 11:36:55.000000000 +0100
+--- sle11-2009-05-14.orig/drivers/xen/sfc_netback/accel_fwd.c  2008-12-15 11:27:22.000000000 +0100
++++ sle11-2009-05-14/drivers/xen/sfc_netback/accel_fwd.c       2009-02-16 16:18:36.000000000 +0100
 @@ -181,10 +181,11 @@ int netback_accel_fwd_add(const __u8 *ma
        unsigned long flags;
        cuckoo_hash_mac_key key = cuckoo_mac_to_key(mac);
@@ -5694,10 +5672,8 @@ Index: head-2008-12-01/drivers/xen/sfc_netback/accel_fwd.c
  
                spin_lock_irqsave(&fwd_set->fwd_lock, flags);
                /*
-Index: head-2008-12-01/drivers/xen/sfc_netback/accel_msg.c
-===================================================================
---- head-2008-12-01.orig/drivers/xen/sfc_netback/accel_msg.c   2008-02-20 09:32:49.000000000 +0100
-+++ head-2008-12-01/drivers/xen/sfc_netback/accel_msg.c        2008-12-01 11:36:55.000000000 +0100
+--- sle11-2009-05-14.orig/drivers/xen/sfc_netback/accel_msg.c  2009-05-14 10:56:29.000000000 +0200
++++ sle11-2009-05-14/drivers/xen/sfc_netback/accel_msg.c       2009-02-16 16:18:36.000000000 +0100
 @@ -57,11 +57,11 @@ static void netback_accel_msg_tx_localma
  {
        unsigned long lock_state;
@@ -5712,10 +5688,8 @@ Index: head-2008-12-01/drivers/xen/sfc_netback/accel_msg.c
        
        msg = net_accel_msg_start_send(bend->shared_page, &bend->to_domU,
                                       &lock_state);
-Index: head-2008-12-01/drivers/xen/sfc_netfront/accel_msg.c
-===================================================================
---- head-2008-12-01.orig/drivers/xen/sfc_netfront/accel_msg.c  2008-12-01 11:29:05.000000000 +0100
-+++ head-2008-12-01/drivers/xen/sfc_netfront/accel_msg.c       2008-12-01 11:36:55.000000000 +0100
+--- sle11-2009-05-14.orig/drivers/xen/sfc_netfront/accel_msg.c 2009-03-04 11:28:34.000000000 +0100
++++ sle11-2009-05-14/drivers/xen/sfc_netfront/accel_msg.c      2009-02-16 16:18:36.000000000 +0100
 @@ -41,11 +41,13 @@ static void vnic_start_interrupts(netfro
        /* Prime our interrupt */
        spin_lock_irqsave(&vnic->irq_enabled_lock, flags);
@@ -5796,10 +5770,8 @@ Index: head-2008-12-01/drivers/xen/sfc_netfront/accel_msg.c
        }
        else {
                spin_unlock_irqrestore(&vnic->irq_enabled_lock, flags);
-Index: head-2008-12-01/drivers/xen/sfc_netfront/accel_vi.c
-===================================================================
---- head-2008-12-01.orig/drivers/xen/sfc_netfront/accel_vi.c   2008-12-01 11:36:13.000000000 +0100
-+++ head-2008-12-01/drivers/xen/sfc_netfront/accel_vi.c        2008-12-01 11:36:55.000000000 +0100
+--- sle11-2009-05-14.orig/drivers/xen/sfc_netfront/accel_vi.c  2009-03-30 16:36:26.000000000 +0200
++++ sle11-2009-05-14/drivers/xen/sfc_netfront/accel_vi.c       2009-03-30 16:39:38.000000000 +0200
 @@ -641,8 +641,10 @@ netfront_accel_vi_tx_post(netfront_accel
                                          (cuckoo_hash_key *)(&key), &value);
  
@@ -5826,10 +5798,8 @@ Index: head-2008-12-01/drivers/xen/sfc_netfront/accel_vi.c
  
                if (ip->protocol == IPPROTO_TCP) {
                        struct tcphdr *tcp = (struct tcphdr *)
-Index: head-2008-12-01/drivers/xen/sfc_netutil/accel_util.h
-===================================================================
---- head-2008-12-01.orig/drivers/xen/sfc_netutil/accel_util.h  2008-02-20 09:32:49.000000000 +0100
-+++ head-2008-12-01/drivers/xen/sfc_netutil/accel_util.h       2008-12-01 11:36:55.000000000 +0100
+--- sle11-2009-05-14.orig/drivers/xen/sfc_netutil/accel_util.h 2009-05-14 10:56:29.000000000 +0200
++++ sle11-2009-05-14/drivers/xen/sfc_netutil/accel_util.h      2009-02-16 16:18:36.000000000 +0100
 @@ -63,9 +63,6 @@
                        DPRINTK("%s at %s:%d\n", #exp, __FILE__, __LINE__); \
        } while(0)
@@ -5840,10 +5810,8 @@ Index: head-2008-12-01/drivers/xen/sfc_netutil/accel_util.h
  #include <xen/xenbus.h>
  
  /*! Map a set of pages from another domain
-Index: head-2008-12-01/drivers/xen/xenbus/xenbus_probe.c
-===================================================================
---- head-2008-12-01.orig/drivers/xen/xenbus/xenbus_probe.c     2008-12-01 11:36:47.000000000 +0100
-+++ head-2008-12-01/drivers/xen/xenbus/xenbus_probe.c  2008-12-01 11:36:55.000000000 +0100
+--- sle11-2009-05-14.orig/drivers/xen/xenbus/xenbus_probe.c    2009-02-16 16:17:21.000000000 +0100
++++ sle11-2009-05-14/drivers/xen/xenbus/xenbus_probe.c 2009-02-16 16:18:36.000000000 +0100
 @@ -174,11 +174,9 @@ static int read_backend_details(struct x
  }
  
@@ -5873,10 +5841,8 @@ Index: head-2008-12-01/drivers/xen/xenbus/xenbus_probe.c
  
        return 0;
  }
-Index: head-2008-12-01/drivers/xen/xenbus/xenbus_probe_backend.c
-===================================================================
---- head-2008-12-01.orig/drivers/xen/xenbus/xenbus_probe_backend.c     2008-12-01 11:36:47.000000000 +0100
-+++ head-2008-12-01/drivers/xen/xenbus/xenbus_probe_backend.c  2008-12-01 11:36:55.000000000 +0100
+--- sle11-2009-05-14.orig/drivers/xen/xenbus/xenbus_probe_backend.c    2009-02-16 16:17:21.000000000 +0100
++++ sle11-2009-05-14/drivers/xen/xenbus/xenbus_probe_backend.c 2009-02-16 16:18:36.000000000 +0100
 @@ -60,8 +60,7 @@
  #include <xen/platform-compat.h>
  #endif
@@ -5934,10 +5900,28 @@ Index: head-2008-12-01/drivers/xen/xenbus/xenbus_probe_backend.c
        }
  
        return 0;
-Index: head-2008-12-01/fs/xfs/linux-2.6/xfs_buf.c
-===================================================================
---- head-2008-12-01.orig/fs/xfs/linux-2.6/xfs_buf.c    2008-12-01 10:53:14.000000000 +0100
-+++ head-2008-12-01/fs/xfs/linux-2.6/xfs_buf.c 2008-12-01 11:36:55.000000000 +0100
+--- sle11-2009-05-14.orig/drivers/xen/xenoprof/xenoprofile.c   2009-03-04 11:25:55.000000000 +0100
++++ sle11-2009-05-14/drivers/xen/xenoprof/xenoprofile.c        2009-03-11 15:39:38.000000000 +0100
+@@ -29,7 +29,6 @@
+ #include <xen/driver_util.h>
+ #include <xen/interface/xen.h>
+ #include <xen/interface/xenoprof.h>
+-#include "../../../drivers/oprofile/cpu_buffer.h"
+ #include "../../../drivers/oprofile/event_buffer.h"
+ #define MAX_XENOPROF_SAMPLES 16
+@@ -142,8 +141,7 @@ static void xenoprof_add_pc(xenoprof_buf
+               if (xenoprof_is_escape(buf, tail) &&
+                   xenoprof_get_event(buf, tail) == XENOPROF_TRACE_BEGIN) {
+                       tracing=1;
+-                      oprofile_add_pc(ESCAPE_CODE, buf->event_log[tail].mode, 
+-                                      CPU_TRACE_BEGIN); 
++                      oprofile_add_mode(buf->event_log[tail].mode);
+                       if (!is_passive)
+                               oprofile_samples++;
+                       else
+--- sle11-2009-05-14.orig/fs/xfs/linux-2.6/xfs_buf.c   2009-05-14 10:56:29.000000000 +0200
++++ sle11-2009-05-14/fs/xfs/linux-2.6/xfs_buf.c        2009-02-16 16:18:36.000000000 +0100
 @@ -187,7 +187,7 @@ free_address(
  {
        a_list_t        *aentry;
@@ -5947,10 +5931,8 @@ Index: head-2008-12-01/fs/xfs/linux-2.6/xfs_buf.c
        /*
         * Xen needs to be able to make sure it can get an exclusive
         * RO mapping of pages it wants to turn into a pagetable.  If
-Index: head-2008-12-01/include/asm-x86/mach-xen/asm/agp.h
-===================================================================
---- head-2008-12-01.orig/include/asm-x86/mach-xen/asm/agp.h    2007-06-22 09:08:06.000000000 +0200
-+++ head-2008-12-01/include/asm-x86/mach-xen/asm/agp.h 2008-12-01 11:36:55.000000000 +0100
+--- sle11-2009-05-14.orig/include/asm-x86/mach-xen/asm/agp.h   2009-05-14 10:56:29.000000000 +0200
++++ sle11-2009-05-14/include/asm-x86/mach-xen/asm/agp.h        2009-02-16 16:18:36.000000000 +0100
 @@ -1,20 +1,22 @@
 -#ifndef AGP_H
 -#define AGP_H 1
@@ -5999,20 +5981,16 @@ Index: head-2008-12-01/include/asm-x86/mach-xen/asm/agp.h
  #define flush_agp_cache() wbinvd()
  
  /* Convert a physical address to an address suitable for the GART. */
-Index: head-2008-12-01/include/asm-x86/mach-xen/asm/desc.h
-===================================================================
 --- /dev/null  1970-01-01 00:00:00.000000000 +0000
-+++ head-2008-12-01/include/asm-x86/mach-xen/asm/desc.h        2008-12-01 11:36:55.000000000 +0100
++++ sle11-2009-05-14/include/asm-x86/mach-xen/asm/desc.h       2009-02-16 16:18:36.000000000 +0100
 @@ -0,0 +1,5 @@
 +#ifdef CONFIG_X86_32
 +# include "desc_32.h"
 +#else
 +# include "desc_64.h"
 +#endif
-Index: head-2008-12-01/include/asm-x86/mach-xen/asm/desc_64.h
-===================================================================
---- head-2008-12-01.orig/include/asm-x86/mach-xen/asm/desc_64.h        2008-12-01 11:36:13.000000000 +0100
-+++ head-2008-12-01/include/asm-x86/mach-xen/asm/desc_64.h     2008-12-01 11:36:55.000000000 +0100
+--- sle11-2009-05-14.orig/include/asm-x86/mach-xen/asm/desc_64.h       2008-12-15 11:27:22.000000000 +0100
++++ sle11-2009-05-14/include/asm-x86/mach-xen/asm/desc_64.h    2009-02-16 16:18:36.000000000 +0100
 @@ -34,6 +34,18 @@ static inline void clear_LDT(void)
        put_cpu();
  }
@@ -6068,20 +6046,16 @@ Index: head-2008-12-01/include/asm-x86/mach-xen/asm/desc_64.h
  #endif
  
  static inline void set_tssldt_descriptor(void *ptr, unsigned long tss, unsigned type, 
-Index: head-2008-12-01/include/asm-x86/mach-xen/asm/dma-mapping.h
-===================================================================
 --- /dev/null  1970-01-01 00:00:00.000000000 +0000
-+++ head-2008-12-01/include/asm-x86/mach-xen/asm/dma-mapping.h 2008-12-01 11:36:55.000000000 +0100
++++ sle11-2009-05-14/include/asm-x86/mach-xen/asm/dma-mapping.h        2009-02-16 16:18:36.000000000 +0100
 @@ -0,0 +1,5 @@
 +#ifdef CONFIG_X86_32
 +# include "dma-mapping_32.h"
 +#else
 +# include "dma-mapping_64.h"
 +#endif
-Index: head-2008-12-01/include/asm-x86/mach-xen/asm/dma-mapping_32.h
-===================================================================
---- head-2008-12-01.orig/include/asm-x86/mach-xen/asm/dma-mapping_32.h 2008-12-01 11:32:38.000000000 +0100
-+++ head-2008-12-01/include/asm-x86/mach-xen/asm/dma-mapping_32.h      2008-12-01 11:36:55.000000000 +0100
+--- sle11-2009-05-14.orig/include/asm-x86/mach-xen/asm/dma-mapping_32.h        2008-12-15 11:26:44.000000000 +0100
++++ sle11-2009-05-14/include/asm-x86/mach-xen/asm/dma-mapping_32.h     2009-02-16 16:18:36.000000000 +0100
 @@ -7,9 +7,9 @@
   */
  
@@ -6093,10 +6067,8 @@ Index: head-2008-12-01/include/asm-x86/mach-xen/asm/dma-mapping_32.h
  #include <asm/swiotlb.h>
  
  static inline int
-Index: head-2008-12-01/include/asm-x86/mach-xen/asm/dma-mapping_64.h
-===================================================================
---- head-2008-12-01.orig/include/asm-x86/mach-xen/asm/dma-mapping_64.h 2008-12-01 11:36:13.000000000 +0100
-+++ head-2008-12-01/include/asm-x86/mach-xen/asm/dma-mapping_64.h      2008-12-01 11:36:55.000000000 +0100
+--- sle11-2009-05-14.orig/include/asm-x86/mach-xen/asm/dma-mapping_64.h        2008-12-15 11:27:22.000000000 +0100
++++ sle11-2009-05-14/include/asm-x86/mach-xen/asm/dma-mapping_64.h     2009-02-16 16:18:36.000000000 +0100
 @@ -6,8 +6,7 @@
   * documentation.
   */
@@ -6113,20 +6085,16 @@ Index: head-2008-12-01/include/asm-x86/mach-xen/asm/dma-mapping_64.h
  
 -#include <asm-i386/mach-xen/asm/dma-mapping.h>
 +#include "dma-mapping_32.h"
-Index: head-2008-12-01/include/asm-x86/mach-xen/asm/fixmap.h
-===================================================================
 --- /dev/null  1970-01-01 00:00:00.000000000 +0000
-+++ head-2008-12-01/include/asm-x86/mach-xen/asm/fixmap.h      2008-12-01 11:36:55.000000000 +0100
++++ sle11-2009-05-14/include/asm-x86/mach-xen/asm/fixmap.h     2009-02-16 16:18:36.000000000 +0100
 @@ -0,0 +1,5 @@
 +#ifdef CONFIG_X86_32
 +# include "fixmap_32.h"
 +#else
 +# include "fixmap_64.h"
 +#endif
-Index: head-2008-12-01/include/asm-x86/mach-xen/asm/hypercall.h
-===================================================================
 --- /dev/null  1970-01-01 00:00:00.000000000 +0000
-+++ head-2008-12-01/include/asm-x86/mach-xen/asm/hypercall.h   2008-12-01 11:36:55.000000000 +0100
++++ sle11-2009-05-14/include/asm-x86/mach-xen/asm/hypercall.h  2009-02-16 16:18:36.000000000 +0100
 @@ -0,0 +1,404 @@
 +/******************************************************************************
 + * hypercall.h
@@ -6532,10 +6500,8 @@ Index: head-2008-12-01/include/asm-x86/mach-xen/asm/hypercall.h
 +}
 +
 +#endif /* __HYPERCALL_H__ */
-Index: head-2008-12-01/include/asm-x86/mach-xen/asm/hypercall_32.h
-===================================================================
---- head-2008-12-01.orig/include/asm-x86/mach-xen/asm/hypercall_32.h   2008-12-01 11:29:05.000000000 +0100
-+++ head-2008-12-01/include/asm-x86/mach-xen/asm/hypercall_32.h        2008-12-01 11:36:55.000000000 +0100
+--- sle11-2009-05-14.orig/include/asm-x86/mach-xen/asm/hypercall_32.h  2009-03-04 11:28:34.000000000 +0100
++++ sle11-2009-05-14/include/asm-x86/mach-xen/asm/hypercall_32.h       2009-02-16 16:18:36.000000000 +0100
 @@ -1,191 +1,10 @@
 -/******************************************************************************
 - * hypercall.h
@@ -6971,10 +6937,8 @@ Index: head-2008-12-01/include/asm-x86/mach-xen/asm/hypercall_32.h
 -
 -
 -#endif /* __HYPERCALL_H__ */
-Index: head-2008-12-01/include/asm-x86/mach-xen/asm/hypercall_64.h
-===================================================================
---- head-2008-12-01.orig/include/asm-x86/mach-xen/asm/hypercall_64.h   2008-12-01 11:29:05.000000000 +0100
-+++ head-2008-12-01/include/asm-x86/mach-xen/asm/hypercall_64.h        2008-12-01 11:36:55.000000000 +0100
+--- sle11-2009-05-14.orig/include/asm-x86/mach-xen/asm/hypercall_64.h  2009-03-04 11:28:34.000000000 +0100
++++ sle11-2009-05-14/include/asm-x86/mach-xen/asm/hypercall_64.h       2009-02-16 16:18:36.000000000 +0100
 @@ -1,197 +1,10 @@
 -/******************************************************************************
 - * hypercall.h
@@ -7412,10 +7376,8 @@ Index: head-2008-12-01/include/asm-x86/mach-xen/asm/hypercall_64.h
 -}
 -
 -#endif /* __HYPERCALL_H__ */
-Index: head-2008-12-01/include/asm-x86/mach-xen/asm/hypervisor.h
-===================================================================
---- head-2008-12-01.orig/include/asm-x86/mach-xen/asm/hypervisor.h     2008-12-01 11:36:07.000000000 +0100
-+++ head-2008-12-01/include/asm-x86/mach-xen/asm/hypervisor.h  2008-12-01 11:36:55.000000000 +0100
+--- sle11-2009-05-14.orig/include/asm-x86/mach-xen/asm/hypervisor.h    2009-03-04 11:28:11.000000000 +0100
++++ sle11-2009-05-14/include/asm-x86/mach-xen/asm/hypervisor.h 2009-02-16 16:18:36.000000000 +0100
 @@ -194,7 +194,6 @@ static inline void xen_multicall_flush(b
  extern char hypercall_page[PAGE_SIZE];
  #else
@@ -7424,100 +7386,24 @@ Index: head-2008-12-01/include/asm-x86/mach-xen/asm/hypervisor.h
  #define is_running_on_xen() (!!hypercall_stubs)
  #endif
  
-Index: head-2008-12-01/include/asm-x86/mach-xen/asm/io.h
-===================================================================
 --- /dev/null  1970-01-01 00:00:00.000000000 +0000
-+++ head-2008-12-01/include/asm-x86/mach-xen/asm/io.h  2008-12-01 11:36:55.000000000 +0100
++++ sle11-2009-05-14/include/asm-x86/mach-xen/asm/io.h 2009-02-16 16:18:36.000000000 +0100
 @@ -0,0 +1,5 @@
 +#ifdef CONFIG_X86_32
 +# include "io_32.h"
 +#else
 +# include "io_64.h"
 +#endif
-Index: head-2008-12-01/include/asm-x86/mach-xen/asm/io_32.h
-===================================================================
---- head-2008-12-01.orig/include/asm-x86/mach-xen/asm/io_32.h  2008-12-01 11:36:47.000000000 +0100
-+++ head-2008-12-01/include/asm-x86/mach-xen/asm/io_32.h       2008-12-01 11:36:55.000000000 +0100
-@@ -212,17 +212,22 @@ static inline void writel(unsigned int b
- #define mmiowb()
--static inline void memset_io(volatile void __iomem *addr, unsigned char val, int count)
-+static inline void
-+memset_io(volatile void __iomem *addr, unsigned char val, int count)
- {
--      memset((void __force *) addr, val, count);
-+      memset((void __force *)addr, val, count);
- }
--static inline void memcpy_fromio(void *dst, const volatile void __iomem *src, int count)
-+
-+static inline void
-+memcpy_fromio(void *dst, const volatile void __iomem *src, int count)
- {
--      __memcpy(dst, (void __force *) src, count);
-+      __memcpy(dst, (const void __force *)src, count);
- }
--static inline void memcpy_toio(volatile void __iomem *dst, const void *src, int count)
-+
-+static inline void
-+memcpy_toio(volatile void __iomem *dst, const void *src, int count)
- {
--      __memcpy((void __force *) dst, src, count);
-+      __memcpy((void __force *)dst, src, count);
- }
- /*
-@@ -250,18 +255,9 @@ static inline void flush_write_buffers(v
-       __asm__ __volatile__ ("lock; addl $0,0(%%esp)": : :"memory");
- }
--#define dma_cache_inv(_start,_size)           flush_write_buffers()
--#define dma_cache_wback(_start,_size)         flush_write_buffers()
--#define dma_cache_wback_inv(_start,_size)     flush_write_buffers()
--
- #else
--/* Nothing to do */
--
--#define dma_cache_inv(_start,_size)           do { } while (0)
--#define dma_cache_wback(_start,_size)         do { } while (0)
--#define dma_cache_wback_inv(_start,_size)     do { } while (0)
--#define flush_write_buffers()
-+#define flush_write_buffers() do { } while (0)
- #endif
-Index: head-2008-12-01/include/asm-x86/mach-xen/asm/io_64.h
-===================================================================
---- head-2008-12-01.orig/include/asm-x86/mach-xen/asm/io_64.h  2008-12-01 11:36:47.000000000 +0100
-+++ head-2008-12-01/include/asm-x86/mach-xen/asm/io_64.h       2008-12-01 11:36:55.000000000 +0100
-@@ -268,12 +268,6 @@ void memset_io(volatile void __iomem *a,
-  */
- #define __ISA_IO_base ((char __iomem *)(fix_to_virt(FIX_ISAMAP_BEGIN)))
--/* Nothing to do */
--
--#define dma_cache_inv(_start,_size)           do { } while (0)
--#define dma_cache_wback(_start,_size)         do { } while (0)
--#define dma_cache_wback_inv(_start,_size)     do { } while (0)
--
- #define flush_write_buffers() 
- extern int iommu_bio_merge;
-Index: head-2008-12-01/include/asm-x86/mach-xen/asm/irqflags.h
-===================================================================
 --- /dev/null  1970-01-01 00:00:00.000000000 +0000
-+++ head-2008-12-01/include/asm-x86/mach-xen/asm/irqflags.h    2008-12-01 11:36:55.000000000 +0100
++++ sle11-2009-05-14/include/asm-x86/mach-xen/asm/irqflags.h   2009-02-16 16:18:36.000000000 +0100
 @@ -0,0 +1,5 @@
 +#ifdef CONFIG_X86_32
 +# include "irqflags_32.h"
 +#else
 +# include "irqflags_64.h"
 +#endif
-Index: head-2008-12-01/include/asm-x86/mach-xen/asm/irqflags_32.h
-===================================================================
---- head-2008-12-01.orig/include/asm-x86/mach-xen/asm/irqflags_32.h    2008-12-01 11:36:13.000000000 +0100
-+++ head-2008-12-01/include/asm-x86/mach-xen/asm/irqflags_32.h 2008-12-01 11:36:55.000000000 +0100
+--- sle11-2009-05-14.orig/include/asm-x86/mach-xen/asm/irqflags_32.h   2008-12-15 11:27:22.000000000 +0100
++++ sle11-2009-05-14/include/asm-x86/mach-xen/asm/irqflags_32.h        2009-02-16 16:18:36.000000000 +0100
 @@ -148,6 +148,23 @@ static inline int raw_irqs_disabled_flag
                                                                        \
        raw_irqs_disabled_flags(flags);                                 \
@@ -7560,10 +7446,8 @@ Index: head-2008-12-01/include/asm-x86/mach-xen/asm/irqflags_32.h
 +#endif
 +
  #endif
-Index: head-2008-12-01/include/asm-x86/mach-xen/asm/irqflags_64.h
-===================================================================
---- head-2008-12-01.orig/include/asm-x86/mach-xen/asm/irqflags_64.h    2008-12-01 11:36:13.000000000 +0100
-+++ head-2008-12-01/include/asm-x86/mach-xen/asm/irqflags_64.h 2008-12-01 11:36:55.000000000 +0100
+--- sle11-2009-05-14.orig/include/asm-x86/mach-xen/asm/irqflags_64.h   2008-12-15 11:27:22.000000000 +0100
++++ sle11-2009-05-14/include/asm-x86/mach-xen/asm/irqflags_64.h        2009-02-16 16:18:36.000000000 +0100
 @@ -116,6 +116,22 @@ static inline int raw_irqs_disabled_flag
  })
  
@@ -7608,30 +7492,24 @@ Index: head-2008-12-01/include/asm-x86/mach-xen/asm/irqflags_64.h
  #endif
  
  #endif
-Index: head-2008-12-01/include/asm-x86/mach-xen/asm/maddr.h
-===================================================================
 --- /dev/null  1970-01-01 00:00:00.000000000 +0000
-+++ head-2008-12-01/include/asm-x86/mach-xen/asm/maddr.h       2008-12-01 11:36:55.000000000 +0100
++++ sle11-2009-05-14/include/asm-x86/mach-xen/asm/maddr.h      2009-02-16 16:18:36.000000000 +0100
 @@ -0,0 +1,5 @@
 +#ifdef CONFIG_X86_32
 +# include "maddr_32.h"
 +#else
 +# include "maddr_64.h"
 +#endif
-Index: head-2008-12-01/include/asm-x86/mach-xen/asm/mmu_context.h
-===================================================================
 --- /dev/null  1970-01-01 00:00:00.000000000 +0000
-+++ head-2008-12-01/include/asm-x86/mach-xen/asm/mmu_context.h 2008-12-01 11:36:55.000000000 +0100
++++ sle11-2009-05-14/include/asm-x86/mach-xen/asm/mmu_context.h        2009-02-16 16:18:36.000000000 +0100
 @@ -0,0 +1,5 @@
 +#ifdef CONFIG_X86_32
 +# include "mmu_context_32.h"
 +#else
 +# include "mmu_context_64.h"
 +#endif
-Index: head-2008-12-01/include/asm-x86/mach-xen/asm/page.h
-===================================================================
 --- /dev/null  1970-01-01 00:00:00.000000000 +0000
-+++ head-2008-12-01/include/asm-x86/mach-xen/asm/page.h        2008-12-01 11:36:55.000000000 +0100
++++ sle11-2009-05-14/include/asm-x86/mach-xen/asm/page.h       2009-02-16 16:18:36.000000000 +0100
 @@ -0,0 +1,13 @@
 +#ifdef __KERNEL__
 +# ifdef CONFIG_X86_32
@@ -7646,10 +7524,8 @@ Index: head-2008-12-01/include/asm-x86/mach-xen/asm/page.h
 +#  include "page_64.h"
 +# endif
 +#endif
-Index: head-2008-12-01/include/asm-x86/mach-xen/asm/page_64.h
-===================================================================
---- head-2008-12-01.orig/include/asm-x86/mach-xen/asm/page_64.h        2008-12-01 11:36:47.000000000 +0100
-+++ head-2008-12-01/include/asm-x86/mach-xen/asm/page_64.h     2008-12-01 11:36:55.000000000 +0100
+--- sle11-2009-05-14.orig/include/asm-x86/mach-xen/asm/page_64.h       2009-02-16 16:17:21.000000000 +0100
++++ sle11-2009-05-14/include/asm-x86/mach-xen/asm/page_64.h    2009-02-16 16:18:36.000000000 +0100
 @@ -207,6 +207,7 @@ static inline unsigned long __phys_addr(
         VM_READ | VM_WRITE | VM_MAYREAD | VM_MAYWRITE | VM_MAYEXEC)
  
@@ -7658,10 +7534,8 @@ Index: head-2008-12-01/include/asm-x86/mach-xen/asm/page_64.h
  
  #include <asm-generic/memory_model.h>
  #include <asm-generic/page.h>
-Index: head-2008-12-01/include/asm-x86/mach-xen/asm/pci.h
-===================================================================
 --- /dev/null  1970-01-01 00:00:00.000000000 +0000
-+++ head-2008-12-01/include/asm-x86/mach-xen/asm/pci.h 2008-12-01 11:36:55.000000000 +0100
++++ sle11-2009-05-14/include/asm-x86/mach-xen/asm/pci.h        2009-02-16 16:18:36.000000000 +0100
 @@ -0,0 +1,100 @@
 +#ifndef __x86_PCI_H
 +#define __x86_PCI_H
@@ -7763,10 +7637,8 @@ Index: head-2008-12-01/include/asm-x86/mach-xen/asm/pci.h
 +
 +
 +#endif
-Index: head-2008-12-01/include/asm-x86/mach-xen/asm/pci_32.h
-===================================================================
---- head-2008-12-01.orig/include/asm-x86/mach-xen/asm/pci_32.h 2008-12-01 11:36:47.000000000 +0100
-+++ head-2008-12-01/include/asm-x86/mach-xen/asm/pci_32.h      2008-12-01 11:36:55.000000000 +0100
+--- sle11-2009-05-14.orig/include/asm-x86/mach-xen/asm/pci_32.h        2009-02-16 16:17:21.000000000 +0100
++++ sle11-2009-05-14/include/asm-x86/mach-xen/asm/pci_32.h     2009-02-16 16:18:36.000000000 +0100
 @@ -4,52 +4,10 @@
  
  #ifdef __KERNEL__
@@ -7852,122 +7724,16 @@ Index: head-2008-12-01/include/asm-x86/mach-xen/asm/pci_32.h
 -#include <asm-generic/pci.h>
  
  #endif /* __i386_PCI_H */
-Index: head-2008-12-01/include/asm-x86/mach-xen/asm/pci_64.h
-===================================================================
---- head-2008-12-01.orig/include/asm-x86/mach-xen/asm/pci_64.h 2008-12-01 11:36:47.000000000 +0100
-+++ head-2008-12-01/include/asm-x86/mach-xen/asm/pci_64.h      2008-12-01 11:36:55.000000000 +0100
-@@ -1,16 +1,9 @@
- #ifndef __x8664_PCI_H
- #define __x8664_PCI_H
--#include <asm/io.h>
- #ifdef __KERNEL__
--struct pci_sysdata {
--      int             node;           /* NUMA node */
--      void*           iommu;          /* IOMMU private data */
--};
--
--extern struct pci_bus *pci_scan_bus_with_sysdata(int busno);
- #ifdef CONFIG_CALGARY_IOMMU
- static inline void* pci_iommu(struct pci_bus *bus)
-@@ -26,42 +19,11 @@ static inline void set_pci_iommu(struct 
- }
- #endif /* CONFIG_CALGARY_IOMMU */
--#include <linux/mm.h> /* for struct page */
--
--/* Can be used to override the logic in pci_scan_bus for skipping
--   already-configured bus numbers - to be used for buggy BIOSes
--   or architectures with incomplete PCI setup by the loader */
--
--#ifdef CONFIG_PCI
--extern unsigned int pcibios_assign_all_busses(void);
--#else
--#define pcibios_assign_all_busses()   0
--#endif
--
--#include <asm/hypervisor.h>
--#define pcibios_scan_all_fns(a, b)    (!is_initial_xendomain())
--
--extern unsigned long pci_mem_start;
--#define PCIBIOS_MIN_IO                0x1000
--#define PCIBIOS_MIN_MEM               (pci_mem_start)
--
--#define PCIBIOS_MIN_CARDBUS_IO        0x4000
--void pcibios_config_init(void);
--struct pci_bus * pcibios_scan_root(int bus);
- extern int (*pci_config_read)(int seg, int bus, int dev, int fn, int reg, int len, u32 *value);
- extern int (*pci_config_write)(int seg, int bus, int dev, int fn, int reg, int len, u32 value);
--void pcibios_set_master(struct pci_dev *dev);
--void pcibios_penalize_isa_irq(int irq, int active);
--struct irq_routing_table *pcibios_get_irq_routing_table(void);
--int pcibios_set_irq_routing(struct pci_dev *dev, int pin, int irq);
--
--#include <linux/types.h>
--#include <linux/slab.h>
--#include <asm/scatterlist.h>
--#include <linux/string.h>
--#include <asm/page.h>
-+
- extern void pci_iommu_alloc(void);
- extern int iommu_setup(char *opt);
-@@ -75,7 +37,7 @@ extern int iommu_setup(char *opt);
-  */
- #define PCI_DMA_BUS_IS_PHYS (dma_ops->is_phys)
--#if defined(CONFIG_IOMMU) || defined(CONFIG_CALGARY_IOMMU)
-+#if defined(CONFIG_GART_IOMMU) || defined(CONFIG_CALGARY_IOMMU)
- #define DECLARE_PCI_UNMAP_ADDR(ADDR_NAME)     \
-       dma_addr_t ADDR_NAME;
-@@ -119,27 +81,7 @@ extern int iommu_setup(char *opt);
- #endif
--#include <asm-generic/pci-dma-compat.h>
--
--#ifdef CONFIG_PCI
--static inline void pci_dma_burst_advice(struct pci_dev *pdev,
--                                      enum pci_dma_burst_strategy *strat,
--                                      unsigned long *strategy_parameter)
--{
--      *strat = PCI_DMA_BURST_INFINITY;
--      *strategy_parameter = ~0UL;
--}
--#endif
--
--#define HAVE_PCI_MMAP
--extern int pci_mmap_page_range(struct pci_dev *dev, struct vm_area_struct *vma,
--                             enum pci_mmap_state mmap_state, int write_combine);
--
- #endif /* __KERNEL__ */
--/* generic pci stuff */
--#ifdef CONFIG_PCI
--#include <asm-generic/pci.h>
--#endif
- #endif /* __x8664_PCI_H */
-Index: head-2008-12-01/include/asm-x86/mach-xen/asm/pgalloc.h
-===================================================================
 --- /dev/null  1970-01-01 00:00:00.000000000 +0000
-+++ head-2008-12-01/include/asm-x86/mach-xen/asm/pgalloc.h     2008-12-01 11:36:55.000000000 +0100
++++ sle11-2009-05-14/include/asm-x86/mach-xen/asm/pgalloc.h    2009-02-16 16:18:36.000000000 +0100
 @@ -0,0 +1,5 @@
 +#ifdef CONFIG_X86_32
 +# include "pgalloc_32.h"
 +#else
 +# include "pgalloc_64.h"
 +#endif
-Index: head-2008-12-01/include/asm-x86/mach-xen/asm/pgalloc_64.h
-===================================================================
---- head-2008-12-01.orig/include/asm-x86/mach-xen/asm/pgalloc_64.h     2008-12-01 11:36:47.000000000 +0100
-+++ head-2008-12-01/include/asm-x86/mach-xen/asm/pgalloc_64.h  2008-12-01 11:36:55.000000000 +0100
+--- sle11-2009-05-14.orig/include/asm-x86/mach-xen/asm/pgalloc_64.h    2009-02-16 16:17:21.000000000 +0100
++++ sle11-2009-05-14/include/asm-x86/mach-xen/asm/pgalloc_64.h 2009-02-16 16:18:36.000000000 +0100
 @@ -112,6 +112,8 @@ static inline void pgd_list_del(pgd_t *p
        spin_unlock(&pgd_lock);
  }
@@ -8014,20 +7780,16 @@ Index: head-2008-12-01/include/asm-x86/mach-xen/asm/pgalloc_64.h
        pgd_list_del(pgd);
        free_pages((unsigned long)pgd, 1);
  }
-Index: head-2008-12-01/include/asm-x86/mach-xen/asm/pgtable.h
-===================================================================
 --- /dev/null  1970-01-01 00:00:00.000000000 +0000
-+++ head-2008-12-01/include/asm-x86/mach-xen/asm/pgtable.h     2008-12-01 11:36:55.000000000 +0100
++++ sle11-2009-05-14/include/asm-x86/mach-xen/asm/pgtable.h    2009-02-16 16:18:36.000000000 +0100
 @@ -0,0 +1,5 @@
 +#ifdef CONFIG_X86_32
 +# include "pgtable_32.h"
 +#else
 +# include "pgtable_64.h"
 +#endif
-Index: head-2008-12-01/include/asm-x86/mach-xen/asm/pgtable_32.h
-===================================================================
---- head-2008-12-01.orig/include/asm-x86/mach-xen/asm/pgtable_32.h     2008-12-01 11:36:47.000000000 +0100
-+++ head-2008-12-01/include/asm-x86/mach-xen/asm/pgtable_32.h  2008-12-01 11:36:55.000000000 +0100
+--- sle11-2009-05-14.orig/include/asm-x86/mach-xen/asm/pgtable_32.h    2009-02-16 16:17:21.000000000 +0100
++++ sle11-2009-05-14/include/asm-x86/mach-xen/asm/pgtable_32.h 2009-02-16 16:18:36.000000000 +0100
 @@ -17,10 +17,7 @@
  #include <asm/fixmap.h>
  #include <linux/threads.h>
@@ -8049,10 +7811,8 @@ Index: head-2008-12-01/include/asm-x86/mach-xen/asm/pgtable_32.h
  void pgtable_cache_init(void);
  void paging_init(void);
  
-Index: head-2008-12-01/include/asm-x86/mach-xen/asm/pgtable_64.h
-===================================================================
---- head-2008-12-01.orig/include/asm-x86/mach-xen/asm/pgtable_64.h     2008-12-01 11:36:47.000000000 +0100
-+++ head-2008-12-01/include/asm-x86/mach-xen/asm/pgtable_64.h  2008-12-01 11:36:55.000000000 +0100
+--- sle11-2009-05-14.orig/include/asm-x86/mach-xen/asm/pgtable_64.h    2009-02-16 16:17:21.000000000 +0100
++++ sle11-2009-05-14/include/asm-x86/mach-xen/asm/pgtable_64.h 2009-02-16 16:18:36.000000000 +0100
 @@ -9,7 +9,7 @@
   * the x86-64 page table tree.
   */
@@ -8062,7 +7822,7 @@ Index: head-2008-12-01/include/asm-x86/mach-xen/asm/pgtable_64.h
  #include <linux/threads.h>
  #include <linux/sched.h>
  #include <asm/pda.h>
-@@ -137,6 +137,7 @@ static inline void pgd_clear (pgd_t * pg
+@@ -139,6 +139,7 @@ static inline void pgd_clear (pgd_t * pg
  #define MAXMEM                 _AC(0x3fffffffffff, UL)
  #define VMALLOC_START    _AC(0xffffc20000000000, UL)
  #define VMALLOC_END      _AC(0xffffe1ffffffffff, UL)
@@ -8070,20 +7830,16 @@ Index: head-2008-12-01/include/asm-x86/mach-xen/asm/pgtable_64.h
  #define MODULES_VADDR    _AC(0xffffffff88000000, UL)
  #define MODULES_END      _AC(0xfffffffffff00000, UL)
  #define MODULES_LEN   (MODULES_END - MODULES_VADDR)
-Index: head-2008-12-01/include/asm-x86/mach-xen/asm/processor.h
-===================================================================
 --- /dev/null  1970-01-01 00:00:00.000000000 +0000
-+++ head-2008-12-01/include/asm-x86/mach-xen/asm/processor.h   2008-12-01 11:36:55.000000000 +0100
++++ sle11-2009-05-14/include/asm-x86/mach-xen/asm/processor.h  2009-02-16 16:18:36.000000000 +0100
 @@ -0,0 +1,5 @@
 +#ifdef CONFIG_X86_32
 +# include "processor_32.h"
 +#else
 +# include "processor_64.h"
 +#endif
-Index: head-2008-12-01/include/asm-x86/mach-xen/asm/processor_32.h
-===================================================================
---- head-2008-12-01.orig/include/asm-x86/mach-xen/asm/processor_32.h   2008-12-01 11:36:47.000000000 +0100
-+++ head-2008-12-01/include/asm-x86/mach-xen/asm/processor_32.h        2008-12-01 11:36:55.000000000 +0100
+--- sle11-2009-05-14.orig/include/asm-x86/mach-xen/asm/processor_32.h  2009-02-16 16:17:21.000000000 +0100
++++ sle11-2009-05-14/include/asm-x86/mach-xen/asm/processor_32.h       2009-02-16 16:18:36.000000000 +0100
 @@ -80,6 +80,7 @@ struct cpuinfo_x86 {
        unsigned char booted_cores;     /* number of cores as seen by OS */
        __u8 phys_proc_id;              /* Physical processor id. */
@@ -8176,10 +7932,8 @@ Index: head-2008-12-01/include/asm-x86/mach-xen/asm/processor_32.h
  #else
  #define ASM_NOP1 GENERIC_NOP1
  #define ASM_NOP2 GENERIC_NOP2
-Index: head-2008-12-01/include/asm-x86/mach-xen/asm/processor_64.h
-===================================================================
---- head-2008-12-01.orig/include/asm-x86/mach-xen/asm/processor_64.h   2008-12-01 11:36:47.000000000 +0100
-+++ head-2008-12-01/include/asm-x86/mach-xen/asm/processor_64.h        2008-12-01 11:36:55.000000000 +0100
+--- sle11-2009-05-14.orig/include/asm-x86/mach-xen/asm/processor_64.h  2009-02-16 16:17:21.000000000 +0100
++++ sle11-2009-05-14/include/asm-x86/mach-xen/asm/processor_64.h       2009-02-16 16:18:36.000000000 +0100
 @@ -74,6 +74,7 @@ struct cpuinfo_x86 {
        __u8    booted_cores;   /* number of cores as seen by OS */
        __u8    phys_proc_id;   /* Physical Processor id. */
@@ -8273,30 +8027,24 @@ Index: head-2008-12-01/include/asm-x86/mach-xen/asm/processor_64.h
  static inline void __monitor(const void *eax, unsigned long ecx,
                unsigned long edx)
  {
-Index: head-2008-12-01/include/asm-x86/mach-xen/asm/segment.h
-===================================================================
 --- /dev/null  1970-01-01 00:00:00.000000000 +0000
-+++ head-2008-12-01/include/asm-x86/mach-xen/asm/segment.h     2008-12-01 11:36:55.000000000 +0100
++++ sle11-2009-05-14/include/asm-x86/mach-xen/asm/segment.h    2009-02-16 16:18:36.000000000 +0100
 @@ -0,0 +1,5 @@
 +#ifdef CONFIG_X86_32
 +# include "segment_32.h"
 +#else
 +# include "../../segment_64.h"
 +#endif
-Index: head-2008-12-01/include/asm-x86/mach-xen/asm/smp.h
-===================================================================
 --- /dev/null  1970-01-01 00:00:00.000000000 +0000
-+++ head-2008-12-01/include/asm-x86/mach-xen/asm/smp.h 2008-12-01 11:36:55.000000000 +0100
++++ sle11-2009-05-14/include/asm-x86/mach-xen/asm/smp.h        2009-02-16 16:18:36.000000000 +0100
 @@ -0,0 +1,5 @@
 +#ifdef CONFIG_X86_32
 +# include "smp_32.h"
 +#else
 +# include "smp_64.h"
 +#endif
-Index: head-2008-12-01/include/asm-x86/mach-xen/asm/smp_32.h
-===================================================================
---- head-2008-12-01.orig/include/asm-x86/mach-xen/asm/smp_32.h 2008-12-01 11:36:13.000000000 +0100
-+++ head-2008-12-01/include/asm-x86/mach-xen/asm/smp_32.h      2008-12-01 11:36:55.000000000 +0100
+--- sle11-2009-05-14.orig/include/asm-x86/mach-xen/asm/smp_32.h        2008-12-15 11:27:22.000000000 +0100
++++ sle11-2009-05-14/include/asm-x86/mach-xen/asm/smp_32.h     2009-02-16 16:18:36.000000000 +0100
 @@ -11,7 +11,7 @@
  #endif
  
@@ -8331,10 +8079,8 @@ Index: head-2008-12-01/include/asm-x86/mach-xen/asm/smp_32.h
  
  #ifdef CONFIG_HOTPLUG_CPU
  extern void cpu_exit_clear(void);
-Index: head-2008-12-01/include/asm-x86/mach-xen/asm/smp_64.h
-===================================================================
---- head-2008-12-01.orig/include/asm-x86/mach-xen/asm/smp_64.h 2008-12-01 11:36:13.000000000 +0100
-+++ head-2008-12-01/include/asm-x86/mach-xen/asm/smp_64.h      2008-12-01 11:36:55.000000000 +0100
+--- sle11-2009-05-14.orig/include/asm-x86/mach-xen/asm/smp_64.h        2008-12-15 11:27:22.000000000 +0100
++++ sle11-2009-05-14/include/asm-x86/mach-xen/asm/smp_64.h     2009-02-16 16:18:36.000000000 +0100
 @@ -40,10 +40,19 @@ extern void lock_ipi_call_lock(void);
  extern void unlock_ipi_call_lock(void);
  extern int smp_num_siblings;
@@ -8390,30 +8136,24 @@ Index: head-2008-12-01/include/asm-x86/mach-xen/asm/smp_64.h
  #define cpu_physical_id(cpu)          boot_cpu_id
  #endif /* !CONFIG_SMP */
  #endif
-Index: head-2008-12-01/include/asm-x86/mach-xen/asm/swiotlb.h
-===================================================================
 --- /dev/null  1970-01-01 00:00:00.000000000 +0000
-+++ head-2008-12-01/include/asm-x86/mach-xen/asm/swiotlb.h     2008-12-01 11:36:55.000000000 +0100
++++ sle11-2009-05-14/include/asm-x86/mach-xen/asm/swiotlb.h    2009-02-16 16:18:36.000000000 +0100
 @@ -0,0 +1,5 @@
 +#ifdef CONFIG_X86_32
 +# include "swiotlb_32.h"
 +#else
 +# include "../../swiotlb.h"
 +#endif
-Index: head-2008-12-01/include/asm-x86/mach-xen/asm/system.h
-===================================================================
 --- /dev/null  1970-01-01 00:00:00.000000000 +0000
-+++ head-2008-12-01/include/asm-x86/mach-xen/asm/system.h      2008-12-01 11:36:55.000000000 +0100
++++ sle11-2009-05-14/include/asm-x86/mach-xen/asm/system.h     2009-02-16 16:18:36.000000000 +0100
 @@ -0,0 +1,5 @@
 +#ifdef CONFIG_X86_32
 +# include "system_32.h"
 +#else
 +# include "system_64.h"
 +#endif
-Index: head-2008-12-01/include/asm-x86/mach-xen/asm/system_32.h
-===================================================================
---- head-2008-12-01.orig/include/asm-x86/mach-xen/asm/system_32.h      2008-12-01 11:36:47.000000000 +0100
-+++ head-2008-12-01/include/asm-x86/mach-xen/asm/system_32.h   2008-12-01 11:36:55.000000000 +0100
+--- sle11-2009-05-14.orig/include/asm-x86/mach-xen/asm/system_32.h     2009-02-16 16:17:21.000000000 +0100
++++ sle11-2009-05-14/include/asm-x86/mach-xen/asm/system_32.h  2009-02-16 16:18:36.000000000 +0100
 @@ -9,6 +9,7 @@
  #include <asm/hypervisor.h>
  
@@ -8486,10 +8226,8 @@ Index: head-2008-12-01/include/asm-x86/mach-xen/asm/system_32.h
 +void __show_registers(struct pt_regs *, int all);
  
  #endif
-Index: head-2008-12-01/include/asm-x86/mach-xen/asm/system_64.h
-===================================================================
---- head-2008-12-01.orig/include/asm-x86/mach-xen/asm/system_64.h      2008-12-01 11:36:47.000000000 +0100
-+++ head-2008-12-01/include/asm-x86/mach-xen/asm/system_64.h   2008-12-01 11:36:55.000000000 +0100
+--- sle11-2009-05-14.orig/include/asm-x86/mach-xen/asm/system_64.h     2009-02-16 16:17:21.000000000 +0100
++++ sle11-2009-05-14/include/asm-x86/mach-xen/asm/system_64.h  2009-02-16 16:18:36.000000000 +0100
 @@ -11,8 +11,12 @@
  
  #ifdef __KERNEL__
@@ -8557,20 +8295,16 @@ Index: head-2008-12-01/include/asm-x86/mach-xen/asm/system_64.h
  #define read_barrier_depends()        do {} while(0)
  #define set_mb(var, value) do { (void) xchg(&var, value); } while (0)
  
-Index: head-2008-12-01/include/asm-x86/mach-xen/asm/tlbflush.h
-===================================================================
 --- /dev/null  1970-01-01 00:00:00.000000000 +0000
-+++ head-2008-12-01/include/asm-x86/mach-xen/asm/tlbflush.h    2008-12-01 11:36:55.000000000 +0100
++++ sle11-2009-05-14/include/asm-x86/mach-xen/asm/tlbflush.h   2009-02-16 16:18:36.000000000 +0100
 @@ -0,0 +1,5 @@
 +#ifdef CONFIG_X86_32
 +# include "tlbflush_32.h"
 +#else
 +# include "tlbflush_64.h"
 +#endif
-Index: head-2008-12-01/include/asm-x86/mach-xen/asm/tlbflush_32.h
-===================================================================
---- head-2008-12-01.orig/include/asm-x86/mach-xen/asm/tlbflush_32.h    2008-12-01 11:36:47.000000000 +0100
-+++ head-2008-12-01/include/asm-x86/mach-xen/asm/tlbflush_32.h 2008-12-01 11:36:55.000000000 +0100
+--- sle11-2009-05-14.orig/include/asm-x86/mach-xen/asm/tlbflush_32.h   2009-02-16 16:17:21.000000000 +0100
++++ sle11-2009-05-14/include/asm-x86/mach-xen/asm/tlbflush_32.h        2009-02-16 16:18:36.000000000 +0100
 @@ -23,7 +23,6 @@
   *  - flush_tlb_page(vma, vmaddr) flushes one page
   *  - flush_tlb_range(vma, start, end) flushes a range of pages
@@ -8590,10 +8324,8 @@ Index: head-2008-12-01/include/asm-x86/mach-xen/asm/tlbflush_32.h
 -}
 -
  #endif /* _I386_TLBFLUSH_H */
-Index: head-2008-12-01/include/asm-x86/mach-xen/asm/tlbflush_64.h
-===================================================================
---- head-2008-12-01.orig/include/asm-x86/mach-xen/asm/tlbflush_64.h    2008-12-01 11:36:47.000000000 +0100
-+++ head-2008-12-01/include/asm-x86/mach-xen/asm/tlbflush_64.h 2008-12-01 11:36:55.000000000 +0100
+--- sle11-2009-05-14.orig/include/asm-x86/mach-xen/asm/tlbflush_64.h   2009-02-16 16:17:21.000000000 +0100
++++ sle11-2009-05-14/include/asm-x86/mach-xen/asm/tlbflush_64.h        2009-02-16 16:18:36.000000000 +0100
 @@ -28,7 +28,6 @@
   *  - flush_tlb_page(vma, vmaddr) flushes one page
   *  - flush_tlb_range(vma, start, end) flushes a range of pages
@@ -8615,194 +8347,16 @@ Index: head-2008-12-01/include/asm-x86/mach-xen/asm/tlbflush_64.h
 -}
 -
  #endif /* _X8664_TLBFLUSH_H */
-Index: head-2008-12-01/include/asm-x86/mach-xen/asm/xor.h
-===================================================================
 --- /dev/null  1970-01-01 00:00:00.000000000 +0000
-+++ head-2008-12-01/include/asm-x86/mach-xen/asm/xor.h 2008-12-01 11:36:55.000000000 +0100
++++ sle11-2009-05-14/include/asm-x86/mach-xen/asm/xor.h        2009-02-16 16:18:36.000000000 +0100
 @@ -0,0 +1,5 @@
 +#ifdef CONFIG_X86_32
 +# include "../../xor_32.h"
 +#else
 +# include "xor_64.h"
 +#endif
-Index: head-2008-12-01/include/asm-x86/mach-xen/mach_time.h
-===================================================================
---- head-2008-12-01.orig/include/asm-x86/mach-xen/mach_time.h  2007-06-12 13:14:13.000000000 +0200
-+++ head-2008-12-01/include/asm-x86/mach-xen/mach_time.h       2008-12-01 11:36:55.000000000 +0100
-@@ -1,111 +1,2 @@
--/*
-- *  include/asm-i386/mach-default/mach_time.h
-- *
-- *  Machine specific set RTC function for generic.
-- *  Split out from time.c by Osamu Tomita <tomita@cinet.co.jp>
-- */
--#ifndef _MACH_TIME_H
--#define _MACH_TIME_H
--
--#include <asm-i386/mc146818rtc.h>
--
--/* for check timing call set_rtc_mmss() 500ms     */
--/* used in arch/i386/time.c::do_timer_interrupt() */
--#define USEC_AFTER    500000
--#define USEC_BEFORE   500000
--
--/*
-- * In order to set the CMOS clock precisely, set_rtc_mmss has to be
-- * called 500 ms after the second nowtime has started, because when
-- * nowtime is written into the registers of the CMOS clock, it will
-- * jump to the next second precisely 500 ms later. Check the Motorola
-- * MC146818A or Dallas DS12887 data sheet for details.
-- *
-- * BUG: This routine does not handle hour overflow properly; it just
-- *      sets the minutes. Usually you'll only notice that after reboot!
-- */
--static inline int mach_set_rtc_mmss(unsigned long nowtime)
--{
--      int retval = 0;
--      int real_seconds, real_minutes, cmos_minutes;
--      unsigned char save_control, save_freq_select;
--
--      save_control = CMOS_READ(RTC_CONTROL); /* tell the clock it's being set */
--      CMOS_WRITE((save_control|RTC_SET), RTC_CONTROL);
--
--      save_freq_select = CMOS_READ(RTC_FREQ_SELECT); /* stop and reset prescaler */
--      CMOS_WRITE((save_freq_select|RTC_DIV_RESET2), RTC_FREQ_SELECT);
--
--      cmos_minutes = CMOS_READ(RTC_MINUTES);
--      if (!(save_control & RTC_DM_BINARY) || RTC_ALWAYS_BCD)
--              BCD_TO_BIN(cmos_minutes);
--
--      /*
--       * since we're only adjusting minutes and seconds,
--       * don't interfere with hour overflow. This avoids
--       * messing with unknown time zones but requires your
--       * RTC not to be off by more than 15 minutes
--       */
--      real_seconds = nowtime % 60;
--      real_minutes = nowtime / 60;
--      if (((abs(real_minutes - cmos_minutes) + 15)/30) & 1)
--              real_minutes += 30;             /* correct for half hour time zone */
--      real_minutes %= 60;
--
--      if (abs(real_minutes - cmos_minutes) < 30) {
--              if (!(save_control & RTC_DM_BINARY) || RTC_ALWAYS_BCD) {
--                      BIN_TO_BCD(real_seconds);
--                      BIN_TO_BCD(real_minutes);
--              }
--              CMOS_WRITE(real_seconds,RTC_SECONDS);
--              CMOS_WRITE(real_minutes,RTC_MINUTES);
--      } else {
--              printk(KERN_WARNING
--                     "set_rtc_mmss: can't update from %d to %d\n",
--                     cmos_minutes, real_minutes);
--              retval = -1;
--      }
--
--      /* The following flags have to be released exactly in this order,
--       * otherwise the DS12887 (popular MC146818A clone with integrated
--       * battery and quartz) will not reset the oscillator and will not
--       * update precisely 500 ms later. You won't find this mentioned in
--       * the Dallas Semiconductor data sheets, but who believes data
--       * sheets anyway ...                           -- Markus Kuhn
--       */
--      CMOS_WRITE(save_control, RTC_CONTROL);
--      CMOS_WRITE(save_freq_select, RTC_FREQ_SELECT);
--
--      return retval;
--}
--
--static inline unsigned long mach_get_cmos_time(void)
--{
--      unsigned int year, mon, day, hour, min, sec;
--
--      do {
--              sec = CMOS_READ(RTC_SECONDS);
--              min = CMOS_READ(RTC_MINUTES);
--              hour = CMOS_READ(RTC_HOURS);
--              day = CMOS_READ(RTC_DAY_OF_MONTH);
--              mon = CMOS_READ(RTC_MONTH);
--              year = CMOS_READ(RTC_YEAR);
--      } while (sec != CMOS_READ(RTC_SECONDS));
--
--      if (!(CMOS_READ(RTC_CONTROL) & RTC_DM_BINARY) || RTC_ALWAYS_BCD) {
--              BCD_TO_BIN(sec);
--              BCD_TO_BIN(min);
--              BCD_TO_BIN(hour);
--              BCD_TO_BIN(day);
--              BCD_TO_BIN(mon);
--              BCD_TO_BIN(year);
--      }
--
--      year += 1900;
--      if (year < 1970)
--              year += 100;
--
--      return mktime(year, mon, day, hour, min, sec);
--}
--
--#endif /* !_MACH_TIME_H */
-+#include "../mc146818rtc_32.h"
-+#include "../mach-default/mach_time.h"
-Index: head-2008-12-01/include/asm-x86/mach-xen/mach_timer.h
-===================================================================
---- head-2008-12-01.orig/include/asm-x86/mach-xen/mach_timer.h 2007-06-12 13:14:13.000000000 +0200
-+++ head-2008-12-01/include/asm-x86/mach-xen/mach_timer.h      2008-12-01 11:36:55.000000000 +0100
-@@ -1,50 +1 @@
--/*
-- *  include/asm-i386/mach-default/mach_timer.h
-- *
-- *  Machine specific calibrate_tsc() for generic.
-- *  Split out from timer_tsc.c by Osamu Tomita <tomita@cinet.co.jp>
-- */
--/* ------ Calibrate the TSC ------- 
-- * Return 2^32 * (1 / (TSC clocks per usec)) for do_fast_gettimeoffset().
-- * Too much 64-bit arithmetic here to do this cleanly in C, and for
-- * accuracy's sake we want to keep the overhead on the CTC speaker (channel 2)
-- * output busy loop as low as possible. We avoid reading the CTC registers
-- * directly because of the awkward 8-bit access mechanism of the 82C54
-- * device.
-- */
--#ifndef _MACH_TIMER_H
--#define _MACH_TIMER_H
--
--#define CALIBRATE_TIME_MSEC 30 /* 30 msecs */
--#define CALIBRATE_LATCH       \
--      ((CLOCK_TICK_RATE * CALIBRATE_TIME_MSEC + 1000/2)/1000)
--
--static inline void mach_prepare_counter(void)
--{
--       /* Set the Gate high, disable speaker */
--      outb((inb(0x61) & ~0x02) | 0x01, 0x61);
--
--      /*
--       * Now let's take care of CTC channel 2
--       *
--       * Set the Gate high, program CTC channel 2 for mode 0,
--       * (interrupt on terminal count mode), binary count,
--       * load 5 * LATCH count, (LSB and MSB) to begin countdown.
--       *
--       * Some devices need a delay here.
--       */
--      outb(0xb0, 0x43);                       /* binary, mode 0, LSB/MSB, Ch 2 */
--      outb_p(CALIBRATE_LATCH & 0xff, 0x42);   /* LSB of count */
--      outb_p(CALIBRATE_LATCH >> 8, 0x42);       /* MSB of count */
--}
--
--static inline void mach_countup(unsigned long *count_p)
--{
--      unsigned long count = 0;
--      do {
--              count++;
--      } while ((inb_p(0x61) & 0x20) == 0);
--      *count_p = count;
--}
--
--#endif /* !_MACH_TIMER_H */
-+#include "../mach-default/mach_timer.h"
-Index: head-2008-12-01/include/asm-x86/mmu.h
-===================================================================
---- head-2008-12-01.orig/include/asm-x86/mmu.h 2008-12-01 10:53:14.000000000 +0100
-+++ head-2008-12-01/include/asm-x86/mmu.h      2008-12-01 11:36:55.000000000 +0100
+--- sle11-2009-05-14.orig/include/asm-x86/mmu.h        2009-05-14 10:56:29.000000000 +0200
++++ sle11-2009-05-14/include/asm-x86/mmu.h     2009-02-16 16:18:36.000000000 +0100
 @@ -16,6 +16,9 @@ typedef struct {
        rwlock_t ldtlock;
  #endif
@@ -8813,10 +8367,37 @@ Index: head-2008-12-01/include/asm-x86/mmu.h
        struct mutex lock;
        void *vdso;
  } mm_context_t;
-Index: head-2008-12-01/include/linux/sysctl.h
-===================================================================
---- head-2008-12-01.orig/include/linux/sysctl.h        2008-12-01 10:53:14.000000000 +0100
-+++ head-2008-12-01/include/linux/sysctl.h     2008-12-01 11:36:55.000000000 +0100
+--- sle11-2009-05-14.orig/include/linux/kexec.h        2009-02-16 15:58:14.000000000 +0100
++++ sle11-2009-05-14/include/linux/kexec.h     2009-02-17 12:43:57.000000000 +0100
+@@ -202,8 +202,15 @@ extern int dump_after_notifier;
+ #define VMCOREINFO_BYTES           (4096)
+ #define VMCOREINFO_NOTE_NAME       "VMCOREINFO"
+ #define VMCOREINFO_NOTE_NAME_BYTES ALIGN(sizeof(VMCOREINFO_NOTE_NAME), 4)
++#if !defined(CONFIG_XEN) || !defined(CONFIG_X86)
+ #define VMCOREINFO_NOTE_SIZE       (KEXEC_NOTE_HEAD_BYTES*2 + VMCOREINFO_BYTES \
+                                   + VMCOREINFO_NOTE_NAME_BYTES)
++#else
++#define VMCOREINFO_NOTE_SIZE       ALIGN(KEXEC_NOTE_HEAD_BYTES*2 \
++                                       + VMCOREINFO_BYTES \
++                                       + VMCOREINFO_NOTE_NAME_BYTES, \
++                                       PAGE_SIZE)
++#endif
+ /* Location of a reserved region to hold the crash kernel.
+  */
+--- sle11-2009-05-14.orig/include/linux/oprofile.h     2009-02-16 16:01:39.000000000 +0100
++++ sle11-2009-05-14/include/linux/oprofile.h  2009-03-12 16:16:07.000000000 +0100
+@@ -116,6 +116,8 @@ void oprofile_add_pc(unsigned long pc, i
+ /* add a backtrace entry, to be called from the ->backtrace callback */
+ void oprofile_add_trace(unsigned long eip);
++void oprofile_add_mode(int cpu_mode);
++
+ /* add a domain switch entry */
+ int oprofile_add_domain_switch(int32_t domain_id);
+--- sle11-2009-05-14.orig/include/linux/sysctl.h       2009-05-14 10:56:29.000000000 +0200
++++ sle11-2009-05-14/include/linux/sysctl.h    2009-02-16 16:18:36.000000000 +0100
 @@ -69,6 +69,7 @@ enum
        CTL_BUS=8,              /* Busses */
        CTL_ABI=9,              /* Binary emulation */
@@ -8825,10 +8406,8 @@ Index: head-2008-12-01/include/linux/sysctl.h
        CTL_ARLAN=254,          /* arlan wireless driver */
        CTL_S390DBF=5677,       /* s390 debug */
        CTL_SUNRPC=7249,        /* sunrpc debug */
-Index: head-2008-12-01/include/xen/pcifront.h
-===================================================================
---- head-2008-12-01.orig/include/xen/pcifront.h        2007-06-18 08:38:13.000000000 +0200
-+++ head-2008-12-01/include/xen/pcifront.h     2008-12-01 11:36:55.000000000 +0100
+--- sle11-2009-05-14.orig/include/xen/pcifront.h       2009-05-14 10:56:29.000000000 +0200
++++ sle11-2009-05-14/include/xen/pcifront.h    2009-02-16 16:18:36.000000000 +0100
 @@ -12,13 +12,11 @@
  
  #ifndef __ia64__
@@ -8865,10 +8444,8 @@ Index: head-2008-12-01/include/xen/pcifront.h
  static inline void pcifront_setup_root_resources(struct pci_bus *bus,
                                                 struct pcifront_sd *sd)
  {
-Index: head-2008-12-01/include/xen/sysctl.h
-===================================================================
 --- /dev/null  1970-01-01 00:00:00.000000000 +0000
-+++ head-2008-12-01/include/xen/sysctl.h       2008-12-01 11:36:55.000000000 +0100
++++ sle11-2009-05-14/include/xen/sysctl.h      2009-02-16 16:18:36.000000000 +0100
 @@ -0,0 +1,11 @@
 +#ifndef _XEN_SYSCTL_H
 +#define _XEN_SYSCTL_H
@@ -8881,10 +8458,8 @@ Index: head-2008-12-01/include/xen/sysctl.h
 +};
 +
 +#endif /* _XEN_SYSCTL_H */
-Index: head-2008-12-01/include/xen/xenbus.h
-===================================================================
---- head-2008-12-01.orig/include/xen/xenbus.h  2008-12-01 11:36:47.000000000 +0100
-+++ head-2008-12-01/include/xen/xenbus.h       2008-12-01 11:36:55.000000000 +0100
+--- sle11-2009-05-14.orig/include/xen/xenbus.h 2009-02-16 16:17:21.000000000 +0100
++++ sle11-2009-05-14/include/xen/xenbus.h      2009-02-16 16:18:36.000000000 +0100
 @@ -107,7 +107,7 @@ struct xenbus_driver {
        int (*suspend)(struct xenbus_device *dev);
        int (*suspend_cancel)(struct xenbus_device *dev);
@@ -8894,11 +8469,22 @@ Index: head-2008-12-01/include/xen/xenbus.h
        struct device_driver driver;
        int (*read_otherend_details)(struct xenbus_device *dev);
        int (*is_ready)(struct xenbus_device *dev);
-Index: head-2008-12-01/kernel/kexec.c
-===================================================================
---- head-2008-12-01.orig/kernel/kexec.c        2008-12-01 11:32:38.000000000 +0100
-+++ head-2008-12-01/kernel/kexec.c     2008-12-01 11:36:55.000000000 +0100
-@@ -1235,6 +1235,7 @@ static int __init crash_notes_memory_ini
+--- sle11-2009-05-14.orig/kernel/kexec.c       2009-02-17 11:34:22.000000000 +0100
++++ sle11-2009-05-14/kernel/kexec.c    2009-02-17 12:38:20.000000000 +0100
+@@ -52,7 +52,11 @@ int dump_after_notifier;
+ /* vmcoreinfo stuff */
+ unsigned char vmcoreinfo_data[VMCOREINFO_BYTES];
+-u32 vmcoreinfo_note[VMCOREINFO_NOTE_SIZE/4];
++u32
++#if defined(CONFIG_XEN) && defined(CONFIG_X86)
++__attribute__((__section__(".bss.page_aligned"), __aligned__(PAGE_SIZE)))
++#endif
++vmcoreinfo_note[VMCOREINFO_NOTE_SIZE/4];
+ size_t vmcoreinfo_size;
+ size_t vmcoreinfo_max_size = sizeof(vmcoreinfo_data);
+@@ -1240,6 +1244,7 @@ static int __init crash_notes_memory_ini
  module_init(crash_notes_memory_init)
  
  
@@ -8906,7 +8492,7 @@ Index: head-2008-12-01/kernel/kexec.c
  /*
   * parsing the "crashkernel" commandline
   *
-@@ -1397,7 +1398,7 @@ int __init parse_crashkernel(char                 *cm
+@@ -1402,7 +1407,7 @@ int __init parse_crashkernel(char                 *cm
  
        return 0;
  }
@@ -8915,12 +8501,12 @@ Index: head-2008-12-01/kernel/kexec.c
  
  
  void crash_save_vmcoreinfo(void)
-@@ -1454,7 +1455,18 @@ static int __init crash_save_vmcoreinfo_
+@@ -1459,7 +1464,18 @@ static int __init crash_save_vmcoreinfo_
  
        VMCOREINFO_SYMBOL(init_uts_ns);
        VMCOREINFO_SYMBOL(node_online_map);
 +#ifndef CONFIG_X86_XEN
-+      VMCOREINFO_SYMBOL(swapper_pg_dir);
+       VMCOREINFO_SYMBOL(swapper_pg_dir);
 +#else
 +/*
 + * Since for x86-32 Xen swapper_pg_dir is a pointer rather than an array,
@@ -8928,16 +8514,14 @@ Index: head-2008-12-01/kernel/kexec.c
 + * the page directory).
 + */
 +# define swapper_pg_dir *swapper_pg_dir
-       VMCOREINFO_SYMBOL(swapper_pg_dir);
++      VMCOREINFO_SYMBOL(swapper_pg_dir);
 +# undef swapper_pg_dir
 +#endif
        VMCOREINFO_SYMBOL(_stext);
  
  #ifndef CONFIG_NEED_MULTIPLE_NODES
-Index: head-2008-12-01/kernel/sysctl_check.c
-===================================================================
---- head-2008-12-01.orig/kernel/sysctl_check.c 2008-12-01 10:53:14.000000000 +0100
-+++ head-2008-12-01/kernel/sysctl_check.c      2008-12-01 11:36:55.000000000 +0100
+--- sle11-2009-05-14.orig/kernel/sysctl_check.c        2009-05-14 10:56:29.000000000 +0200
++++ sle11-2009-05-14/kernel/sysctl_check.c     2009-02-16 16:18:36.000000000 +0100
 @@ -4,6 +4,7 @@
  #include <linux/sunrpc/debug.h>
  #include <linux/string.h>
@@ -8971,10 +8555,8 @@ Index: head-2008-12-01/kernel/sysctl_check.c
        { CTL_ARLAN,    "arlan",        trans_arlan_table },
        { CTL_S390DBF,  "s390dbf",      trans_s390dbf_table },
        { CTL_SUNRPC,   "sunrpc",       trans_sunrpc_table },
-Index: head-2008-12-01/lib/swiotlb-xen.c
-===================================================================
---- head-2008-12-01.orig/lib/swiotlb-xen.c     2008-12-01 11:36:13.000000000 +0100
-+++ head-2008-12-01/lib/swiotlb-xen.c  2008-12-01 11:36:55.000000000 +0100
+--- sle11-2009-05-14.orig/lib/swiotlb-xen.c    2009-02-05 11:16:51.000000000 +0100
++++ sle11-2009-05-14/lib/swiotlb-xen.c 2009-02-16 16:18:36.000000000 +0100
 @@ -27,7 +27,7 @@
  #include <asm/uaccess.h>
  #include <xen/gnttab.h>