Bugfixes:
* Fix to bootup regression introduced by 'x86-bsp-hotplug-for-linus' tip branch. * Fix to vcpu hotplug code. -----BEGIN PGP SIGNATURE----- Version: GnuPG v1.4.12 (GNU/Linux) iQEcBAABAgAGBQJQz/sjAAoJEFjIrFwIi8fJNy4H/1FT8SUpCPnVm5mHpPFQdE0X DgkjQuNuUUEpi+1fOaIl4CVu4B6uRqY2K6C1pOMgf2SDUdgvtv7Tk+jR1wuNIG9r Q4yslc9LcCy5916hT9t/7+THmKqfibbocvRAtcjrOHfcdcMnYYBrCP8YeeNARfe9 oduzs8+BC8xCThS6rbhe+PHtsfXucf4+aRdXYg7w1c6EeA7RCY/8o5FF8vVOFbcf mFOeKzMD7zHwoV7i8iYMmydhLOkmXj0QfQcHtV5kZ2m43FQ4nCUYMtqJa9Q6RXzH 4tUr4gYu8QE4t7gusP3e3kYCtJLDxtiCa1s3mp0tWT7S5LZsVlyWa0n30YW30W8= =U02+ -----END PGP SIGNATURE----- Merge tag 'stable/for-linus-3.8-rc0-bugfix-tag' of git://git.kernel.org/pub/scm/linux/kernel/git/konrad/xen Pull Xen bugfixes from Konrad Rzeszutek Wilk: "Two fixes. One of them is caused by the recent change introduced by the 'x86-bsp-hotplug-for-linus' tip tree that inhibited bootup (old function does not do what it used to do). The other one is just a vanilla bug. - Fix to bootup regression introduced by 'x86-bsp-hotplug-for-linus' tip branch. - Fix to vcpu hotplug code." * tag 'stable/for-linus-3.8-rc0-bugfix-tag' of git://git.kernel.org/pub/scm/linux/kernel/git/konrad/xen: xen/vcpu: Fix vcpu restore path. xen: Add EVTCHNOP_reset in Xen interface header files. xen/smp: Use smp_store_boot_cpu_info() to store cpu info for BSP during boot time.
This commit is contained in:
commit
224394ad75
|
@ -193,10 +193,11 @@ void xen_vcpu_restore(void)
|
||||||
{
|
{
|
||||||
int cpu;
|
int cpu;
|
||||||
|
|
||||||
for_each_online_cpu(cpu) {
|
for_each_possible_cpu(cpu) {
|
||||||
bool other_cpu = (cpu != smp_processor_id());
|
bool other_cpu = (cpu != smp_processor_id());
|
||||||
|
bool is_up = HYPERVISOR_vcpu_op(VCPUOP_is_up, cpu, NULL);
|
||||||
|
|
||||||
if (other_cpu &&
|
if (other_cpu && is_up &&
|
||||||
HYPERVISOR_vcpu_op(VCPUOP_down, cpu, NULL))
|
HYPERVISOR_vcpu_op(VCPUOP_down, cpu, NULL))
|
||||||
BUG();
|
BUG();
|
||||||
|
|
||||||
|
@ -205,7 +206,7 @@ void xen_vcpu_restore(void)
|
||||||
if (have_vcpu_info_placement)
|
if (have_vcpu_info_placement)
|
||||||
xen_vcpu_setup(cpu);
|
xen_vcpu_setup(cpu);
|
||||||
|
|
||||||
if (other_cpu &&
|
if (other_cpu && is_up &&
|
||||||
HYPERVISOR_vcpu_op(VCPUOP_up, cpu, NULL))
|
HYPERVISOR_vcpu_op(VCPUOP_up, cpu, NULL))
|
||||||
BUG();
|
BUG();
|
||||||
}
|
}
|
||||||
|
|
|
@ -254,7 +254,7 @@ static void __init xen_smp_prepare_cpus(unsigned int max_cpus)
|
||||||
}
|
}
|
||||||
xen_init_lock_cpu(0);
|
xen_init_lock_cpu(0);
|
||||||
|
|
||||||
smp_store_cpu_info(0);
|
smp_store_boot_cpu_info();
|
||||||
cpu_data(0).x86_max_cores = 1;
|
cpu_data(0).x86_max_cores = 1;
|
||||||
|
|
||||||
for_each_possible_cpu(i) {
|
for_each_possible_cpu(i) {
|
||||||
|
|
|
@ -177,6 +177,19 @@ struct evtchn_unmask {
|
||||||
evtchn_port_t port;
|
evtchn_port_t port;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
/*
|
||||||
|
* EVTCHNOP_reset: Close all event channels associated with specified domain.
|
||||||
|
* NOTES:
|
||||||
|
* 1. <dom> may be specified as DOMID_SELF.
|
||||||
|
* 2. Only a sufficiently-privileged domain may specify other than DOMID_SELF.
|
||||||
|
*/
|
||||||
|
#define EVTCHNOP_reset 10
|
||||||
|
struct evtchn_reset {
|
||||||
|
/* IN parameters. */
|
||||||
|
domid_t dom;
|
||||||
|
};
|
||||||
|
typedef struct evtchn_reset evtchn_reset_t;
|
||||||
|
|
||||||
struct evtchn_op {
|
struct evtchn_op {
|
||||||
uint32_t cmd; /* EVTCHNOP_* */
|
uint32_t cmd; /* EVTCHNOP_* */
|
||||||
union {
|
union {
|
||||||
|
|
Loading…
Reference in New Issue