mirror of
https://git.kernel.org/pub/scm/linux/kernel/git/next/linux-next.git
synced 2025-01-15 21:23:23 +00:00
xen/arm: don't try to re-register vcpu_info on cpu_hotplug.
Call disable_percpu_irq on CPU_DYING and enable_percpu_irq when the cpu is coming up. Signed-off-by: Stefano Stabellini <stefano.stabellini@eu.citrix.com> Reviewed-by: Julien Grall <julien.grall@citrix.com>
This commit is contained in:
parent
1c7a62137b
commit
cb9644bf3b
@ -86,6 +86,14 @@ static void xen_percpu_init(void)
|
||||
int err;
|
||||
int cpu = get_cpu();
|
||||
|
||||
/*
|
||||
* VCPUOP_register_vcpu_info cannot be called twice for the same
|
||||
* vcpu, so if vcpu_info is already registered, just get out. This
|
||||
* can happen with cpu-hotplug.
|
||||
*/
|
||||
if (per_cpu(xen_vcpu, cpu) != NULL)
|
||||
goto after_register_vcpu_info;
|
||||
|
||||
pr_info("Xen: initializing cpu%d\n", cpu);
|
||||
vcpup = per_cpu_ptr(xen_vcpu_info, cpu);
|
||||
|
||||
@ -96,6 +104,7 @@ static void xen_percpu_init(void)
|
||||
BUG_ON(err);
|
||||
per_cpu(xen_vcpu, cpu) = vcpup;
|
||||
|
||||
after_register_vcpu_info:
|
||||
enable_percpu_irq(xen_events_irq, 0);
|
||||
put_cpu();
|
||||
}
|
||||
@ -124,6 +133,9 @@ static int xen_cpu_notification(struct notifier_block *self,
|
||||
case CPU_STARTING:
|
||||
xen_percpu_init();
|
||||
break;
|
||||
case CPU_DYING:
|
||||
disable_percpu_irq(xen_events_irq);
|
||||
break;
|
||||
default:
|
||||
break;
|
||||
}
|
||||
|
Loading…
x
Reference in New Issue
Block a user