]> git.ipfire.org Git - people/pmueller/ipfire-2.x.git/blob - src/patches/suse-2.6.27.25/patches.xen/xen-sections
Updated xen patches taken from suse.
[people/pmueller/ipfire-2.x.git] / src / patches / suse-2.6.27.25 / patches.xen / xen-sections
1 From: jbeulich@novell.com
2 Subject: fix placement of some routines/data
3 Patch-mainline: obsolete
4
5 --- sle11-2009-05-14.orig/arch/x86/kernel/e820-xen.c 2009-05-06 10:29:07.000000000 +0200
6 +++ sle11-2009-05-14/arch/x86/kernel/e820-xen.c 2009-02-17 14:01:20.000000000 +0100
7 @@ -42,7 +42,7 @@
8 * user can e.g. boot the original kernel with mem=1G while still booting the
9 * next kernel with full memory.
10 */
11 -struct e820map e820;
12 +struct e820map __initdata e820;
13 #ifndef CONFIG_XEN
14 struct e820map e820_saved;
15 #else
16 --- sle11-2009-05-14.orig/arch/x86/kernel/process_32-xen.c 2008-10-01 16:20:58.000000000 +0200
17 +++ sle11-2009-05-14/arch/x86/kernel/process_32-xen.c 2008-12-01 12:07:15.000000000 +0100
18 @@ -99,7 +99,7 @@ static void cpu_exit_clear(void)
19 }
20 #endif
21
22 -static inline void play_dead(void)
23 +static void __ref play_dead(void)
24 {
25 idle_task_exit();
26 local_irq_disable();
27 --- sle11-2009-05-14.orig/arch/x86/kernel/process_64-xen.c 2008-10-01 16:20:58.000000000 +0200
28 +++ sle11-2009-05-14/arch/x86/kernel/process_64-xen.c 2008-12-01 12:07:15.000000000 +0100
29 @@ -95,7 +95,7 @@ void exit_idle(void)
30 }
31
32 #ifdef CONFIG_HOTPLUG_CPU
33 -static inline void play_dead(void)
34 +static void __ref play_dead(void)
35 {
36 idle_task_exit();
37 #ifndef CONFIG_XEN
38 --- sle11-2009-05-14.orig/arch/x86/kernel/time_32-xen.c 2009-03-24 10:13:50.000000000 +0100
39 +++ sle11-2009-05-14/arch/x86/kernel/time_32-xen.c 2009-03-24 10:22:14.000000000 +0100
40 @@ -702,7 +702,7 @@ int xen_update_persistent_clock(void)
41 /* Dynamically-mapped IRQ. */
42 DEFINE_PER_CPU(int, timer_irq);
43
44 -static void setup_cpu0_timer_irq(void)
45 +static void __init setup_cpu0_timer_irq(void)
46 {
47 per_cpu(timer_irq, 0) =
48 bind_virq_to_irqhandler(
49 @@ -913,7 +913,7 @@ int __cpuinit local_setup_timer(unsigned
50 return 0;
51 }
52
53 -void __cpuexit local_teardown_timer(unsigned int cpu)
54 +void __cpuinit local_teardown_timer(unsigned int cpu)
55 {
56 BUG_ON(cpu == 0);
57 unbind_from_irqhandler(per_cpu(timer_irq, cpu), NULL);
58 --- sle11-2009-05-14.orig/arch/x86/mm/ioremap-xen.c 2009-01-16 10:45:51.000000000 +0100
59 +++ sle11-2009-05-14/arch/x86/mm/ioremap-xen.c 2009-01-07 10:55:24.000000000 +0100
60 @@ -201,7 +201,8 @@ int touch_pte_range(struct mm_struct *mm
61
62 EXPORT_SYMBOL(touch_pte_range);
63
64 -int page_is_ram(unsigned long pagenr)
65 +#ifdef CONFIG_X86_32
66 +int __init page_is_ram(unsigned long pagenr)
67 {
68 resource_size_t addr, end;
69 int i;
70 @@ -239,6 +240,7 @@ int page_is_ram(unsigned long pagenr)
71 }
72 return 0;
73 }
74 +#endif
75
76 /*
77 * Fix up the linear direct mapping of the kernel to avoid cache attribute
78 --- sle11-2009-05-14.orig/drivers/xen/core/cpu_hotplug.c 2009-05-14 10:56:29.000000000 +0200
79 +++ sle11-2009-05-14/drivers/xen/core/cpu_hotplug.c 2008-12-01 12:07:15.000000000 +0100
80 @@ -24,7 +24,7 @@ static int local_cpu_hotplug_request(voi
81 return (current->mm != NULL);
82 }
83
84 -static void vcpu_hotplug(unsigned int cpu)
85 +static void __cpuinit vcpu_hotplug(unsigned int cpu)
86 {
87 int err;
88 char dir[32], state[32];
89 @@ -51,7 +51,7 @@ static void vcpu_hotplug(unsigned int cp
90 }
91 }
92
93 -static void handle_vcpu_hotplug_event(
94 +static void __cpuinit handle_vcpu_hotplug_event(
95 struct xenbus_watch *watch, const char **vec, unsigned int len)
96 {
97 unsigned int cpu;
98 @@ -80,12 +80,12 @@ static int smpboot_cpu_notify(struct not
99 return NOTIFY_OK;
100 }
101
102 -static int setup_cpu_watcher(struct notifier_block *notifier,
103 - unsigned long event, void *data)
104 +static int __cpuinit setup_cpu_watcher(struct notifier_block *notifier,
105 + unsigned long event, void *data)
106 {
107 unsigned int i;
108
109 - static struct xenbus_watch cpu_watch = {
110 + static struct xenbus_watch __cpuinitdata cpu_watch = {
111 .node = "cpu",
112 .callback = handle_vcpu_hotplug_event,
113 .flags = XBWF_new_thread };
114 @@ -105,7 +105,7 @@ static int __init setup_vcpu_hotplug_eve
115 {
116 static struct notifier_block hotplug_cpu = {
117 .notifier_call = smpboot_cpu_notify };
118 - static struct notifier_block xsn_cpu = {
119 + static struct notifier_block __cpuinitdata xsn_cpu = {
120 .notifier_call = setup_cpu_watcher };
121
122 if (!is_running_on_xen())
123 @@ -119,7 +119,7 @@ static int __init setup_vcpu_hotplug_eve
124
125 arch_initcall(setup_vcpu_hotplug_event);
126
127 -int smp_suspend(void)
128 +int __ref smp_suspend(void)
129 {
130 unsigned int cpu;
131 int err;
132 @@ -140,7 +140,7 @@ int smp_suspend(void)
133 return 0;
134 }
135
136 -void smp_resume(void)
137 +void __ref smp_resume(void)
138 {
139 unsigned int cpu;
140
141 --- sle11-2009-05-14.orig/drivers/xen/core/smpboot.c 2009-03-16 16:38:16.000000000 +0100
142 +++ sle11-2009-05-14/drivers/xen/core/smpboot.c 2008-12-01 12:07:15.000000000 +0100
143 @@ -168,7 +168,7 @@ static int __cpuinit xen_smp_intr_init(u
144 }
145
146 #ifdef CONFIG_HOTPLUG_CPU
147 -static void __cpuexit xen_smp_intr_exit(unsigned int cpu)
148 +static void __cpuinit xen_smp_intr_exit(unsigned int cpu)
149 {
150 if (cpu != 0)
151 local_teardown_timer(cpu);
152 @@ -387,7 +387,7 @@ int __cpuexit __cpu_disable(void)
153 return 0;
154 }
155
156 -void __cpuexit __cpu_die(unsigned int cpu)
157 +void __cpuinit __cpu_die(unsigned int cpu)
158 {
159 while (HYPERVISOR_vcpu_op(VCPUOP_is_up, cpu, NULL)) {
160 current->state = TASK_UNINTERRUPTIBLE;