... rather than calling just a few functions explicitly.
---- sle11-2009-03-24.orig/arch/x86/kernel/time_32-xen.c 2009-03-24 10:22:14.000000000 +0100
-+++ sle11-2009-03-24/arch/x86/kernel/time_32-xen.c 2009-03-24 10:22:24.000000000 +0100
+--- sle11-2009-10-16.orig/arch/x86/kernel/time_32-xen.c 2009-10-28 14:59:14.000000000 +0100
++++ sle11-2009-10-16/arch/x86/kernel/time_32-xen.c 2009-10-28 14:59:22.000000000 +0100
@@ -88,6 +88,10 @@ static DEFINE_PER_CPU(struct vcpu_runsta
/* Must be signed, as it's compared with s64 quantities which can be -ve. */
#define NS_PER_TICK (1000000000LL/HZ)
static void __clock_was_set(struct work_struct *unused)
{
clock_was_set();
-@@ -597,6 +601,25 @@ void mark_tsc_unstable(char *reason)
+@@ -598,6 +602,25 @@ void mark_tsc_unstable(char *reason)
}
EXPORT_SYMBOL_GPL(mark_tsc_unstable);
static cycle_t cs_last;
static cycle_t xen_clocksource_read(void)
-@@ -633,11 +656,32 @@ static cycle_t xen_clocksource_read(void
+@@ -634,11 +657,32 @@ static cycle_t xen_clocksource_read(void
#endif
}
cs_last = local_clock();
}
-@@ -652,25 +696,6 @@ static struct clocksource clocksource_xe
+@@ -653,25 +697,6 @@ static struct clocksource clocksource_xe
.resume = xen_clocksource_resume,
};
unsigned long xen_read_persistent_clock(void)
{
const shared_info_t *s = HYPERVISOR_shared_info;
-@@ -715,10 +740,6 @@ static void __init setup_cpu0_timer_irq(
+@@ -716,10 +741,6 @@ static void __init setup_cpu0_timer_irq(
BUG_ON(per_cpu(timer_irq, 0) < 0);
}
void __init time_init(void)
{
init_cpu_khz();
-@@ -842,35 +863,6 @@ void xen_halt(void)
+@@ -843,35 +864,6 @@ void xen_halt(void)
}
EXPORT_SYMBOL(xen_halt);
#ifdef CONFIG_SMP
static char timer_name[NR_CPUS][15];
---- sle11-2009-03-24.orig/drivers/xen/core/evtchn.c 2009-03-16 16:38:16.000000000 +0100
-+++ sle11-2009-03-24/drivers/xen/core/evtchn.c 2009-01-14 14:57:55.000000000 +0100
+--- sle11-2009-10-16.orig/drivers/xen/core/evtchn.c 2009-06-04 10:21:39.000000000 +0200
++++ sle11-2009-10-16/drivers/xen/core/evtchn.c 2009-01-14 14:57:55.000000000 +0100
@@ -35,6 +35,7 @@
#include <linux/interrupt.h>
#include <linux/sched.h>
#endif
#if defined(CONFIG_X86_IO_APIC)
---- sle11-2009-03-24.orig/drivers/xen/core/gnttab.c 2009-03-16 16:38:16.000000000 +0100
-+++ sle11-2009-03-24/drivers/xen/core/gnttab.c 2008-12-15 11:32:52.000000000 +0100
+--- sle11-2009-10-16.orig/drivers/xen/core/gnttab.c 2009-06-04 10:21:39.000000000 +0200
++++ sle11-2009-10-16/drivers/xen/core/gnttab.c 2008-12-15 11:32:52.000000000 +0100
@@ -35,6 +35,7 @@
#include <linux/sched.h>
#include <linux/mm.h>
nr_grant_frames = 1;
boot_max_nr_grant_frames = __max_nr_grant_frames();
---- sle11-2009-03-24.orig/drivers/xen/core/machine_reboot.c 2009-03-16 16:38:16.000000000 +0100
-+++ sle11-2009-03-24/drivers/xen/core/machine_reboot.c 2009-02-17 12:23:48.000000000 +0100
+--- sle11-2009-10-16.orig/drivers/xen/core/machine_reboot.c 2009-06-04 10:21:39.000000000 +0200
++++ sle11-2009-10-16/drivers/xen/core/machine_reboot.c 2009-02-17 12:23:48.000000000 +0100
@@ -17,6 +17,7 @@
#include <xen/xencons.h>
#include <xen/cpu_hotplug.h>
if (!suspend->fast_suspend)
local_irq_enable();
---- sle11-2009-03-24.orig/include/xen/evtchn.h 2009-03-16 16:33:40.000000000 +0100
-+++ sle11-2009-03-24/include/xen/evtchn.h 2008-12-15 11:32:52.000000000 +0100
+--- sle11-2009-10-16.orig/include/xen/evtchn.h 2009-03-16 16:33:40.000000000 +0100
++++ sle11-2009-10-16/include/xen/evtchn.h 2008-12-15 11:32:52.000000000 +0100
@@ -93,7 +93,9 @@ int bind_ipi_to_irqhandler(
*/
void unbind_from_irqhandler(unsigned int irq, void *dev_id);
/* Entry point for notifications into Linux subsystems. */
asmlinkage void evtchn_do_upcall(struct pt_regs *regs);
---- sle11-2009-03-24.orig/include/xen/gnttab.h 2009-03-24 10:00:14.000000000 +0100
-+++ sle11-2009-03-24/include/xen/gnttab.h 2008-12-15 11:32:52.000000000 +0100
+--- sle11-2009-10-16.orig/include/xen/gnttab.h 2009-10-28 14:54:56.000000000 +0100
++++ sle11-2009-10-16/include/xen/gnttab.h 2008-12-15 11:32:52.000000000 +0100
@@ -110,8 +110,9 @@ static inline void __gnttab_dma_unmap_pa
void gnttab_reset_grant_page(struct page *page);