Thread (22 messages) 22 messages, 2 authors, 2014-03-24
DORMANTno replies

[PATCH v2 02/19] arm64: initial support for GICv3

From: Marc Zyngier <hidden>
Date: 2014-03-24 19:07:46

Hi Sudeep,

On 24/03/14 19:03, Sudeep Holla wrote:
Hi Marc,

On 20/03/14 11:52, Marc Zyngier wrote:
quoted
The Generic Interrupt Controller (version 3) offers services that are
similar to GICv2, with a number of additional features:
- Affinity routing based on the CPU MPIDR (ARE)
- System register for the CPU interfaces (SRE)
- Support for more that 8 CPUs
- Locality-specific Peripheral Interrupts (LPIs)
- Interrupt Translation Services (ITS)

This patch adds preliminary support for GICv3 with ARE and SRE,
non-secure mode only. It relies on higher exception levels to grant ARE
and SRE access.

Support for LPI and ITS will be added at a later time.

Acked-by: Catalin Marinas <catalin.marinas@arm.com>
Signed-off-by: Marc Zyngier <redacted>
[...]
quoted
+#ifdef CONFIG_SMP
+static int __init gic_secondary_init(struct notifier_block *nfb,
+                                    unsigned long action, void *hcpu)
+{
+       if (action == CPU_STARTING || action == CPU_STARTING_FROZEN)
+               gic_cpu_init();
+       return NOTIFY_OK;
+}
+
+/*
+ * Notifier for enabling the GIC CPU interface. Set an arbitrarily high
+ * priority because the GIC needs to be up before the ARM generic timers.
+ */
+static struct notifier_block __initdata gic_cpu_notifier = {
+       .notifier_call = gic_secondary_init,
+       .priority = 100,
+};
+
You need to remove __init annotations in gic_populate_rdist, gic_cpu_init,
and gic_secondary_init for CPU hotplug to work.
Ah, who needs hotplug? ;-)

Very good point, thanks for noticing that. I'll fix it in the next revision!

Cheers,

	M.
-- 
Jazz is not dead. It just smells funny...
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help