arm: Use per-CPU irq_desc for PPIs and SGIs
authorIan Campbell <ian.campbell@citrix.com>
Tue, 9 Oct 2012 14:05:40 +0000 (15:05 +0100)
committerIan Campbell <ian.campbell@citrix.com>
Tue, 9 Oct 2012 14:05:40 +0000 (15:05 +0100)
commitde43d7a373eef95bedcd816f1fcf8c062e1ac328
tree4b78f73c75a74ff0400d9920e66aae2d013db3a9
parent55ba3b2be653e85e73cbad96f5cd2e5307e83730
arm: Use per-CPU irq_desc for PPIs and SGIs

The first 32 interrupts on a GIC are the Peripheral Private Interrupts
and Software-Generated Interrupts and are local to each processor.

The irq_desc cannot be shared since we use irq_desc->status to track
whether the IRQ is in-progress etc. Therefore give each processor its
own local irq_desc for each of these interupts.

We must also route them on each CPU, so do so.

This feels like a bit of a layering violation (since the core ARM
irq.c now knows about thinkgs wich are really gic.c business)

Signed-off-by: Ian Campbell <ian.campbell@citrix.com>
Acked-by: Tim Deegan <tim@xen.org>
Committed-by: Ian Campbell <ian.campbell@citrix.com>
xen/arch/arm/gic.c
xen/arch/arm/gic.h
xen/arch/arm/irq.c
xen/arch/arm/setup.c
xen/arch/arm/smpboot.c
xen/include/asm-arm/irq.h
xen/include/asm-arm/setup.h
xen/include/xen/irq.h