108 lines
3.3 KiB
Plaintext
108 lines
3.3 KiB
Plaintext
|
From: jbeulich@novell.com
|
||
|
Subject: fix placement of some routines/data
|
||
|
Patch-mainline: obsolete
|
||
|
|
||
|
--- head-2010-05-12.orig/arch/x86/kernel/time-xen.c 2010-05-12 09:03:15.000000000 +0200
|
||
|
+++ head-2010-05-12/arch/x86/kernel/time-xen.c 2010-05-12 09:13:55.000000000 +0200
|
||
|
@@ -676,7 +676,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(
|
||
|
@@ -901,7 +901,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);
|
||
|
--- head-2010-05-12.orig/drivers/xen/core/cpu_hotplug.c 2010-03-24 15:17:58.000000000 +0100
|
||
|
+++ head-2010-05-12/drivers/xen/core/cpu_hotplug.c 2010-01-25 13:45:39.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;
|
||
|
|
||
|
--- head-2010-05-12.orig/drivers/xen/core/smpboot.c 2010-03-24 15:25:21.000000000 +0100
|
||
|
+++ head-2010-05-12/drivers/xen/core/smpboot.c 2010-03-19 15:20:15.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;
|