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"
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.
#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;
/* 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
#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
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; \
#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
#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.
*/
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:
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:
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:
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
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
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
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
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
#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
.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
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>
- 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);
+ 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)
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
*
* 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
*
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>
/*
* 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;
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>
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>
#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.
*/
+ 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 */
/* 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 {
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;
__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
{
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. */
}
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;
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))
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)
{
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>
#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();
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>
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();
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 @@
*/
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,
{
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)) {
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
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>
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));
}
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);
}
-
- 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)
.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
+ 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)
#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>
}
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;
}
-__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
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;
}
#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>
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.
*/
- 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>
- 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);
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);
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>
+ 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.
-
-#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);
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);
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
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();
- 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>
-__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>
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)
}
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;
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)
{
- 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);
+ }
}
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);
}
}
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 */
{
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"
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)
*/
* 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;
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
#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. "
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
}
/**
* 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
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;
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);
}
{
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);
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 *);
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
}
{
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);
}
{
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);
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;
{
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);
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. */
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);
}
.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;
}
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,
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,
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,
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,
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,
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;
}
{
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);
}
{
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);
}
.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;
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;
}
/* 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
+ 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
{
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>
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);
#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,
};
{
/*
* 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.
*/
{
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();
}
+ /* 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_
}
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)) {
__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);
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++;
/* 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;
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)
{
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
{
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) &&
{
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);
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);
}
{
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);
}
}
-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>
*/
#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)
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)
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);
{
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);
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);
}
{
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
{
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 */
#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 *
}
{
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);
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;
/* 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);
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);
{
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);
{
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);
}
{
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
#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;
}
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 */
#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; \
})
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; \
})
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>
#endif
-#include <xen/hypercall.h>
-+#ifdef CONFIG_XEN
++#if defined(CONFIG_XEN) && !defined(MODULE)
+
+DECLARE_PER_CPU(bool, xen_lazy_mmu);
+
+#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
+#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
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
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
#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,
#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)
#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 */
/* 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)
+
+#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));
}
+#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),\
#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()
#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;
#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 */
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
/*
* 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));
}
#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; }
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; }
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.
*/
#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. */
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);
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))
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)
/* 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,
#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))
#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));
}
#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'
+#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"
#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()
#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
}
+
#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(
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);
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))
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)
#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;
/* 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);