Subject: [PATCH 0/4] CPU hotplug support for Versatile platforms

From: [email-masked] (Rob Herring)
Date: Fri, 17 Sep 2010 16:21:42 -0500

On 09/17/2010 08:12 AM, Will Deacon wrote:
> This patch series fixes some issues with the RealView CPU hotplug code and then
> factors out the common code into plat-versatile. Finally, support for multiple
> tiles is added to the Versatile Express BSP in order to decouple the
> tile-specific functions from the motherboard and hotplug support is
> added to the ct-ca9x4 tile using the new platform code.
>
> Taken against 2.6.35 and tested on RealView PB11MPCore and Versatile Express
> [ct-ca9x4] boards.
>
> Cc: Russell King - ARM Linux<[email-masked]>
>
> Will Deacon (4):
>    ARM: vexpress: add support for multiple core tiles
>    ARM: realview: fix CPU hotplug support for SMP platforms
>    ARM: plat-versatile: factor out common hotplug code
>    ARM: vexpress: add support for CPU hotplug to ct-ca9x4 tile
>
>   arch/arm/mach-realview/hotplug.c                  |   91 +++++++--------------
>   arch/arm/mach-vexpress/Makefile                   |    1 +
>   arch/arm/mach-vexpress/core.h                     |    5 -
>   arch/arm/mach-vexpress/ct-ca9x4.c                 |   91 +++++++++++++++++---
>   arch/arm/mach-vexpress/hotplug.c                  |   39 +++++++++
>   arch/arm/mach-vexpress/include/mach/ct-ca9x4.h    |    2 +
>   arch/arm/mach-vexpress/include/mach/motherboard.h |   26 ++++++
>   arch/arm/mach-vexpress/platsmp.c                  |   12 +---
>   arch/arm/mach-vexpress/v2m.c                      |   61 +++++++++++---
>   arch/arm/plat-versatile/Makefile                  |    1 +
>   arch/arm/plat-versatile/hotplug.c                 |   57 +++++++++++++
>   arch/arm/plat-versatile/include/plat/hotplug.h    |    6 ++
>   12 files changed, 289 insertions(+), 103 deletions(-)
>   create mode 100644 arch/arm/mach-vexpress/hotplug.c
>   create mode 100644 arch/arm/plat-versatile/hotplug.c
>   create mode 100644 arch/arm/plat-versatile/include/plat/hotplug.h
>
>
> _______________________________________________
> linux-arm-kernel mailing list
> linux-arm-kernel at lists.infradead.org
> http://lists.infradead.org/mailman/listinfo/linux-arm-kernel

The platform specific SMP code is one area that prevents supporting a 
single kernel image. All the functions in platsmp.c need to be converted 
to function pointers and a lot of that code is pretty simliar across 
platforms. What's needed is a common platsmp.c with something like 
platform specific smp_ops like PowerPC. I think addressing that first 
would simplify this restructuring as you are doing some of what's 
needed, but you introducing new namespace problems like platform_cpu_*.

Rob