mirror of
https://abf.rosa.ru/djam/kernel-xen.git
synced 2025-02-22 23:32:46 +00:00
127 lines
3.8 KiB
Text
127 lines
3.8 KiB
Text
From: jbeulich@novell.com
|
|
Subject: fix placement of some routines/data
|
|
Patch-mainline: obsolete
|
|
|
|
--- sle11sp1-2010-03-22.orig/arch/x86/kernel/time-xen.c 2010-02-09 17:07:46.000000000 +0100
|
|
+++ sle11sp1-2010-03-22/arch/x86/kernel/time-xen.c 2010-03-01 14:45:54.000000000 +0100
|
|
@@ -674,7 +674,7 @@ int xen_update_persistent_clock(void)
|
|
/* Dynamically-mapped IRQ. */
|
|
DEFINE_PER_CPU(int, timer_irq);
|
|
|
|
-static void setup_cpu0_timer_irq(void)
|
|
+static void __init setup_cpu0_timer_irq(void)
|
|
{
|
|
per_cpu(timer_irq, 0) =
|
|
bind_virq_to_irqhandler(
|
|
@@ -899,7 +899,7 @@ int __cpuinit local_setup_timer(unsigned
|
|
return 0;
|
|
}
|
|
|
|
-void __cpuexit local_teardown_timer(unsigned int cpu)
|
|
+void __cpuinit local_teardown_timer(unsigned int cpu)
|
|
{
|
|
BUG_ON(cpu == 0);
|
|
unbind_from_irqhandler(per_cpu(timer_irq, cpu), NULL);
|
|
--- sle11sp1-2010-03-22.orig/drivers/xen/core/cpu_hotplug.c 2009-11-06 10:51:55.000000000 +0100
|
|
+++ sle11sp1-2010-03-22/drivers/xen/core/cpu_hotplug.c 2009-11-06 11:09:19.000000000 +0100
|
|
@@ -24,7 +24,7 @@ static int local_cpu_hotplug_request(voi
|
|
return (current->mm != NULL);
|
|
}
|
|
|
|
-static void vcpu_hotplug(unsigned int cpu)
|
|
+static void __cpuinit vcpu_hotplug(unsigned int cpu)
|
|
{
|
|
int err;
|
|
char dir[32], state[32];
|
|
@@ -51,7 +51,7 @@ static void vcpu_hotplug(unsigned int cp
|
|
}
|
|
}
|
|
|
|
-static void handle_vcpu_hotplug_event(
|
|
+static void __cpuinit handle_vcpu_hotplug_event(
|
|
struct xenbus_watch *watch, const char **vec, unsigned int len)
|
|
{
|
|
unsigned int cpu;
|
|
@@ -80,12 +80,12 @@ static int smpboot_cpu_notify(struct not
|
|
return NOTIFY_OK;
|
|
}
|
|
|
|
-static int setup_cpu_watcher(struct notifier_block *notifier,
|
|
- unsigned long event, void *data)
|
|
+static int __cpuinit setup_cpu_watcher(struct notifier_block *notifier,
|
|
+ unsigned long event, void *data)
|
|
{
|
|
unsigned int i;
|
|
|
|
- static struct xenbus_watch cpu_watch = {
|
|
+ static struct xenbus_watch __cpuinitdata cpu_watch = {
|
|
.node = "cpu",
|
|
.callback = handle_vcpu_hotplug_event,
|
|
.flags = XBWF_new_thread };
|
|
@@ -105,7 +105,7 @@ static int __init setup_vcpu_hotplug_eve
|
|
{
|
|
static struct notifier_block hotplug_cpu = {
|
|
.notifier_call = smpboot_cpu_notify };
|
|
- static struct notifier_block xsn_cpu = {
|
|
+ static struct notifier_block __cpuinitdata xsn_cpu = {
|
|
.notifier_call = setup_cpu_watcher };
|
|
|
|
if (!is_running_on_xen())
|
|
@@ -119,7 +119,7 @@ static int __init setup_vcpu_hotplug_eve
|
|
|
|
arch_initcall(setup_vcpu_hotplug_event);
|
|
|
|
-int smp_suspend(void)
|
|
+int __ref smp_suspend(void)
|
|
{
|
|
unsigned int cpu;
|
|
int err;
|
|
@@ -140,7 +140,7 @@ int smp_suspend(void)
|
|
return 0;
|
|
}
|
|
|
|
-void smp_resume(void)
|
|
+void __ref smp_resume(void)
|
|
{
|
|
unsigned int cpu;
|
|
|
|
--- sle11sp1-2010-03-22.orig/drivers/xen/core/smpboot.c 2010-03-22 12:25:59.000000000 +0100
|
|
+++ sle11sp1-2010-03-22/drivers/xen/core/smpboot.c 2010-03-22 12:57:24.000000000 +0100
|
|
@@ -181,7 +181,7 @@ static int __cpuinit xen_smp_intr_init(u
|
|
}
|
|
|
|
#ifdef CONFIG_HOTPLUG_CPU
|
|
-static void __cpuexit xen_smp_intr_exit(unsigned int cpu)
|
|
+static void __cpuinit xen_smp_intr_exit(unsigned int cpu)
|
|
{
|
|
if (cpu != 0)
|
|
local_teardown_timer(cpu);
|
|
@@ -400,7 +400,7 @@ int __cpuexit __cpu_disable(void)
|
|
return 0;
|
|
}
|
|
|
|
-void __cpuexit __cpu_die(unsigned int cpu)
|
|
+void __cpuinit __cpu_die(unsigned int cpu)
|
|
{
|
|
while (HYPERVISOR_vcpu_op(VCPUOP_is_up, cpu, NULL)) {
|
|
current->state = TASK_UNINTERRUPTIBLE;
|
|
--- sle11sp1-2010-03-22.orig/drivers/xen/evtchn/evtchn.c 2009-03-18 10:39:31.000000000 +0100
|
|
+++ sle11sp1-2010-03-22/drivers/xen/evtchn/evtchn.c 2009-11-06 11:09:19.000000000 +0100
|
|
@@ -549,14 +549,15 @@ static int __init evtchn_init(void)
|
|
|
|
return 0;
|
|
}
|
|
+module_init(evtchn_init);
|
|
|
|
+#ifdef CONFIG_MODULE
|
|
static void __exit evtchn_cleanup(void)
|
|
{
|
|
misc_deregister(&evtchn_miscdev);
|
|
unregister_cpu_notifier(&evtchn_cpu_nfb);
|
|
}
|
|
-
|
|
-module_init(evtchn_init);
|
|
module_exit(evtchn_cleanup);
|
|
+#endif
|
|
|
|
MODULE_LICENSE("Dual BSD/GPL");
|