aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/xen
diff options
context:
space:
mode:
authorJeremy Fitzhardinge <jeremy.fitzhardinge@citrix.com>2009-04-07 16:34:16 -0400
committerJeremy Fitzhardinge <jeremy.fitzhardinge@citrix.com>2009-04-07 16:34:16 -0400
commit38f4b8c0da01ae7cd9b93386842ce272d6fde9ab (patch)
tree3c8c52201aac038094bfea7efdd0984a8f62045e /drivers/xen
parenta811454027352c762e0d5bba1b1d8f7d26bf96ae (diff)
parent8e2c4f2844c0e8dcdfe312e5f2204854ca8532c6 (diff)
Merge commit 'origin/master' into for-linus/xen/master
* commit 'origin/master': (4825 commits) Fix build errors due to CONFIG_BRANCH_TRACER=y parport: Use the PCI IRQ if offered tty: jsm cleanups Adjust path to gpio headers KGDB_SERIAL_CONSOLE check for module Change KCONFIG name tty: Blackin CTS/RTS Change hardware flow control from poll to interrupt driven Add support for the MAX3100 SPI UART. lanana: assign a device name and numbering for MAX3100 serqt: initial clean up pass for tty side tty: Use the generic RS485 ioctl on CRIS tty: Correct inline types for tty_driver_kref_get() splice: fix deadlock in splicing to file nilfs2: support nanosecond timestamp nilfs2: introduce secondary super block nilfs2: simplify handling of active state of segments nilfs2: mark minor flag for checkpoint created by internal operation nilfs2: clean up sketch file nilfs2: super block operations fix endian bug ... Conflicts: arch/x86/include/asm/thread_info.h arch/x86/lguest/boot.c drivers/xen/manage.c
Diffstat (limited to 'drivers/xen')
-rw-r--r--drivers/xen/Kconfig2
-rw-r--r--drivers/xen/cpu_hotplug.c4
-rw-r--r--drivers/xen/manage.c15
3 files changed, 12 insertions, 9 deletions
diff --git a/drivers/xen/Kconfig b/drivers/xen/Kconfig
index c0c490ea7d1b..cab100acf983 100644
--- a/drivers/xen/Kconfig
+++ b/drivers/xen/Kconfig
@@ -47,7 +47,7 @@ config XEN_COMPAT_XENFS
47 The old xenstore userspace tools expect to find "xenbus" 47 The old xenstore userspace tools expect to find "xenbus"
48 under /proc/xen, but "xenbus" is now found at the root of the 48 under /proc/xen, but "xenbus" is now found at the root of the
49 xenfs filesystem. Selecting this causes the kernel to create 49 xenfs filesystem. Selecting this causes the kernel to create
50 the compatibilty mount point /proc/xen if it is running on 50 the compatibility mount point /proc/xen if it is running on
51 a xen platform. 51 a xen platform.
52 If in doubt, say yes. 52 If in doubt, say yes.
53 53
diff --git a/drivers/xen/cpu_hotplug.c b/drivers/xen/cpu_hotplug.c
index 411cb1fc9279..bdfd584ad853 100644
--- a/drivers/xen/cpu_hotplug.c
+++ b/drivers/xen/cpu_hotplug.c
@@ -10,7 +10,7 @@ static void enable_hotplug_cpu(int cpu)
10 if (!cpu_present(cpu)) 10 if (!cpu_present(cpu))
11 arch_register_cpu(cpu); 11 arch_register_cpu(cpu);
12 12
13 cpu_set(cpu, cpu_present_map); 13 set_cpu_present(cpu, true);
14} 14}
15 15
16static void disable_hotplug_cpu(int cpu) 16static void disable_hotplug_cpu(int cpu)
@@ -18,7 +18,7 @@ static void disable_hotplug_cpu(int cpu)
18 if (cpu_present(cpu)) 18 if (cpu_present(cpu))
19 arch_unregister_cpu(cpu); 19 arch_unregister_cpu(cpu);
20 20
21 cpu_clear(cpu, cpu_present_map); 21 set_cpu_present(cpu, false);
22} 22}
23 23
24static int vcpu_online(unsigned int cpu) 24static int vcpu_online(unsigned int cpu)
diff --git a/drivers/xen/manage.c b/drivers/xen/manage.c
index 5269bb4d2496..fddc2025dece 100644
--- a/drivers/xen/manage.c
+++ b/drivers/xen/manage.c
@@ -39,12 +39,6 @@ static int xen_suspend(void *data)
39 39
40 BUG_ON(!irqs_disabled()); 40 BUG_ON(!irqs_disabled());
41 41
42 err = device_power_down(PMSG_SUSPEND);
43 if (err) {
44 printk(KERN_ERR "xen_suspend: device_power_down failed: %d\n",
45 err);
46 return err;
47 }
48 err = sysdev_suspend(PMSG_SUSPEND); 42 err = sysdev_suspend(PMSG_SUSPEND);
49 if (err) { 43 if (err) {
50 printk(KERN_ERR "xen_suspend: sysdev_suspend failed: %d\n", 44 printk(KERN_ERR "xen_suspend: sysdev_suspend failed: %d\n",
@@ -107,6 +101,12 @@ static void do_suspend(void)
107 printk(KERN_DEBUG "suspending xenstore...\n"); 101 printk(KERN_DEBUG "suspending xenstore...\n");
108 xs_suspend(); 102 xs_suspend();
109 103
104 err = device_power_down(PMSG_SUSPEND);
105 if (err) {
106 printk(KERN_ERR "device_power_down failed: %d\n", err);
107 goto resume_devices;
108 }
109
110 err = stop_machine(xen_suspend, &cancelled, cpumask_of(0)); 110 err = stop_machine(xen_suspend, &cancelled, cpumask_of(0));
111 if (err) { 111 if (err) {
112 printk(KERN_ERR "failed to start xen_suspend: %d\n", err); 112 printk(KERN_ERR "failed to start xen_suspend: %d\n", err);
@@ -119,6 +119,9 @@ static void do_suspend(void)
119 } else 119 } else
120 xs_suspend_cancel(); 120 xs_suspend_cancel();
121 121
122 device_power_up(PMSG_RESUME);
123
124resume_devices:
122 device_resume(PMSG_RESUME); 125 device_resume(PMSG_RESUME);
123 126
124 /* Make sure timer events get retriggered on all CPUs */ 127 /* Make sure timer events get retriggered on all CPUs */