Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit cb9644bf authored by Stefano Stabellini's avatar Stefano Stabellini Committed by David Vrabel
Browse files

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: default avatarStefano Stabellini <stefano.stabellini@eu.citrix.com>
Reviewed-by: default avatarJulien Grall <julien.grall@citrix.com>
parent 1c7a6213
Loading
Loading
Loading
Loading
+12 −0
Original line number Diff line number Diff line
@@ -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;
	}