This patch series cleans up the GIC code, consolidating some of the per-platform practices into the common GIC code. One notable change is to the initialization methods - we used to require platforms to pass in the address of the per-CPU interfaces despite them always being identical between all cores. This was nonsense, as even in the extremely unlikely event that they were different, we aren't storing them in a per-CPU manner. The GIC initialization methods are now simpler: one call to gic_init() from the boot CPU, and a call to gic_secondary_init() as each secondary CPU starts - and no need for platforms to keep track of the address anymore. One question remains on this: on platforms where there are more than one GIC, do these have separate CPU interfaces as well? We also consolidate gic_cpu_base_addr to save platforms using that - but only for the first GIC, and therefore we can have a common get_irqnr_preamble assembler macro for platforms which make use of this. Lastly, we move the GIC data to __read_mostly - and when we have support for this feature, we benefit from avoiding potential cache line ping-pongs between cores for data so marked. arch/arm/common/gic.c | 59 +++++++++++++------- arch/arm/include/asm/hardware/entry-macro-gic.S | 7 +++ arch/arm/include/asm/hardware/gic.h | 6 ++- arch/arm/mach-cns3xxx/core.c | 7 +-- arch/arm/mach-cns3xxx/core.h | 1 - arch/arm/mach-cns3xxx/include/mach/entry-macro.S | 5 -- arch/arm/mach-msm/board-msm8x60.c | 7 +-- arch/arm/mach-omap2/include/mach/entry-macro.S | 1 + arch/arm/mach-omap2/include/mach/omap4-common.h | 1 - arch/arm/mach-omap2/omap-smp.c | 2 +- arch/arm/mach-omap2/omap4-common.c | 11 ++-- arch/arm/mach-realview/core.c | 3 - arch/arm/mach-realview/core.h | 1 - arch/arm/mach-realview/include/mach/entry-macro.S | 5 -- arch/arm/mach-realview/platsmp.c | 2 +- arch/arm/mach-realview/realview_eb.c | 14 ++--- arch/arm/mach-realview/realview_pb1176.c | 11 ++-- arch/arm/mach-realview/realview_pb11mp.c | 10 ++-- arch/arm/mach-realview/realview_pba8.c | 6 +- arch/arm/mach-realview/realview_pbx.c | 13 ++--- arch/arm/mach-s5pv310/cpu.c | 6 +-- arch/arm/mach-s5pv310/include/mach/smp.h | 2 - arch/arm/mach-s5pv310/platsmp.c | 2 +- arch/arm/mach-tegra/include/mach/entry-macro.S | 2 +- arch/arm/mach-tegra/irq.c | 4 +- arch/arm/mach-tegra/platsmp.c | 2 +- arch/arm/mach-ux500/cpu.c | 4 +- arch/arm/mach-ux500/include/mach/entry-macro.S | 1 + arch/arm/mach-ux500/platsmp.c | 2 +- arch/arm/mach-vexpress/core.h | 2 - arch/arm/mach-vexpress/ct-ca9x4.c | 7 +-- arch/arm/mach-vexpress/include/mach/entry-macro.S | 5 -- arch/arm/mach-vexpress/platsmp.c | 2 +- 33 files changed, 100 insertions(+), 113 deletions(-) -- To unsubscribe from this list: send the line "unsubscribe linux-tegra" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html