]> git.ipfire.org Git - people/teissler/ipfire-2.x.git/blobdiff - src/patches/suse-2.6.27.25/patches.xen/xen3-patch-2.6.19
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.19
similarity index 89%
rename from src/patches/60028_xen3-patch-2.6.19.patch1
rename to src/patches/suse-2.6.27.25/patches.xen/xen3-patch-2.6.19
index 4dcd0c83fac8aa6c33566f4af2f91d564813b52f..4ba8c96f228b3d482867372d0206c13158e3b1c4 100644 (file)
@@ -6,11 +6,9 @@ Automatically created from "patches.kernel.org/patch-2.6.19" 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-03 15:49:14.000000000 +0100
-+++ head-2008-12-01/arch/x86/Kconfig   2008-12-01 11:29:05.000000000 +0100
-@@ -411,6 +411,7 @@ config SCHED_NO_NO_OMIT_FRAME_POINTER
+--- sle11-2009-05-14.orig/arch/x86/Kconfig     2009-04-20 11:36:10.000000000 +0200
++++ sle11-2009-05-14/arch/x86/Kconfig  2009-03-04 11:28:34.000000000 +0100
+@@ -415,6 +415,7 @@ config SCHED_NO_NO_OMIT_FRAME_POINTER
  
  menuconfig PARAVIRT_GUEST
        bool "Paravirtualized guest support"
@@ -18,10 +16,8 @@ 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.
-Index: head-2008-12-01/arch/x86/kernel/apic_32-xen.c
-===================================================================
---- head-2008-12-01.orig/arch/x86/kernel/apic_32-xen.c 2008-12-03 15:49:14.000000000 +0100
-+++ head-2008-12-01/arch/x86/kernel/apic_32-xen.c      2008-12-01 11:29:05.000000000 +0100
+--- sle11-2009-05-14.orig/arch/x86/kernel/apic_32-xen.c        2009-05-14 11:02:43.000000000 +0200
++++ sle11-2009-05-14/arch/x86/kernel/apic_32-xen.c     2009-03-04 11:28:34.000000000 +0100
 @@ -54,7 +54,6 @@ static cpumask_t timer_bcast_ipi;
  /*
   * Knob to control our willingness to enable the local APIC.
@@ -62,10 +58,8 @@ Index: head-2008-12-01/arch/x86/kernel/apic_32-xen.c
  #endif
        }
  }
-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-03 15:49:14.000000000 +0100
-+++ head-2008-12-01/arch/x86/kernel/cpu/common-xen.c   2008-12-01 11:29:05.000000000 +0100
+--- sle11-2009-05-14.orig/arch/x86/kernel/cpu/common-xen.c     2009-05-14 11:02:43.000000000 +0200
++++ sle11-2009-05-14/arch/x86/kernel/cpu/common-xen.c  2009-03-04 11:28:34.000000000 +0100
 @@ -43,7 +43,7 @@ struct cpu_dev * cpu_devs[X86_VENDOR_NUM
  
  extern int disable_pse;
@@ -129,10 +123,8 @@ Index: head-2008-12-01/arch/x86/kernel/cpu/common-xen.c
  
        /* Clear all 6 debug registers: */
        set_debugreg(0, 0);
-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-03 15:49:14.000000000 +0100
-+++ head-2008-12-01/arch/x86/kernel/entry_32-xen.S     2008-12-01 11:29:05.000000000 +0100
+--- sle11-2009-05-14.orig/arch/x86/kernel/entry_32-xen.S       2009-05-14 11:01:46.000000000 +0200
++++ sle11-2009-05-14/arch/x86/kernel/entry_32-xen.S    2009-05-14 11:07:47.000000000 +0200
 @@ -80,8 +80,12 @@ VM_MASK             = 0x00020000
  NMI_MASK      = 0x80000000
  
@@ -344,7 +336,21 @@ Index: head-2008-12-01/arch/x86/kernel/entry_32-xen.S
  
  #ifdef CONFIG_XEN
  # A note on the "critical region" in our callback handler.
-@@ -926,7 +929,7 @@ ENTRY(device_not_available)
+@@ -790,9 +793,11 @@ ENTRY(hypervisor_callback)
+       pushl %eax
+       CFI_ADJUST_CFA_OFFSET 4
+       SAVE_ALL
+-      testb $2,CS(%esp)
++      movl CS(%esp),%ecx
+       movl EIP(%esp),%eax
+-      jnz  .Ldo_upcall
++      andl $SEGMENT_RPL_MASK,%ecx
++      cmpl $USER_RPL,%ecx
++      jae  .Ldo_upcall
+       cmpl $scrit,%eax
+       jb   0f
+       cmpl $ecrit,%eax
+@@ -928,7 +933,7 @@ ENTRY(device_not_available)
        CFI_ADJUST_CFA_OFFSET 4
        SAVE_ALL
  #ifndef CONFIG_XEN
@@ -353,7 +359,7 @@ Index: head-2008-12-01/arch/x86/kernel/entry_32-xen.S
        testl $0x4, %eax                # EM (math emulation bit)
        je device_available_emulate
        pushl $0                        # temporary storage for ORIG_EIP
-@@ -961,9 +964,15 @@ device_available_emulate:
+@@ -963,9 +968,15 @@ device_available_emulate:
        jne ok;                                 \
  label:                                                \
        movl SYSENTER_stack_esp0+offset(%esp),%esp;     \
@@ -370,7 +376,7 @@ Index: head-2008-12-01/arch/x86/kernel/entry_32-xen.S
  #endif /* CONFIG_XEN */
  
  KPROBE_ENTRY(debug)
-@@ -982,7 +991,8 @@ debug_stack_correct:
+@@ -984,7 +995,8 @@ debug_stack_correct:
        call do_debug
        jmp ret_from_exception
        CFI_ENDPROC
@@ -380,7 +386,7 @@ Index: head-2008-12-01/arch/x86/kernel/entry_32-xen.S
  #ifndef CONFIG_XEN
  /*
   * NMI is doubly nasty. It can happen _while_ we're handling
-@@ -992,7 +1002,7 @@ debug_stack_correct:
+@@ -994,7 +1006,7 @@ debug_stack_correct:
   * check whether we got an NMI on the debug path where the debug
   * fault happened on the sysenter path.
   */
@@ -389,7 +395,7 @@ Index: head-2008-12-01/arch/x86/kernel/entry_32-xen.S
        RING0_INT_FRAME
        pushl %eax
        CFI_ADJUST_CFA_OFFSET 4
-@@ -1017,6 +1027,7 @@ ENTRY(nmi)
+@@ -1019,6 +1031,7 @@ ENTRY(nmi)
        cmpl $sysenter_entry,12(%esp)
        je nmi_debug_stack_check
  nmi_stack_correct:
@@ -397,7 +403,7 @@ Index: head-2008-12-01/arch/x86/kernel/entry_32-xen.S
        pushl %eax
        CFI_ADJUST_CFA_OFFSET 4
        SAVE_ALL
-@@ -1027,9 +1038,12 @@ nmi_stack_correct:
+@@ -1029,9 +1042,12 @@ nmi_stack_correct:
        CFI_ENDPROC
  
  nmi_stack_fixup:
@@ -410,7 +416,7 @@ Index: head-2008-12-01/arch/x86/kernel/entry_32-xen.S
        cmpw $__KERNEL_CS,16(%esp)
        jne nmi_stack_correct
        cmpl $debug,(%esp)
-@@ -1040,8 +1054,10 @@ nmi_debug_stack_check:
+@@ -1042,8 +1058,10 @@ nmi_debug_stack_check:
        jmp nmi_stack_correct
  
  nmi_16bit_stack:
@@ -423,7 +429,7 @@ Index: head-2008-12-01/arch/x86/kernel/entry_32-xen.S
        pushl %ss
        CFI_ADJUST_CFA_OFFSET 4
        pushl %esp
-@@ -1062,14 +1078,14 @@ nmi_16bit_stack:
+@@ -1064,14 +1082,14 @@ nmi_16bit_stack:
        call do_nmi
        RESTORE_REGS
        lss 12+4(%esp), %esp            # back to 16bit stack
@@ -440,7 +446,7 @@ Index: head-2008-12-01/arch/x86/kernel/entry_32-xen.S
        RING0_INT_FRAME
        pushl %eax
        CFI_ADJUST_CFA_OFFSET 4
-@@ -1081,6 +1097,7 @@ ENTRY(nmi)
+@@ -1083,6 +1101,7 @@ ENTRY(nmi)
        jmp restore_all
        CFI_ENDPROC
  #endif
@@ -448,7 +454,7 @@ Index: head-2008-12-01/arch/x86/kernel/entry_32-xen.S
  
  KPROBE_ENTRY(int3)
        RING0_INT_FRAME
-@@ -1092,7 +1109,7 @@ KPROBE_ENTRY(int3)
+@@ -1094,7 +1113,7 @@ KPROBE_ENTRY(int3)
        call do_int3
        jmp ret_from_exception
        CFI_ENDPROC
@@ -457,7 +463,7 @@ Index: head-2008-12-01/arch/x86/kernel/entry_32-xen.S
  
  ENTRY(overflow)
        RING0_INT_FRAME
-@@ -1157,7 +1174,7 @@ KPROBE_ENTRY(general_protection)
+@@ -1159,7 +1178,7 @@ KPROBE_ENTRY(general_protection)
        CFI_ADJUST_CFA_OFFSET 4
        jmp error_code
        CFI_ENDPROC
@@ -466,7 +472,7 @@ Index: head-2008-12-01/arch/x86/kernel/entry_32-xen.S
  
  ENTRY(alignment_check)
        RING0_EC_FRAME
-@@ -1166,13 +1183,14 @@ ENTRY(alignment_check)
+@@ -1168,13 +1187,14 @@ ENTRY(alignment_check)
        jmp error_code
        CFI_ENDPROC
  
@@ -485,7 +491,7 @@ Index: head-2008-12-01/arch/x86/kernel/entry_32-xen.S
  
  #ifdef CONFIG_X86_MCE
  ENTRY(machine_check)
-@@ -1234,6 +1252,19 @@ ENTRY(fixup_4gb_segment)
+@@ -1236,6 +1256,19 @@ ENTRY(fixup_4gb_segment)
        jmp error_code
        CFI_ENDPROC
  
@@ -505,10 +511,8 @@ Index: head-2008-12-01/arch/x86/kernel/entry_32-xen.S
  .section .rodata,"a"
  #include "syscall_table.S"
  
-Index: head-2008-12-01/arch/x86/kernel/head_32-xen.S
-===================================================================
---- head-2008-12-01.orig/arch/x86/kernel/head_32-xen.S 2008-12-03 15:49:14.000000000 +0100
-+++ head-2008-12-01/arch/x86/kernel/head_32-xen.S      2008-12-01 11:29:05.000000000 +0100
+--- sle11-2009-05-14.orig/arch/x86/kernel/head_32-xen.S        2009-05-14 11:02:43.000000000 +0200
++++ sle11-2009-05-14/arch/x86/kernel/head_32-xen.S     2009-03-04 11:28:34.000000000 +0100
 @@ -62,7 +62,7 @@ ENTRY(startup_32)
        movl %eax,%gs
        cld                     # gcc2 wants the direction flag cleared at all times
@@ -518,10 +522,8 @@ Index: head-2008-12-01/arch/x86/kernel/head_32-xen.S
        jmp start_kernel
  
  #define HYPERCALL_PAGE_OFFSET 0x1000
-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-03 15:49:14.000000000 +0100
-+++ head-2008-12-01/arch/x86/kernel/io_apic_32-xen.c   2008-12-01 11:29:05.000000000 +0100
+--- sle11-2009-05-14.orig/arch/x86/kernel/io_apic_32-xen.c     2009-03-16 16:13:45.000000000 +0100
++++ sle11-2009-05-14/arch/x86/kernel/io_apic_32-xen.c  2009-03-04 11:28:34.000000000 +0100
 @@ -31,6 +31,9 @@
  #include <linux/acpi.h>
  #include <linux/module.h>
@@ -784,7 +786,7 @@ Index: head-2008-12-01/arch/x86/kernel/io_apic_32-xen.c
 -      BUG_ON(irq != AUTO_ASSIGN && (unsigned)irq >= NR_IRQ_VECTORS);
 +      BUG_ON((unsigned)irq >= NR_IRQ_VECTORS);
  
-       if (irq < PIRQ_BASE || irq - PIRQ_BASE > NR_PIRQS)
+       if (irq < PIRQ_BASE || irq - PIRQ_BASE >= NR_PIRQS)
                return -EINVAL;
  
 -      spin_lock_irqsave(&vector_lock, flags);
@@ -1601,10 +1603,8 @@ Index: head-2008-12-01/arch/x86/kernel/io_apic_32-xen.c
 +      return 0;
 +}
 +early_param("noapic", parse_noapic);
-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-03 15:49:14.000000000 +0100
-+++ head-2008-12-01/arch/x86/kernel/irq_32-xen.c       2008-12-01 11:29:05.000000000 +0100
+--- sle11-2009-05-14.orig/arch/x86/kernel/irq_32-xen.c 2009-05-14 11:02:43.000000000 +0200
++++ sle11-2009-05-14/arch/x86/kernel/irq_32-xen.c      2009-03-04 11:28:34.000000000 +0100
 @@ -53,8 +53,10 @@ static union irq_ctx *softirq_ctx[NR_CPU
   */
  fastcall unsigned int do_IRQ(struct pt_regs *regs)
@@ -1661,10 +1661,8 @@ Index: head-2008-12-01/arch/x86/kernel/irq_32-xen.c
                seq_printf(p, "  %s", action->name);
  
                for (action=action->next; action; action = action->next)
-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-03 15:49:14.000000000 +0100
-+++ head-2008-12-01/arch/x86/kernel/ldt_32-xen.c       2008-12-01 11:29:05.000000000 +0100
+--- sle11-2009-05-14.orig/arch/x86/kernel/ldt_32-xen.c 2009-05-14 11:02:43.000000000 +0200
++++ sle11-2009-05-14/arch/x86/kernel/ldt_32-xen.c      2009-03-04 11:28:34.000000000 +0100
 @@ -1,5 +1,5 @@
  /*
 - * linux/kernel/ldt.c
@@ -1672,10 +1670,8 @@ Index: head-2008-12-01/arch/x86/kernel/ldt_32-xen.c
   *
   * Copyright (C) 1992 Krishna Balasubramanian and Linus Torvalds
   * Copyright (C) 1999 Ingo Molnar <mingo@redhat.com>
-Index: head-2008-12-01/arch/x86/kernel/microcode-xen.c
-===================================================================
---- head-2008-12-01.orig/arch/x86/kernel/microcode-xen.c       2008-12-03 15:49:14.000000000 +0100
-+++ head-2008-12-01/arch/x86/kernel/microcode-xen.c    2008-12-01 11:29:05.000000000 +0100
+--- sle11-2009-05-14.orig/arch/x86/kernel/microcode-xen.c      2009-05-14 11:02:43.000000000 +0200
++++ sle11-2009-05-14/arch/x86/kernel/microcode-xen.c   2009-03-04 11:28:34.000000000 +0100
 @@ -2,6 +2,7 @@
   *    Intel CPU Microcode Update Driver for Linux
   *
@@ -1811,10 +1807,8 @@ Index: head-2008-12-01/arch/x86/kernel/microcode-xen.c
  module_init(microcode_init)
  module_exit(microcode_exit)
 -MODULE_ALIAS_MISCDEV(MICROCODE_MINOR);
-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-03 15:49:14.000000000 +0100
-+++ head-2008-12-01/arch/x86/kernel/mpparse_32-xen.c   2008-12-01 11:29:05.000000000 +0100
+--- sle11-2009-05-14.orig/arch/x86/kernel/mpparse_32-xen.c     2009-05-14 11:02:43.000000000 +0200
++++ sle11-2009-05-14/arch/x86/kernel/mpparse_32-xen.c  2009-03-04 11:28:34.000000000 +0100
 @@ -30,6 +30,7 @@
  #include <asm/io_apic.h>
  
@@ -1981,10 +1975,8 @@ Index: head-2008-12-01/arch/x86/kernel/mpparse_32-xen.c
        /*
         * Mapping between Global System Interrups, which
         * represent all possible interrupts, and IRQs
-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-03 15:49:14.000000000 +0100
-+++ head-2008-12-01/arch/x86/kernel/pci-dma-xen.c      2008-12-01 11:29:05.000000000 +0100
+--- sle11-2009-05-14.orig/arch/x86/kernel/pci-dma-xen.c        2009-05-14 11:02:43.000000000 +0200
++++ sle11-2009-05-14/arch/x86/kernel/pci-dma-xen.c     2009-03-04 11:28:34.000000000 +0100
 @@ -110,8 +110,7 @@ dma_map_sg(struct device *hwdev, struct 
  {
        int i, rc;
@@ -2043,10 +2035,8 @@ Index: head-2008-12-01/arch/x86/kernel/pci-dma-xen.c
        if (swiotlb)
                swiotlb_unmap_single(dev, dma_addr, size, direction);
        else
-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-03 15:49:14.000000000 +0100
-+++ head-2008-12-01/arch/x86/kernel/process_32-xen.c   2008-12-01 11:29:05.000000000 +0100
+--- sle11-2009-05-14.orig/arch/x86/kernel/process_32-xen.c     2009-05-14 11:02:43.000000000 +0200
++++ sle11-2009-05-14/arch/x86/kernel/process_32-xen.c  2009-03-04 11:28:34.000000000 +0100
 @@ -37,6 +37,7 @@
  #include <linux/kallsyms.h>
  #include <linux/ptrace.h>
@@ -2136,10 +2126,8 @@ Index: head-2008-12-01/arch/x86/kernel/process_32-xen.c
                sp -= get_random_int() % 8192;
        return sp & ~0xf;
  }
-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-03 15:49:14.000000000 +0100
-+++ head-2008-12-01/arch/x86/kernel/setup_32-xen.c     2008-12-01 11:29:05.000000000 +0100
+--- sle11-2009-05-14.orig/arch/x86/kernel/setup_32-xen.c       2009-05-14 11:02:43.000000000 +0200
++++ sle11-2009-05-14/arch/x86/kernel/setup_32-xen.c    2009-03-04 11:28:34.000000000 +0100
 @@ -56,6 +56,7 @@
  #include <asm/apic.h>
  #include <asm/e820.h>
@@ -2712,10 +2700,8 @@ Index: head-2008-12-01/arch/x86/kernel/setup_32-xen.c
  
  #ifdef CONFIG_ACPI
        acpi_boot_init();
-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-03 15:49:14.000000000 +0100
-+++ head-2008-12-01/arch/x86/kernel/smp_32-xen.c       2008-12-01 11:29:05.000000000 +0100
+--- sle11-2009-05-14.orig/arch/x86/kernel/smp_32-xen.c 2009-05-14 11:02:43.000000000 +0200
++++ sle11-2009-05-14/arch/x86/kernel/smp_32-xen.c      2009-03-04 11:28:34.000000000 +0100
 @@ -279,8 +279,7 @@ static inline void leave_mm (unsigned lo
   * 2) Leave the mm if we are in the lazy tlb mode.
   */
@@ -2815,10 +2801,8 @@ Index: head-2008-12-01/arch/x86/kernel/smp_32-xen.c
 +      return 0;
 +}
 +EXPORT_SYMBOL(smp_call_function_single);
-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-03 15:49:14.000000000 +0100
-+++ head-2008-12-01/arch/x86/kernel/time_32-xen.c      2008-12-01 11:29:05.000000000 +0100
+--- sle11-2009-05-14.orig/arch/x86/kernel/time_32-xen.c        2009-04-20 11:36:10.000000000 +0200
++++ sle11-2009-05-14/arch/x86/kernel/time_32-xen.c     2009-03-24 10:08:00.000000000 +0100
 @@ -89,7 +89,6 @@ int pit_latch_buggy;              /* ext
  unsigned long vxtime_hz = PIT_TICK_RATE;
  struct vxtime_data __vxtime __section_vxtime;   /* for vsyscalls */
@@ -2849,7 +2833,7 @@ Index: head-2008-12-01/arch/x86/kernel/time_32-xen.c
  
        /* Split wallclock base into seconds and nanoseconds. */
        tmp = wc_nsec;
-@@ -394,16 +390,10 @@ void do_gettimeofday(struct timeval *tv)
+@@ -392,16 +388,10 @@ void do_gettimeofday(struct timeval *tv)
        shadow = &per_cpu(shadow_time, cpu);
  
        do {
@@ -2866,7 +2850,7 @@ Index: head-2008-12-01/arch/x86/kernel/time_32-xen.c
  
                sec = xtime.tv_sec;
                usec += (xtime.tv_nsec / NSEC_PER_USEC);
-@@ -526,7 +516,7 @@ static void sync_xen_wallclock(unsigned 
+@@ -525,7 +515,7 @@ static void sync_xen_wallclock(unsigned 
        write_seqlock_irq(&xtime_lock);
  
        sec  = xtime.tv_sec;
@@ -2875,7 +2859,7 @@ Index: head-2008-12-01/arch/x86/kernel/time_32-xen.c
        __normalize_time(&sec, &nsec);
  
        op.cmd = XENPF_settime;
-@@ -600,42 +590,49 @@ unsigned long long sched_clock(void)
+@@ -599,42 +589,49 @@ unsigned long long sched_clock(void)
  }
  #endif
  
@@ -2944,7 +2928,7 @@ Index: head-2008-12-01/arch/x86/kernel/time_32-xen.c
  {
        s64 delta, delta_cpu, stolen, blocked;
        u64 sched_time;
-@@ -693,10 +690,14 @@ irqreturn_t timer_interrupt(int irq, voi
+@@ -692,10 +689,14 @@ irqreturn_t timer_interrupt(int irq, voi
        }
  
        /* System-wide jiffy work. */
@@ -2963,7 +2947,7 @@ Index: head-2008-12-01/arch/x86/kernel/time_32-xen.c
        }
  
        if (shadow_tv_version != HYPERVISOR_shared_info->wc_version) {
-@@ -741,7 +742,7 @@ irqreturn_t timer_interrupt(int irq, voi
+@@ -740,7 +741,7 @@ irqreturn_t timer_interrupt(int irq, voi
        if (delta_cpu > 0) {
                do_div(delta_cpu, NS_PER_TICK);
                per_cpu(processed_system_time, cpu) += delta_cpu * NS_PER_TICK;
@@ -2972,7 +2956,7 @@ Index: head-2008-12-01/arch/x86/kernel/time_32-xen.c
                        account_user_time(current, (cputime_t)delta_cpu);
                else
                        account_system_time(current, HARDIRQ_OFFSET,
-@@ -755,10 +756,10 @@ irqreturn_t timer_interrupt(int irq, voi
+@@ -754,10 +755,10 @@ irqreturn_t timer_interrupt(int irq, voi
        /* Local timer processing (see update_process_times()). */
        run_local_timers();
        if (rcu_pending(cpu))
@@ -2985,7 +2969,7 @@ Index: head-2008-12-01/arch/x86/kernel/time_32-xen.c
  
        return IRQ_HANDLED;
  }
-@@ -968,10 +969,11 @@ extern void (*late_time_init)(void);
+@@ -967,10 +968,11 @@ extern void (*late_time_init)(void);
  /* Duplicate of time_init() below, with hpet_enable part added */
  static void __init hpet_time_init(void)
  {
@@ -3001,10 +2985,8 @@ Index: head-2008-12-01/arch/x86/kernel/time_32-xen.c
  
        if ((hpet_enable() >= 0) && hpet_use_timer) {
                printk("Using HPET for base-timer\n");
-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-03 15:49:14.000000000 +0100
-+++ head-2008-12-01/arch/x86/kernel/traps_32-xen.c     2008-12-01 11:29:05.000000000 +0100
+--- sle11-2009-05-14.orig/arch/x86/kernel/traps_32-xen.c       2009-05-14 11:02:43.000000000 +0200
++++ sle11-2009-05-14/arch/x86/kernel/traps_32-xen.c    2009-03-04 11:28:34.000000000 +0100
 @@ -28,6 +28,7 @@
  #include <linux/kprobes.h>
  #include <linux/kexec.h>
@@ -3451,10 +3433,8 @@ Index: head-2008-12-01/arch/x86/kernel/traps_32-xen.c
  #ifdef CONFIG_KPROBES
  fastcall void __kprobes do_int3(struct pt_regs *regs, long error_code)
  {
-Index: head-2008-12-01/arch/x86/mach-xen/setup.c
-===================================================================
---- head-2008-12-01.orig/arch/x86/mach-xen/setup.c     2008-12-03 15:49:14.000000000 +0100
-+++ head-2008-12-01/arch/x86/mach-xen/setup.c  2008-12-01 11:29:05.000000000 +0100
+--- sle11-2009-05-14.orig/arch/x86/mach-xen/setup.c    2009-05-14 11:02:43.000000000 +0200
++++ sle11-2009-05-14/arch/x86/mach-xen/setup.c 2009-03-04 11:28:34.000000000 +0100
 @@ -103,8 +103,10 @@ void __init pre_setup_arch_hook(void)
  
        setup_xen_features();
@@ -3468,10 +3448,8 @@ Index: head-2008-12-01/arch/x86/mach-xen/setup.c
  
        if (HYPERVISOR_memory_op(XENMEM_machphys_mapping, &mapping) == 0) {
                machine_to_phys_mapping = (unsigned long *)mapping.v_start;
-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-03 15:49:14.000000000 +0100
-+++ head-2008-12-01/arch/x86/mm/fault_32-xen.c 2008-12-01 11:29:05.000000000 +0100
+--- sle11-2009-05-14.orig/arch/x86/mm/fault_32-xen.c   2009-05-14 11:02:43.000000000 +0200
++++ sle11-2009-05-14/arch/x86/mm/fault_32-xen.c        2009-03-04 11:28:34.000000000 +0100
 @@ -27,21 +27,24 @@
  #include <asm/uaccess.h>
  #include <asm/desc.h>
@@ -3558,10 +3536,8 @@ Index: head-2008-12-01/arch/x86/mm/fault_32-xen.c
                yield();
                down_read(&mm->mmap_sem);
                goto survive;
-Index: head-2008-12-01/arch/x86/mm/highmem_32-xen.c
-===================================================================
---- head-2008-12-01.orig/arch/x86/mm/highmem_32-xen.c  2008-12-03 15:49:14.000000000 +0100
-+++ head-2008-12-01/arch/x86/mm/highmem_32-xen.c       2008-12-01 11:29:05.000000000 +0100
+--- sle11-2009-05-14.orig/arch/x86/mm/highmem_32-xen.c 2009-05-14 11:02:43.000000000 +0200
++++ sle11-2009-05-14/arch/x86/mm/highmem_32-xen.c      2009-03-04 11:28:34.000000000 +0100
 @@ -38,11 +38,9 @@ static void *__kmap_atomic(struct page *
  
        idx = type + KM_TYPE_NR*smp_processor_id();
@@ -3628,10 +3604,8 @@ Index: head-2008-12-01/arch/x86/mm/highmem_32-xen.c
  
        return (void*) vaddr;
  }
-Index: head-2008-12-01/arch/x86/mm/hypervisor.c
-===================================================================
---- head-2008-12-01.orig/arch/x86/mm/hypervisor.c      2008-12-03 15:49:14.000000000 +0100
-+++ head-2008-12-01/arch/x86/mm/hypervisor.c   2008-12-01 11:29:05.000000000 +0100
+--- sle11-2009-05-14.orig/arch/x86/mm/hypervisor.c     2008-12-15 11:13:45.000000000 +0100
++++ sle11-2009-05-14/arch/x86/mm/hypervisor.c  2009-03-04 11:28:34.000000000 +0100
 @@ -31,6 +31,7 @@
   */
  
@@ -3943,7 +3917,7 @@ Index: head-2008-12-01/arch/x86/mm/hypervisor.c
  void xen_l1_entry_update(pte_t *ptr, pte_t val)
  {
        mmu_update_t u;
-@@ -547,7 +844,8 @@ int write_ldt_entry(void *ldt, int entry
+@@ -542,7 +839,8 @@ int write_ldt_entry(void *ldt, int entry
  #define MAX_BATCHED_FULL_PTES 32
  
  int xen_change_pte_range(struct mm_struct *mm, pmd_t *pmd,
@@ -3953,7 +3927,7 @@ Index: head-2008-12-01/arch/x86/mm/hypervisor.c
  {
        int rc = 0, i = 0;
        mmu_update_t u[MAX_BATCHED_FULL_PTES];
-@@ -560,10 +858,14 @@ int xen_change_pte_range(struct mm_struc
+@@ -555,10 +853,14 @@ int xen_change_pte_range(struct mm_struc
        pte = pte_offset_map_lock(mm, pmd, addr, &ptl);
        do {
                if (pte_present(*pte)) {
@@ -3969,10 +3943,8 @@ Index: head-2008-12-01/arch/x86/mm/hypervisor.c
                        if (++i == MAX_BATCHED_FULL_PTES) {
                                if ((rc = HYPERVISOR_mmu_update(
                                        &u[0], i, NULL, DOMID_SELF)) != 0)
-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-03 15:49:14.000000000 +0100
-+++ head-2008-12-01/arch/x86/mm/init_32-xen.c  2008-12-01 11:29:05.000000000 +0100
+--- sle11-2009-05-14.orig/arch/x86/mm/init_32-xen.c    2009-05-14 11:02:43.000000000 +0200
++++ sle11-2009-05-14/arch/x86/mm/init_32-xen.c 2009-03-04 11:28:34.000000000 +0100
 @@ -462,16 +462,22 @@ EXPORT_SYMBOL(__supported_pte_mask);
   * on      Enable
   * off     Disable
@@ -4115,10 +4087,8 @@ Index: head-2008-12-01/arch/x86/mm/init_32-xen.c
        unsigned long start_pfn = start >> PAGE_SHIFT;
        unsigned long nr_pages = size >> PAGE_SHIFT;
  
-Index: head-2008-12-01/arch/x86/mm/ioremap_32-xen.c
-===================================================================
---- head-2008-12-01.orig/arch/x86/mm/ioremap_32-xen.c  2008-12-03 15:49:14.000000000 +0100
-+++ head-2008-12-01/arch/x86/mm/ioremap_32-xen.c       2008-12-01 11:29:05.000000000 +0100
+--- sle11-2009-05-14.orig/arch/x86/mm/ioremap_32-xen.c 2009-05-14 11:02:43.000000000 +0200
++++ sle11-2009-05-14/arch/x86/mm/ioremap_32-xen.c      2009-03-04 11:28:34.000000000 +0100
 @@ -12,7 +12,7 @@
  #include <linux/init.h>
  #include <linux/slab.h>
@@ -4166,10 +4136,8 @@ Index: head-2008-12-01/arch/x86/mm/ioremap_32-xen.c
                vunmap((void __force *) addr);
                return NULL;
        }
-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-03 15:49:14.000000000 +0100
-+++ head-2008-12-01/arch/x86/mm/pgtable_32-xen.c       2008-12-01 11:29:05.000000000 +0100
+--- sle11-2009-05-14.orig/arch/x86/mm/pgtable_32-xen.c 2008-12-01 11:25:57.000000000 +0100
++++ sle11-2009-05-14/arch/x86/mm/pgtable_32-xen.c      2009-03-04 11:28:34.000000000 +0100
 @@ -68,7 +68,9 @@ void show_mem(void)
        printk(KERN_INFO "%lu pages writeback\n",
                                        global_page_state(NR_WRITEBACK));
@@ -4225,10 +4193,8 @@ Index: head-2008-12-01/arch/x86/mm/pgtable_32-xen.c
  }
  
  pte_t *pte_alloc_one_kernel(struct mm_struct *mm, unsigned long address)
-Index: head-2008-12-01/arch/x86/pci/irq-xen.c
-===================================================================
---- head-2008-12-01.orig/arch/x86/pci/irq-xen.c        2008-12-03 15:49:14.000000000 +0100
-+++ head-2008-12-01/arch/x86/pci/irq-xen.c     2008-12-01 11:29:05.000000000 +0100
+--- sle11-2009-05-14.orig/arch/x86/pci/irq-xen.c       2009-05-14 11:02:43.000000000 +0200
++++ sle11-2009-05-14/arch/x86/pci/irq-xen.c    2009-03-04 11:28:34.000000000 +0100
 @@ -991,10 +991,6 @@ static void __init pcibios_fixup_irqs(vo
                                                        pci_name(bridge), 'A' + pin, irq);
                                }
@@ -4285,10 +4251,8 @@ Index: head-2008-12-01/arch/x86/pci/irq-xen.c
 -
 -      return count;
 -}
-Index: head-2008-12-01/arch/x86/ia32/ia32entry-xen.S
-===================================================================
---- head-2008-12-01.orig/arch/x86/ia32/ia32entry-xen.S 2008-12-03 15:49:14.000000000 +0100
-+++ head-2008-12-01/arch/x86/ia32/ia32entry-xen.S      2008-12-01 11:29:05.000000000 +0100
+--- sle11-2009-05-14.orig/arch/x86/ia32/ia32entry-xen.S        2009-05-14 11:02:43.000000000 +0200
++++ sle11-2009-05-14/arch/x86/ia32/ia32entry-xen.S     2009-03-04 11:28:34.000000000 +0100
 @@ -83,6 +83,7 @@
   */   
  ENTRY(ia32_sysenter_target)
@@ -4338,23 +4302,21 @@ Index: head-2008-12-01/arch/x86/ia32/ia32entry-xen.S
        .quad compat_sys_move_pages
 +      .quad sys_getcpu
  ia32_syscall_end:             
-Index: head-2008-12-01/arch/x86/kernel/Makefile
-===================================================================
---- head-2008-12-01.orig/arch/x86/kernel/Makefile      2008-12-03 15:49:14.000000000 +0100
-+++ head-2008-12-01/arch/x86/kernel/Makefile   2008-12-01 11:32:33.000000000 +0100
+--- sle11-2009-05-14.orig/arch/x86/kernel/Makefile     2009-04-20 11:36:10.000000000 +0200
++++ sle11-2009-05-14/arch/x86/kernel/Makefile  2009-03-04 11:28:34.000000000 +0100
 @@ -104,9 +104,9 @@ obj-$(CONFIG_X86_XEN)              += fixup.o
  ###
  # 64 bit specific files
  ifeq ($(CONFIG_X86_64),y)
 -        obj-y                         += genapic_64.o genapic_flat_64.o genx2apic_uv_x.o tlb_uv.o
 -      obj-$(CONFIG_X86_XEN_GENAPIC)   += genapic_xen_64.o
--      obj-y                           += bios_uv.o
+-        obj-y                         += uv_sysfs.o
 +      obj-$(CONFIG_X86_LOCAL_APIC)    += genapic_64.o genapic_flat_64.o genx2apic_uv_x.o
 +      obj-$(CONFIG_X86_XEN_GENAPIC)   += genapic_64.o genapic_xen_64.o
-+      obj-y                           += tlb_uv.o bios_uv.o
-         obj-$(CONFIG_X86_PM_TIMER)    += pmtimer_64.o
-         obj-$(CONFIG_AUDIT)           += audit_64.o
++      obj-y                           += tlb_uv.o uv_sysfs.o
+         obj-y                         += genx2apic_cluster.o
+         obj-y                         += genx2apic_phys.o
+       obj-y                           += bios_uv.o uv_irq.o
 @@ -124,5 +124,7 @@ ifeq ($(CONFIG_X86_64),y)
        pci-dma_64-$(CONFIG_XEN)        += pci-dma_32.o
  endif
@@ -4364,10 +4326,8 @@ Index: head-2008-12-01/arch/x86/kernel/Makefile
 +      smpboot_$(BITS).o tsc_$(BITS).o
 +disabled-obj-$(CONFIG_XEN_UNPRIVILEGED_GUEST) += mpparse_64.o
  %/head_$(BITS).o %/head_$(BITS).s: $(if $(CONFIG_XEN),EXTRA_AFLAGS,dummy) :=
-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-03 15:49:14.000000000 +0100
-+++ head-2008-12-01/arch/x86/kernel/apic_64-xen.c      2008-12-01 11:29:05.000000000 +0100
+--- sle11-2009-05-14.orig/arch/x86/kernel/apic_64-xen.c        2009-05-14 11:02:43.000000000 +0200
++++ sle11-2009-05-14/arch/x86/kernel/apic_64-xen.c     2009-03-04 11:28:34.000000000 +0100
 @@ -43,7 +43,7 @@ int apic_verbosity;
   */
  void ack_bad_irq(unsigned int irq)
@@ -4433,10 +4393,8 @@ Index: head-2008-12-01/arch/x86/kernel/apic_64-xen.c
  #endif
  
        return 1;
-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-03 15:49:14.000000000 +0100
-+++ head-2008-12-01/arch/x86/kernel/e820_64-xen.c      2008-12-01 11:29:05.000000000 +0100
+--- sle11-2009-05-14.orig/arch/x86/kernel/e820_64-xen.c        2009-05-14 11:02:43.000000000 +0200
++++ sle11-2009-05-14/arch/x86/kernel/e820_64-xen.c     2009-03-04 11:28:34.000000000 +0100
 @@ -16,6 +16,7 @@
  #include <linux/string.h>
  #include <linux/kexec.h>
@@ -4917,10 +4875,8 @@ Index: head-2008-12-01/arch/x86/kernel/e820_64-xen.c
  }
  
  unsigned long pci_mem_start = 0xaeedbabe;
-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-03 15:49:14.000000000 +0100
-+++ head-2008-12-01/arch/x86/kernel/early_printk-xen.c 2008-12-01 11:29:05.000000000 +0100
+--- sle11-2009-05-14.orig/arch/x86/kernel/early_printk-xen.c   2009-05-14 11:02:43.000000000 +0200
++++ sle11-2009-05-14/arch/x86/kernel/early_printk-xen.c        2009-03-04 11:28:34.000000000 +0100
 @@ -244,20 +244,16 @@ void early_printk(const char *fmt, ...)
  
  static int __initdata keep_early;
@@ -4967,10 +4923,8 @@ Index: head-2008-12-01/arch/x86/kernel/early_printk-xen.c
  }
  
 -__setup("earlyprintk=", setup_early_printk);
-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-03 15:49:14.000000000 +0100
-+++ head-2008-12-01/arch/x86/kernel/entry_64-xen.S     2008-12-01 11:29:05.000000000 +0100
+--- sle11-2009-05-14.orig/arch/x86/kernel/entry_64-xen.S       2009-05-14 11:02:43.000000000 +0200
++++ sle11-2009-05-14/arch/x86/kernel/entry_64-xen.S    2009-03-04 11:28:34.000000000 +0100
 @@ -4,9 +4,6 @@
   *  Copyright (C) 1991, 1992  Linus Torvalds
   *  Copyright (C) 2000, 2001, 2002  Andi Kleen SuSE Labs
@@ -5213,10 +5167,8 @@ Index: head-2008-12-01/arch/x86/kernel/entry_64-xen.S
  
  ENTRY(alignment_check)
        errorentry do_alignment_check
-Index: head-2008-12-01/arch/x86/kernel/genapic_xen_64.c
-===================================================================
---- head-2008-12-01.orig/arch/x86/kernel/genapic_xen_64.c      2008-12-03 15:49:14.000000000 +0100
-+++ head-2008-12-01/arch/x86/kernel/genapic_xen_64.c   2008-12-01 11:29:05.000000000 +0100
+--- sle11-2009-05-14.orig/arch/x86/kernel/genapic_xen_64.c     2009-05-14 11:02:43.000000000 +0200
++++ sle11-2009-05-14/arch/x86/kernel/genapic_xen_64.c  2009-03-04 11:28:34.000000000 +0100
 @@ -71,6 +71,13 @@ static cpumask_t xen_target_cpus(void)
        return cpu_online_map;
  }
@@ -5241,10 +5193,8 @@ Index: head-2008-12-01/arch/x86/kernel/genapic_xen_64.c
  #ifdef CONFIG_XEN_PRIVILEGED_GUEST
        .apic_id_registered = xen_apic_id_registered,
  #endif
-Index: head-2008-12-01/arch/x86/kernel/head_64-xen.S
-===================================================================
---- head-2008-12-01.orig/arch/x86/kernel/head_64-xen.S 2008-12-03 15:49:14.000000000 +0100
-+++ head-2008-12-01/arch/x86/kernel/head_64-xen.S      2008-12-01 11:29:05.000000000 +0100
+--- sle11-2009-05-14.orig/arch/x86/kernel/head_64-xen.S        2009-05-14 11:02:43.000000000 +0200
++++ sle11-2009-05-14/arch/x86/kernel/head_64-xen.S     2009-03-04 11:28:34.000000000 +0100
 @@ -5,9 +5,6 @@
   *  Copyright (C) 2000 Pavel Machek <pavel@suse.cz>
   *  Copyright (C) 2000 Karsten Keil <kkeil@suse.de>
@@ -5264,10 +5214,8 @@ Index: head-2008-12-01/arch/x86/kernel/head_64-xen.S
  gdt_end:
        /* asm/segment.h:GDT_ENTRIES must match this */
        /* This should be a multiple of the cache line size */
-Index: head-2008-12-01/arch/x86/kernel/head64-xen.c
-===================================================================
---- head-2008-12-01.orig/arch/x86/kernel/head64-xen.c  2008-12-03 15:49:14.000000000 +0100
-+++ head-2008-12-01/arch/x86/kernel/head64-xen.c       2008-12-01 11:29:05.000000000 +0100
+--- sle11-2009-05-14.orig/arch/x86/kernel/head64-xen.c 2009-05-14 11:02:43.000000000 +0200
++++ sle11-2009-05-14/arch/x86/kernel/head64-xen.c      2009-03-04 11:28:34.000000000 +0100
 @@ -7,6 +7,9 @@
   *    Modified for Xen.
   */
@@ -5359,10 +5307,8 @@ Index: head-2008-12-01/arch/x86/kernel/head64-xen.c
 -      setup_boot_cpu_data();
        start_kernel();
  }
-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-03 15:49:14.000000000 +0100
-+++ head-2008-12-01/arch/x86/kernel/io_apic_64-xen.c   2008-12-01 11:29:05.000000000 +0100
+--- sle11-2009-05-14.orig/arch/x86/kernel/io_apic_64-xen.c     2009-03-16 16:13:45.000000000 +0100
++++ sle11-2009-05-14/arch/x86/kernel/io_apic_64-xen.c  2009-03-04 11:28:34.000000000 +0100
 @@ -26,9 +26,12 @@
  #include <linux/delay.h>
  #include <linux/sched.h>
@@ -6146,7 +6092,7 @@ Index: head-2008-12-01/arch/x86/kernel/io_apic_64-xen.c
 -      BUG_ON(irq != AUTO_ASSIGN && (unsigned)irq >= NR_IRQ_VECTORS);
 +      BUG_ON((unsigned)irq >= NR_IRQ_VECTORS);
  
-       if (irq < PIRQ_BASE || irq - PIRQ_BASE > NR_PIRQS)
+       if (irq < PIRQ_BASE || irq - PIRQ_BASE >= NR_PIRQS)
                return -EINVAL;
  
 -      spin_lock_irqsave(&vector_lock, flags);
@@ -7062,10 +7008,8 @@ Index: head-2008-12-01/arch/x86/kernel/io_apic_64-xen.c
        spin_unlock_irqrestore(&ioapic_lock, flags);
  
        return 0;
-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-03 15:49:14.000000000 +0100
-+++ head-2008-12-01/arch/x86/kernel/ioport_64-xen.c    2008-12-01 11:29:05.000000000 +0100
+--- sle11-2009-05-14.orig/arch/x86/kernel/ioport_64-xen.c      2009-05-14 11:02:43.000000000 +0200
++++ sle11-2009-05-14/arch/x86/kernel/ioport_64-xen.c   2009-03-04 11:28:34.000000000 +0100
 @@ -58,6 +58,7 @@ asmlinkage long sys_ioperm(unsigned long
  
                memset(bitmap, 0xff, IO_BITMAP_BYTES);
@@ -7074,10 +7018,8 @@ Index: head-2008-12-01/arch/x86/kernel/ioport_64-xen.c
  
                set_xen_guest_handle(set_iobitmap.bitmap, (char *)bitmap);
                set_iobitmap.nr_ports = IO_BITMAP_BITS;
-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-03 15:49:14.000000000 +0100
-+++ head-2008-12-01/arch/x86/kernel/irq_64-xen.c       2008-12-01 11:29:05.000000000 +0100
+--- sle11-2009-05-14.orig/arch/x86/kernel/irq_64-xen.c 2009-05-14 11:02:43.000000000 +0200
++++ sle11-2009-05-14/arch/x86/kernel/irq_64-xen.c      2009-03-04 11:28:34.000000000 +0100
 @@ -20,11 +20,6 @@
  #include <asm/idle.h>
  
@@ -7157,10 +7099,8 @@ Index: head-2008-12-01/arch/x86/kernel/irq_64-xen.c
 +        printk("unexpected IRQ trap at irq %02x\n", irq);
  }
  #endif
-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-03 15:49:14.000000000 +0100
-+++ head-2008-12-01/arch/x86/kernel/mpparse_64-xen.c   2008-12-01 11:29:05.000000000 +0100
+--- sle11-2009-05-14.orig/arch/x86/kernel/mpparse_64-xen.c     2009-05-14 11:02:43.000000000 +0200
++++ sle11-2009-05-14/arch/x86/kernel/mpparse_64-xen.c  2009-03-04 11:28:34.000000000 +0100
 @@ -41,8 +41,7 @@ int acpi_found_madt;
   * Various Linux-internal data structures created from the
   * MP-table.
@@ -7774,10 +7714,8 @@ Index: head-2008-12-01/arch/x86/kernel/mpparse_64-xen.c
 -
 -#endif /*CONFIG_X86_IO_APIC*/
  #endif /*CONFIG_ACPI*/
-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-03 15:49:14.000000000 +0100
-+++ head-2008-12-01/arch/x86/kernel/process_64-xen.c   2008-12-01 11:29:05.000000000 +0100
+--- sle11-2009-05-14.orig/arch/x86/kernel/process_64-xen.c     2009-05-14 11:02:43.000000000 +0200
++++ sle11-2009-05-14/arch/x86/kernel/process_64-xen.c  2009-03-04 11:28:34.000000000 +0100
 @@ -89,25 +89,24 @@ void idle_notifier_unregister(struct not
  }
  EXPORT_SYMBOL(idle_notifier_unregister);
@@ -7984,10 +7922,8 @@ Index: head-2008-12-01/arch/x86/kernel/process_64-xen.c
                sp -= get_random_int() % 8192;
        return sp & ~0xf;
  }
-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-03 15:49:14.000000000 +0100
-+++ head-2008-12-01/arch/x86/kernel/setup_64-xen.c     2008-12-01 11:29:05.000000000 +0100
+--- sle11-2009-05-14.orig/arch/x86/kernel/setup_64-xen.c       2009-05-14 11:02:43.000000000 +0200
++++ sle11-2009-05-14/arch/x86/kernel/setup_64-xen.c    2009-03-04 11:28:34.000000000 +0100
 @@ -88,9 +88,6 @@ extern struct edid_info edid_info;
  shared_info_t *HYPERVISOR_shared_info = (shared_info_t *)empty_zero_page;
  EXPORT_SYMBOL(HYPERVISOR_shared_info);
@@ -8421,10 +8357,8 @@ Index: head-2008-12-01/arch/x86/kernel/setup_64-xen.c
                NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  
                /* VIA/Cyrix/Centaur-defined */
-Index: head-2008-12-01/arch/x86/kernel/setup64-xen.c
-===================================================================
---- head-2008-12-01.orig/arch/x86/kernel/setup64-xen.c 2008-12-03 15:49:14.000000000 +0100
-+++ head-2008-12-01/arch/x86/kernel/setup64-xen.c      2008-12-01 11:29:05.000000000 +0100
+--- sle11-2009-05-14.orig/arch/x86/kernel/setup64-xen.c        2009-04-20 11:36:10.000000000 +0200
++++ sle11-2009-05-14/arch/x86/kernel/setup64-xen.c     2009-03-04 11:28:34.000000000 +0100
 @@ -31,7 +31,7 @@
  #include <asm/hypervisor.h>
  #endif
@@ -8518,10 +8452,8 @@ Index: head-2008-12-01/arch/x86/kernel/setup64-xen.c
                orig_ist->ist[v] = t->ist[v] = (unsigned long)estacks;
        }
  
-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-03 15:49:14.000000000 +0100
-+++ head-2008-12-01/arch/x86/kernel/smp_64-xen.c       2008-12-01 11:29:05.000000000 +0100
+--- sle11-2009-05-14.orig/arch/x86/kernel/smp_64-xen.c 2009-05-14 11:02:43.000000000 +0200
++++ sle11-2009-05-14/arch/x86/kernel/smp_64-xen.c      2009-03-04 11:28:34.000000000 +0100
 @@ -381,9 +381,8 @@ int smp_call_function_single (int cpu, v
        /* prevent preemption and reschedule on another processor */
        int me = get_cpu();
@@ -8583,10 +8515,8 @@ Index: head-2008-12-01/arch/x86/kernel/smp_64-xen.c
 -      return 0; /* Should not happen */
 -#endif
 -}
-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-03 15:49:14.000000000 +0100
-+++ head-2008-12-01/arch/x86/kernel/traps_64-xen.c     2008-12-01 11:29:05.000000000 +0100
+--- sle11-2009-05-14.orig/arch/x86/kernel/traps_64-xen.c       2009-05-14 11:02:43.000000000 +0200
++++ sle11-2009-05-14/arch/x86/kernel/traps_64-xen.c    2009-03-04 11:28:34.000000000 +0100
 @@ -23,6 +23,7 @@
  #include <linux/delay.h>
  #include <linux/spinlock.h>
@@ -9042,10 +8972,8 @@ Index: head-2008-12-01/arch/x86/kernel/traps_64-xen.c
 -__setup("call_trace=", call_trace_setup);
 +early_param("call_trace", call_trace_setup);
  #endif
-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-03 15:49:14.000000000 +0100
-+++ head-2008-12-01/arch/x86/kernel/vsyscall_64-xen.c  2008-12-01 11:29:05.000000000 +0100
+--- sle11-2009-05-14.orig/arch/x86/kernel/vsyscall_64-xen.c    2009-05-14 11:02:43.000000000 +0200
++++ sle11-2009-05-14/arch/x86/kernel/vsyscall_64-xen.c 2009-03-04 11:28:34.000000000 +0100
 @@ -26,6 +26,10 @@
  #include <linux/seqlock.h>
  #include <linux/jiffies.h>
@@ -9239,10 +9167,8 @@ Index: head-2008-12-01/arch/x86/kernel/vsyscall_64-xen.c
        return 0;
  }
  
-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-03 15:49:14.000000000 +0100
-+++ head-2008-12-01/arch/x86/mm/fault_64-xen.c 2008-12-01 11:29:05.000000000 +0100
+--- sle11-2009-05-14.orig/arch/x86/mm/fault_64-xen.c   2009-05-14 11:02:43.000000000 +0200
++++ sle11-2009-05-14/arch/x86/mm/fault_64-xen.c        2009-03-04 11:28:34.000000000 +0100
 @@ -40,8 +40,7 @@
  #define PF_RSVD       (1<<3)
  #define PF_INSTR      (1<<4)
@@ -9380,10 +9306,8 @@ Index: head-2008-12-01/arch/x86/mm/fault_64-xen.c
                        }
                        spin_unlock(&pgd_lock);
                        set_bit(pgd_index(address), insync);
-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-03 15:49:14.000000000 +0100
-+++ head-2008-12-01/arch/x86/mm/init_64-xen.c  2008-12-01 11:29:05.000000000 +0100
+--- sle11-2009-05-14.orig/arch/x86/mm/init_64-xen.c    2009-05-14 11:02:43.000000000 +0200
++++ sle11-2009-05-14/arch/x86/mm/init_64-xen.c 2009-03-04 11:28:34.000000000 +0100
 @@ -61,8 +61,6 @@ EXPORT_SYMBOL(__kernel_page_user);
  
  int after_bootmem;
@@ -9654,7 +9578,7 @@ Index: head-2008-12-01/arch/x86/mm/init_64-xen.c
  
        after_bootmem = 1;
  
-@@ -1102,15 +1043,34 @@ void free_initrd_mem(unsigned long start
+@@ -1102,15 +1043,32 @@ void free_initrd_mem(unsigned long start
  
  void __init reserve_bootmem_generic(unsigned long phys, unsigned len) 
  { 
@@ -9682,8 +9606,6 @@ Index: head-2008-12-01/arch/x86/mm/init_64-xen.c
 -      if (phys+len <= MAX_DMA_PFN*PAGE_SIZE)
 +#ifndef CONFIG_XEN
 +      if (phys+len <= MAX_DMA_PFN*PAGE_SIZE) {
-+              static unsigned long dma_reserve __initdata;
-+
                dma_reserve += len / PAGE_SIZE;
 +              set_dma_reserve(dma_reserve);
 +      }
@@ -9691,10 +9613,8 @@ Index: head-2008-12-01/arch/x86/mm/init_64-xen.c
  }
  
  int kern_addr_valid(unsigned long addr) 
-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-03 15:49:14.000000000 +0100
-+++ head-2008-12-01/arch/x86/mm/pageattr_64-xen.c      2008-12-01 11:29:05.000000000 +0100
+--- sle11-2009-05-14.orig/arch/x86/mm/pageattr_64-xen.c        2008-12-01 11:25:57.000000000 +0100
++++ sle11-2009-05-14/arch/x86/mm/pageattr_64-xen.c     2009-03-04 11:28:34.000000000 +0100
 @@ -377,8 +377,8 @@ static void revert_page(unsigned long ad
        BUG_ON(pud_none(*pud));
        pmd = pmd_offset(pud, address);
@@ -9759,10 +9679,8 @@ Index: head-2008-12-01/arch/x86/mm/pageattr_64-xen.c
                } 
        }       
        up_write(&init_mm.mmap_sem); 
-Index: head-2008-12-01/drivers/char/tpm/tpm_xen.c
-===================================================================
---- head-2008-12-01.orig/drivers/char/tpm/tpm_xen.c    2008-12-03 15:49:14.000000000 +0100
-+++ head-2008-12-01/drivers/char/tpm/tpm_xen.c 2008-12-01 11:29:05.000000000 +0100
+--- sle11-2009-05-14.orig/drivers/char/tpm/tpm_xen.c   2009-02-16 15:58:14.000000000 +0100
++++ sle11-2009-05-14/drivers/char/tpm/tpm_xen.c        2009-03-04 11:28:34.000000000 +0100
 @@ -85,8 +85,7 @@ static struct tpm_private *my_priv;
  
  /* local function prototypes */
@@ -9782,10 +9700,8 @@ Index: head-2008-12-01/drivers/char/tpm/tpm_xen.c
  {
        struct tpm_private *tp = tpm_priv;
        unsigned long flags;
-Index: head-2008-12-01/drivers/pci/Kconfig
-===================================================================
---- head-2008-12-01.orig/drivers/pci/Kconfig   2008-12-03 15:49:14.000000000 +0100
-+++ head-2008-12-01/drivers/pci/Kconfig        2008-12-01 11:29:05.000000000 +0100
+--- sle11-2009-05-14.orig/drivers/pci/Kconfig  2009-05-14 11:02:43.000000000 +0200
++++ sle11-2009-05-14/drivers/pci/Kconfig       2009-03-04 11:28:34.000000000 +0100
 @@ -48,7 +48,7 @@ config PCI_DEBUG
  config HT_IRQ
        bool "Interrupts on hypertransport devices"
@@ -9795,10 +9711,8 @@ Index: head-2008-12-01/drivers/pci/Kconfig
        help
           This allows native hypertransport devices to use interrupts.
  
-Index: head-2008-12-01/drivers/pci/msi-xen.c
-===================================================================
---- head-2008-12-01.orig/drivers/pci/msi-xen.c 2008-12-03 15:49:14.000000000 +0100
-+++ head-2008-12-01/drivers/pci/msi-xen.c      2008-12-01 11:29:05.000000000 +0100
+--- sle11-2009-05-14.orig/drivers/pci/msi-xen.c        2009-05-14 11:02:43.000000000 +0200
++++ sle11-2009-05-14/drivers/pci/msi-xen.c     2009-04-24 13:31:56.000000000 +0200
 @@ -6,6 +6,7 @@
   * Copyright (C) Tom Long Nguyen (tom.l.nguyen@intel.com)
   */
@@ -9928,24 +9842,29 @@ Index: head-2008-12-01/drivers/pci/msi-xen.c
   * MSI mode enabled on its hardware device function. A return of zero
   * indicates the successful setup of an entry zero with the new MSI
   * vector or non-zero for otherwise.
-@@ -508,13 +537,10 @@ extern int pci_frontend_enable_msi(struc
+@@ -507,18 +536,10 @@ static int msix_capability_init(struct p
+ extern int pci_frontend_enable_msi(struct pci_dev *dev);
  int pci_enable_msi(struct pci_dev* dev)
  {
-       struct pci_bus *bus;
+-      struct pci_bus *bus;
 -      int pos, temp, status = -EINVAL;
--
--      if (!pci_msi_enable || !dev)
--              return status;
 +      int pos, temp, status;
  
+-      if (!pci_msi_enable || !dev)
+-              return status;
+-
 -      if (dev->no_msi)
 -              return status;
+-
+-      for (bus = dev->bus; bus; bus = bus->parent)
+-              if (bus->bus_flags & PCI_BUS_FLAGS_NO_MSI)
+-                      return -EINVAL;
 +      if (pci_msi_supported(dev) < 0)
 +              return -EINVAL;
  
-       for (bus = dev->bus; bus; bus = bus->parent)
-               if (bus->bus_flags & PCI_BUS_FLAGS_NO_MSI)
-@@ -547,10 +573,10 @@ int pci_enable_msi(struct pci_dev* dev)
+       status = msi_init();
+       if (status < 0)
+@@ -547,10 +568,10 @@ int pci_enable_msi(struct pci_dev* dev)
        if (!pos)
                return -EINVAL;
  
@@ -9958,7 +9877,7 @@ Index: head-2008-12-01/drivers/pci/msi-xen.c
                           pci_name(dev));
                dev->irq = temp;
                return -EINVAL;
-@@ -602,36 +628,28 @@ void pci_disable_msi(struct pci_dev* dev
+@@ -602,36 +623,28 @@ void pci_disable_msi(struct pci_dev* dev
   * pci_enable_msix - configure device's MSI-X capability structure
   * @dev: pointer to the pci_dev data structure of MSI-X device function
   * @entries: pointer to an array of MSI-X entries
@@ -10000,7 +9919,7 @@ Index: head-2008-12-01/drivers/pci/msi-xen.c
  #ifdef CONFIG_XEN_PCIDEV_FRONTEND
        if (!is_initial_xendomain()) {
                struct msi_dev_list *msi_dev_entry;
-@@ -694,7 +712,7 @@ int pci_enable_msix(struct pci_dev* dev,
+@@ -694,7 +707,7 @@ int pci_enable_msix(struct pci_dev* dev,
        /* Check whether driver already requested for MSI vector */
        if (dev->msi_enabled) {
                printk(KERN_INFO "PCI: %s: Can't enable MSI-X.  "
@@ -10009,7 +9928,7 @@ Index: head-2008-12-01/drivers/pci/msi-xen.c
                       pci_name(dev));
                dev->irq = temp;
                return -EINVAL;
-@@ -757,11 +775,11 @@ void pci_disable_msix(struct pci_dev* de
+@@ -757,11 +770,11 @@ void pci_disable_msix(struct pci_dev* de
  }
  
  /**
@@ -10023,10 +9942,8 @@ Index: head-2008-12-01/drivers/pci/msi-xen.c
   * allocated for this device function, are reclaimed to unused state,
   * which may be used later on.
   **/
-Index: head-2008-12-01/drivers/xen/Kconfig
-===================================================================
---- head-2008-12-01.orig/drivers/xen/Kconfig   2008-12-03 15:49:14.000000000 +0100
-+++ head-2008-12-01/drivers/xen/Kconfig        2008-12-01 11:29:05.000000000 +0100
+--- sle11-2009-05-14.orig/drivers/xen/Kconfig  2008-12-05 08:43:56.000000000 +0100
++++ sle11-2009-05-14/drivers/xen/Kconfig       2009-03-04 11:28:34.000000000 +0100
 @@ -287,6 +287,9 @@ endmenu
  config HAVE_IRQ_IGNORE_UNHANDLED
        def_bool y
@@ -10037,10 +9954,8 @@ Index: head-2008-12-01/drivers/xen/Kconfig
  config NO_IDLE_HZ
        def_bool y
  
-Index: head-2008-12-01/drivers/xen/balloon/balloon.c
-===================================================================
---- head-2008-12-01.orig/drivers/xen/balloon/balloon.c 2008-12-03 15:49:14.000000000 +0100
-+++ head-2008-12-01/drivers/xen/balloon/balloon.c      2008-12-01 11:29:05.000000000 +0100
+--- sle11-2009-05-14.orig/drivers/xen/balloon/balloon.c        2008-11-25 13:31:07.000000000 +0100
++++ sle11-2009-05-14/drivers/xen/balloon/balloon.c     2009-03-04 11:28:34.000000000 +0100
 @@ -84,7 +84,7 @@ static unsigned long frame_list[PAGE_SIZ
  /* VM /proc information for memory */
  extern unsigned long totalram_pages;
@@ -10050,10 +9965,8 @@ Index: head-2008-12-01/drivers/xen/balloon/balloon.c
  extern unsigned long totalhigh_pages;
  #define inc_totalhigh_pages() (totalhigh_pages++)
  #define dec_totalhigh_pages() (totalhigh_pages--)
-Index: head-2008-12-01/drivers/xen/blkback/blkback.c
-===================================================================
---- head-2008-12-01.orig/drivers/xen/blkback/blkback.c 2008-12-03 15:49:14.000000000 +0100
-+++ head-2008-12-01/drivers/xen/blkback/blkback.c      2008-12-01 11:29:05.000000000 +0100
+--- sle11-2009-05-14.orig/drivers/xen/blkback/blkback.c        2008-12-01 11:21:10.000000000 +0100
++++ sle11-2009-05-14/drivers/xen/blkback/blkback.c     2009-03-04 11:28:34.000000000 +0100
 @@ -288,7 +288,7 @@ static void blkif_notify_work(blkif_t *b
        wake_up(&blkif->wq);
  }
@@ -10063,10 +9976,8 @@ Index: head-2008-12-01/drivers/xen/blkback/blkback.c
  {
        blkif_notify_work(dev_id);
        return IRQ_HANDLED;
-Index: head-2008-12-01/drivers/xen/blkback/common.h
-===================================================================
---- head-2008-12-01.orig/drivers/xen/blkback/common.h  2008-12-03 15:49:14.000000000 +0100
-+++ head-2008-12-01/drivers/xen/blkback/common.h       2008-12-01 11:29:05.000000000 +0100
+--- sle11-2009-05-14.orig/drivers/xen/blkback/common.h 2009-05-14 11:02:43.000000000 +0200
++++ sle11-2009-05-14/drivers/xen/blkback/common.h      2009-03-04 11:28:34.000000000 +0100
 @@ -130,7 +130,7 @@ void blkif_interface_init(void);
  
  void blkif_xenbus_init(void);
@@ -10076,11 +9987,9 @@ Index: head-2008-12-01/drivers/xen/blkback/common.h
  int blkif_schedule(void *arg);
  
  int blkback_barrier(struct xenbus_transaction xbt,
-Index: head-2008-12-01/drivers/xen/blkfront/blkfront.c
-===================================================================
---- head-2008-12-01.orig/drivers/xen/blkfront/blkfront.c       2008-12-03 15:49:14.000000000 +0100
-+++ head-2008-12-01/drivers/xen/blkfront/blkfront.c    2008-12-01 11:29:05.000000000 +0100
-@@ -69,7 +69,7 @@ static int setup_blkring(struct xenbus_d
+--- sle11-2009-05-14.orig/drivers/xen/blkfront/blkfront.c      2009-03-05 15:42:00.000000000 +0100
++++ sle11-2009-05-14/drivers/xen/blkfront/blkfront.c   2009-03-24 10:08:16.000000000 +0100
+@@ -70,7 +70,7 @@ static int setup_blkring(struct xenbus_d
  
  static void kick_pending_request_queues(struct blkfront_info *);
  
@@ -10089,7 +9998,7 @@ Index: head-2008-12-01/drivers/xen/blkfront/blkfront.c
  static void blkif_restart_queue(void *arg);
  static void blkif_recover(struct blkfront_info *);
  static void blkif_completion(struct blk_shadow *);
-@@ -712,7 +712,7 @@ void do_blkif_request(request_queue_t *r
+@@ -707,7 +707,7 @@ void do_blkif_request(request_queue_t *r
  }
  
  
@@ -10098,11 +10007,9 @@ Index: head-2008-12-01/drivers/xen/blkfront/blkfront.c
  {
        struct request *req;
        blkif_response_t *bret;
-Index: head-2008-12-01/drivers/xen/blktap/blktap.c
-===================================================================
---- head-2008-12-01.orig/drivers/xen/blktap/blktap.c   2008-12-03 15:49:14.000000000 +0100
-+++ head-2008-12-01/drivers/xen/blktap/blktap.c        2008-12-01 11:29:05.000000000 +0100
-@@ -1225,7 +1225,7 @@ static void blkif_notify_work(blkif_t *b
+--- sle11-2009-05-14.orig/drivers/xen/blktap/blktap.c  2009-04-20 11:36:10.000000000 +0200
++++ sle11-2009-05-14/drivers/xen/blktap/blktap.c       2009-04-20 11:37:34.000000000 +0200
+@@ -1222,7 +1222,7 @@ static void blkif_notify_work(blkif_t *b
        wake_up(&blkif->wq);
  }
  
@@ -10111,10 +10018,8 @@ Index: head-2008-12-01/drivers/xen/blktap/blktap.c
  {
        blkif_notify_work(dev_id);
        return IRQ_HANDLED;
-Index: head-2008-12-01/drivers/xen/blktap/common.h
-===================================================================
---- head-2008-12-01.orig/drivers/xen/blktap/common.h   2008-12-03 15:49:14.000000000 +0100
-+++ head-2008-12-01/drivers/xen/blktap/common.h        2008-12-01 11:29:05.000000000 +0100
+--- sle11-2009-05-14.orig/drivers/xen/blktap/common.h  2009-05-14 11:02:43.000000000 +0200
++++ sle11-2009-05-14/drivers/xen/blktap/common.h       2009-03-04 11:28:34.000000000 +0100
 @@ -113,7 +113,7 @@ void tap_blkif_interface_init(void);
  
  void tap_blkif_xenbus_init(void);
@@ -10124,11 +10029,9 @@ Index: head-2008-12-01/drivers/xen/blktap/common.h
  int tap_blkif_schedule(void *arg);
  
  int dom_to_devid(domid_t domid, int xenbus_id, blkif_t *blkif);
-Index: head-2008-12-01/drivers/xen/console/console.c
-===================================================================
---- head-2008-12-01.orig/drivers/xen/console/console.c 2008-12-03 15:49:14.000000000 +0100
-+++ head-2008-12-01/drivers/xen/console/console.c      2008-12-01 11:29:05.000000000 +0100
-@@ -345,7 +345,7 @@ static struct tty_struct *xencons_tty;
+--- sle11-2009-05-14.orig/drivers/xen/console/console.c        2008-12-15 11:13:47.000000000 +0100
++++ sle11-2009-05-14/drivers/xen/console/console.c     2009-03-04 11:28:34.000000000 +0100
+@@ -361,7 +361,7 @@ static struct tty_struct *xencons_tty;
  static int xencons_priv_irq;
  static char x_char;
  
@@ -10137,7 +10040,7 @@ Index: head-2008-12-01/drivers/xen/console/console.c
  {
        int           i;
        unsigned long flags;
-@@ -370,8 +370,7 @@ void xencons_rx(char *buf, unsigned len,
+@@ -386,8 +386,7 @@ void xencons_rx(char *buf, unsigned len,
                                if (time_before(jiffies, sysrq_timeout)) {
                                        spin_unlock_irqrestore(
                                                &xencons_lock, flags);
@@ -10147,7 +10050,7 @@ Index: head-2008-12-01/drivers/xen/console/console.c
                                        spin_lock_irqsave(
                                                &xencons_lock, flags);
                                        continue;
-@@ -436,14 +435,13 @@ void xencons_tx(void)
+@@ -452,14 +451,13 @@ void xencons_tx(void)
  }
  
  /* Privileged receive callback and transmit kicker. */
@@ -10164,7 +10067,7 @@ Index: head-2008-12-01/drivers/xen/console/console.c
  
        xencons_tx();
  
-@@ -631,7 +629,7 @@ static void xencons_close(struct tty_str
+@@ -647,7 +645,7 @@ static void xencons_close(struct tty_str
        spin_unlock_irqrestore(&xencons_lock, flags);
  }
  
@@ -10173,10 +10076,8 @@ Index: head-2008-12-01/drivers/xen/console/console.c
        .open = xencons_open,
        .close = xencons_close,
        .write = xencons_write,
-Index: head-2008-12-01/drivers/xen/console/xencons_ring.c
-===================================================================
---- head-2008-12-01.orig/drivers/xen/console/xencons_ring.c    2008-12-03 15:49:14.000000000 +0100
-+++ head-2008-12-01/drivers/xen/console/xencons_ring.c 2008-12-01 11:29:05.000000000 +0100
+--- sle11-2009-05-14.orig/drivers/xen/console/xencons_ring.c   2009-05-14 11:02:43.000000000 +0200
++++ sle11-2009-05-14/drivers/xen/console/xencons_ring.c        2009-03-04 11:28:34.000000000 +0100
 @@ -83,7 +83,7 @@ int xencons_ring_send(const char *data, 
        return sent;
  }
@@ -10195,11 +10096,9 @@ Index: head-2008-12-01/drivers/xen/console/xencons_ring.c
                cons++;
        }
  
-Index: head-2008-12-01/drivers/xen/core/evtchn.c
-===================================================================
---- head-2008-12-01.orig/drivers/xen/core/evtchn.c     2008-12-03 15:49:14.000000000 +0100
-+++ head-2008-12-01/drivers/xen/core/evtchn.c  2008-12-03 15:52:42.000000000 +0100
-@@ -515,7 +515,7 @@ static void unbind_from_irq(unsigned int
+--- sle11-2009-05-14.orig/drivers/xen/core/evtchn.c    2009-03-16 16:14:12.000000000 +0100
++++ sle11-2009-05-14/drivers/xen/core/evtchn.c 2009-03-04 11:28:34.000000000 +0100
+@@ -516,7 +516,7 @@ static void unbind_from_irq(unsigned int
  
  int bind_caller_port_to_irqhandler(
        unsigned int caller_port,
@@ -10208,7 +10107,7 @@ Index: head-2008-12-01/drivers/xen/core/evtchn.c
        unsigned long irqflags,
        const char *devname,
        void *dev_id)
-@@ -538,7 +538,7 @@ EXPORT_SYMBOL_GPL(bind_caller_port_to_ir
+@@ -539,7 +539,7 @@ EXPORT_SYMBOL_GPL(bind_caller_port_to_ir
  
  int bind_listening_port_to_irqhandler(
        unsigned int remote_domain,
@@ -10217,7 +10116,7 @@ Index: head-2008-12-01/drivers/xen/core/evtchn.c
        unsigned long irqflags,
        const char *devname,
        void *dev_id)
-@@ -562,7 +562,7 @@ EXPORT_SYMBOL_GPL(bind_listening_port_to
+@@ -563,7 +563,7 @@ EXPORT_SYMBOL_GPL(bind_listening_port_to
  int bind_interdomain_evtchn_to_irqhandler(
        unsigned int remote_domain,
        unsigned int remote_port,
@@ -10226,7 +10125,7 @@ Index: head-2008-12-01/drivers/xen/core/evtchn.c
        unsigned long irqflags,
        const char *devname,
        void *dev_id)
-@@ -586,7 +586,7 @@ EXPORT_SYMBOL_GPL(bind_interdomain_evtch
+@@ -587,7 +587,7 @@ EXPORT_SYMBOL_GPL(bind_interdomain_evtch
  int bind_virq_to_irqhandler(
        unsigned int virq,
        unsigned int cpu,
@@ -10235,7 +10134,7 @@ Index: head-2008-12-01/drivers/xen/core/evtchn.c
        unsigned long irqflags,
        const char *devname,
        void *dev_id)
-@@ -610,7 +610,7 @@ EXPORT_SYMBOL_GPL(bind_virq_to_irqhandle
+@@ -611,7 +611,7 @@ EXPORT_SYMBOL_GPL(bind_virq_to_irqhandle
  int bind_ipi_to_irqhandler(
        unsigned int ipi,
        unsigned int cpu,
@@ -10244,7 +10143,7 @@ Index: head-2008-12-01/drivers/xen/core/evtchn.c
        unsigned long irqflags,
        const char *devname,
        void *dev_id)
-@@ -695,15 +695,7 @@ static unsigned int startup_dynirq(unsig
+@@ -696,15 +696,7 @@ static unsigned int startup_dynirq(unsig
        return 0;
  }
  
@@ -10261,7 +10160,7 @@ Index: head-2008-12-01/drivers/xen/core/evtchn.c
  {
        int evtchn = evtchn_from_irq(irq);
  
-@@ -711,7 +703,7 @@ static void enable_dynirq(unsigned int i
+@@ -712,7 +704,7 @@ static void enable_dynirq(unsigned int i
                unmask_evtchn(evtchn);
  }
  
@@ -10270,7 +10169,7 @@ Index: head-2008-12-01/drivers/xen/core/evtchn.c
  {
        int evtchn = evtchn_from_irq(irq);
  
-@@ -739,12 +731,13 @@ static void end_dynirq(unsigned int irq)
+@@ -740,12 +732,13 @@ static void end_dynirq(unsigned int irq)
                unmask_evtchn(evtchn);
  }
  
@@ -10323,7 +10222,7 @@ Index: head-2008-12-01/drivers/xen/core/evtchn.c
        .end      = end_pirq,
  #ifdef CONFIG_SMP
 @@ -1081,7 +1075,8 @@ void evtchn_register_pirq(int irq)
-       if (identity_mapped_irq(irq))
+       if (identity_mapped_irq(irq) || type_from_irq(irq) != IRQT_UNBOUND)
                return;
        irq_info[irq] = mk_irq_info(IRQT_PIRQ, irq, 0);
 -      irq_desc[irq].chip = &pirq_type;
@@ -10353,7 +10252,7 @@ Index: head-2008-12-01/drivers/xen/core/evtchn.c
                irq_info[irq] = IRQ_UNBOUND;
                return 0;
        } else if (type_from_irq(irq) != IRQT_PIRQ
-@@ -1153,10 +1155,9 @@ void __init xen_init_IRQ(void)
+@@ -1154,10 +1156,9 @@ void __init xen_init_IRQ(void)
        for (i = DYNIRQ_BASE; i < (DYNIRQ_BASE + NR_DYNIRQS); i++) {
                irq_bindcount[i] = 0;
  
@@ -10367,7 +10266,7 @@ Index: head-2008-12-01/drivers/xen/core/evtchn.c
        }
  
        /* Phys IRQ space is statically bound (1:1 mapping). Nail refcnts. */
-@@ -1172,9 +1173,7 @@ void __init xen_init_IRQ(void)
+@@ -1173,9 +1174,7 @@ void __init xen_init_IRQ(void)
                        continue;
  #endif
  
@@ -10379,10 +10278,8 @@ Index: head-2008-12-01/drivers/xen/core/evtchn.c
 +                                            handle_level_irq, "level");
        }
  }
-Index: head-2008-12-01/drivers/xen/core/reboot.c
-===================================================================
---- head-2008-12-01.orig/drivers/xen/core/reboot.c     2008-12-03 15:49:14.000000000 +0100
-+++ head-2008-12-01/drivers/xen/core/reboot.c  2008-12-01 11:29:05.000000000 +0100
+--- sle11-2009-05-14.orig/drivers/xen/core/reboot.c    2009-05-14 11:02:43.000000000 +0200
++++ sle11-2009-05-14/drivers/xen/core/reboot.c 2009-03-04 11:28:34.000000000 +0100
 @@ -14,6 +14,7 @@
  
  #ifdef HAVE_XEN_PLATFORM_COMPAT_H
@@ -10409,10 +10306,8 @@ Index: head-2008-12-01/drivers/xen/core/reboot.c
  {
        switch_shutdown_state(SHUTDOWN_SUSPEND);
        return IRQ_HANDLED;
-Index: head-2008-12-01/drivers/xen/core/smpboot.c
-===================================================================
---- head-2008-12-01.orig/drivers/xen/core/smpboot.c    2008-12-03 15:49:14.000000000 +0100
-+++ head-2008-12-01/drivers/xen/core/smpboot.c 2008-12-01 11:29:05.000000000 +0100
+--- sle11-2009-05-14.orig/drivers/xen/core/smpboot.c   2009-04-28 16:02:07.000000000 +0200
++++ sle11-2009-05-14/drivers/xen/core/smpboot.c        2009-03-04 11:28:34.000000000 +0100
 @@ -25,8 +25,8 @@
  #include <xen/cpu_hotplug.h>
  #include <xen/xenbus.h>
@@ -10424,7 +10319,7 @@ Index: head-2008-12-01/drivers/xen/core/smpboot.c
  
  extern int local_setup_timer(unsigned int cpu);
  extern void local_teardown_timer(unsigned int cpu);
-@@ -66,8 +66,6 @@ EXPORT_SYMBOL(cpu_core_map);
+@@ -62,8 +62,6 @@ EXPORT_SYMBOL(cpu_core_map);
  #if defined(__i386__)
  u8 x86_cpu_to_apicid[NR_CPUS] = { [0 ... NR_CPUS-1] = 0xff };
  EXPORT_SYMBOL(x86_cpu_to_apicid);
@@ -10433,11 +10328,9 @@ Index: head-2008-12-01/drivers/xen/core/smpboot.c
  #endif
  
  void __init prefill_possible_map(void)
-Index: head-2008-12-01/drivers/xen/fbfront/xenfb.c
-===================================================================
---- head-2008-12-01.orig/drivers/xen/fbfront/xenfb.c   2008-12-03 15:49:14.000000000 +0100
-+++ head-2008-12-01/drivers/xen/fbfront/xenfb.c        2008-12-01 11:29:05.000000000 +0100
-@@ -523,8 +523,7 @@ static struct fb_ops xenfb_fb_ops = {
+--- sle11-2009-05-14.orig/drivers/xen/fbfront/xenfb.c  2009-02-16 15:59:55.000000000 +0100
++++ sle11-2009-05-14/drivers/xen/fbfront/xenfb.c       2009-03-04 11:28:34.000000000 +0100
+@@ -524,8 +524,7 @@ static struct fb_ops xenfb_fb_ops = {
        .fb_set_par     = xenfb_set_par,
  };
  
@@ -10447,10 +10340,8 @@ Index: head-2008-12-01/drivers/xen/fbfront/xenfb.c
  {
        /*
         * No in events recognized, simply ignore them all.
-Index: head-2008-12-01/drivers/xen/fbfront/xenkbd.c
-===================================================================
---- head-2008-12-01.orig/drivers/xen/fbfront/xenkbd.c  2008-12-03 15:49:14.000000000 +0100
-+++ head-2008-12-01/drivers/xen/fbfront/xenkbd.c       2008-12-01 11:29:05.000000000 +0100
+--- sle11-2009-05-14.orig/drivers/xen/fbfront/xenkbd.c 2009-05-14 11:02:43.000000000 +0200
++++ sle11-2009-05-14/drivers/xen/fbfront/xenkbd.c      2009-03-04 11:28:34.000000000 +0100
 @@ -46,7 +46,7 @@ static void xenkbd_disconnect_backend(st
   * to do that.
   */
@@ -10460,10 +10351,8 @@ Index: head-2008-12-01/drivers/xen/fbfront/xenkbd.c
  {
        struct xenkbd_info *info = dev_id;
        struct xenkbd_page *page = info->page;
-Index: head-2008-12-01/drivers/xen/gntdev/gntdev.c
-===================================================================
---- head-2008-12-01.orig/drivers/xen/gntdev/gntdev.c   2008-12-03 15:49:14.000000000 +0100
-+++ head-2008-12-01/drivers/xen/gntdev/gntdev.c        2008-12-01 11:29:05.000000000 +0100
+--- sle11-2009-05-14.orig/drivers/xen/gntdev/gntdev.c  2008-12-15 11:13:45.000000000 +0100
++++ sle11-2009-05-14/drivers/xen/gntdev/gntdev.c       2009-03-04 11:28:34.000000000 +0100
 @@ -752,9 +752,6 @@ static pte_t gntdev_clear_pte(struct vm_
                BUG();
        }
@@ -10482,7 +10371,7 @@ Index: head-2008-12-01/drivers/xen/gntdev/gntdev.c
 +                      /* Copy the existing value of the PTE for returning. */
 +                      copy = *ptep;
 +
-                       gnttab_set_unmap_op(&op, virt_to_machine(ptep), 
+                       gnttab_set_unmap_op(&op, ptep_to_machine(ptep),
                                            GNTMAP_contains_pte,
                                            private_data->grants[slot_index]
 @@ -781,7 +782,7 @@ static pte_t gntdev_clear_pte(struct vm_
@@ -10503,10 +10392,8 @@ Index: head-2008-12-01/drivers/xen/gntdev/gntdev.c
        }
  
        return copy;
-Index: head-2008-12-01/drivers/xen/netback/accel.c
-===================================================================
---- head-2008-12-01.orig/drivers/xen/netback/accel.c   2008-12-03 15:49:14.000000000 +0100
-+++ head-2008-12-01/drivers/xen/netback/accel.c        2008-12-01 11:29:05.000000000 +0100
+--- sle11-2009-05-14.orig/drivers/xen/netback/accel.c  2009-05-14 11:02:43.000000000 +0200
++++ sle11-2009-05-14/drivers/xen/netback/accel.c       2009-03-04 11:28:34.000000000 +0100
 @@ -65,7 +65,7 @@ static int match_accelerator(struct xenb
        
        if (IS_ERR(eth_name)) {
@@ -10516,10 +10403,8 @@ Index: head-2008-12-01/drivers/xen/netback/accel.c
                        __FUNCTION__, PTR_ERR(eth_name));
                return 0;
        } else {
-Index: head-2008-12-01/drivers/xen/netback/common.h
-===================================================================
---- head-2008-12-01.orig/drivers/xen/netback/common.h  2008-12-03 15:49:14.000000000 +0100
-+++ head-2008-12-01/drivers/xen/netback/common.h       2008-12-01 11:29:05.000000000 +0100
+--- sle11-2009-05-14.orig/drivers/xen/netback/common.h 2009-05-14 11:02:43.000000000 +0200
++++ sle11-2009-05-14/drivers/xen/netback/common.h      2009-03-04 11:28:34.000000000 +0100
 @@ -200,7 +200,7 @@ void netif_deschedule_work(netif_t *neti
  
  int netif_be_start_xmit(struct sk_buff *skb, struct net_device *dev);
@@ -10529,10 +10414,8 @@ Index: head-2008-12-01/drivers/xen/netback/common.h
  
  static inline int netbk_can_queue(struct net_device *dev)
  {
-Index: head-2008-12-01/drivers/xen/netback/loopback.c
-===================================================================
---- head-2008-12-01.orig/drivers/xen/netback/loopback.c        2008-12-03 15:49:14.000000000 +0100
-+++ head-2008-12-01/drivers/xen/netback/loopback.c     2008-12-01 11:29:05.000000000 +0100
+--- sle11-2009-05-14.orig/drivers/xen/netback/loopback.c       2009-05-14 11:02:43.000000000 +0200
++++ sle11-2009-05-14/drivers/xen/netback/loopback.c    2009-03-04 11:28:34.000000000 +0100
 @@ -151,7 +151,7 @@ static int loopback_start_xmit(struct sk
        np->stats.rx_bytes += skb->len;
        np->stats.rx_packets++;
@@ -10542,11 +10425,9 @@ Index: head-2008-12-01/drivers/xen/netback/loopback.c
                /* Defer checksum calculation. */
                skb->proto_csum_blank = 1;
                /* Must be a local packet: assert its integrity. */
-Index: head-2008-12-01/drivers/xen/netback/netback.c
-===================================================================
---- head-2008-12-01.orig/drivers/xen/netback/netback.c 2008-12-03 15:49:14.000000000 +0100
-+++ head-2008-12-01/drivers/xen/netback/netback.c      2008-12-01 11:29:05.000000000 +0100
-@@ -676,7 +676,7 @@ static void net_rx_action(unsigned long 
+--- sle11-2009-05-14.orig/drivers/xen/netback/netback.c        2008-12-23 09:31:07.000000000 +0100
++++ sle11-2009-05-14/drivers/xen/netback/netback.c     2009-03-04 11:28:34.000000000 +0100
+@@ -692,7 +692,7 @@ static void net_rx_action(unsigned long 
                id = meta[npo.meta_cons].id;
                flags = nr_frags ? NETRXF_more_data : 0;
  
@@ -10555,8 +10436,8 @@ Index: head-2008-12-01/drivers/xen/netback/netback.c
                        flags |= NETRXF_csum_blank | NETRXF_data_validated;
                else if (skb->proto_data_valid) /* remote but checksummed? */
                        flags |= NETRXF_data_validated;
-@@ -1441,7 +1441,7 @@ static void netif_page_release(struct pa
-       netif_idx_release(netif_page_index(page));
+@@ -1459,7 +1459,7 @@ static void netif_page_release(struct pa
+       netif_idx_release(idx);
  }
  
 -irqreturn_t netif_be_int(int irq, void *dev_id, struct pt_regs *regs)
@@ -10564,7 +10445,7 @@ Index: head-2008-12-01/drivers/xen/netback/netback.c
  {
        netif_t *netif = dev_id;
  
-@@ -1508,7 +1508,7 @@ static netif_rx_response_t *make_rx_resp
+@@ -1526,7 +1526,7 @@ static netif_rx_response_t *make_rx_resp
  }
  
  #ifdef NETBE_DEBUG_INTERRUPT
@@ -10573,10 +10454,8 @@ Index: head-2008-12-01/drivers/xen/netback/netback.c
  {
        struct list_head *ent;
        netif_t *netif;
-Index: head-2008-12-01/drivers/xen/netfront/netfront.c
-===================================================================
---- head-2008-12-01.orig/drivers/xen/netfront/netfront.c       2008-12-03 15:49:14.000000000 +0100
-+++ head-2008-12-01/drivers/xen/netfront/netfront.c    2008-12-01 11:29:05.000000000 +0100
+--- sle11-2009-05-14.orig/drivers/xen/netfront/netfront.c      2009-04-09 14:41:33.000000000 +0200
++++ sle11-2009-05-14/drivers/xen/netfront/netfront.c   2009-03-30 16:34:59.000000000 +0200
 @@ -136,7 +136,7 @@ static inline int netif_needs_gso(struct
  {
          return skb_is_gso(skb) &&
@@ -10613,10 +10492,8 @@ Index: head-2008-12-01/drivers/xen/netfront/netfront.c
  {
        struct net_device *dev = dev_id;
        struct netfront_info *np = netdev_priv(dev);
-Index: head-2008-12-01/drivers/xen/pciback/pciback.h
-===================================================================
---- head-2008-12-01.orig/drivers/xen/pciback/pciback.h 2008-12-03 15:49:14.000000000 +0100
-+++ head-2008-12-01/drivers/xen/pciback/pciback.h      2008-12-01 11:29:05.000000000 +0100
+--- sle11-2009-05-14.orig/drivers/xen/pciback/pciback.h        2009-05-14 11:02:43.000000000 +0200
++++ sle11-2009-05-14/drivers/xen/pciback/pciback.h     2009-03-04 11:28:34.000000000 +0100
 @@ -87,7 +87,7 @@ int pciback_publish_pci_roots(struct pci
  void pciback_release_devices(struct pciback_device *pdev);
  
@@ -10626,10 +10503,8 @@ Index: head-2008-12-01/drivers/xen/pciback/pciback.h
  void pciback_do_op(void *data);
  
  int pciback_xenbus_register(void);
-Index: head-2008-12-01/drivers/xen/pciback/pciback_ops.c
-===================================================================
---- head-2008-12-01.orig/drivers/xen/pciback/pciback_ops.c     2008-12-03 15:49:14.000000000 +0100
-+++ head-2008-12-01/drivers/xen/pciback/pciback_ops.c  2008-12-01 11:29:05.000000000 +0100
+--- sle11-2009-05-14.orig/drivers/xen/pciback/pciback_ops.c    2009-05-14 11:02:43.000000000 +0200
++++ sle11-2009-05-14/drivers/xen/pciback/pciback_ops.c 2009-03-04 11:28:34.000000000 +0100
 @@ -107,7 +107,7 @@ void pciback_do_op(void *data)
        test_and_schedule_op(pdev);
  }
@@ -10639,10 +10514,8 @@ Index: head-2008-12-01/drivers/xen/pciback/pciback_ops.c
  {
        struct pciback_device *pdev = dev_id;
  
-Index: head-2008-12-01/drivers/xen/pcifront/pci_op.c
-===================================================================
---- head-2008-12-01.orig/drivers/xen/pcifront/pci_op.c 2008-12-03 15:49:14.000000000 +0100
-+++ head-2008-12-01/drivers/xen/pcifront/pci_op.c      2008-12-01 11:29:05.000000000 +0100
+--- sle11-2009-05-14.orig/drivers/xen/pcifront/pci_op.c        2009-05-14 11:02:43.000000000 +0200
++++ sle11-2009-05-14/drivers/xen/pcifront/pci_op.c     2009-03-04 11:28:34.000000000 +0100
 @@ -508,10 +508,16 @@ int __devinit pcifront_rescan_root(struc
  
                d = pci_scan_single_device(b, devfn);
@@ -10661,10 +10534,8 @@ Index: head-2008-12-01/drivers/xen/pcifront/pci_op.c
                }
        }
  
-Index: head-2008-12-01/drivers/xen/privcmd/compat_privcmd.c
-===================================================================
---- head-2008-12-01.orig/drivers/xen/privcmd/compat_privcmd.c  2008-12-03 15:49:14.000000000 +0100
-+++ head-2008-12-01/drivers/xen/privcmd/compat_privcmd.c       2008-12-01 11:29:05.000000000 +0100
+--- sle11-2009-05-14.orig/drivers/xen/privcmd/compat_privcmd.c 2009-05-14 11:02:43.000000000 +0200
++++ sle11-2009-05-14/drivers/xen/privcmd/compat_privcmd.c      2009-03-04 11:28:34.000000000 +0100
 @@ -18,7 +18,6 @@
   * Authors: Jimi Xenidis <jimix@watson.ibm.com>
   */
@@ -10673,10 +10544,8 @@ Index: head-2008-12-01/drivers/xen/privcmd/compat_privcmd.c
  #include <linux/compat.h>
  #include <linux/ioctl.h>
  #include <linux/syscalls.h>
-Index: head-2008-12-01/drivers/xen/privcmd/privcmd.c
-===================================================================
---- head-2008-12-01.orig/drivers/xen/privcmd/privcmd.c 2008-12-03 15:49:14.000000000 +0100
-+++ head-2008-12-01/drivers/xen/privcmd/privcmd.c      2008-12-01 11:29:05.000000000 +0100
+--- sle11-2009-05-14.orig/drivers/xen/privcmd/privcmd.c        2009-05-14 11:02:43.000000000 +0200
++++ sle11-2009-05-14/drivers/xen/privcmd/privcmd.c     2009-03-04 11:28:34.000000000 +0100
 @@ -40,7 +40,7 @@ static int privcmd_enforce_singleshot_ma
  static long privcmd_ioctl(struct file *file,
                          unsigned int cmd, unsigned long data)
@@ -10745,10 +10614,8 @@ Index: head-2008-12-01/drivers/xen/privcmd/privcmd.c
        vma->vm_ops = &privcmd_vm_ops;
        vma->vm_private_data = NULL;
  
-Index: head-2008-12-01/drivers/xen/scsiback/common.h
-===================================================================
---- head-2008-12-01.orig/drivers/xen/scsiback/common.h 2008-12-03 15:49:14.000000000 +0100
-+++ head-2008-12-01/drivers/xen/scsiback/common.h      2008-12-01 11:29:05.000000000 +0100
+--- sle11-2009-05-14.orig/drivers/xen/scsiback/common.h        2009-05-14 11:02:43.000000000 +0200
++++ sle11-2009-05-14/drivers/xen/scsiback/common.h     2009-03-04 11:28:34.000000000 +0100
 @@ -142,7 +142,7 @@ typedef struct {
  #define VSCSIIF_TIMEOUT               (900*HZ)
  
@@ -10758,10 +10625,8 @@ Index: head-2008-12-01/drivers/xen/scsiback/common.h
  int scsiback_init_sring(struct vscsibk_info *info,
                unsigned long ring_ref, unsigned int evtchn);
  int scsiback_schedule(void *data);
-Index: head-2008-12-01/drivers/xen/scsiback/scsiback.c
-===================================================================
---- head-2008-12-01.orig/drivers/xen/scsiback/scsiback.c       2008-12-03 15:49:14.000000000 +0100
-+++ head-2008-12-01/drivers/xen/scsiback/scsiback.c    2008-12-01 11:29:05.000000000 +0100
+--- sle11-2009-05-14.orig/drivers/xen/scsiback/scsiback.c      2009-05-14 11:02:43.000000000 +0200
++++ sle11-2009-05-14/drivers/xen/scsiback/scsiback.c   2009-03-04 11:28:34.000000000 +0100
 @@ -440,7 +440,7 @@ void scsiback_cmd_exec(pending_req_t *pe
        write = (data_dir == DMA_TO_DEVICE);
        rq = blk_get_request(pending_req->sdev->request_queue, write, GFP_KERNEL);
@@ -10780,10 +10645,8 @@ Index: head-2008-12-01/drivers/xen/scsiback/scsiback.c
  {
        scsiback_notify_work((struct vscsibk_info *)dev_id);
        return IRQ_HANDLED;
-Index: head-2008-12-01/drivers/xen/scsifront/common.h
-===================================================================
---- head-2008-12-01.orig/drivers/xen/scsifront/common.h        2008-12-03 15:49:14.000000000 +0100
-+++ head-2008-12-01/drivers/xen/scsifront/common.h     2008-12-01 11:29:05.000000000 +0100
+--- sle11-2009-05-14.orig/drivers/xen/scsifront/common.h       2009-05-14 11:02:43.000000000 +0200
++++ sle11-2009-05-14/drivers/xen/scsifront/common.h    2009-03-04 11:28:34.000000000 +0100
 @@ -122,7 +122,7 @@ struct vscsifrnt_info {
  int scsifront_xenbus_init(void);
  void scsifront_xenbus_unregister(void);
@@ -10793,10 +10656,8 @@ Index: head-2008-12-01/drivers/xen/scsifront/common.h
  int scsifront_cmd_done(struct vscsifrnt_info *info);
  
  
-Index: head-2008-12-01/drivers/xen/scsifront/scsifront.c
-===================================================================
---- head-2008-12-01.orig/drivers/xen/scsifront/scsifront.c     2008-12-03 15:49:14.000000000 +0100
-+++ head-2008-12-01/drivers/xen/scsifront/scsifront.c  2008-12-01 11:29:05.000000000 +0100
+--- sle11-2009-05-14.orig/drivers/xen/scsifront/scsifront.c    2009-05-14 11:02:43.000000000 +0200
++++ sle11-2009-05-14/drivers/xen/scsifront/scsifront.c 2009-03-04 11:28:34.000000000 +0100
 @@ -100,7 +100,7 @@ static void scsifront_do_request(struct 
                notify_remote_via_irq(irq);
  }
@@ -10806,10 +10667,8 @@ Index: head-2008-12-01/drivers/xen/scsifront/scsifront.c
  {
        scsifront_notify_work((struct vscsifrnt_info *)dev_id);
        return IRQ_HANDLED;
-Index: head-2008-12-01/drivers/xen/sfc_netback/accel_xenbus.c
-===================================================================
---- head-2008-12-01.orig/drivers/xen/sfc_netback/accel_xenbus.c        2008-12-03 15:49:14.000000000 +0100
-+++ head-2008-12-01/drivers/xen/sfc_netback/accel_xenbus.c     2008-12-01 11:29:05.000000000 +0100
+--- sle11-2009-05-14.orig/drivers/xen/sfc_netback/accel_xenbus.c       2009-05-14 11:02:43.000000000 +0200
++++ sle11-2009-05-14/drivers/xen/sfc_netback/accel_xenbus.c    2009-03-04 11:28:34.000000000 +0100
 @@ -68,8 +68,7 @@ static void unlink_bend(struct netback_a
  
  
@@ -10830,11 +10689,9 @@ Index: head-2008-12-01/drivers/xen/sfc_netback/accel_xenbus.c
  {
        VPRINTK("netirq %d from device %s\n", irq,
                ((struct xenbus_device *)context)->nodename);
-Index: head-2008-12-01/drivers/xen/sfc_netfront/accel.h
-===================================================================
---- head-2008-12-01.orig/drivers/xen/sfc_netfront/accel.h      2008-12-03 15:49:14.000000000 +0100
-+++ head-2008-12-01/drivers/xen/sfc_netfront/accel.h   2008-12-01 11:29:05.000000000 +0100
-@@ -449,10 +449,8 @@ void netfront_accel_msg_tx_fastpath(netf
+--- sle11-2009-05-14.orig/drivers/xen/sfc_netfront/accel.h     2009-04-09 14:41:38.000000000 +0200
++++ sle11-2009-05-14/drivers/xen/sfc_netfront/accel.h  2009-03-30 16:34:56.000000000 +0200
+@@ -451,10 +451,8 @@ void netfront_accel_msg_tx_fastpath(netf
                                    u32 ip, u16 port, u8 protocol);
  
  /* Process an IRQ received from back end driver */
@@ -10847,10 +10704,8 @@ Index: head-2008-12-01/drivers/xen/sfc_netfront/accel.h
  
  #if LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,20)
  extern void netfront_accel_msg_from_bend(struct work_struct *context);
-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-03 15:49:14.000000000 +0100
-+++ head-2008-12-01/drivers/xen/sfc_netfront/accel_msg.c       2008-12-01 11:29:05.000000000 +0100
+--- sle11-2009-05-14.orig/drivers/xen/sfc_netfront/accel_msg.c 2009-05-14 11:02:43.000000000 +0200
++++ sle11-2009-05-14/drivers/xen/sfc_netfront/accel_msg.c      2009-03-04 11:28:34.000000000 +0100
 @@ -490,8 +490,7 @@ void netfront_accel_msg_from_bend(void *
  }
  
@@ -10871,10 +10726,8 @@ Index: head-2008-12-01/drivers/xen/sfc_netfront/accel_msg.c
  {
        netfront_accel_vnic *vnic = (netfront_accel_vnic *)context;
        struct net_device *net_dev = vnic->net_dev;
-Index: head-2008-12-01/drivers/xen/sfc_netfront/accel_tso.c
-===================================================================
---- head-2008-12-01.orig/drivers/xen/sfc_netfront/accel_tso.c  2008-12-03 15:49:14.000000000 +0100
-+++ head-2008-12-01/drivers/xen/sfc_netfront/accel_tso.c       2008-12-01 11:29:05.000000000 +0100
+--- sle11-2009-05-14.orig/drivers/xen/sfc_netfront/accel_tso.c 2009-05-14 11:02:43.000000000 +0200
++++ sle11-2009-05-14/drivers/xen/sfc_netfront/accel_tso.c      2009-03-04 11:28:34.000000000 +0100
 @@ -363,7 +363,7 @@ int netfront_accel_enqueue_skb_tso(netfr
  
        tso_check_safe(skb);
@@ -10884,10 +10737,8 @@ Index: head-2008-12-01/drivers/xen/sfc_netfront/accel_tso.c
                EPRINTK("Trying to TSO send a packet without HW checksum\n");
  
        tso_start(&state, skb);
-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-03 15:49:14.000000000 +0100
-+++ head-2008-12-01/drivers/xen/sfc_netfront/accel_vi.c        2008-12-01 11:29:05.000000000 +0100
+--- sle11-2009-05-14.orig/drivers/xen/sfc_netfront/accel_vi.c  2009-04-09 14:41:38.000000000 +0200
++++ sle11-2009-05-14/drivers/xen/sfc_netfront/accel_vi.c       2009-03-30 16:35:11.000000000 +0200
 @@ -461,7 +461,7 @@ netfront_accel_enqueue_skb_multi(netfron
  
        frag_i = -1;
@@ -10906,10 +10757,8 @@ Index: head-2008-12-01/drivers/xen/sfc_netfront/accel_vi.c
                /* Set to zero to encourage falcon to work it out for us */
                *(u16*)(skb->h.raw + skb->csum) = 0;
        }
-Index: head-2008-12-01/drivers/xen/tpmback/common.h
-===================================================================
---- head-2008-12-01.orig/drivers/xen/tpmback/common.h  2008-12-03 15:49:14.000000000 +0100
-+++ head-2008-12-01/drivers/xen/tpmback/common.h       2008-12-01 11:29:05.000000000 +0100
+--- sle11-2009-05-14.orig/drivers/xen/tpmback/common.h 2009-05-14 11:02:43.000000000 +0200
++++ sle11-2009-05-14/drivers/xen/tpmback/common.h      2009-03-04 11:28:34.000000000 +0100
 @@ -61,7 +61,7 @@ void tpmif_deschedule_work(tpmif_t * tpm
  void tpmif_xenbus_init(void);
  void tpmif_xenbus_exit(void);
@@ -10919,10 +10768,8 @@ Index: head-2008-12-01/drivers/xen/tpmback/common.h
  
  long int tpmback_get_instance(struct backend_info *bi);
  
-Index: head-2008-12-01/drivers/xen/tpmback/tpmback.c
-===================================================================
---- head-2008-12-01.orig/drivers/xen/tpmback/tpmback.c 2008-12-03 15:49:14.000000000 +0100
-+++ head-2008-12-01/drivers/xen/tpmback/tpmback.c      2008-12-01 11:29:05.000000000 +0100
+--- sle11-2009-05-14.orig/drivers/xen/tpmback/tpmback.c        2009-05-14 11:02:43.000000000 +0200
++++ sle11-2009-05-14/drivers/xen/tpmback/tpmback.c     2009-03-04 11:28:34.000000000 +0100
 @@ -502,7 +502,7 @@ static ssize_t vtpm_op_read(struct file 
                list_del(&pak->next);
                write_unlock_irqrestore(&dataex.pak_lock, flags);
@@ -10941,10 +10788,8 @@ Index: head-2008-12-01/drivers/xen/tpmback/tpmback.c
  {
        tpmif_t *tpmif = (tpmif_t *) dev_id;
  
-Index: head-2008-12-01/drivers/xen/xenbus/xenbus_comms.c
-===================================================================
---- head-2008-12-01.orig/drivers/xen/xenbus/xenbus_comms.c     2008-12-03 15:49:14.000000000 +0100
-+++ head-2008-12-01/drivers/xen/xenbus/xenbus_comms.c  2008-12-01 11:29:05.000000000 +0100
+--- sle11-2009-05-14.orig/drivers/xen/xenbus/xenbus_comms.c    2008-11-25 12:35:56.000000000 +0100
++++ sle11-2009-05-14/drivers/xen/xenbus/xenbus_comms.c 2009-03-04 11:28:34.000000000 +0100
 @@ -55,7 +55,7 @@ static DECLARE_WORK(probe_work, xenbus_p
  
  static DECLARE_WAIT_QUEUE_HEAD(xb_waitq);
@@ -10954,10 +10799,8 @@ Index: head-2008-12-01/drivers/xen/xenbus/xenbus_comms.c
  {
        if (unlikely(xenstored_ready == 0)) {
                xenstored_ready = 1;
-Index: head-2008-12-01/drivers/xen/xenoprof/xenoprofile.c
-===================================================================
---- head-2008-12-01.orig/drivers/xen/xenoprof/xenoprofile.c    2008-12-03 15:49:14.000000000 +0100
-+++ head-2008-12-01/drivers/xen/xenoprof/xenoprofile.c 2008-12-01 11:29:05.000000000 +0100
+--- sle11-2009-05-14.orig/drivers/xen/xenoprof/xenoprofile.c   2009-05-14 11:02:43.000000000 +0200
++++ sle11-2009-05-14/drivers/xen/xenoprof/xenoprofile.c        2009-03-04 11:28:34.000000000 +0100
 @@ -194,8 +194,7 @@ done:
                oprofile_add_domain_switch(COORDINATOR_DOMAIN);
  }
@@ -10968,10 +10811,8 @@ Index: head-2008-12-01/drivers/xen/xenoprof/xenoprofile.c
  {
        struct xenoprof_buf * buf;
        static unsigned long flag;
-Index: head-2008-12-01/include/asm-generic/pgtable.h
-===================================================================
---- head-2008-12-01.orig/include/asm-generic/pgtable.h 2008-12-03 15:49:14.000000000 +0100
-+++ head-2008-12-01/include/asm-generic/pgtable.h      2008-12-01 11:29:05.000000000 +0100
+--- sle11-2009-05-14.orig/include/asm-generic/pgtable.h        2009-02-16 15:58:14.000000000 +0100
++++ sle11-2009-05-14/include/asm-generic/pgtable.h     2009-03-04 11:28:34.000000000 +0100
 @@ -100,7 +100,7 @@ static inline void ptep_set_wrprotect(st
  #endif
  
@@ -10981,10 +10822,8 @@ Index: head-2008-12-01/include/asm-generic/pgtable.h
  #endif
  
  #ifndef __HAVE_ARCH_PTE_SAME
-Index: head-2008-12-01/include/asm-x86/mach-xen/asm/desc_32.h
-===================================================================
---- head-2008-12-01.orig/include/asm-x86/mach-xen/asm/desc_32.h        2008-12-03 15:49:14.000000000 +0100
-+++ head-2008-12-01/include/asm-x86/mach-xen/asm/desc_32.h     2008-12-01 11:29:05.000000000 +0100
+--- sle11-2009-05-14.orig/include/asm-x86/mach-xen/asm/desc_32.h       2009-05-14 11:02:43.000000000 +0200
++++ sle11-2009-05-14/include/asm-x86/mach-xen/asm/desc_32.h    2009-03-04 11:28:34.000000000 +0100
 @@ -32,52 +32,110 @@ static inline struct desc_struct *get_cp
        return (struct desc_struct *)per_cpu(cpu_gdt_descr, cpu).address;
  }
@@ -11145,10 +10984,8 @@ Index: head-2008-12-01/include/asm-x86/mach-xen/asm/desc_32.h
  static inline void clear_LDT(void)
  {
        int cpu = get_cpu();
-Index: head-2008-12-01/include/asm-x86/mach-xen/asm/fixmap_32.h
-===================================================================
---- head-2008-12-01.orig/include/asm-x86/mach-xen/asm/fixmap_32.h      2008-12-03 15:49:14.000000000 +0100
-+++ head-2008-12-01/include/asm-x86/mach-xen/asm/fixmap_32.h   2008-12-01 11:29:05.000000000 +0100
+--- sle11-2009-05-14.orig/include/asm-x86/mach-xen/asm/fixmap_32.h     2009-05-14 11:02:43.000000000 +0200
++++ sle11-2009-05-14/include/asm-x86/mach-xen/asm/fixmap_32.h  2009-03-04 11:28:34.000000000 +0100
 @@ -55,7 +55,7 @@ enum fixed_addresses {
  #ifdef CONFIG_X86_LOCAL_APIC
        FIX_APIC_BASE,  /* local (CPU) APIC) -- required for SMP or not */
@@ -11170,10 +11007,8 @@ Index: head-2008-12-01/include/asm-x86/mach-xen/asm/fixmap_32.h
  
  #define set_fixmap(idx, phys) \
                __set_fixmap(idx, phys, PAGE_KERNEL)
-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-03 15:49:14.000000000 +0100
-+++ head-2008-12-01/include/asm-x86/mach-xen/asm/hypercall_32.h        2008-12-01 11:29:05.000000000 +0100
+--- sle11-2009-05-14.orig/include/asm-x86/mach-xen/asm/hypercall_32.h  2009-05-14 11:02:43.000000000 +0200
++++ sle11-2009-05-14/include/asm-x86/mach-xen/asm/hypercall_32.h       2009-03-04 11:28:34.000000000 +0100
 @@ -128,6 +128,23 @@
        __res;                                                  \
  })
@@ -11244,10 +11079,8 @@ Index: head-2008-12-01/include/asm-x86/mach-xen/asm/hypercall_32.h
        return _hypercall3(int, grant_table_op, cmd, uop, count);
  }
  
-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-03 15:49:14.000000000 +0100
-+++ head-2008-12-01/include/asm-x86/mach-xen/asm/hypercall_64.h        2008-12-01 11:29:05.000000000 +0100
+--- sle11-2009-05-14.orig/include/asm-x86/mach-xen/asm/hypercall_64.h  2009-05-14 11:02:43.000000000 +0200
++++ sle11-2009-05-14/include/asm-x86/mach-xen/asm/hypercall_64.h       2009-03-04 11:28:34.000000000 +0100
 @@ -134,6 +134,23 @@
        __res;                                                  \
  })
@@ -11317,10 +11150,8 @@ Index: head-2008-12-01/include/asm-x86/mach-xen/asm/hypercall_64.h
        return _hypercall3(int, grant_table_op, cmd, uop, count);
  }
  
-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-03 15:49:14.000000000 +0100
-+++ head-2008-12-01/include/asm-x86/mach-xen/asm/hypervisor.h  2008-12-01 11:29:05.000000000 +0100
+--- sle11-2009-05-14.orig/include/asm-x86/mach-xen/asm/hypervisor.h    2009-05-14 11:02:43.000000000 +0200
++++ sle11-2009-05-14/include/asm-x86/mach-xen/asm/hypervisor.h 2009-03-04 11:28:34.000000000 +0100
 @@ -43,6 +43,7 @@
  #include <xen/interface/physdev.h>
  #include <xen/interface/sched.h>
@@ -11334,7 +11165,7 @@ Index: head-2008-12-01/include/asm-x86/mach-xen/asm/hypervisor.h
  #endif
  
 -#include <xen/hypercall.h>
-+#ifdef CONFIG_XEN
++#if defined(CONFIG_XEN) && !defined(MODULE)
 +
 +DECLARE_PER_CPU(bool, xen_lazy_mmu);
 +
@@ -11365,7 +11196,7 @@ Index: head-2008-12-01/include/asm-x86/mach-xen/asm/hypervisor.h
 +#define arch_use_lazy_mmu_mode() unlikely(__get_cpu_var(xen_lazy_mmu))
 +#endif
 +
-+#else /* CONFIG_XEN */
++#else /* !CONFIG_XEN || MODULE */
 +
 +static inline void xen_multicall_flush(bool ignore) {}
 +#define arch_use_lazy_mmu_mode() false
@@ -11373,7 +11204,7 @@ Index: head-2008-12-01/include/asm-x86/mach-xen/asm/hypervisor.h
 +#define xen_multi_mmu_update(...) ({ BUG(); -ENOSYS; })
 +#define xen_multi_mmuext_op(...) ({ BUG(); -ENOSYS; })
 +
-+#endif /* CONFIG_XEN */
++#endif /* CONFIG_XEN && !MODULE */
  
  #if defined(CONFIG_X86_64)
  #define MULTI_UVMFLAGS_INDEX 2
@@ -11393,48 +11224,8 @@ Index: head-2008-12-01/include/asm-x86/mach-xen/asm/hypervisor.h
  static inline int
  HYPERVISOR_yield(
        void)
-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-03 15:49:14.000000000 +0100
-+++ head-2008-12-01/include/asm-x86/mach-xen/asm/io_32.h       2008-12-01 11:29:05.000000000 +0100
-@@ -237,33 +237,6 @@ static inline void memcpy_toio(volatile 
- #define eth_io_copy_and_sum(a,b,c,d)          eth_copy_and_sum((a),(void __force *)(b),(c),(d))
--/**
-- *    check_signature         -       find BIOS signatures
-- *    @io_addr: mmio address to check 
-- *    @signature:  signature block
-- *    @length: length of signature
-- *
-- *    Perform a signature comparison with the mmio address io_addr. This
-- *    address should have been obtained by ioremap.
-- *    Returns 1 on a match.
-- */
-- 
--static inline int check_signature(volatile void __iomem * io_addr,
--      const unsigned char *signature, int length)
--{
--      int retval = 0;
--      do {
--              if (readb(io_addr) != *signature)
--                      goto out;
--              io_addr++;
--              signature++;
--              length--;
--      } while (length);
--      retval = 1;
--out:
--      return retval;
--}
--
- /*
-  *    Cache management
-  *
-Index: head-2008-12-01/include/asm-x86/mach-xen/asm/pgtable-3level.h
-===================================================================
---- head-2008-12-01.orig/include/asm-x86/mach-xen/asm/pgtable-3level.h 2008-12-03 15:49:14.000000000 +0100
-+++ head-2008-12-01/include/asm-x86/mach-xen/asm/pgtable-3level.h      2008-12-01 11:29:05.000000000 +0100
+--- sle11-2009-05-14.orig/include/asm-x86/mach-xen/asm/pgtable-3level.h        2009-05-14 11:02:43.000000000 +0200
++++ sle11-2009-05-14/include/asm-x86/mach-xen/asm/pgtable-3level.h     2009-03-04 11:28:34.000000000 +0100
 @@ -53,7 +53,6 @@ static inline int pte_exec_kernel(pte_t 
   * not possible, use pte_get_and_clear to obtain the old pte
   * value and then use set_pte to update it.  -ben
@@ -11491,10 +11282,8 @@ Index: head-2008-12-01/include/asm-x86/mach-xen/asm/pgtable-3level.h
  static inline int pte_same(pte_t a, pte_t b)
  {
        return a.pte_low == b.pte_low && a.pte_high == b.pte_high;
-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-03 15:49:14.000000000 +0100
-+++ head-2008-12-01/include/asm-x86/mach-xen/asm/pgtable_32.h  2008-12-01 11:29:05.000000000 +0100
+--- sle11-2009-05-14.orig/include/asm-x86/mach-xen/asm/pgtable_32.h    2008-12-15 11:13:45.000000000 +0100
++++ sle11-2009-05-14/include/asm-x86/mach-xen/asm/pgtable_32.h 2009-03-04 11:28:34.000000000 +0100
 @@ -260,31 +260,89 @@ static inline pte_t pte_mkhuge(pte_t pte
  # include <asm/pgtable-2level.h>
  #endif
@@ -11676,7 +11465,7 @@ Index: head-2008-12-01/include/asm-x86/mach-xen/asm/pgtable_32.h
  
  #include <xen/features.h>
  void make_lowmem_page_readonly(void *va, unsigned int feature);
-@@ -513,10 +550,11 @@ int touch_pte_range(struct mm_struct *mm
+@@ -526,10 +563,11 @@ int touch_pte_range(struct mm_struct *mm
                      unsigned long size);
  
  int xen_change_pte_range(struct mm_struct *mm, pmd_t *pmd,
@@ -11691,7 +11480,7 @@ Index: head-2008-12-01/include/asm-x86/mach-xen/asm/pgtable_32.h
  
  #define io_remap_pfn_range(vma,from,pfn,size,prot) \
  direct_remap_pfn_range(vma,from,pfn,size,prot,DOMID_IO)
-@@ -525,13 +563,6 @@ direct_remap_pfn_range(vma,from,pfn,size
+@@ -538,13 +576,6 @@ direct_remap_pfn_range(vma,from,pfn,size
  #define GET_IOSPACE(pfn)              0
  #define GET_PFN(pfn)                  (pfn)
  
@@ -11705,10 +11494,8 @@ Index: head-2008-12-01/include/asm-x86/mach-xen/asm/pgtable_32.h
  #include <asm-generic/pgtable.h>
  
  #endif /* _I386_PGTABLE_H */
-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-03 15:49:14.000000000 +0100
-+++ head-2008-12-01/include/asm-x86/mach-xen/asm/processor_32.h        2008-12-01 11:29:05.000000000 +0100
+--- sle11-2009-05-14.orig/include/asm-x86/mach-xen/asm/processor_32.h  2009-04-20 11:36:10.000000000 +0200
++++ sle11-2009-05-14/include/asm-x86/mach-xen/asm/processor_32.h       2009-03-04 11:28:34.000000000 +0100
 @@ -146,6 +146,18 @@ static inline void detect_ht(struct cpui
  #define X86_EFLAGS_VIP        0x00100000 /* Virtual Interrupt Pending */
  #define X86_EFLAGS_ID 0x00200000 /* CPUID detection flag */
@@ -11820,10 +11607,8 @@ Index: head-2008-12-01/include/asm-x86/mach-xen/asm/processor_32.h
  /* from system description table in BIOS.  Mostly for MCA use, but
  others may find it useful. */
  extern unsigned int machine_id;
-Index: head-2008-12-01/include/asm-x86/mach-xen/asm/segment_32.h
-===================================================================
---- head-2008-12-01.orig/include/asm-x86/mach-xen/asm/segment_32.h     2008-12-03 15:49:14.000000000 +0100
-+++ head-2008-12-01/include/asm-x86/mach-xen/asm/segment_32.h  2008-12-01 11:29:05.000000000 +0100
+--- sle11-2009-05-14.orig/include/asm-x86/mach-xen/asm/segment_32.h    2009-05-14 11:02:43.000000000 +0200
++++ sle11-2009-05-14/include/asm-x86/mach-xen/asm/segment_32.h 2009-03-04 11:28:34.000000000 +0100
 @@ -61,11 +61,9 @@
  
  #define GDT_ENTRY_KERNEL_CS           (GDT_ENTRY_KERNEL_BASE + 0)
@@ -11865,10 +11650,8 @@ Index: head-2008-12-01/include/asm-x86/mach-xen/asm/segment_32.h
 +
 +#define get_kernel_rpl()  (xen_feature(XENFEAT_supervisor_mode_kernel)?0:1)
  #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-03 15:49:14.000000000 +0100
-+++ head-2008-12-01/include/asm-x86/mach-xen/asm/smp_32.h      2008-12-01 11:29:05.000000000 +0100
+--- sle11-2009-05-14.orig/include/asm-x86/mach-xen/asm/smp_32.h        2009-05-14 11:02:43.000000000 +0200
++++ sle11-2009-05-14/include/asm-x86/mach-xen/asm/smp_32.h     2009-03-04 11:28:34.000000000 +0100
 @@ -79,25 +79,36 @@ static inline int hard_smp_processor_id(
        return GET_APIC_ID(*(unsigned long *)(APIC_BASE+APIC_ID));
  }
@@ -11913,10 +11696,8 @@ Index: head-2008-12-01/include/asm-x86/mach-xen/asm/smp_32.h
 +#endif
 +
  #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-03 15:49:14.000000000 +0100
-+++ head-2008-12-01/include/asm-x86/mach-xen/asm/system_32.h   2008-12-01 11:29:05.000000000 +0100
+--- sle11-2009-05-14.orig/include/asm-x86/mach-xen/asm/system_32.h     2009-05-14 11:02:43.000000000 +0200
++++ sle11-2009-05-14/include/asm-x86/mach-xen/asm/system_32.h  2009-03-04 11:28:34.000000000 +0100
 @@ -267,6 +267,9 @@ static inline unsigned long __xchg(unsig
  #define cmpxchg(ptr,o,n)\
        ((__typeof__(*(ptr)))__cmpxchg((ptr),(unsigned long)(o),\
@@ -11967,10 +11748,8 @@ Index: head-2008-12-01/include/asm-x86/mach-xen/asm/system_32.h
  #ifndef CONFIG_X86_CMPXCHG
  /*
   * Building a kernel capable running on 80386. It may be necessary to
-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-03 15:49:14.000000000 +0100
-+++ head-2008-12-01/include/asm-x86/mach-xen/asm/tlbflush_32.h 2008-12-01 11:29:05.000000000 +0100
+--- sle11-2009-05-14.orig/include/asm-x86/mach-xen/asm/tlbflush_32.h   2009-05-14 11:02:43.000000000 +0200
++++ sle11-2009-05-14/include/asm-x86/mach-xen/asm/tlbflush_32.h        2009-03-04 11:28:34.000000000 +0100
 @@ -8,8 +8,6 @@
  #define __flush_tlb_global() xen_tlb_flush()
  #define __flush_tlb_all() xen_tlb_flush()
@@ -11980,10 +11759,8 @@ Index: head-2008-12-01/include/asm-x86/mach-xen/asm/tlbflush_32.h
  #define cpu_has_invlpg        (boot_cpu_data.x86 > 3)
  
  #define __flush_tlb_single(addr) xen_invlpg(addr)
-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-03 15:49:14.000000000 +0100
-+++ head-2008-12-01/include/asm-x86/mach-xen/asm/dma-mapping_64.h      2008-12-01 11:29:05.000000000 +0100
+--- sle11-2009-05-14.orig/include/asm-x86/mach-xen/asm/dma-mapping_64.h        2009-05-14 11:02:43.000000000 +0200
++++ sle11-2009-05-14/include/asm-x86/mach-xen/asm/dma-mapping_64.h     2009-03-04 11:28:34.000000000 +0100
 @@ -55,13 +55,6 @@ extern dma_addr_t bad_dma_address;
  extern struct dma_mapping_ops* dma_ops;
  extern int iommu_merge;
@@ -11998,10 +11775,8 @@ Index: head-2008-12-01/include/asm-x86/mach-xen/asm/dma-mapping_64.h
  #if 0
  static inline int dma_mapping_error(dma_addr_t dma_addr)
  {
-Index: head-2008-12-01/include/asm-x86/mach-xen/asm/fixmap_64.h
-===================================================================
---- head-2008-12-01.orig/include/asm-x86/mach-xen/asm/fixmap_64.h      2008-12-03 15:49:14.000000000 +0100
-+++ head-2008-12-01/include/asm-x86/mach-xen/asm/fixmap_64.h   2008-12-01 11:29:05.000000000 +0100
+--- sle11-2009-05-14.orig/include/asm-x86/mach-xen/asm/fixmap_64.h     2009-05-14 11:02:43.000000000 +0200
++++ sle11-2009-05-14/include/asm-x86/mach-xen/asm/fixmap_64.h  2009-03-04 11:28:34.000000000 +0100
 @@ -41,7 +41,7 @@ enum fixed_addresses {
  #ifdef CONFIG_X86_LOCAL_APIC
        FIX_APIC_BASE,  /* local (CPU) APIC) -- required for SMP or not */
@@ -12011,49 +11786,9 @@ Index: head-2008-12-01/include/asm-x86/mach-xen/asm/fixmap_64.h
        FIX_IO_APIC_BASE_0,
        FIX_IO_APIC_BASE_END = FIX_IO_APIC_BASE_0 + MAX_IO_APICS-1,
  #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-03 15:49:14.000000000 +0100
-+++ head-2008-12-01/include/asm-x86/mach-xen/asm/io_64.h       2008-12-01 11:29:05.000000000 +0100
-@@ -273,33 +273,6 @@ void memset_io(volatile void __iomem *a,
- #define eth_io_copy_and_sum(a,b,c,d)          eth_copy_and_sum((a),(void *)(b),(c),(d))
--/**
-- *    check_signature         -       find BIOS signatures
-- *    @io_addr: mmio address to check 
-- *    @signature:  signature block
-- *    @length: length of signature
-- *
-- *    Perform a signature comparison with the mmio address io_addr. This
-- *    address should have been obtained by ioremap.
-- *    Returns 1 on a match.
-- */
-- 
--static inline int check_signature(void __iomem *io_addr,
--      const unsigned char *signature, int length)
--{
--      int retval = 0;
--      do {
--              if (readb(io_addr) != *signature)
--                      goto out;
--              io_addr++;
--              signature++;
--              length--;
--      } while (length);
--      retval = 1;
--out:
--      return retval;
--}
--
- /* Nothing to do */
- #define dma_cache_inv(_start,_size)           do { } while (0)
-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-03 15:49:14.000000000 +0100
-+++ head-2008-12-01/include/asm-x86/mach-xen/asm/pgtable_64.h  2008-12-01 11:29:05.000000000 +0100
-@@ -42,12 +42,9 @@ extern unsigned long __supported_pte_mas
+--- sle11-2009-05-14.orig/include/asm-x86/mach-xen/asm/pgtable_64.h    2009-04-20 11:36:10.000000000 +0200
++++ sle11-2009-05-14/include/asm-x86/mach-xen/asm/pgtable_64.h 2009-03-04 11:28:34.000000000 +0100
+@@ -44,12 +44,9 @@ extern unsigned long __supported_pte_mas
  
  #define swapper_pg_dir init_level4_pgt
  
@@ -12066,7 +11801,7 @@ Index: head-2008-12-01/include/asm-x86/mach-xen/asm/pgtable_64.h
  /*
   * ZERO_PAGE is a global shared page that is always zero: used
   * for zero-mapped memory areas etc..
-@@ -117,9 +114,6 @@ static inline void pgd_clear (pgd_t * pg
+@@ -119,9 +116,6 @@ static inline void pgd_clear (pgd_t * pg
          set_pgd(__user_pgd(pgd), __pgd(0));
  }
  
@@ -12076,7 +11811,7 @@ Index: head-2008-12-01/include/asm-x86/mach-xen/asm/pgtable_64.h
  #define pte_same(a, b)                ((a).pte == (b).pte)
  
  #define pte_pgprot(a) (__pgprot((a).pte & ~PHYSICAL_PAGE_MASK))
-@@ -331,7 +325,7 @@ static inline pte_t ptep_get_and_clear_f
+@@ -333,7 +327,7 @@ static inline pte_t ptep_get_and_clear_f
  #define __LARGE_PTE (_PAGE_PSE|_PAGE_PRESENT)
  static inline int pte_user(pte_t pte)         { return __pte_val(pte) & _PAGE_USER; }
  static inline int pte_read(pte_t pte)         { return __pte_val(pte) & _PAGE_USER; }
@@ -12085,7 +11820,7 @@ Index: head-2008-12-01/include/asm-x86/mach-xen/asm/pgtable_64.h
  static inline int pte_dirty(pte_t pte)                { return __pte_val(pte) & _PAGE_DIRTY; }
  static inline int pte_young(pte_t pte)                { return __pte_val(pte) & _PAGE_ACCESSED; }
  static inline int pte_write(pte_t pte)                { return __pte_val(pte) & _PAGE_RW; }
-@@ -344,29 +338,12 @@ static inline pte_t pte_mkclean(pte_t pt
+@@ -346,29 +340,12 @@ static inline pte_t pte_mkclean(pte_t pt
  static inline pte_t pte_mkold(pte_t pte)      { __pte_val(pte) &= ~_PAGE_ACCESSED; return pte; }
  static inline pte_t pte_wrprotect(pte_t pte)  { __pte_val(pte) &= ~_PAGE_RW; return pte; }
  static inline pte_t pte_mkread(pte_t pte)     { __pte_val(pte) |= _PAGE_USER; return pte; }
@@ -12117,7 +11852,7 @@ Index: head-2008-12-01/include/asm-x86/mach-xen/asm/pgtable_64.h
  
  static inline void ptep_set_wrprotect(struct mm_struct *mm, unsigned long addr, pte_t *ptep)
  {
-@@ -393,7 +370,8 @@ static inline int pmd_large(pmd_t pte) {
+@@ -395,7 +372,8 @@ static inline int pmd_large(pmd_t pte) {
  /*
   * Level 4 access.
   */
@@ -12127,7 +11862,7 @@ Index: head-2008-12-01/include/asm-x86/mach-xen/asm/pgtable_64.h
  #define pgd_index(address) (((address) >> PGDIR_SHIFT) & (PTRS_PER_PGD-1))
  #define pgd_offset(mm, addr) ((mm)->pgd + pgd_index(addr))
  #define pgd_offset_k(address) (init_level4_pgt + pgd_index(address))
-@@ -402,16 +380,18 @@ static inline int pmd_large(pmd_t pte) {
+@@ -404,16 +382,18 @@ static inline int pmd_large(pmd_t pte) {
  
  /* PUD - Level3 access */
  /* to find an entry in a page-table-directory. */
@@ -12149,7 +11884,7 @@ Index: head-2008-12-01/include/asm-x86/mach-xen/asm/pgtable_64.h
                                    pmd_index(address))
  #define pmd_none(x)   (!__pmd_val(x))
  #if CONFIG_XEN_COMPAT <= 0x030002
-@@ -442,6 +422,7 @@ static inline pte_t mk_pte_phys(unsigned
+@@ -444,6 +424,7 @@ static inline pte_t mk_pte_phys(unsigned
  { 
        unsigned long pteval;
        pteval = physpage | pgprot_val(pgprot);
@@ -12157,7 +11892,7 @@ Index: head-2008-12-01/include/asm-x86/mach-xen/asm/pgtable_64.h
        return __pte(pteval);
  }
   
-@@ -463,7 +444,7 @@ static inline pte_t pte_modify(pte_t pte
+@@ -465,7 +446,7 @@ static inline pte_t pte_modify(pte_t pte
  
  #define pte_index(address) \
                (((address) >> PAGE_SHIFT) & (PTRS_PER_PTE - 1))
@@ -12166,7 +11901,7 @@ Index: head-2008-12-01/include/asm-x86/mach-xen/asm/pgtable_64.h
                        pte_index(address))
  
  /* x86-64 always has all page tables mapped. */
-@@ -504,6 +485,40 @@ static inline pte_t pte_modify(pte_t pte
+@@ -506,6 +487,40 @@ static inline pte_t pte_modify(pte_t pte
                        ptep_establish(vma, address, ptep, entry);      \
        } while (0)
  
@@ -12207,7 +11942,7 @@ Index: head-2008-12-01/include/asm-x86/mach-xen/asm/pgtable_64.h
  /* Encode and de-code a swap entry */
  #define __swp_type(x)                 (((x).val >> 1) & 0x3f)
  #define __swp_offset(x)                       ((x).val >> 8)
-@@ -545,10 +560,11 @@ int touch_pte_range(struct mm_struct *mm
+@@ -547,10 +562,11 @@ int touch_pte_range(struct mm_struct *mm
                      unsigned long size);
  
  int xen_change_pte_range(struct mm_struct *mm, pmd_t *pmd,
@@ -12222,7 +11957,7 @@ Index: head-2008-12-01/include/asm-x86/mach-xen/asm/pgtable_64.h
  
  #define io_remap_pfn_range(vma, vaddr, pfn, size, prot)               \
                direct_remap_pfn_range(vma,vaddr,pfn,size,prot,DOMID_IO)
-@@ -570,8 +586,6 @@ int xen_change_pte_range(struct mm_struc
+@@ -572,8 +588,6 @@ int xen_change_pte_range(struct mm_struc
  #define       kc_offset_to_vaddr(o) \
     (((o) & (1UL << (__VIRTUAL_MASK_SHIFT-1))) ? ((o) | (~__VIRTUAL_MASK)) : (o))
  
@@ -12231,10 +11966,8 @@ Index: head-2008-12-01/include/asm-x86/mach-xen/asm/pgtable_64.h
  #define __HAVE_ARCH_PTEP_GET_AND_CLEAR
  #define __HAVE_ARCH_PTEP_GET_AND_CLEAR_FULL
  #define __HAVE_ARCH_PTEP_CLEAR_FLUSH
-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-03 15:49:14.000000000 +0100
-+++ head-2008-12-01/include/asm-x86/mach-xen/asm/processor_64.h        2008-12-01 11:29:05.000000000 +0100
+--- sle11-2009-05-14.orig/include/asm-x86/mach-xen/asm/processor_64.h  2009-05-14 11:02:43.000000000 +0200
++++ sle11-2009-05-14/include/asm-x86/mach-xen/asm/processor_64.h       2009-03-04 11:28:34.000000000 +0100
 @@ -484,6 +484,8 @@ static inline void __mwait(unsigned long
                : :"a" (eax), "c" (ecx));
  }
@@ -12244,10 +11977,8 @@ Index: head-2008-12-01/include/asm-x86/mach-xen/asm/processor_64.h
  #define stack_current() \
  ({                                                            \
        struct thread_info *ti;                                 \
-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-03 15:49:14.000000000 +0100
-+++ head-2008-12-01/include/asm-x86/mach-xen/asm/smp_64.h      2008-12-01 11:29:05.000000000 +0100
+--- sle11-2009-05-14.orig/include/asm-x86/mach-xen/asm/smp_64.h        2009-05-14 11:02:43.000000000 +0200
++++ sle11-2009-05-14/include/asm-x86/mach-xen/asm/smp_64.h     2009-03-04 11:28:34.000000000 +0100
 @@ -4,15 +4,12 @@
  /*
   * We need the APIC definitions automatically as part of 'smp.h'
@@ -12353,10 +12084,8 @@ Index: head-2008-12-01/include/asm-x86/mach-xen/asm/smp_64.h
 +#endif /* !CONFIG_SMP */
  #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-03 15:49:14.000000000 +0100
-+++ head-2008-12-01/include/asm-x86/mach-xen/asm/system_64.h   2008-12-01 11:29:05.000000000 +0100
+--- sle11-2009-05-14.orig/include/asm-x86/mach-xen/asm/system_64.h     2009-05-14 11:02:43.000000000 +0200
++++ sle11-2009-05-14/include/asm-x86/mach-xen/asm/system_64.h  2009-03-04 11:28:34.000000000 +0100
 @@ -24,6 +24,7 @@
  #define __EXTRA_CLOBBER  \
        ,"rcx","rbx","rdx","r8","r9","r10","r11","r12","r13","r14","r15"
@@ -12365,10 +12094,8 @@ Index: head-2008-12-01/include/asm-x86/mach-xen/asm/system_64.h
  #define switch_to(prev,next,last) \
        asm volatile(SAVE_CONTEXT                                                   \
                     "movq %%rsp,%P[threadrsp](%[prev])\n\t" /* save RSP */       \
-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-03 15:49:14.000000000 +0100
-+++ head-2008-12-01/include/asm-x86/mach-xen/asm/tlbflush_64.h 2008-12-01 11:29:05.000000000 +0100
+--- sle11-2009-05-14.orig/include/asm-x86/mach-xen/asm/tlbflush_64.h   2009-05-14 11:02:43.000000000 +0200
++++ sle11-2009-05-14/include/asm-x86/mach-xen/asm/tlbflush_64.h        2009-03-04 11:28:34.000000000 +0100
 @@ -12,9 +12,6 @@
   */
  #define __flush_tlb_global()  xen_tlb_flush()
@@ -12379,10 +12106,8 @@ Index: head-2008-12-01/include/asm-x86/mach-xen/asm/tlbflush_64.h
  #define __flush_tlb_all() __flush_tlb_global()
  
  #define __flush_tlb_one(addr) xen_invlpg((unsigned long)addr)
-Index: head-2008-12-01/include/linux/skbuff.h
-===================================================================
---- head-2008-12-01.orig/include/linux/skbuff.h        2008-12-03 15:49:14.000000000 +0100
-+++ head-2008-12-01/include/linux/skbuff.h     2008-12-01 11:29:05.000000000 +0100
+--- sle11-2009-05-14.orig/include/linux/skbuff.h       2009-02-16 15:58:14.000000000 +0100
++++ sle11-2009-05-14/include/linux/skbuff.h    2009-03-04 11:28:34.000000000 +0100
 @@ -1771,5 +1771,12 @@ static inline void skb_forward_csum(stru
  }
  
@@ -12396,10 +12121,8 @@ Index: head-2008-12-01/include/linux/skbuff.h
 +
  #endif        /* __KERNEL__ */
  #endif        /* _LINUX_SKBUFF_H */
-Index: head-2008-12-01/include/xen/evtchn.h
-===================================================================
---- head-2008-12-01.orig/include/xen/evtchn.h  2008-12-03 15:49:14.000000000 +0100
-+++ head-2008-12-01/include/xen/evtchn.h       2008-12-01 11:29:05.000000000 +0100
+--- sle11-2009-05-14.orig/include/xen/evtchn.h 2009-05-14 11:02:43.000000000 +0200
++++ sle11-2009-05-14/include/xen/evtchn.h      2009-03-04 11:28:34.000000000 +0100
 @@ -54,34 +54,34 @@
   */
  int bind_caller_port_to_irqhandler(
@@ -12440,10 +12163,8 @@ Index: head-2008-12-01/include/xen/evtchn.h
        unsigned long irqflags,
        const char *devname,
        void *dev_id);
-Index: head-2008-12-01/include/xen/xencons.h
-===================================================================
---- head-2008-12-01.orig/include/xen/xencons.h 2008-12-03 15:49:14.000000000 +0100
-+++ head-2008-12-01/include/xen/xencons.h      2008-12-01 11:29:05.000000000 +0100
+--- sle11-2009-05-14.orig/include/xen/xencons.h        2009-05-14 11:02:43.000000000 +0200
++++ sle11-2009-05-14/include/xen/xencons.h     2009-03-04 11:28:34.000000000 +0100
 @@ -8,7 +8,7 @@ void xencons_force_flush(void);
  void xencons_resume(void);
  
@@ -12453,10 +12174,8 @@ Index: head-2008-12-01/include/xen/xencons.h
  void xencons_tx(void);
  
  int xencons_ring_init(void);
-Index: head-2008-12-01/mm/mprotect.c
-===================================================================
---- head-2008-12-01.orig/mm/mprotect.c 2008-12-03 15:49:14.000000000 +0100
-+++ head-2008-12-01/mm/mprotect.c      2008-12-01 11:29:05.000000000 +0100
+--- sle11-2009-05-14.orig/mm/mprotect.c        2009-02-16 15:58:14.000000000 +0100
++++ sle11-2009-05-14/mm/mprotect.c     2009-03-04 11:28:34.000000000 +0100
 @@ -92,7 +92,7 @@ static inline void change_pmd_range(stru
                next = pmd_addr_end(addr, end);
                if (pmd_none_or_clear_bad(pmd))
@@ -12466,10 +12185,8 @@ Index: head-2008-12-01/mm/mprotect.c
                        continue;
                change_pte_range(mm, pmd, addr, next, newprot, dirty_accountable);
        } while (pmd++, addr = next, addr != end);
-Index: head-2008-12-01/net/core/dev.c
-===================================================================
---- head-2008-12-01.orig/net/core/dev.c        2008-12-03 15:49:14.000000000 +0100
-+++ head-2008-12-01/net/core/dev.c     2008-12-01 11:29:05.000000000 +0100
+--- sle11-2009-05-14.orig/net/core/dev.c       2009-02-16 15:58:14.000000000 +0100
++++ sle11-2009-05-14/net/core/dev.c    2009-03-04 11:28:34.000000000 +0100
 @@ -1765,15 +1765,14 @@ inline int skb_checksum_setup(struct sk_
                }
                if ((skb->h.raw + skb->csum + 2) > skb->tail)
@@ -12488,7 +12205,7 @@ Index: head-2008-12-01/net/core/dev.c
  #endif
  
  /**
-@@ -2324,7 +2323,7 @@ int netif_receive_skb(struct sk_buff *sk
+@@ -2327,7 +2326,7 @@ int netif_receive_skb(struct sk_buff *sk
        case CHECKSUM_UNNECESSARY:
                skb->proto_data_valid = 1;
                break;
@@ -12497,7 +12214,7 @@ Index: head-2008-12-01/net/core/dev.c
                /* XXX Implement me. */
        default:
                skb->proto_data_valid = 0;
-@@ -4986,7 +4985,6 @@ EXPORT_SYMBOL(unregister_netdevice_notif
+@@ -4989,7 +4988,6 @@ EXPORT_SYMBOL(unregister_netdevice_notif
  EXPORT_SYMBOL(net_enable_timestamp);
  EXPORT_SYMBOL(net_disable_timestamp);
  EXPORT_SYMBOL(dev_get_flags);